Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Zufällige Zahl in Konsole (https://www.delphipraxis.net/166629-zufaellige-zahl-konsole.html)

schmitty89 22. Feb 2012 12:20

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?

DeddyH 22. Feb 2012 12:21

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

schmitty89 22. Feb 2012 12:31

AW: Zufällige Zahl in Konsole
 
Delphi-Quellcode:
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.
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?

haentschman 22. Feb 2012 12:39

AW: Zufällige Zahl in Konsole
 
Delphi-Quellcode:
if s<x then write('Falsch es war zu klein');
if s>x then write('Falsch es war zu groß');
:zwinker: Vergleich auf größer oder kleiner. In deiner Variante würdest du bei Übereinstimmung immer zu groß angezeigt bekommen.

Nur so nebenbei... warum auf einmal Konsole ? Ist ja das gleiche Programm wie vorhin. Zu Übungszwecken ?

DeddyH 22. Feb 2012 12:42

AW: Zufällige Zahl in Konsole
 
Zitat:

Delphi-Quellcode:
if s= <x

Was soll das denn heißen? In einer Konsolenanwedung ist die Vergleichssyntax doch auch nicht anders als in einem VCL-Programm.

[edit] Und wo ist das Randomize? [/edit]

schmitty89 22. Feb 2012 12:51

AW: Zufällige Zahl in Konsole
 
Delphi-Quellcode:
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.
jetzt soll man nur noch weitere versuche haben, bis man es richtig hat...irgendeine hübsche schleife?!

Klaus01 22. Feb 2012 12:56

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

s.h.a.r.k 22. Feb 2012 12:56

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.

schmitty89 22. Feb 2012 13:25

AW: Zufällige Zahl in Konsole
 
Hatte es auch grade so, vielen Dank! :)

Läuftdoch so langsam :D

s.h.a.r.k 22. Feb 2012 13:33

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz