Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Einige Anfängerfragen (https://www.delphipraxis.net/91508-einige-anfaengerfragen.html)

Mexbuild 6. Mai 2007 11:23


Einige Anfängerfragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ihr Programmierer. Ich kann ein Problem nicht so gut erklären, aber ich versuche es mal.

Wir arbeiten derzeit in der Schule mit Delphi 7 und sollen ein Programm erstellen.
Das Layout sieht so aus:

siehe Anhang

In die oberen 3 Edit-Fenster soll man 3 Spünge in Metern eintragen. (Bsp: 1,30 ; 1,40 ; 1,20) Wenn man dann den Bitbn drückt, soll Delphi den höchsten Sprung erkennen und aus diesem die Note berechnen. (Das mit der Note ist jetzt noch nicht wichtig)

Die Variablen heißen:
sprung1, sprung2, sprung3, wsprung: real; (wsprung heißt Weitester Sprung)

Mit welchem Befehl kann ich Delphi so Programmieren, dass es wenn bespielsweise "sprung2" der höchste Wert ist, ihn erkennt und ihn zu "wsprung" umwandelt?

Grüße Max

[edit=Matze]Bild angehängt. Das nächste Mal bitte selbst erledigen und speziell, wenn man dich darum bittet. Mfg, Matze[/edit]

mkinzler 6. Mai 2007 11:27

Re: Einige Anfängerfragen
 
Max() aus der Unit Math liefert die den größten 2er Werte also
Delphi-Quellcode:
wsprung := max( max (sprung1,sprung2),sprung3);

Jelly 6. Mai 2007 11:30

Re: Einige Anfängerfragen
 
Hallo Max,

herzlich willkommen hier bei uns.

Eine Bitte: lege den Screenshot bitte als link ab. Denk an die armen Modemuser. Oder du lädst den Screenshot einfach als Anhang zu deinem Beitrag.

Das kannst du übrigens nachträglich noch machen durch die Editierfunktion deines Beitrages

Mexbuild 6. Mai 2007 11:32

Re: Einige Anfängerfragen
 
Danke für die schnelle Antwort, aber er sagt:
[Fehler] Unit1.pas(54): Undefinierter Bezeichner: 'max'

Was ist da denn falsch?

@ Jelly.
Ok, ich werd mir merken!

mkinzler 6. Mai 2007 11:34

Re: Einige Anfängerfragen
 
Hast du Math unter uses eingefügr?

Mexbuild 6. Mai 2007 11:37

Re: Einige Anfängerfragen
 
Achso, ne leider nicht. Bin auch nur ein Armer Amateur :lol:

DGL-luke 6. Mai 2007 11:40

Re: Einige Anfängerfragen
 
Hallo, die FUnktion MaxValue kann man direkt mit einem array ansteuern:

Delphi-Quellcode:
MaxValue([1,2,3,4]);

Mexbuild 6. Mai 2007 11:48

Re: Einige Anfängerfragen
 
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
sprung1:=strtofloat(edit1.text);
sprung2:=strtofloat(edit2.text);
sprung3:=strtofloat(edit3.text);
wsprung := max( max (sprung1,sprung2),sprung3);
weitestersprung.Caption:='Dein weitester Sprung war:'+inttostr(wsprung);
Jetzt sagt er mir:
Delphi-Quellcode:
[Fehler] Unit1.pas(55): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann

mkinzler 6. Mai 2007 11:49

Re: Einige Anfängerfragen
 
Delphi-Quellcode:
weitestersprung.Caption:='Dein weitester Sprung war:'+FloatToStr(wsprung);

Mexbuild 6. Mai 2007 11:53

Re: Einige Anfängerfragen
 
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
weitestersprung.Caption:='Dein weitester Sprung war:'+FloatToStr(wsprung);

Mist, ich habe vergessen zu sagen, dass meine Lehrerin noch irgendwas mit strtofloat meinte...
Ah:
Delphi-Quellcode:
sprung1:=strtofloat(edit1.text)

mkinzler 6. Mai 2007 11:55

Re: Einige Anfängerfragen
 
Auf den ersten Buchstaben eines Strings kannst du per Index zugreifen:
Delphi-Quellcode:
c := s[1];

Mexbuild 6. Mai 2007 12:00

Re: Einige Anfängerfragen
 
Ok, noch ne Frage:
Ich möchte das hinter dem Ergebnis noch Meter steht! Wie mache ich das?
Delphi-Quellcode:
weitestersprung.Caption:='Dein weitester Sprung war:'+FloatToStr(wsprung)'Meter';;
Wenn ich das oben hinzugefügte 'Meter' eingebe, dann sagt Delphi das ein Semikolen fehlen würde.

Phoenix 6. Mai 2007 12:01

Re: Einige Anfängerfragen
 
Wie wärs, wenn Du das "Meter" noch mit einem + an den Rest vom String anhängen würdest?

Mexbuild 6. Mai 2007 12:16

Re: Einige Anfängerfragen
 
Danke, jetzt gehts einwandwei. Ich liebe euch! :thumb:

DP-Maintenance 6. Mai 2007 12:25

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

Mexbuild 24. Mai 2007 21:25

Re: Einige Anfängerfragen
 
So ich habe da noch eine Frage. Wir sollen mit einfachen mitteln drei in Edit-Fenster eingegebene Zahlen ordnen und in der Reihenfolge anzeigen! Also das Programm ordnet die zahlen, und zeigt sie im label dann geordnet an.

Wie mache ich das am besten ohne viele Profisachen zu verwenden?

Dani 24. Mai 2007 22:47

Re: Einige Anfängerfragen
 
Code:
if x1 > x2 then tausche x1 und x2;
if x1 > x3 then tausche x1 und x3;
if x2 > x3 then tausche x2 und x3;
//jetzt gilt x1 >= x2 >= x3

Mexbuild 24. Mai 2007 22:59

Re: Einige Anfängerfragen
 
Das "tausche" im text ist berechtigt?

Dani 24. Mai 2007 23:04

Re: Einige Anfängerfragen
 
Nein, eigentlich müsste es heißen "vertausche die Inhalte von x1 und x2, sodass hinterher in x1 der Wert steht, der vorher in x2 stand, und in x2 der Wert steht, der vorher in x1 stand" ^^

Mexbuild 24. Mai 2007 23:08

Re: Einige Anfängerfragen
 
Ok habe ich, aber wie zeige ich es im label dann dann?
Also so etwa..
label1.caption:='Die Reihenfolge lautet: ' +inttostr( ?? )+',' + +inttostr( ?? )+',' + +inttostr( ?? );

Dani 24. Mai 2007 23:14

Re: Einige Anfängerfragen
 
label1.caption := 'Die Reihenfolge lautet: ' + inttostr(x1)+ ', ' + +inttostr(x2) + ', ' + inttostr(x3);

Mexbuild 24. Mai 2007 23:17

Re: Einige Anfängerfragen
 
Hmm genauso habe ich schon, aber wenn ich die zahlen in den drei fenstern so eingebe:
[ 4 ] [ 2 ] [ 1 ]

Dann steht im Label:
Die Reihenfolge... lautet: 2,2,2
Irgendwas ist falsch

Wichtig ist: Im Label soll dann es so stehen: 1.2.4 oder 23.45.106 oder 123.156.356

Dani 24. Mai 2007 23:35

Re: Einige Anfängerfragen
 
Bedenke: Variablen sind nur Behälter für irgendwelche Dinge.

http://delta-works.de/Tauschen.PNG

Mexbuild 24. Mai 2007 23:38

Re: Einige Anfängerfragen
 
Das war die Aufgabe:
Erstelle ein programm, das nach eingabe von 3 (eigentlich 4) Zahlen sie nach der größe geordnet in einem Label ausgibt!

Naja, dann habe ich halt die Hausaufgaben nicht. Egal vielleicht finde ich die Lösung anderswo!
Gruß Mexbuild!

DGL-luke 24. Mai 2007 23:41

Re: Einige Anfängerfragen
 
Delphi-Quellcode:
procedure vertausche(var a,b: Integer);
var
  x: Integer;
begin
  x := a;
  a := b;
  b := x;
end;
... diese prozedur integrierst du in dein programm. Dann solltest du den pseudocode wirklcih problemlos umsetzen können.

Dani 24. Mai 2007 23:44

Re: Einige Anfängerfragen
 
Warum gehst du nicht stattdessen morgen zu deinem Lehrer und sagst ihm, dass du das ganze Zeugs noch nicht so ganz verstanden hast? Wie kommt euer Lehrer überhaupt darauf, euch etwas programmieren zu lassen, ohne euch vorher die Grundlagen einer (imperativen) Programmiersprache zu erklären? :|

Mackhack 25. Mai 2007 05:25

Re: Einige Anfängerfragen
 
Zitat:

Zitat von Dani
Warum gehst du nicht stattdessen morgen zu deinem Lehrer und sagst ihm, dass du das ganze Zeugs noch nicht so ganz verstanden hast? Wie kommt euer Lehrer überhaupt darauf, euch etwas programmieren zu lassen, ohne euch vorher die Grundlagen einer (imperativen) Programmiersprache zu erklären? :|

Weil defakto die meisten Info Lehrer selbst ueberhaupt nicht programmieren koennen und das im besten falle allerhoechstens als Hobby betreiben. Man braucht halt des oefteren einen armen Info Lehrer weil Lehrermangel herrscht, dann springt einer halt ein!

Gabs bei uns auf der Schule nur zu genuege und wenn man sich hier so durchliest auch auf vielen anderen Schulen. Und in USA ist es glaub noch schlimmer wenn ich das so sagen darf! :(

Mexbuild 25. Mai 2007 21:50

Re: Einige Anfängerfragen
 
Zitat:

Zitat von Dani
Warum gehst du nicht stattdessen morgen zu deinem Lehrer und sagst ihm, dass du das ganze Zeugs noch nicht so ganz verstanden hast? Wie kommt euer Lehrer überhaupt darauf, euch etwas programmieren zu lassen, ohne euch vorher die Grundlagen einer (imperativen) Programmiersprache zu erklären? :|

Das ist bei uns Standard. Sie sagt uns was es so an Befehlen etc. gibt, aber nicht wie "man" es macht. Ok wir sind ja auch erst in der 9.Klasse, darum komme ich ja bei solchen ;:*?`*'= Kombinationen immer durcheinander! Außerdem lernen wir nich nach Büchern, sondern nach ihren selbst angefertigten Arbeitsblättern.

Mackhack 25. Mai 2007 22:14

Re: Einige Anfängerfragen
 
Zitat:

Zitat von Mexbuild
[...] Sie sagt uns was es so an Befehlen etc. gibt, aber nicht wie "man" es macht. [...]


Da hat sie ja nicht ganz unrecht euch das so machen zu lassen. Wenn man versucht sich selbst zu helfen bleibt viel mehr im Hirn gespeichert.

Bei uns auf der Uni ist es noch schlimmer. Da bekommst du rein gar nichts gesagt wie du die Hausarbeiten erledigen musst/sollst/darfst. Erst in der drauffolgenden Woche wird die Hausaufgabe besprochen und dann wird auch ueber das Material gesprochen ueber das du eine Woche zuvor zu Hause gegruebelt und geschrieben hast!

Obs immer der effektivste Weg ist mag dahingestellt sein und oftmals sehe ich auch keinen Nuzten dahinter, aber verschiedene Themen die mich selbst sehr interessieren lerne ich dabei sehr intensiv.

Mexbuild 29. Mai 2007 13:23

Re: Einige Anfängerfragen
 
Zitat:

Zitat von Mackhack
Zitat:

Zitat von Mexbuild
[...] Sie sagt uns was es so an Befehlen etc. gibt, aber nicht wie "man" es macht. [...]


Da hat sie ja nicht ganz unrecht euch das so machen zu lassen. Wenn man versucht sich selbst zu helfen bleibt viel mehr im Hirn gespeichert.

Bei uns auf der Uni ist es noch schlimmer. Da bekommst du rein gar nichts gesagt wie du die Hausarbeiten erledigen musst/sollst/darfst. Erst in der drauffolgenden Woche wird die Hausaufgabe besprochen und dann wird auch ueber das Material gesprochen ueber das du eine Woche zuvor zu Hause gegruebelt und geschrieben hast!

Obs immer der effektivste Weg ist mag dahingestellt sein und oftmals sehe ich auch keinen Nuzten dahinter, aber verschiedene Themen die mich selbst sehr interessieren lerne ich dabei sehr intensiv.

Das stimmt, da gebei ich dir recht. Aber wenn 95% der Klasse es nicht schaffen/verstehen/können können wir nichts dafür.

Also ich schreibe die einfache Methode unserer Lehrerin mit 3 Zahlen:

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
zahl1:=strtoint(edit1.Text);
zahl2:=strtoint(edit2.Text);
zahl3:=strtoint(edit3.Text);
if
zahl1>zahl2
then begin
gross:=zahl1
end
else begin
gross:=zahl2
end;
if
zahl3>gross
then begin
gross:=zahl3
end;
if
zahl1<zahl2
then begin
klein:=zahl1
end
else begin
klein:=zahl2
end;
if
zahl3<klein
then begin
klein:=zahl3
end;
if (zahl1 > klein) and (zahl1<gross) then begin mittel:=zahl1
end;
if (zahl2 > klein) and (zahl2<gross) then begin mittel:=zahl2
end;
if (zahl3 > klein) and (zahl3<gross) then begin mittel:=zahl3
end;
label1.caption:='Die Reihenfolge lautet:'+inttostr(klein)+', '+inttostr(mittel)+', '+inttostr(gross)
end;
Zu beachten:
Das Formular hat: 3 Edit Fenster (Wo ich die 3 Zahlen eingebe, 1 Label (Anzeige der Reihenfolge), 2 Buttons (Ende und Neue Reihenfolge) sowie 1 "bkok" Button für die o.g Prozedur.

Zur Frage: Wie kann ich das mit 4 Zahlen machen? (Var: zahl1, zahl2, zahl3, zahl4, gross, klein, mittelgross, mittelklein)

Relicted 29. Mai 2007 14:37

Re: Einige Anfängerfragen
 
huhu!

ich hätte da noch eine short version für werte < 10...

also funktioniert bis 9,99 ...
ist zwar nicht unbedingt sicher aber recht einfach :-) und wer springt schon über 10 meter ? ^^

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl : TStringList;
  gross : real;
  // klein... : real;
  // mittel... : real;
  // what ever : real;
begin
  // Speicher allozieren
  sl := TStringList.Create;

  // Hinzufügen der werte...
  sl.Add( edit1.Text );
  sl.Add( edit2.Text );
  sl.Add( edit3.Text );
  // beliebig viele werte hinzufügen ( im format "x,y" )

  // Sortieren...
  sl.Sorted := true;

  // Ausgabe...
  //{ Debug: } ListBox1.Items.AddStrings( sl );
  // Hier kannst du nun drauf zugreifen:
  // Beachte: der kleinste wert ist "sl[0]" der größte je nach Anzahl der
  // einträge dann Anz-1 also bei 3 einträgen sl[2]
  Label1.Caption := 'Der kürzeste Hüpfer war: '+ sl[0]+' Meter';
  Label2.Caption := 'Der längste Hüpfer war: '+ sl[2]+' Meter';
  // und wenn du das auch noch seperat speichern willst dann:
  gross := StrToFloat( sl[2] );

  // Speicher freigeben
  sl.Free;
end;

Phoenix 29. Mai 2007 14:43

Re: Einige Anfängerfragen
 
Bi der ganzen Diskussion über das Für und Wider der Lernmethode ist doch glatt das wichtigste wieder hinten runter gefallen: Unser Kodex ;-)

Zwei Bitten an den Threadersteller:
1.) Themen hier sollten einen aussagekräftigen Titel bekommen, der zur Fragestellung passt. Also hier z.B. "Zahlen sortieren und Ausgeben?"
2.) Es gilt: Eine Frage -> Ein Thread. Neue Frage -> Neuer Thread.

Also wäre es superklasse, wenn Du die Überschrift der Frage nochmal kurz anpackst (Edit auf den ersten Beitrag, dann lässt sich auch der titel noch ändern) und dann wenn noch neue Fragen auftreten, die dann in einem eigenen Thread postest. Du kannst selbstverständlich gerne einen Link auf den Beitrag hier setzten um klar zu machen, dass es sich um eine Folgefrage handelt ;-)

Mexbuild 29. Mai 2007 15:45

Re: Einige Anfängerfragen
 
Aso, ich möchte hier nur nicht wegen zig neuer Thread für jede kleinigkeit negativ auffallen!

Phoenix 29. Mai 2007 18:54

Re: Einige Anfängerfragen
 
Hehe, das ist kein Problem. Du fällst eher auf, wenn Du einen Thread mit x Fragen zupackst :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 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