Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Division nur mit FOR Schlaufe (https://www.delphipraxis.net/130618-division-nur-mit-schlaufe.html)

Weazy 11. Mär 2009 10:35


Division nur mit FOR Schlaufe
 
Ich habe folgendes Problem: x mod y mit einem LOOP programm berechnen. Dazu habe ich mir überlegt das x mod y = x - (x div y) * y ist, wobei x div y nur ein ganzzahliges ergebniss liefert. So weit so gut, doch wie kann ich x div y nur mit for Schlaufen berechnen? Mit while ist das kein Problem, aber mit for?!?

mkinzler 11. Mär 2009 10:38

Re: Division nur mit FOR Schlaufe
 
Wie würde die Where-Bedingung aussehen?

nuclearping 11. Mär 2009 10:49

Re: Division nur mit FOR Schlaufe
 
for-Schleifen haben eine bestimmte Anzahl an Durchläufen (for i := 0 to 9 -> 10 Durchläufe). Repeat und While-Schleifen können unendlich laufen, bis eine Abbruchbedingung erreicht ist.

Weazy 11. Mär 2009 10:51

Re: Division nur mit FOR Schlaufe
 
und genau das ist ja das problem!

mkinzler 11. Mär 2009 10:53

Re: Division nur mit FOR Schlaufe
 
Du könntest in einem ersten Schritt sie Grenzen berechnen. Ich sehe aber den Sinn gerade nicht.

himitsu 11. Mär 2009 10:59

Re: Division nur mit FOR Schlaufe
 
jupp, du müßtest dann vorher berechnen wieviele Schleifen nötig sind.

notfalls könnte man zwar auch ein For-Schleifchen vorzeitig abbrechen (mit Break), aber da könnte man dich auch gleich eine passendere While/Repeat-Schleife nutzen?

Weazy 11. Mär 2009 11:00

Re: Division nur mit FOR Schlaufe
 
und in einem Loop programm kann man die schleife ja auch nicht abbrechen...

Weazy 11. Mär 2009 11:20

Re: Division nur mit FOR Schlaufe
 
vielleicht kann man ja davon ausgehen dass man die genaue anzahl loops nicht kennt, aber es ein maximum gibt oder so?!?

nuclearping 11. Mär 2009 11:47

Re: Division nur mit FOR Schlaufe
 
Was ist ein "LOOP-Programm"?

Delphi-Quellcode:
repeat
  if AbbruchBedingung then
    break;
until FALSE;

brechi 11. Mär 2009 11:48

Re: Division nur mit FOR Schlaufe
 
LOOP = Schleife: also warum keine while schleife
Ansonsten:

Delphi-Quellcode:
divx := 0;
modx := 0;
for i := 1 to x do
begin
  inc(modx);
  if modx = y then
  begin
    inc(dix);
    modx := 0;
  end;
end;
vill so?

Klaus01 11. Mär 2009 11:51

Re: Division nur mit FOR Schlaufe
 
Zitat:

Zitat von nuclearping
Was ist ein "LOOP-Programm"?

Das ist ein Loop-Programm.

Grüße
Klaus

guidok 11. Mär 2009 11:52

Re: Division nur mit FOR Schlaufe
 
Zitat:

Zitat von nuclearping
Was ist ein "LOOP-Programm"?

Das ist wohl zunächst mal die Kernfrage.

So etwas?

Da gibt es doch gar keine FOR Schleife, oder versteh ich das falsch (Nur kurz überflogen)?

Klaus01 11. Mär 2009 11:54

Re: Division nur mit FOR Schlaufe
 
Zitat:

Zitat von guidok

Da gibt es doch gar keine FOR Schleife, oder versteh ich das falsch (Nur kurz überflogen)?

In der Theoretischen Informatik gibt es nur Goto, while und loop als Schleifen/Wiederholungen.

Grüße
Klaus

Weazy 11. Mär 2009 11:55

Re: Division nur mit FOR Schlaufe
 
Also mit while geht es ja nicht, dann währe es ja ein while programm! Aber ich galube ich habe die Lösung:

r:=x mod y
==========

r:=0;
LOOP x DO //maximal x durchläufe, da 1<=y<=x
a:=0;
LOOP x-r-y DO a:=1 END // if x-r > y then ...
LOOP a DO r:=r+y END // ... r:=r+y
END
LOOP 1 DO r:=x-r END

Glaube so klappt es


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