PASCAL - reszta z dzielenia (mod) liczby niecałkowite

0

Witam,
mam taki mały problem, pisze w pascalu program który ma podać wartość dzielenia, dzielenia całkowitego oraz reszty z dzielenia.Więc napisałem coś takiego (pseudokod):


writeln(x/y);
writeln(x div y);
writeln(x mod y);

Dla liczb całkowitych wszystko gra, ale wiemy, że funkcje mod i div obsługują tylko ty typy.
A więc jak zrobić, żeby program wypisał mi np. resztę z dzielenia dla x=1.5 y=0.314 (x mod y)?
Z góry dzięki za zainteresowanie się tematem

0
function fmod(x,y:real):real;
begin
  fmod:=x-y*trunc(x/y);
end;
0

Wielkie dzięki, możesz mi jeszcze powiedzieć jak wykonać dzielenie całkowite?

0

Zamiast / użyj div np:a := b div c;
Lub utwórz własną procedurę do dzielenia; co wolisz :]

0
Patryk27 napisał(a)

Zamiast / użyj div np:a := b div c;
Lub utwórz własną procedurę do dzielenia; co wolisz :]

No tak, ale funkcje div można stosować tylko dla liczb całkowitych.

0
Wynik := Round(A/B);

Tak?
BTW: div nie jest funkcją.

0

No dobra div to operator. Ale ty też jesteś w błędzie Round(x/y) nie wykona mi dzielenia całkowitego. Round zaokrągla liczbę "w dwie strony" - więc trzeba użyć tutaj trunc (który zaokrągla liczby w kierunku 0).
Przykład:

x:=9,8;
y:=2;
Round(x/y); // wypisze 4 (dobrze)
Trunc(x/y); // wypisze 5  (źle)

Ale wielkie dzięki za zainteresowanie:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0