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

Составьте программу нахождения наибольшего общего делителя трёх чисел,используя следующую формулу: нод(a,b,c)=нод(нод(a,b),c). нужно на паскале

👇
Ответ:
lamsjsj
lamsjsj
10.06.2020

Объявляем функцию gcd, принимающую два целочисленных параметра и возвращающую их наибольший общий делитель. Здесь это вычисляется при алгоритма Евклида.

Затем для удобства определяем ещё одну функцию gcd3, которая принимает уже три аргумента и, используя указанную в условии формулу и описанную выше функцию gcd, вычисляет НОД от трёх чисел.

В основной части программы просто три числа считываются с клавиатуры и выводится ответ.

Код (PascalABC.NET v3.6.2316):

function gcd(a, b: integer): integer;

begin

 while a * b <> 0 do

   (a, b) := (b, a mod b);

 Result := a + b

end;

function gcd3(a, b, c: integer) := gcd(gcd(a, b), c);

begin

 var (a, b, c) := ReadInteger3;

 print(gcd3(a, b, c))

end.

Пример ввода:

10 40 20

Пример вывода:

10

4,8(91 оценок)
Открыть все ответы
Ответ:
Кирилл42352
Кирилл42352
10.06.2020
Const n = 5;
  m = 5;
var a:array[1..n,1..m] of integer;
i,j,s:integer;
begin
//Для теста заполним массив сл.числами
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=random(21)-10; write(a[i,j]:4);
    end;
    writeln;writeln;
  end;
  //сумма всех элементов массива
  for i:=1 to n do
    for j:=1 to m do s:=s+a[i,j];
writeln('сумма всех элементов массива: ',s);
//сумма каждой строки
for i:=1 to n do begin
    s:=0;
    for j:=1 to m do begin
      s:=s+a[i,j];
    end;
    writeln ('Строка: ',i,' сумма:',s);
  end;   
end.
4,7(75 оценок)
Ответ:
nataliinfp0co9o
nataliinfp0co9o
10.06.2020
Если считать отрицательные трехзначные, то сумма таких чисел в диапазонах от -999 до -100 и от 100 до 999 будет равна 0. Для только положительных:

//c циклом for
var s,i:integer;
begin
  for i:=100 to 999 do
    if i mod 77 = 0 then s:=s+i;
  writeln('Сумма трехзначных кратных 77: ',s);
end.

Тестовое решение:
Сумма трехзначных кратных 77: 5929

// с циклом while
var s,i:integer;
begin
  i:=100;
  while i<=999 do begin
    if i mod 77 = 0 then s:=s+i;
    i:=i+1;
  end;
  writeln('Сумма трехзначных кратных 77: ',s);
end.
4,5(22 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ