Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Значение Mod

Автор: Вацура 7.12.2006 23:36

Задачка:
Вычислить дробную часть среднего арифметического трех заданных вещественных чисел.
Я делал так:


uses crt;
var a,b,c,p:integer;
begin clrscr;
write('‚ўҐ¤ЁвҐ 3 зЁб« :'); readln(a,b,c);
p:=(a+b+c) mod 3;
Writeln;
Writeln('„а®Ў­  з бвм б।­ҐЈ®  аЁд¬ҐвЁзҐбЄ®Ј® 3 зЁбҐ« а ў­ : ',p);
readln;
end.



В учебнике написано, что mod это остаток от деления с остатком. Тоесть, как я понял,
11 mod 3 должно равняться 6666... .
Но когда ввожу значения (4,3,4), ответ получаеться 2.
В чем дело? Я не так понял?

Автор: volvo 7.12.2006 23:45

Цитата
mod это остаток от деления с остатком
no1.gif Это остаток от деления нацело...

Т.е. 11 div 3 = 3 (целых), а теперь этот результат снова умножь на 3... И какая разница между первоначальным числом и полученным произведением?

Автор: Вацура 8.12.2006 0:23

Разница получаеться 2, спасибо.
С mod`ом чуток разобрался.

Получилось так, вроде правильно:



uses crt;
var a,b,c,p:integer;
begin clrscr;
write('‚ўҐ¤ЁвҐ 3 зЁб« :'); readln(a,b,c);
p:=(a+b+c) mod 3;
Writeln;
Writeln('„а®Ў­  з бвм б।­ҐЈ® ЈҐ®¬ҐваЁзҐбЄ®Ј® 3 зЁбҐ« а ў­ : ',p/3:3:3);
readln;
end.



А как можно сделать чтобы ответ был в виде дроби(1/3;2/3)?

Автор: volvo 8.12.2006 0:31

WriteLn(p, '/3');

Автор: Bokul 8.12.2006 8:55

Цитата
А как можно сделать чтобы ответ был в виде дроби(1/3;2/3)?

Цитата
WriteLn(p, '/3');

Я добавил бы еще проверку:

uses crt;
var a,b,c,p:integer;
begin
clrscr;
write('Enter a,b,c: ');
readln(a,b,c);
p:=(a+b+c) mod 3;
Writeln;
if p=0 then
writeln('Result: ',p)
else
writeln('Result: ',p, '/3');
readln;
end.


Автор: Вацура 8.12.2006 14:48

Спасибо за помошь! good.gif

Автор: Pola 8.12.2006 14:55

Цитата(Вацура @ 7.12.2006 19:36) *

Задачка:
Вычислить дробную часть среднего арифметического трех заданных вещественных чисел.

var a,b,c:real;
...

p:=frac((a+b+c)/3)

Автор: гость 9.06.2011 21:13

mod выдает остаток т.е 11/3=3 целых т.е 9 а 11-9=2 из этого следует что это правильно!

Автор: Krjuger 9.06.2011 21:29

Перед тем как писать вы бы посмотрели на дату,я думаю в 2011 году уже не актуально отвечать на вопрос 2006 года.