Die Division.

Folgende Funktion dividiert zwei Zeichenfolgen und gibt den ganzzahligen Teil vom Ergebnis auch in einem String zurück. Sie entspricht damit dem Pascal-Operator div. Meine Funktion benutzt nicht die schriftliche Division, sondern addiert bei jedem Schleifendurchlauf den Divisor zur Variable i, bis i tex2html_wrap_inline118 divident. Die Variable temp wird bei jedem Schleifendurchlauf hochgezählt.

function division(divident, divisor : zahl) : zahl;
var
  i, temp : zahl;
begin
  ohnenullen(divident);
  ohnenullen(divisor);
  i := '0';
  temp := '0';
  repeat
    i := addition(i, divisor);
    temp := addition(temp, '1');
  until (i = divident) or groesser(i, divident);
  if i = divident then
    division := temp
  else
    division := subtraktion(temp, '1');
end;

Dementsprechend habe ich auch eine Funktion rest geschrieben, die den Rest einer Division zurückgibt. Sie entspricht dem TP-Operator mod.

function rest(divident, divisor : zahl) : zahl;
var
  i : zahl;
begin
  ohnenullen(divident);
  ohnenullen(dvisor);
  i := '0';
  repeat
    i := addition(i, divisor);
  until (i = divident) or groesser(i, divident);
  if groesser(i, divident) then
    rest := subtraktion(divident, subtraktion(i, divisor))
  else
    rest := '0';
end;


[Next] [Up] [Previous] [Contents]
Next: Weitere Prozeduren und Funktionen. Up: Die Programmierung. Previous: Die Multiplikation.

Ansgar Jonietz