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

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

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

 
 Ответить  Открыть новую тему 
> Ошибка в программе., Нужна ваша помощь.
Casual
сообщение 21.04.2008 16:14
Сообщение #1


Новичок
*

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

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


Задача: найти наибольший общий делитель целых положительных чисел a, b, c.
p.s. знаю, что решалось, но все же нужна помощь. Работать в Паскале только начал.




Program NOD;
var a, b, c:integer;
begin
writeln('vvedite 3 chisla');
readln(a, b, c);
repeat if a>b then a:=a mod b
else b:=b mod a
until (a=0) or (b=0);
repeat if c>a then c:=c mod a
until (c=0) or (a=0);
repeat if c>b then c:=c mod b
until (c=0) or (b=0);
writeln('NOD=', a+b+c);
readln;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
renesko1
сообщение 21.04.2008 16:33
Сообщение #2


поиск
****

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

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


Если хочешь то можешь организовать , наверное, цикл от самого маленьког числа вниз и прверять
подходит ли счетчик на роль делителя или нет.(по остаткам)
Конечно если не хочешь use поиском.
ps
Скорее всего не прокатит но все же.

Сообщение отредактировано: renesko1 - 21.04.2008 16:37


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 21.04.2008 18:28
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


смысл задачи в том, чтобы написать функцию для нахождения НОД 2-х чисел (например так) и использовать ее для 3-х


writeln(GCD(GCD(a, b), c));



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Casual
сообщение 23.04.2008 5:20
Сообщение #4


Новичок
*

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

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


Кого не затруднит, напишите, полалуйста, как это будет выглядеть?
Вот программа для 2-х чисел:

Program NOD;
var a, b:integer;
begin
writeln('vvedite 2 chisla');
readln(a, b);
repeat if a>b then a:=a mod b
else b:=b mod a
until (a=0) or (b=0);
writeln('NOD=', a+b);
readln;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bard
сообщение 23.04.2008 10:19
Сообщение #5


Учиться, учиться еще раз учиться
***

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

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


Цитата
Кого не затруднит, напишите, полалуйста, как это будет выглядеть?

Mеня smile.gif ... Вот тебе программа вычисляющая НОД 3-х чисел lol.gif ...
Program NOD;
var a, b, c:integer;

procedure gcd(var x,y:integer);
begin
repeat
if x>y then x:=x mod y
else y:=y mod x
until (x=0) or (y=0);
end;

begin
writeln('vvedite 3 chisla'); readln(a, b, c);
gcd(a,b); a:=a+b; b:=c; gcd(a,b);
writeln('NOD=', a+b);
readln;
end.



--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Casual
сообщение 23.04.2008 14:23
Сообщение #6


Новичок
*

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

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


Ну вот, смогли же! smile.gif Чем являются x и y в процедуре?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 23.04.2008 14:41
Сообщение #7


Гость






Переменные на локальном уровне..в этом смысл процедуры
 К началу страницы 
+ Ответить 
volvo
сообщение 23.04.2008 14:52
Сообщение #8


Гость






Цитата
Переменные на локальном уровне
Может, все-таки параметры-переменные (они же Var-параметры)? Кстати, а в чем смысл:
1) описания a, b, c перед процедурой;
2) использования процедур вместо функций
?

Это чтоб больше написать, и программа солиднее казалась? Вообще-то с функцией (ссылка в третьем посте) решение - в одну строку (решение приведено там же, в посте №3)...
 К началу страницы 
+ Ответить 

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

 



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