[HELP] C# Schleifen
eeK! 04.12.2007 - 19:46 5011 38
mik
einfach anders!
|
achso, du hast die for-schleife für busy-waiting benutzt, da wir mir einiges klar, warum sollte da eine do while besser sein?
|
eeK!
ieS Virtual Gaming
|
gute Frage - glaub aber da ich ja bereits den Bereich kenne in den wir uns befinden also 1-100
|
Burschi1620
24/7 Santa Claus
|
gute Frage - glaub aber da ich ja bereits den Bereich kenne in den wir uns befinden also 1-100 Genau das ist das K.O. Kriterium für eine for Schleife. Habts ihr des nun besprochen oder nicht? Ich weiß ehrlichgesagt net was du mit deinem damischen x einleseding immer magst (Bin C# unkundig), jedenfalls geht es um das i das du verwenden sollst. Sofern dieses IF richtig ist was du mitn x gemacht hast, einfach x gegen i tauschen. Wo genau liegt nun das konkrete Problem? Von mir aus scann uns dein Struktogramm ein, oder des von den Lehrern und dann zeig richtig mitn Finger hin wo du was net verstehst. So dürfte das keinen Sinn haben. edit: fackt mich gerade bissl an, Folgendes sollte die Lösung fürs Problem sein: public static void Main()
{
for (int i = 1; i < 101; i++)
{
Console.WriteLine("Zahl: {0}", i);
if (i < 50 )
{
Console.WriteLine("Unter der hölfte");
}
else
{
Console.WriteLine("Über der hälfte");
}
}
Console.WriteLine("Aus is");
}
}
alles is C# syntax, hab alles nachgeschaut. müsste dirket in den compiler hüpfen können und was ausspucken (I/O librariys musst vielleicht hinzufügen)
Bearbeitet von Burschi1620 am 05.12.2007, 21:27
|
Blair
Big d00d
|
* Zeichne ein Struktogamm und * schreibe ein Konsolenprogramm,
Für ein Programm wo in einer Schleife eine Zahl zwischen 1 und 100 eingelesen wird (1 und 100 liegen noch im Bereich).
Danach gib die Zahl aus.
Wenn die Zahl größer oder gleich 50 ist, gibt die Meldung "Über der Hälfte". Ansonsten gib die Meldung "Unter der Hälfte." aus. bisserl undeutlich die angabe, aber ich interpretiere das folgendermaßen: Konsolenprogramm, das von stdin (also benutzereingabe auf konsole) eine zahl liest, diese ausgibt und dann die jeweilige bedingung prüft und die dazugehörige ausgabe ausgibt das ganze sähe dann ungefähr so aus (kann kein cs): static void Main(string[] args)
{
while (true)
{
int input = Int32.Parse(Console.ReadLine());
Console.WriteLine(input);
if ((input <= 100) && (input >= 1))
{
if (input < 50)
Console.WriteLine("unter der hälfte");
else
Console.WriteLine("über der hälfte");
}
else
Console.WriteLine("außerhalb des intervalls");
}
}
falls das wirklich mit der for-schleife so gemeint ist, dann ist die lösung von burschi schon ok
|
that
ModeratorHoffnungsloser Optimist
|
* Zeichne ein Struktogamm und * schreibe ein Konsolenprogramm,
Für ein Programm wo in einer Schleife eine Zahl zwischen 1 und 100 eingelesen wird (1 und 100 liegen noch im Bereich).
Danach gib die Zahl aus.
Wenn die Zahl größer oder gleich 50 ist, gibt die Meldung "Über der Hälfte". Ansonsten gib die Meldung "Unter der Hälfte." aus. Ihr könnts alle nicht die Angabe lesen! Da steht, man soll ein Struktogramm zeichnen und ein Programm schreiben, das *eine* Zahl in einer Schleife einliest. (die Schleife ist vermutlich gedacht, um die Randbedingungen zu prüfen). Und wenn man das Struktogramm und das Programm fertig hat, soll man die Zahl ausgeben (ähm, welche?) und abhängig von der Größe der Zahl eine Meldung ausgeben. Das soll aber der Programmierer machen und nicht das Programm. Genau so stehts zumindest da.
|
AoD
aka AngelOfDeath
|
ich wills mal in Pseudocode schreiben: while(!GueltigeZahlEingegeben)
{
Ausgabe "Bitte Zahl zwischen 1 und 100 eingeben"
ZeileEinlesen
}
if(zahl >= 50)
Ausgabe "Über der Hälfte"
else
Ausgabe "Unter der Hälfte"
das Problem der bisherigen Codebeispiele ist, dass sie entweder die Aufgabe nicht umsetzen, oder bei Eingabe eines Buchstabens abstürzen Hint: Zum Ermitteln ob die eingegebene Zeile eine gültige Zahl ist, wird dir int.TryParse weiterhelfen
|
Blair
Big d00d
|
das Problem der bisherigen Codebeispiele ist, ... dass sie bei Eingabe eines Buchstabens abstürzen Hint: Zum Ermitteln ob die eingegebene Zeile eine gültige Zahl ist, wird dir int.TryParse weiterhelfen jo, von mir aus so: int input = 0; Int32.TryParse(Console.ReadLine(), out input); die angabe kann man eh bisserl schmeißn, that is eh schon drüber hergezogen :P
|
Burschi1620
24/7 Santa Claus
|
Ihr könnts alle nicht die Angabe lesen! Da steht, man soll ein Struktogramm zeichnen und ein Programm schreiben, das *eine* Zahl in einer Schleife einliest. (die Schleife ist vermutlich gedacht, um die Randbedingungen zu prüfen).
Und wenn man das Struktogramm und das Programm fertig hat, soll man die Zahl ausgeben (ähm, welche?) und abhängig von der Größe der Zahl eine Meldung ausgeben. Das soll aber der Programmierer machen und nicht das Programm. Genau so stehts zumindest da. Falsch, die Angabe ist einfach der letzte Rotz (tschuldigung... aber entweder hast du, eek, das so legere geschrieben oder deine Lehrer können, wie es auch meine damals, keine eindeutige Angabe formulieren und wissen selber nicht so recht was sie wollen. Ja auch bei simplen Programmen bleiben oft Fragen offen wenn man in der Angabe ein paar Buchstaben sich erspart :/) Ich hab das halt jedenfalls aufgefasst, dass er mit dem "einlesen" irgendwie in Gorillasprache sagen wollte for (int i = 1; i < 101; i++). (Es geht hier ja auch um Schleifen, deshalb....) Aber so kommen wir ohnehin nicht weiter...
|
mik
einfach anders!
|
hach, wie bin ich froh das man meinen lehrern emails schreiben kann wennma fragen hat
|