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

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

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

 
 Ответить  Открыть новую тему 
> прцедура
сообщение
Сообщение #1


Хакер
*

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

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


помогите пожалуйста в организации процедуры! я только новичек в Паскале

Вот описание

Составить программу для нахождения наименьшего общего кратного 3 натуральных чисел

Вот фрагмент программы, го она не работает! Даже есть скриншот!!
ПОМОГИГЕ, PLEASE

program LAb_14;
uses crt;
var a,b,c:0..9;
z:integer;
procedure vvod(a,b,c:byte);
Var i:byte;
begin
read(a,b,c);end;
procedure nok(a,b,c:byte;var z:integer);
var i,x:byte;
begin
if ((a div a)<>0)and((b div a)<>0)and((c div a)<>0) then x:=x+1;
x:=z;
end;
begin
clrscr;
writeln('Введите 3 натуральных числа');
vvod(a,b,c);
writeln('Наименьшее общее кратное 3 чисел=');
nok(a,b,c,z);
readln;
end.


Эскизы прикрепленных изображений
Прикрепленное изображение

Прикрепленные файлы
Прикрепленный файл  ZOHA14.PAS ( 413 байт ) Кол-во скачиваний: 273
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Человек
*****

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

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


как ты думаешь, что будет происходить в этой строчке
if ((a div a)<>0)and((b div a)<>0)and((c div a)<>0) then x:=x+1;
при а=0?

и вообще я не понял алгоритма... ИМХО, проще всего будет решить считая НОК(a, b, c) = НОК(НОК(a, b), c)

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Хакер
*

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

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


Цитата(compiler @ 4.01.2008 0:00) *

как ты думаешь, что будет происходить в этой строчке
if ((a div a)<>0)and((b div a)<>0)and((c div a)<>0) then x:=x+1;
при а=0?

и вообще я не понял алгоритма... ИМХО, проще всего будет решить считая НОК(a, b, c) = НОК(НОК(a, b), c)




А как это сделать ПОМОГИ пажалуйста фрагмент напиши
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Человек
*****

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

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


Цитата(zoha @ 3.01.2008 21:43) *
А как это сделать ПОМОГИ пажалуйста фрагмент напиши
а у гугла спросить слабо? вот например так пишут на сурсах в вики..
function GCD (A: integer;  B: integer): integer;
{Наибольший Общий Делитель}
begin
while (a <> 0) and (b <> 0) do
if a >= b then
a := a mod b
else
b := b mod a;
GCD := a + b; { один - ноль }
end;

function LCM (A: integer; B: integer): integer;
{Наименьшее Общее Кратное}
begin
LCM := a * b div GCD (a, b)
end;
если хочешь одной функцией, можеш посмотретьтут, только подправь возращение результата функцией...


Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Хакер
*

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

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


Цитата(compiler @ 4.01.2008 1:37) *

а у гугла спросить слабо? вот например так пишут на сурсах в вики..
function GCD (A: integer;  B: integer): integer;
{Наибольший Общий Делитель}
begin
while (a <> 0) and (b <> 0) do
if a >= b then
a := a mod b
else
b := b mod a;
GCD := a + b; { один - ноль }
end;

function LCM (A: integer; B: integer): integer;
{Наименьшее Общее Кратное}
begin
LCM := a * b div GCD (a, b)
end;
если хочешь одной функцией, можеш посмотретьтут, только подправь возращение результата функцией...



Можно ли организовать процедуру к этой задаче.
Буду благодарен за фрагмент порграаммы
Заранее спасибо!!!!! nea.gif nea.gif nea.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Человек
*****

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

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


Цитата(zoha @ 5.01.2008 9:13) *

Можно ли организовать процедуру к этой задаче.
Буду благодарен за фрагмент порграаммы
Заранее спасибо!!!!! nea.gif nea.gif nea.gif
а что я тебе написал? или тебе надо именно procedure?


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Хакер
*

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

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


Цитата(compiler @ 5.01.2008 14:24) *

а что я тебе написал? или тебе надо именно procedure?



Да именно procedura нужна ПОМОГИТЕ ПОЖАЛУЙСТА
nea.gif nea.gif nea.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Человек
*****

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

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


Цитата(zoha @ 6.01.2008 12:23) *
Да именно procedura нужна
можна написать так...
function GCD (A: integer;  B: integer): integer;
{Наибольший Общий Делитель}
begin
while (a <> 0) and (b <> 0) do
if a >= b then
a := a mod b
else
b := b mod a;
GCD := a + b; { один - ноль }
end;

function LCM (A: integer; B: integer): integer;
{Наименьшее Общее Кратное}
begin
LCM := a * b div GCD (a, b)
end;

procedure nod(const a, b, c:integer;var r:integer);
{твоя процедура) }
begin
r:=LCM(LCM(a, b), c);
end;

{пример вызова}
var a, b, c, res:integer;
begin
write('>>'); readln(a);
write('>>'); readln(b);
write('>>'); readln©;
NOD(a, b, c, res);
writeln('NOD=', res);
end.


Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Хакер
*

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

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


Цитата(compiler @ 6.01.2008 15:57) *
можна написать так...
мне нужно нок, ане нод
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

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

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


uses crt;
procedure nok(var a,b:integer);
var
m:integer;
begin
if a>b then m:=a
else m:=b;
while (m mod a<>0) or (m mod b <>0) do
inc(m);
b:=m
end;
var
a,b,c:integer;
begin
clrscr;
writeln(' Vvedite 3 chisla: ');
readln(a,b,c);
nok(a,b);
nok(b,c);
writeln(' NOK= ',c);
readkey
end.

Цитата(compiler @ 3.01.2008 22:00) *

проще всего будет решить считая НОК(a, b, c) = НОК(НОК(a, b), c)
А у меня он почему-то на это стал ругаться...

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата
А у меня он почему-то на это стал ругаться...
Потому, что Var-параметры используешь, компилятор ждет переменную, а вызов функции - это не переменная...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Человек
*****

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

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


Цитата(zoha @ 7.01.2008 13:55) *
мне нужно нок, ане нод
переименнуй)) лол...

оффтоп
да... кажется, я последнее время начал буковки путать)



--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Хакер
*

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

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


Все спасибо большое
THANK YOU!!!!!!!!!!!!!!!!!!!!!! good.gif good.gif good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 4:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name