![]() |
ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Habe ein Problem mit Delphi 3, wir haben im Unterricht die Aufgabe mit Delphi den ggT und KgV von 2 Zahlen auszurechnen.
Meine Form1 sieht so aus: ![]() Die Textboxen heißen von rechts nach links : Eingabe1, Eingabe2, ggTAusgabe und KgVAusgabe. Ich weiß leider absolut nicht wie ich mit programmieren anfangen soll, da ich mit Delphi noch nicht klarkomme. Ich würde mich über Hilfe sehr freuen. Mfg. Connor Temple |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Schreibe Dir mal auf wie das zu Fuss ausgerechnet wird
und setze es dann in Programmcode um. ![]() Euklidischer und steinscher Algorithmus Ähnliches wirst Du auch für den KGV finden. Dann solltest Du noch wissen wie man Zeichenketten (Strings) in Zahlen umwandelt und umgekehrt. Grüße Klaus |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Den KgV kannst du über das Produkt berechnen, denn es gilt:
z1 * z2 = ggT(z1, z2) * kgV(z1, z2) also: kgV(z1, z2) = z1 * z2 / ggT(z1, z2) Dazu musst du halt bloß vorher mit dem euklidischen Algorhythmus den ggT berechnen. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Mit sowas hab ich noch nie gerechnet, ich brauche echt den Programmcode um das nachzuvollziehen, was da gemacht wird.
Ich hab absolut keinen Plan von der Delphi-Sprache und was ich da eingeben soll, mein Lehrer verzweifelt an mir auch schon fast. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
hier ist der komplette Programm_code fü die Berechnung vom ggT
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} function ggt(a,b : integer) : integer; var t,r : integer; begin if a<b then begin t:=a; a:=b; b:=t; end; repeat r:= a mod b; a:=b; b:=r; until r=0; result:=a; end; procedure TForm1.Button1Click(Sender: TObject); var a,b,c : integer; begin a:=strtoint(edit1.text); b:=strtoint(edit2.text); c:=ggt(a,b); label1.caption:=inttostr(c); end; end. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
Wenn du das gestellte Problem mit deinen mathematischen Kenntnissen nicht lösen kannst, dann wirst du es auch nicht programmieren können, jedoch auch nicht verstehen, wenn du die fertig programmierte Lösung siehst. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Eigentlich war schon alles vorhanden, was benötigt wurde. Und im Wiki (
![]() auch noch fast die ganze Lösung:
Code:
Und den KgV hätte er sich damit auch ableiten können:
euclid(a,b)
begin wenn b=0 dann return a sonst return EUCLID(b, a mod b) end
Code:
kgv(a,b)
begin return ((a*b)/euclid(a,b)); end |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
Hab mir aus unserer Mediothek das Buch: Delphi 3 für Dummies ausgeliehen, ist das gut, um das Programm doch noch zu lernen? |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Ich denke, dieser Link müsste dir zum Durchstarten helfen:
![]() |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
Ich würde dem Fragenden das mathematische Hintergrundwissen keinesfalls absprechen, so etwas finde ich ungehörig. Ist zwar schon ein geraumes Weilchen her, aber ich kann mich sehr wohl noch daran erinnern, daß ich zwar die Fakultät mathematisch verinnerlichte, mich jedoch außerstande sah, ihre Berechnung in Basic umzusezten. Der Einstieg ist überall schwierig. Jeder, der sich hier zu überheben versucht, sollte nicht vergessen, daß er ebenfalls als Neugeborenes ohne jegliches erworbenes Wissen auf die Welt kam. Der Pseudocode und auch die an das Englisch angelehnten Sprachbefehle des Pascals bzw. Delphis sollten allerdings den Einstieg so einfach wie möglich machen. Die vielleicht ungewöhnlichste Begegnung der ersten Stunden ist womöglich die Wert- bzw. Ergibt-Sich-Aus-Zuweisung, die es in der Mathematik mangels Notwendigkeit so (also mit dieser Syntax) nicht gibt. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
Zitat:
![]() ![]() ich finde es durchaus nicht ungehörig sondern noch überaus freundlich, da es sich hier augenscheinlich um einen Zeitgenossen handelt, der es (angeblich) nicht schafft
Delphi-Quellcode:
zu schreiben
c := a + b;
Zitat:
Eine Frage a la Zitat:
Das hier riecht nach Zitat:
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Danke erstmal für die netten antworten, danke auch dir Sir Rufo, dass du mein Mathewissen infrage stellst xD
Ich kam mit VB damals auch kaum klar, aber immer noch besser als in Delphi und das ist erstmal ne riesige Umstellung für mich. Wir schreiben nächste Woche auch eine Klausur, und ich wollte mich so schnell wie mir möglich ist mit dem Programm vertraut machen. EDIT: Ich habs grad nochmal mit wolfgang_SVs Lösung probiert, ich bin kläglich gescheitert... Ich bin echt am verzweifeln, weil ichs nicht verstehe. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Ja was bringt Dich denn zur Verzweiflung?
Wir haben hier einen ganz konkreten Sourcecode, da kannst Du auch ganz konkret fragen. Gruß K-H Edith: Schön ist er ja nicht... |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
Bernhard PS: Es ist ein Nebenkriegsschauplatz, ob man sagt, Zuweisungen werden mit einem "=" behandelt, oder ob man sagt Zuweisungen sind Definitionen (was sie im eigentlichen Sinne ja auch sind) und man deshalb ein ":=" verwenden muss. PPS: Was ist an dem Code nicht zu verstehen? Man braucht 2 Edits, 1 Button und 1 Label. In die Edits kommen später die Zahlen rein für den GGT und auf dem Label erscheint die Ausgabe. Der Button ist dafür da, um dem Programm zu sagen, dass es erst bei einem Klick loslegen soll. Der Rest des Quellcodes kann man einfach 1:1 mittels Copy&Paste übernehmen. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Ich hab ja die Namen der Textboxen usw. geändert, ich kann also nicht ohne weiteres den Text kopieren.
Mittlerweile hab ich es sogar geschafft ein Programm zu schreiben, dass die 4 Grundrechenarten berechnet. Nur beim dividieren hab ich noch Probleme einen eigenen Fehlercode für eine Division durch null zu schreiben. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
ich sag da nichts mehr dazu....
weil irgendwann is mal schulz !!! |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
[OT]
Zitat:
Wenn, dann Zitat:
[/OT] |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Ihr scheint mir hier anscheinend auch nicht genug helfen zu wollen, bzw. zu können.
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Du hast praktisch das gesamte Programm mundgerecht geliefert bekommen. Was willst du noch? Wenn du was nicht verstehst, dann stelle entsprechend spezifische Fragen. Und wenn du nicht etwas Eigeninitiative zeigst, dann können wir auch nichts dafür.
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Ich verstehe das Programm Delphi im Ansatz schon nicht.
Wir haben von unserem Lehrer zwar Blätter bekommen, aber trotzdem funktioniert es nicht immer wie es geplant war. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Dann stell doch einfach konkrete Fragen, dann bekommst Du auch konkrete Antworten.
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Bist du wenigstens in der Lage, das ganze mit VB zu meistern? - Das wäre immerhin schon mal ein Anfang.
Bernhard |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Wahrscheinlich auch nicht mehr, da ich seit nem Jahr auchbe VB nichts mehr verstehe. Und weil VB nicht mehr auf meinem Pc ist.
Bei meinem Prgramm der vier Grundrechenarten, kommt immer eine Fehlermeldung, dass ich nicht durch null teilen kann, obwohl ich eingegeben hatte, was er stattdessen sagen soll. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Und wie? Etwas Code wäre schon hilfreich.
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Delphi-Quellcode:
Das wäre der gesamte Divisionscode.
procedure TForm1.TeilButtonClick(Sender: TObject);
var a,b,c :Real ; begin a := StrToFloat (Zahl1.Text); b := StrToFloat (Zahl2.Text); c:= a/b; Ausgabe.Caption := FloatToStr (c); If b = 0 then Ausgabe.Caption :='Man kann nicht durch null teilen.' end; |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Die Überprüfung auf 0 würde ich vor der Berechnung machen und diese nur wenn b<> 0 ist.
BTW. : Besser Double/Extended Typen verwenden |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Double/Extended?
Sowas hatten wir im Unterricht bisher noch nicht. Ich habs jetzt umgeschrieben, jetzt klappts. Vielen Dank, ich bin grad voll froh, dass endlich mal irgendwas klappt. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Wie bist du überhaupt auf die Idee gekommen diese Fließkomma Datentypen zu benutzten? Ich meine eine Primzahl mit Nachkommastellen ist mir noch nie untergekommen. Primzahlen sind immer ganz Zahlen, also Integers.
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
Entweder der Conner erstellt jetzt ein Inhaltsverzeichnis mit entsprechenden Links für diesen Thread oder er hält sich an die Forenregel "ein Thema pro Thread" |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Wenn man sich wundert, warum da irgendwas passiert, was man nicht erwartet, und man im Prinzip gar nicht versteht was da so passiert, dann hilft immer die Methode mit einem Ausdruck des Quelltextes, ein leeres Blatt Papier und evtl. für Notizen Block und Stift.
Versuchen wir mal das Beispiel mit dem Teilen. Da wird etwas komisches ausgegeben, was man so gar nicht vermutet hat. Also machen wir das mal als Trockenübung
Delphi-Quellcode:
Ok, merke ich mir (a ist 5)
a := StrToFloat (Zahl1.Text);
Delphi-Quellcode:
Ok, merke ich mir (b ist 0)
b := StrToFloat (Zahl2.Text);
Delphi-Quellcode:
Öh, das kann ich ja gar nicht berechnen "Hallo, kann mir mal jemand helfen?"
c:= a/b;
Na, dann höre ich mal auf, denn hier stimmt was nicht! Komischerweise kommt man zu dem gleichen Ergebnis wie das kompilierte Programm |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Tja ein Schreibtischtest ist halt ganz aus der Mode gekommen
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
:wall:
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Ich habs ja jetzt hingekriegt, aber jetzt ist das Problem, dass wenn ich durch eine Zahl die größer oder kleiner als null ist, teile, kommt das Ergebnis:
1,05940440336306E-22 Ich kann das irgendwie auch nicht beheben. Auch wenn ichs mit der Aufschreibmethode versuche, weiß ich trotzdem nicht wie ich das im Programm schreiben soll, dass der Pc das versteht. |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Wie gibst du die Zahl denn aus?
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Warum rechnest du nicht mit ganzen Zahlen, wie schon oben erwähnt?
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Zitat:
|
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
So, hab nochmal ne halbe Stunde dran rumprobiert, jetzt klappts endlich:
Delphi-Quellcode:
Das ist mein Code.
procedure TForm1.TeilButtonClick(Sender: TObject);
var a,b,c :Real ; begin a := StrToFloat (Zahl1.Text); b := StrToFloat (Zahl2.Text); If b <> 0 then c := a/b ; Ausgabe.Caption := FloatToStr (c); If b = 0 Then Ausgabe.Caption :='Man kann auch im Jahr 2010 immer noch nicht durch null teilen.'; end; |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Delphi-Quellcode:
In Deinem Beispiel gibst Du c aus das als Stackvariable nicht initialisiert ist, da kann sonstwas drin stehen, außerdem gibt es ja nicht anzuzeigen.
procedure TForm1.TeilButtonClick(Sender: TObject);
var a,b,c :Real ; begin a := StrToFloat (Zahl1.Text); b := StrToFloat (Zahl2.Text); If b <> 0 then begin c := a/b ; Ausgabe.Caption := FloatToStr (c); end else Ausgabe.Caption :='Man kann auch im Jahr 2010 immer noch nicht durch null teilen.'; end; |
AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung
Der Else-Zweig wird wohl nie erreicht, schau mal bei Luckies Homepage vorbei :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 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