![]() |
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] |
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);
|
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 |
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! |
Re: Einige Anfängerfragen
Hast du Math unter uses eingefügr?
|
Re: Einige Anfängerfragen
Achso, ne leider nicht. Bin auch nur ein Armer Amateur :lol:
|
Re: Einige Anfängerfragen
Hallo, die FUnktion MaxValue kann man direkt mit einem array ansteuern:
Delphi-Quellcode:
MaxValue([1,2,3,4]);
|
Re: Einige Anfängerfragen
Delphi-Quellcode:
Jetzt sagt er mir:
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);
Delphi-Quellcode:
[Fehler] Unit1.pas(55): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann
|
Re: Einige Anfängerfragen
Delphi-Quellcode:
weitestersprung.Caption:='Dein weitester Sprung war:'+FloatToStr(wsprung);
|
Re: Einige Anfängerfragen
Zitat:
Ah:
Delphi-Quellcode:
sprung1:=strtofloat(edit1.text)
|
Re: Einige Anfängerfragen
Auf den ersten Buchstaben eines Strings kannst du per Index zugreifen:
Delphi-Quellcode:
c := s[1];
|
Re: Einige Anfängerfragen
Ok, noch ne Frage:
Ich möchte das hinter dem Ergebnis noch Meter steht! Wie mache ich das?
Delphi-Quellcode:
Wenn ich das oben hinzugefügte 'Meter' eingebe, dann sagt Delphi das ein Semikolen fehlen würde.
weitestersprung.Caption:='Dein weitester Sprung war:'+FloatToStr(wsprung)'Meter';;
|
Re: Einige Anfängerfragen
Wie wärs, wenn Du das "Meter" noch mit einem + an den Rest vom String anhängen würdest?
|
Re: Einige Anfängerfragen
Danke, jetzt gehts einwandwei. Ich liebe euch! :thumb:
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
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? |
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 |
Re: Einige Anfängerfragen
Das "tausche" im text ist berechtigt?
|
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" ^^
|
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( ?? ); |
Re: Einige Anfängerfragen
label1.caption := 'Die Reihenfolge lautet: ' + inttostr(x1)+ ', ' + +inttostr(x2) + ', ' + inttostr(x3);
|
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 |
Re: Einige Anfängerfragen
|
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! |
Re: Einige Anfängerfragen
Delphi-Quellcode:
... diese prozedur integrierst du in dein programm. Dann solltest du den pseudocode wirklcih problemlos umsetzen können.
procedure vertausche(var a,b: Integer);
var x: Integer; begin x := a; a := b; b := x; end; |
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? :|
|
Re: Einige Anfängerfragen
Zitat:
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! :( |
Re: Einige Anfängerfragen
Zitat:
|
Re: Einige Anfängerfragen
Zitat:
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. |
Re: Einige Anfängerfragen
Zitat:
Also ich schreibe die einfache Methode unserer Lehrerin mit 3 Zahlen:
Delphi-Quellcode:
Zu beachten:
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; 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) |
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; |
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 ;-) |
Re: Einige Anfängerfragen
Aso, ich möchte hier nur nicht wegen zig neuer Thread für jede kleinigkeit negativ auffallen!
|
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