IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Значение Mod, помогите разобраться
Вацура
сообщение 7.12.2006 19:36
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской
Реальное имя: Игорь

Репутация: -  0  +


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

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.
В чем дело? Я не так понял?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2006 19:45
Сообщение #2


Гость






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

Т.е. 11 div 3 = 3 (целых), а теперь этот результат снова умножь на 3... И какая разница между первоначальным числом и полученным произведением?
 К началу страницы 
+ Ответить 
Вацура
сообщение 7.12.2006 20:23
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской
Реальное имя: Игорь

Репутация: -  0  +


Разница получаеться 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)?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2006 20:31
Сообщение #4


Гость






WriteLn(p, '/3');
 К началу страницы 
+ Ответить 
Bokul
сообщение 8.12.2006 4:55
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Цитата
А как можно сделать чтобы ответ был в виде дроби(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.



--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Вацура
сообщение 8.12.2006 10:48
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской
Реальное имя: Игорь

Репутация: -  0  +


Спасибо за помошь! good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pola
сообщение 8.12.2006 10:55
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Женский

Репутация: -  0  +


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

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

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

p:=frac((a+b+c)/3)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
гость
сообщение 9.06.2011 17:13
Сообщение #8


Гость






mod выдает остаток т.е 11/3=3 целых т.е 9 а 11-9=2 из этого следует что это правильно!
 К началу страницы 
+ Ответить 
Krjuger
сообщение 9.06.2011 17:29
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.05.2024 15:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"