"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

[HELP] C# Schleifen

eeK! 04.12.2007 - 19:46 5011 38
Posts

mik

einfach anders!
Avatar
Registered: Aug 2005
Location: Weltmetropole AM
Posts: 682
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
Avatar
Registered: Nov 2004
Location: 47° 57′ 32″..
Posts: 2973
gute Frage - glaub aber da ich ja bereits den Bereich kenne in den wir uns befinden also 1-100

Burschi1620

24/7 Santa Claus
Avatar
Registered: Apr 2004
Location: Drüber da Donau
Posts: 6792
Zitat von eeK!
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? :( :mad:


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:

Code:
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
Avatar
Registered: Dec 2004
Location: Graz
Posts: 177
Zitat
* 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):

Code:
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

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Zitat
* 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. :D Genau so stehts zumindest da. :p

AoD

aka AngelOfDeath
Avatar
Registered: Nov 2002
Location: St. Pölten
Posts: 1482
ich wills mal in Pseudocode schreiben:
Code:
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
Avatar
Registered: Dec 2004
Location: Graz
Posts: 177
Zitat von AoD
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
Avatar
Registered: Apr 2004
Location: Drüber da Donau
Posts: 6792
Zitat von that
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. :D Genau so stehts zumindest da. :p

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!
Avatar
Registered: Aug 2005
Location: Weltmetropole AM
Posts: 682
hach, wie bin ich froh das man meinen lehrern emails schreiben kann wennma fragen hat :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz