Статистика
Всего в нашей базе более 4 327 664 вопросов и 6 445 979 ответов!

Граждане информатики, прошу помощи. Pascal ABC.

5-9 класс

Что не так в коде? Надо найти НОК трёх чисел через алгоритм Евклида.
Тест: числа 4,6,18, ответ 36.

Код:

Program No4;
var a,b,c:integer;

{----------АЛГОРИТМ ЕВКЛИДА----------}
function evc (a,b:integer):integer;
var m,m1,m2,z:integer;
begin
z:=0;
//определение большего числа
if a=b then evc:=a else
begin
if a>b then

begin
///m1 - большее число из двух, m2 - меньшее.
m1:=a;
m2:=b;
end

else

begin
m1:=b;
m2:=a;
end;
//определение большего числа - готово
repeat
m:=m1 mod m2; ///Большее число делим на меньшее;
if m=0 then z:=m2 ///Если делится - то НОД есть меньшее число;
else begin ///Иначе меняем большее на меньшее,а меньшее - на остаток от деления (по Евклиду).
m1:=m2;
m2:=m;
end
until z<>0;///Повторяем, пока НОД не появится.

evc:=z;
end;
end;
{---------/АЛГОРИТМ ЕВКЛИДА----------}


{----------АЛГОРИТМ НОК----------}
function znam (a, b, c:integer):integer;
var Nabc,Nab:integer;
begin
Nab:=evc (a,b); ///НОД (а.b) - это результат алгоритма Евклида для чисел А и B:
Nabc:=evc (c, Nab); ///НОД (С,Nab) - это результат алгоритма Евклида для чисел С и Nab:
znam:=a*b*c div Nabc; ///НОК = ПРОИЗВ. ЧИСЕЛ / НОД
end;
{----------АЛГОРИТМ НОК----------}

begin
readln (a,b,c);
writeln (znam (a,b,c));
end.

Заранее спасибо.

Nxt1234alex 24 апр. 2015 г., 14:35:04 (9 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
вввера
24 апр. 2015 г., 16:52:50 (9 лет назад)

найти ошибку не могу но я заметил что твоя программа работает правильно если вводить 1   2   3; 3   4    5; 5   6   7 и тд.если вводить 2  3  4 ; 4  5  6 и тд то ответ будет больше реального в 2 раза и тд и тп. Вроде в программе всё правильно ошибка скорее всего находится в вычислении НОК а в этом увы мой мозг уже те не помошник но надеюсь моя находка вам чем-нибудь да поможет.

+ 0 -
CupcakeN
24 апр. 2015 г., 19:40:12 (9 лет назад)

что проверка пишет?

+ 0 -
Antique
24 апр. 2015 г., 20:16:51 (9 лет назад)

у тебя что-то не так с проверкой

+ 0 -
Ottomi
24 апр. 2015 г., 21:55:52 (9 лет назад)

при 3 3 3 он пишет 9

+ 0 -
камаз1997
25 апр. 2015 г., 0:24:43 (9 лет назад)

ты уверен что правильно написал алгоритм(просто я сам его не шибко знаю

+ 0 -
фартем
25 апр. 2015 г., 2:50:12 (9 лет назад)

Случаи с одинаковыми числами я не разбирал, это самое простое. Ошибка была во втором алгоритме, я уже разобрался и справил.Спасибо за желание помочь :)

Ответить

Читайте также

Составить программу, которая выводит на экран в обратном порядке нечетные числа от 29 до 1 в Pascal ABC.

Составить программу,которая выводит на экран сумму нечетных чисел от 1 до 30 в Pascal ABC.


1) дано четырёхзначное число. вывести максимальную и минимальную цифру. pascal abc

2) дано четырёхзначное число. Что больше: произведение цифр числа или их утроенная сумма. pascal ABC

PASCAL-ABC.NET Здравствуйте,прошу помочь с не очень сложной задачкой.

Условия:
Заполнить двумерный массив A случайными числами и построить одномерный массив B,в каждый елемент которого записано:
число елементов каждого стольбца двухмерного массива,значения которых равны заданному значению.
Вопросы вот где " и построить одномерный массив B,в каждый елемент которого записано:
число елементов каждого стольбца двухмерного массива,значения которых равны заданному значению." как это построить? У меня в голове нету абсолютно никаких мыслей.Очень прошу помочь.



Вы находитесь на странице вопроса "Граждане информатики, прошу помощи. Pascal ABC.", категории "информатика". Данный вопрос относится к разделу "5-9" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.