| |
|
|
p.specht
| Der Größte gemeinsame Teiler (GGT) wird heute oft nach dem "modernen Euklidischen Algorithmus" bestimmt. Nachteil: Der dabei benutzte MOD-Befehl ist in gängigen Programmiersprachen unnötigerweise auf Integerzahlen beschränkt, sodaß der Standardalgorithmus nur Ganzzahhlen verarbeitet. Und da das Kleinste gemeinsame Vielfache (KGV) als a*b/GGT(a,b) berechnet wird, landet man dann ebenfalls immer bei Ganzzahlen. Eine weitere Einschränkung liegt in der solito Beschränkung auf zwei Parameter. Was aber, wenn der GGT bzw KGV von mehr als zwei Werten ermittelt werden soll? Dann hilft folgendes Progrämmchen, daß allerdings nicht gegen zu grande und zu kleine Werte gesichert ist. Im Normalfall klappt es aber.
Windowtitle "GGT und KGV von vier Float-Zahlen"
(DF) Demo-Freeware, ohne jede Gewähr, 2013-04 by P. Specht
Windowstyle 1048:Randomize:Font 2
Declare a!,b!,c!,d!
While 1
cls rnd(8^8)
print " Erste Zahl: ";:input a!
print " Zweite Zahl: ";:input b!
print " Dritte Zahl: ";:input c!
print " Vierte Zahl: ";:input d!
print "-----------------------------"
print "Ergebnis GGT = ";format$("%g",ggt(a!,ggt(b!,ggt(c!,d!))))
print " KGV = ";format$("%g",kgv(a!,kgv(b!,kgv(c!,d!))))
waitinput
endwhile
proc ggt :parameters a!,b!
declare h!:whilenot nearly(b!,0,11)
h!=a!-b!*int(a!/b!):a!=b!:b!=h!
endwhile :return a!
endproc
proc kgv :parameters a!,b!
return a!*b!/ggt(a!,b!)
endproc
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 09.05.2021 ▲ |
|
|
|