![]() |
Zufällige Zahl in Konsole
Hallo,
ich bin Anfänger in Delphi und wollte mal fragen wie man in einer Konsolenanwendung eine zufällige zahl auswählt? var x : random(100) oder so ähnlich? |
AW: Zufällige Zahl in Konsole
Beim Programmstart Randomize() aufrufen und dann so etwas wie
Delphi-Quellcode:
x := Random(100) + 1; //Zahl zwischen 1 und 100
|
AW: Zufällige Zahl in Konsole
Delphi-Quellcode:
Kann mir wer helfen? Wie kann ich sagen das wenn der eingegebene Betrag zu groß ist, er mir das sagt und wenn er zu klein ist eben auch?
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var s : Integer; x : Integer; begin x := Random(100) + 1; readln(s); // Lesen von Standardinput if s=x then write('Richtig es ist:'); if s= <x then write('Falsch es war zu klein'); if s= >x then write('Falsch es war zu groß'); writeln(x); // Schreiben nach Standardoutput readln; end. |
AW: Zufällige Zahl in Konsole
Delphi-Quellcode:
:zwinker: Vergleich auf größer oder kleiner. In deiner Variante würdest du bei Übereinstimmung immer zu groß angezeigt bekommen.
if s<x then write('Falsch es war zu klein');
if s>x then write('Falsch es war zu groß'); Nur so nebenbei... warum auf einmal Konsole ? Ist ja das gleiche Programm wie vorhin. Zu Übungszwecken ? |
AW: Zufällige Zahl in Konsole
Zitat:
[edit] Und wo ist das Randomize? [/edit] |
AW: Zufällige Zahl in Konsole
Delphi-Quellcode:
jetzt soll man nur noch weitere versuche haben, bis man es richtig hat...irgendeine hübsche schleife?!
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var s : Integer; x : Integer; begin randomize; x := Random(100) + 1; readln(s); // Lesen von Standardinput if s=x then write('Richtig es ist:'); if s<x then write('Falsch es war zu klein'); if s>x then write('Falsch es war zu gross'); writeln(s); // Schreiben nach Standardoutput writeln(x); readln; end. |
AW: Zufällige Zahl in Konsole
.. bist schon auf dem richtigen Weg.
Versuche es mal. Ausstieg aus der Schleife wenn richtig geraten wurde oder wenn die Anzahl der Versuche ein Limit überschritten haben. Grüße Klaus |
AW: Zufällige Zahl in Konsole
Repeat-Until?!
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var s : Integer; x : Integer; begin randomize; x := Random(100) + 1; repeat readln(s); // Lesen von Standardinput if s<x then write('Falsch es war zu klein'); if s>x then write('Falsch es war zu gross'); writeln(s); // Schreiben nach Standardoutput until (s = x); writeln('Korrekte Lösung ist: ', x); readln; end. |
AW: Zufällige Zahl in Konsole
Hatte es auch grade so, vielen Dank! :)
Läuftdoch so langsam :D |
AW: Zufällige Zahl in Konsole
Würde die aber zu etwas mehr "Struktur und Form" raten, dann wirds etwas übersichtlicher und besser (für andere) lesbar :thumb:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var RandomValue : Integer; Input : Integer; begin Randomize(); RandomValue := Random(100) + 1; Input := -1; while (RandomValue <> Input) do // Lesen von Standardinput Readln(Input); // Wert prüfen und Schreiben nach Standardoutput if (Input < RandomValue) then Write('Falsch es war zu klein'); if (Input > RandomValue) then Write('Falsch es war zu gross'); end; Writeln('Korrekte Lösung ist: ', x); Readln; end. |
AW: Zufällige Zahl in Konsole
War Input unter Standard-Pascal nicht früher mal ein reserviertes Wort (lang, lang ist' s her)? Evtl. könnte man die Variable auch InputValue nennen, das sähe IMO noch besser aus.
|
AW: Zufällige Zahl in Konsole
Zitat:
|
AW: Zufällige Zahl in Konsole
Delphi-Quellcode:
wie man am Ende sieht würde ich gern fragen ob derjenige erneut spielen möchte und wenn y (ja) dann soll er das erstmal schreiben und dann das ganze wiederholen.
program Ratespiel;
{$APPTYPE CONSOLE} uses SysUtils; var s : Integer; x : Integer; y : Integer; n : Integer; begin write('Bitte geben sie eine beliebige Zahl ein:'); randomize; // initialisiert den integrierten Zufallszahlengenerator mit einem zufälligen Wert x := Random(100) + 1; // repeat readln(s); // Lesen von Standardinput if s=x then write('Richtig, es ist:',x); if s<x then write('Falsch es war zu klein'); if s>x then write('Falsch es war zu gross'); until (s=x); write('Moechten Sie erneut spielen? (Y/N)'); read; if y then write('Ok, geben Sie erneut eine Zahl ein'); if n then write('schade!'); readln;readln; end. Hmm nur zeigt er es mir noch nicht korrekt an... |
AW: Zufällige Zahl in Konsole
Da wirst Du wohl noch ein 2. Schleifchen brauchen ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz