М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
mxnty
mxnty
17.01.2022 04:34 •  Информатика

Напишите рекурсивную и не рекурсивную функции вычисляющие нод двух натуральных чисел с модифицированного алгоритма евклида

👇
Ответ:
yuakomlev
yuakomlev
17.01.2022
Рекурсивная:
function NOD(x,y:integer):integer;
begin
 if x<>0 then NOD:=NOD(y mod x,x) else NOD:=y;
end;
var a,b:integer;
begin
write('a='); readln(a);
write('b='); readln(b);
writeln('НОД=',NOD(a,b));
end.

Не рекурсивная:
function NOD(x,y:integer):integer;
begin
while (x<>0)and(y<>0) do
 if x>y then x:=x mod y else y:=y mod x;
NOD:=x+y;
end;
var a,b:integer;
begin
write('a='); readln(a);
write('b='); readln(b);
writeln('НОД=',NOD(a,b));
end.

Пример:
a=125
b=50
НОД=25
4,8(29 оценок)
Открыть все ответы
Ответ:
zarizatamara00
zarizatamara00
17.01.2022
Var a1, b1, c1, a2, b2, c2, p1, p2, s1, s2: real;
begin
  writeln('Введите строны первого треугольника: ');
  read(a1, b1, c1);
  writeln('Введите стороны второго треугольника: ');
  read(a2, b2, c2);
  p1 := (a1 + b1 + c1) / 2;
  p2 := (a2 + b2 + c2) / 2;
  s1 := sqrt(p1 * (p1 - a1) * (p1 - b1) * (p1 - c1));
  s2 := sqrt(p2 * (p2 - a2) * (p2 - b2) * (p2 - c2));
  if (s1 + 1e-3 > s2) and (s1 < s2 + 1e-3) then writeln('Равновеликие')
                                           else writeln('Неравновеликие');
end.
4,6(100 оценок)
Ответ:
gvg1971
gvg1971
17.01.2022
А)
var    s:string;    mas:array ['a'..'z'] of longint;{индексы элементов соответствуют латинице}    c:char;    i:longint; begin      read(s);      for c:='a' to 'z' do{заполнение нулями элементов массива, для запоминания количества элементов в латинице}          mas[c]:=0;      for i:=1 to ord(s[0]) do{пробегаем по всей строке ord(s[0]) это количесвто элементов в строке (только паскаль)}          mas[s[i]]:=mas[s[i]]+1;      for c:='a' to 'z' do{пробегаем по массиву значений и выводим только неповторяющиеся}          if(mas[c]=1) then                       writeln(c); end.
4,5(93 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ