Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Fehler beim KGV berechnen (https://www.delphipraxis.net/113292-fehler-beim-kgv-berechnen.html)

ScrollbarKopf 5. Mai 2008 19:30


Fehler beim KGV berechnen
 
Hallo versuche mittels Delphi Programm das kleinste gemeinsame vielfache 2er zahlen auszurechen aber mein computer hängt sich beim starten des programms auf könnt ihr den quellcode bitte mal überprüfen und mir bitte sagen wie ich mache das die variablen x und x1 nicht die positionszahlen von den scrollbars sind sondern zufallszahlen sind.
Danke im voraus

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ScrollBar1: TScrollBar;
    ScrollBar2: TScrollBar;
    procedure Button1Click(Sender: TObject);
    procedure ScrollBar1Change(Sender: TObject);
    procedure ScrollBar2Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function kgv(z1,z2 : integer) : integer;
var
i, sum : integer;
ergebnis: boolean;
begin
i := 1;
repeat
ergebnis:= false;
sum:= z1*1;
i:=i+1;
if(sum mod z2 = 0 ) then
ergebnis := true;
until ergebnis = true;
result := sum;
end;

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
label1.caption:= inttostr (scrollbar1.position);
end;

procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
label2.caption:= inttostr (scrollbar2.position);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x,x1,erg :integer;
begin
x := scrollbar1.position;
x1:= scrollbar2.position;
erg:=kgv (x,x1);
label3.caption:= inttostr(erg);

end;



end.
[edit=SirThornberry]Titel geändert - Mfg, SirThornberry[/edit]

Matze 5. Mai 2008 19:33

Re: Bitte schnell überprüfen
 
Hallo,

gib dem Thema bitte einen aussagekräftigen Titel, damit man es über die Suchfunktion leicht wieder finden kann.

Zitat:

Zitat von ScrollbarKopf
und mir bitte sagen wie ich mache das die variablen x und x1 nicht die positionszahlen von den scrollbars sind sondern zufallszahlen sind.

Siehe dir hierzu Delphi-Referenz durchsuchenRandomize (nur einmal aufrufen) und Delphi-Referenz durchsuchenRandom (Generierung der Pseudo-Zufallszahlen) an.

Grüße

Der.Kaktus 5. Mai 2008 19:33

Re: Bitte schnell überprüfen
 
Hallo, auf Grund Deines Threadtitels denke ich wohl richtig, dies ist eine Hausaufgabe die Du morgen abgeben musst?...no comment

ScrollbarKopf 5. Mai 2008 19:36

Re: Bitte schnell überprüfen
 
Nein das ist keine aufgabe
Ich möchte nur schnell wissen was im code falsch ist das ich gleich weiter arbeiten kann

bluesbear 5. Mai 2008 19:40

Re: Bitte schnell überprüfen
 
sum:= z1*1; <- ???

Der.Kaktus 5. Mai 2008 19:42

Re: Bitte schnell überprüfen
 
Du musst doch die Scrollbars irgenwann mal initialisieren? Was sollen die Scrollbars tun?...Es bietet sich an, im Formshow bzw. Formcreate Ereignis, diese Werte zu definieren.

ScrollbarKopf 5. Mai 2008 19:52

Re: Bitte schnell überprüfen
 
die scrollbar soll gar ncihts tun nur die position des tabs soll im label angezeigt werden und wie kann cih die zahlen der scrollabr durch zufalsszahlen ersetzen

bluesbear 5. Mai 2008 20:00

Re: Bitte schnell überprüfen
 
Der.Kaktus: TScrollBar hat Defaultwerte 0..100, also das klappt schon. Desweiteren: Da fällt mir nix mehr zu ein <g>.

ScrollbarKopf 5. Mai 2008 20:03

Re: Bitte schnell überprüfen
 
Der computer hängt sich nur bei unterschiedlichen zahlen auf und nicht bei gleichen zahlen

grenzgaenger 5. Mai 2008 20:07

Re: Bitte schnell überprüfen
 
prima :-D wenn es keine hausaufgabe ist :-D . dann kannst du ja auf biblioteksfunktionen zurückgreifen welche die standardfunktionalität zur verfügung stellen :-) . ansonsten einfach mal die SuFu verweden, das thema kgt/ggv kommt alle paar tage dran ... 8)

'n noch tip, rück deinen code mal ordentlich ein. wenn du willst dass dir jemand hilft, sollte der code zumindest einigermassen lesbar sein :)

grüsse GG

tomsel 5. Mai 2008 20:09

Re: Bitte schnell überprüfen
 
Endlosschleife!

Die Funktion KGV ist irgendwie eigenartig. Ich wette, das Programm hängt sich genau dann weg, wenn z1 nicht durch z2 teilbar ist?

ScrollbarKopf 5. Mai 2008 20:14

Re: Bitte schnell überprüfen
 
Ja und wie behebe ich das proplem

ULIK 5. Mai 2008 20:15

Re: Bitte schnell überprüfen
 
Debug doch mal die Werte von sum.

Grüße,
Uli

ScrollbarKopf 5. Mai 2008 20:21

Re: Bitte schnell überprüfen
 
habe den fehler sum:= z1*i nciht mal 1

himitsu 5. Mai 2008 20:28

Re: Bitte schnell überprüfen
 
könne man den Titel denn nicht doch "aussagekräftiger" anlegen?

Fussball-Robby 5. Mai 2008 20:30

Re: Bitte schnell überprüfen
 
Zitat:

Zitat von ScrollbarKopf
habe den fehler sum:= z1*i nciht mal 1

Darauf wurde in #5 schon hingewiesen :?

ScrollbarKopf 5. Mai 2008 20:32

Re: Bitte schnell überprüfen
 
Hab es aber nicht überriesen :wall: :wall: :wall: :wall:

bluesbear 5. Mai 2008 20:36

Re: Bitte schnell überprüfen
 
Zitat:

Zitat von himitsu
könne man den Titel denn nicht doch "aussagekräftiger" anlegen?

[OT] Ich finde, der passt perfekt :mrgreen: [/OT]

ScrollbarKopf 5. Mai 2008 20:47

Re: Bitte schnell überprüfen
 
Noch ne frage habe hier nen code fürn ggt der mir aber nach kgt vorkommt weiß nicht was von den beiden er jetzt si bitte um aussagen

Delphi-Quellcode:
function ggT(a, b : Integer) : Integer;
VAR r : integer;
begin
  if b = 0 then
  begin
    result := 0;
    exit;
  end;

  while b > 0 do
  begin
    r := a mod b;
    a := b;
    b := r;
  end;

  result := a;
end;

ULIK 5. Mai 2008 21:00

Re: Bitte schnell überprüfen
 
So, und das Ganze nun bitte in verständlichem Deutsch! Soviel Zeit muß sein.

Gruß, Uli

xZise 5. Mai 2008 21:01

Re: Bitte schnell überprüfen
 
Also ich glaube, er funktioniert.
Ich habe es getestet mit 45 & 21 und der ggT müsste 3 sein, was er nachher auch ist.

und kgT ist sinnlos, weil der immer 1 ist ;)

MfG
xZise

SirThornberry 5. Mai 2008 21:04

Re: Bitte schnell überprüfen
 
Da du nicht bereit warst den Titel zu ändern und somit die Forenregeln zu befolgen denen du bei der Registrierung zugestimmt hast mache ich hier erstmal dicht. Teile mir bitte einen aussagekräftigen Titel mit. Diesen werde ich dann ändern und dann kann es weiter gehen. Ganze ohne Regeln geht es in einem Forum nicht wenn das ganze ein gewisses Niveau erfüllen und übersichtlich bleiben soll.


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