ein paar (für euch wohl einfache) Aufgaben mit dem c++-builder(borland)
-
AnNi schrieb:
mein Problem isch, dass ich keine Ahnung hab wie ich des Ereignis OnTimer verwende...in der Hilfe find ich da au nix zu..
Drücke in CBuilder F1 und gebe das im Index ein "OnTimer,Beispiel".
-
AnNi schrieb:
while(t > 10) { Label1->Color = clBlack; t++; if(t == 9) { t = 0; } }Hi,
eigentlich ist das ja total unwichtig für dein Vorhaben, allerdings möcht ich nochmal deine Logik in Frage stellen. Wenn t größer als 10 ist und dann immer größer wird, wann kann t dann 9 sein? Gibt es etwa eine Zahl die gleichzeigt größer als 10 und gleich 9 ist? Wenn dem so ist, möchte ich diese bitte erfahren
MfG
Alexander Sulfrian
-
mhh.. joa - die haben da schon ein Beispiel - aber wie stell ich da ein, dasses nach 2s die farbe in die eine udn nach 2 sekunden wieder in die andre Farbe wechselt?
ich mein, wenn ich des beim Timer reinschreibvoid __fastcall TForm1::Timer1Timer(TObject *Sender) { x = StrToInt(Edit1->Text); while(x > 10); { //farbe wechseln } }da hab ich doch danns gleiche Problem??
AnNi
-
Hallo
was macht denn der Timer so
(2s)in Timer1Timer machst du dann was du willst
einmal Farbe = xxx
dann Farbe = yyyschau dir mal das mit den Timern genau an
(wurde dir doch schonmal geraten oder)Mfg
Klaus
-
Hast du dir eigentlich mal irgendwie die Hilfe durchgelesen?
Beschreibung
Die Eigenschaft Interval legt fest, wie häufig das Ereignis OnTimer auftritt. Das Ereignis tritt nach jedem Ablauf des festgelegten Zeitabschnitts ein.
Mit dieser Eigenschaft können Sie die Zeitabschnitte zwischen OnTimer-Ereignissen angeben. Der Vorgabewert ist 1000 (eine Sekunde).
Deine komische while() ist absolut überflüssig für den Farbwechsel.
Einfach Abfragen. Ist Farb1 gesetzt, dann setze Farb2, wenn Farbe2, dann setze Farbe1. Das bekommt man in einer Zeile Code hin
Und zu deinem Zufallszahlen.... Ne Schleifedurchgehen und per if abzufragen, ob die Zahl grösser ist als die Vorherige solltest schon hinbekommen. Sonst haste es verdient durchzufallen :p
-
[quote="Alexander Sulfrian]Hi,
eigentlich ist das ja total unwichtig für dein Vorhaben, allerdings möcht ich nochmal deine Logik in Frage stellen. Wenn t größer als 10 ist und dann immer größer wird, wann kann t dann 9 sein? Gibt es etwa eine Zahl die gleichzeigt größer als 10 und gleich 9 ist? Wenn dem so ist, möchte ich diese bitte erfahren
MfG
Alexander Sulfrian[/quote]
jetzt passts vom logischen her - naja, geht trotzdem ned - müsste aus der schleife irgendwie wieder rauskommen.. najawhile(t < 10) { Label1->Color = clRed; t++; } while(t > 10) { Label1->Color = clBlack; t++; if(t > 20) { t = 0; } }--------
mh... habs mal so probiert - geht aber au ned, zeigt aber au kein fehler an...warscheinlich für dich absolut einfach - für mich halt ned...wir hams no ned sehr lange an der schule und machn im Unterricht immer relativ einfache Sachen, inner Klassenarbeit kommt dann sowas dran(des is halt ne Aufgabe aus der Parallelgruppe..)//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Timer1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Interval = 500; if(Label1->Color == clBlack) { Label1->Color = clRed; } if(Label1->Color == clRed) { Label1->Color = clBlack; } } //---------------------------------------------------------------------------was ist daran falsch?/Wo liegt der Fehler?
AnNi
-
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Timer1->Enabled = true; // Setz das direkt in der Komponente } void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Interval = 500; // Setz das direkt in der Komponente if(Label1->Color == clBlack) { Label1->Color = clRed; } // Was bitte machst du denn hier? // Vom eben gesetzten Rot sofort wieder Schwarz? // Logik 6, setzen! // benutze mal "else if" ;) if(Label1->Color == clRed) { Label1->Color = clBlack; } }AnNi schrieb:
was ist daran falsch?/Wo liegt der Fehler?
Siehe oben.
-
wohoo, es geht!
danke!AnNi
-
label blinken lasse?
on timer routine oder net?//timer auf 200 if(Label1->Font->Color== clBlack) Label1->Font->Color = clRed; else Label1->Font->Color = clBlack;und dann die aufgabe mit dem größten ist ganze easy
int max_zahl = 0; int vec[50]; // array füllen kannste oder? for(int i=0 i<50 ; i++) vec[i] = random (100)+1; for(int i=0 i<50 ; i++) if(vec[i]>max_zahl) max_zahl = vec[i]; cout << max_zahl << endl; //oder inne lisbox oder ShowMessage("größte zahl: " + max_zahl);
-
Sers!
des erste hab ich jetzt hinbekommen - bei deinem 2ten check isch garnix *gg*
sry, bin no totaler Anfängerich würde des Problem versuchen so zu lösen, dass ich mir meine Zufallszahlen erstelle und se dann durch ne Schleife laufen lasse die jeweils schaut, welche Zahl größer ist und diese Zahl dann inne variable legt
nach 50 durchgängen dann stopptmeine Frage no dazu:
wie krieg ich es hin, dass es mir mit Hilfe vonner Schleife die Zahlen in eine ListBox packt(ohne, dass ichs 50 mal schreiben muss)?AnNi