AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Thema durchsuchen
Ansicht
Themen-Optionen

Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

Ein Thema von stina · begonnen am 13. Mär 2013 · letzter Beitrag vom 15. Mär 2013
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von stina
stina

Registriert seit: 6. Mär 2013
23 Beiträge
 
Delphi 2010 Professional
 
#11

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 07:55
Danke das ihr immer so schnell Antwortet. Ich werde mir das mit dem now mal ansehn.
Und das man immer nur eine frage stzellt wusste ich nich sorry .
Is mein vorletzter Praktikumstag deshalb soll das spiel/quiz besonders gut werden.
Und wie genau macht man das eigentlich den quelltext so reinkopieren?
einfach makieren und kopieren ja anscheinent nicht......
Ps ich bin erst 14 jahre alt also nicht wundern
Ann-Christin
Rechtschreibfehler hier gratis!!!!
Kommt und greift zu!
LG stina

Geändert von stina (14. Mär 2013 um 08:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:01
Danke das ihr immer so schnell Antwortet. Ich werde mir das mit dem now mal ansehn.
Und das man immer nur eine frage stzellt wusste icjh nich sorry .
Is mein vorletzter Praktikumstag deshalb soll das spiel/quiz besonders gut werden.
Und wie genau macht man das eigentlich den quelltext so reinkopieren?
einfach makieren und kopieren ja anscheinen nicht......
Ps ich bin erst 14 jahre alt also nicht wundern
Du bist ja noch neu hier, darum hast du (ungeachtet des Alters) noch "Welpenschutz"

Das Einfügen von Quelltext geht so:

Den Quelltext in die Zwischenablage, dann hier so einfügen
Code:
[DELPHI]
procedure Foo;
begin
  // sth
end;
[/DELPHI]
und das Ergebnis ist das
Delphi-Quellcode:
procedure Foo;
begin
  // sth
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von stina
stina

Registriert seit: 6. Mär 2013
23 Beiträge
 
Delphi 2010 Professional
 
#13

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:20
Delphi-Quellcode:
 program Project1;
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  name: string;
  Zahl1, Zahl2, Eingabe, AktuelleRunde: real;
  RichtigeAntw: integer = 0;
  AnzRunden: integer;

begin

  Writeln('Bitte geben sie ihren Namen ein');
  Readln(Name);
  Writeln('Hallo ' + Name + ' wie viele Runden willst du spielen?');
  Readln(AnzRunden);
  Writeln('Also spielen wir ' + FloatToStr(AnzRunden) + ' Runden zusammen');
  Readln;
  AktuelleRunde := 0;
  repeat // wiederhole solange.....
    AktuelleRunde := AktuelleRunde + 1;
    randomize;
    Zahl1 := Random(20) + 1;
    Zahl2 := Random(10) + 1;
    Writeln(FloatToStr(Zahl1) + '+' + FloatToStr(Zahl2));
    Readln(Eingabe);
    if Eingabe = Zahl1 + Zahl2 then
      Writeln('Das ist richtig')
    else
      Writeln('Das war falsch');
    Readln;
    if Eingabe = Zahl1 + Zahl2 then
      inc(RichtigeAntw);
  until AnzRunden = AktuelleRunde; // ...bis Aktuellle Runde=Anzahl Runde
  Writeln('Du hast ' + IntToStr(RichtigeAntw) + ' Aufgaben von ' + IntToStr
      (AnzRunden) + ' richtig gelöst');
  Readln;
  try
    { TODO -oEntwickler -cKonsole Main : Hier Code einfügen }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.
das is jetzt dann der quelltext des spiels. nich schön aber naja..... und danke für den "Welpenschutz"
Ann-Christin
Rechtschreibfehler hier gratis!!!!
Kommt und greift zu!
LG stina
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:29
Und das funktioniert? Da Du mit Fließkommazahlen (Real) rechnest, sollten eigentlich Rundungsungenauigkeiten auftreten, die einem den ganzen Spaß verderben, da Vergleiche nicht das Ergebnis liefern, das man erwartet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#15

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:30
@Jumpy

Einem Anfänger globale Variablen schmackhaft zu machen - weil man schnell eine Antwort geben will - und diesem Anfänger dann in ein paar Tagen/Wochen/Monaten/Beiträgen genau diese globale Variablen um die Ohren zu hauen "Nein, mach das nicht!", "Wie kann man nur!", "Das ist schlechter Stil!" (Beispiele gibt es im Forum zuhauf) ist ein wenig unfair, zumal ich mein Grundgerüst eben genau unter diesem Aspekt "Vermeidung globaler Variablen" gegeben habe.
Autsch, das hat jetzt wegetan.
War aber zugegebenermaßen auch berechtigt.

Die globale Variable bezog sich noch auf den Vorschlag in #2, bezogen auf dein Gerüst, wäre es eine weiter variable in der Prozedur Spiel. Hätte das vllt. anders beantwortet, wenn der tatsächliche Stand der Dinge bekannt gewesen wäre bzw. ich den TE besser eingeschätzt hätte. Da du ihr das detailiert aufgedröselte Grundgerüst an die Hand gegeben hast hast du das von Anfang an besser eingeschätzt. "Blutige Anfängerin" wäre da sicher ein Hinweis gewesen, wenn ich auch bei der Sprache nicht auf "nur" 14 getippt hätte, wenn ich mal davon ausgehe, was sonst häufig für Posts aus der jungen Generation kommen.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:37
Autsch, das hat jetzt wegetan.
War aber zugegebenermaßen auch berechtigt.
So feste wollte ich gar nicht ... zumal du auch nicht der Einzige gewesen bist
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von stina
stina

Registriert seit: 6. Mär 2013
23 Beiträge
 
Delphi 2010 Professional
 
#17

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:43
erstmal ja der quelltext funktioniert aber das hat mein chef mir eben auch gesagt
dann danke aber diese aussprache liegt an meiner erziehung da meine eltern auf ein gutes benehmen achten und auch darauf wert legen.
Ann-Christin
Rechtschreibfehler hier gratis!!!!
Kommt und greift zu!
LG stina
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:44
@stina

Hier mal mein Vorschlag, der auch sehr leicht um die noch gewünschten Features erweitert werden kann.
(Es geht nicht darum zu zeigen, was ich Tolles kann, sondern um die Erkenntnis, warum ein Programm durch Strukturierung leichter zu warten und erweitern ist).

BTW: Es fehlt noch ein wichtiger Link für das Verständnis hier

Delphi-Quellcode:
program RechenQuiz;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  SysUtils;

function FrageAnzahlRunden : Integer;
var
  LAntwort : string;
begin
  repeat

    Write( 'Wieviele Runden möchtest du spielen? ' );
    Readln( LAntwort );

  until TryStrToInt( LAntwort, Result );
  WriteLn;
end;

procedure ErstelleAdditionsAufgabe( out Frage, Loesung : string );
var
  LZahl1, LZahl2 : Integer;
begin
  LZahl1 := Random( 100 );
  LZahl2 := Random( 100 );
  Frage := Format( 'Wieviel ist %d + %d ?', [LZahl1, LZahl2] );
  Loesung := Format( '%d', [LZahl1 + LZahl2] );
end;

procedure ErstelleSubtraktionsAufgabe( out Frage, Loesung : string );
var
  LZahl1, LZahl2 : Integer;
begin
  LZahl1 := Random( 100 );
  LZahl2 := Random( LZahl1 );
  Frage := Format( 'Wieviel ist %d - %d ?', [LZahl1, LZahl2] );
  Loesung := Format( '%d', [LZahl1 - LZahl2] );
end;

procedure ErstelleMultiplikationsAufgabe( out Frage, Loesung : string );
var
  LZahl1, LZahl2 : Integer;
begin
  LZahl1 := Random( 10 );
  LZahl2 := Random( 10 );
  Frage := Format( 'Wieviel ist %d x %d ?', [LZahl1, LZahl2] );
  Loesung := Format( '%d', [LZahl1 * LZahl2] );
end;

procedure ErstelleAufgabe( out Frage, Loesung : string );
begin
  case Random( 3 ) of
    0 :
      ErstelleAdditionsAufgabe( Frage, Loesung );
    1 :
      ErstelleSubtraktionsAufgabe( Frage, Loesung );
    2 :
      ErstelleMultiplikationsAufgabe( Frage, Loesung );
  end;
end;

function LoeseAufgabe( const Frage, Loesung : string ) : Boolean;
var
  LAntwort : string;
begin
  Write( Frage, ' ' );
  Readln( LAntwort );

  Result := LAntwort = Loesung;

  if Result
  then
    WriteLn( 'Sehr gut, weiter so ...' )
  else
    WriteLn( 'Die richtige Lösung wäre ', Loesung, ' gewesen' );

  WriteLn;

end;

procedure ZeigeErgebnis( RichtigBeantwortet, AnzahlFragen : Integer );
begin
  WriteLn( 'Du hast ', RichtigBeantwortet, ' Fragen von ', AnzahlFragen, ' richtig beantwortet!' );
  WriteLn;
end;

procedure Burt_Dieser_Mensch_Will_Nicht_Spielen;
begin
  WriteLn( 'Schade, dass du nicht spielen möchtest!' );
  WriteLn;
end;

function NochmalSpielen : Boolean;
var
  LAntwort : string;
begin
  Write( 'Willst du nochmal spielen (J/N)? ' );
  Readln( LAntwort );
  WriteLn;

  Result := ( LAntwort = 'J' ) or ( LAntwort = 'j' );
end;

procedure Verabschieden;
begin
  WriteLn( 'Bis zum nächsten Mal :o)' );
end;

// Putting the pieces together :o)

procedure Spiel;
var
  LRundenAnzahl : Integer; // Anzahl der Runden
  LRunde : Integer; // aktuelle Runde
  LFrage : string; // aktuelle Frage
  LLoesung : string; // Lösung zur aktuellen Frage
  LRichtigZaehler : Integer; // Zähler der richtigen Antworten
begin
  LRichtigZaehler := 0;

  LRundenAnzahl := FrageAnzahlRunden;

  if LRundenAnzahl > 0
  then
    begin

      for LRunde := 1 to LRundenAnzahl do
        begin

          ErstelleAufgabe( LFrage, LLoesung );

          if LoeseAufgabe( LFrage, LLoesung )
          then
            Inc( LRichtigZaehler );

        end;

      ZeigeErgebnis( LRichtigZaehler, LRundenAnzahl );

    end
  else
    Burt_Dieser_Mensch_Will_Nicht_Spielen;
end;

begin
  try

    Randomize;

    repeat

      Spiel;

    until not NochmalSpielen;

    Verabschieden;

  except
    on E : Exception do
      WriteLn( E.ClassName, ': ', E.Message );
  end;

  Readln;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (14. Mär 2013 um 08:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:46
Man sieht ja, was es gebracht hat. Nach meiner Erfahrung bringt es einfach nix, einem Anfänger gleich ein ausgefuchstes Codegerüst zu liefern, das er aber nicht versteht oder das ihm zu kompliziert erscheint. Nichtsdestotrotz ist ein Hinweis natürlich angebracht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#20

AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.

  Alt 14. Mär 2013, 08:51
Man sieht ja, was es gebracht hat. Nach meiner Erfahrung bringt es einfach nix, einem Anfänger gleich ein ausgefuchstes Codegerüst zu liefern, das er aber nicht versteht oder das ihm zu kompliziert erscheint. Nichtsdestotrotz ist ein Hinweis natürlich angebracht.
Der Idealismus sollte als Letzter dran glauben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr.
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