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

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

👇
Ответ:
stepman228
stepman228
13.09.2022
PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018Внимание! Если программа не работает, обновите версию!

function НОД(a, b: integer): integer;

begin

 while b > 0 do

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

 Result := a

end;


begin

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

 НОД(НОД(a, b), c).Println

end.

78 294 5706 Замечание: числа должны быть неотрицательными
4,7(43 оценок)
Открыть все ответы
Ответ:
zar26
zar26
13.09.2022
Const
  n = 6; // число строк
  m = 6; // число столбцов

var
  a: array[1..n, 1..m] of integer;  // основной массив
  Rext: array[1..n, 1..2] of integer; // номера столбцов с min и max в строках
  Cext: array[1..2, 1..m] of integer; // номера строк с min и max в столбцах
  i, j, amin, amax: integer;

begin
  // заполняем массив А случайными числами
  Randomize;
  writeln('Исходный массив');
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := random(100) - 50;
      write(a[i, j]:4);
    end;
    writeln;
  end;
  // Заполняем массив Rext n x 2
  for i := 1 to n do
  begin
    amin := 10000;  //заведомо больше a[i,j]
    amax := -10000; //заведомо меньше a[i,j]
    for j := 1 to m do
    begin
      if amin > a[i, j] then begin
        amin := a[i, j]; Rext[i, 1] := j
      end;
      if amax < a[i, j] then begin
        amax := a[i, j]; Rext[i, 2] := j
      end
    end;
  end;
  // Заполняем массив Cext 2 x m
  for j := 1 to m do
  begin
    amin := 10000;  //заведомо больше a[i,j]
    amax := -10000; //заведомо меньше a[i,j]
    for i := 1 to n do
    begin
      if amin > a[i, j] then begin
        amin := a[i, j]; Cext[1, j] := i
      end;
      if amax < a[i, j] then begin
        amax := a[i, j]; Cext[2, j] := i
      end
    end
  end;
  writeln;
  // Ищем седловые точки
  writeln('*** Седловые точки ***');
  for i := 1 to n do
  begin
    j := Rext[i, 1];
    if Cext[2, j] = i then
      write('[', i, ',', j, '] ')
    else begin
      j := Rext[i, 2];
      if Cext[1, j] = i then
        write('[', i, ',', j, '] ')
    end
  end;
  writeln
end.

Тестовое решение
Исходный массив
  10  25  38  38
  45  32  42  36
 -39  -6   9  48
 -25 -37  40  30

*** Седловые точки ***
[2,2]
4,4(16 оценок)
Ответ:
verinikamusia
verinikamusia
13.09.2022
Const
  N = 5;
var
  i, j: integer;
  a: array[1..N, 1..N] of integer;
  min, max: array[1..N] of integer;
begin
  writeln('Исходный массив: ');
  for i := 1 to N do begin
    for j := 1 to N do begin
      a[i, j] := Random(10);
      write(a[i, j] : 3);
      if (j = 1) or (max[i] > a[i, j]) then max[i] := a[i, j];
      if (i = 1) or (min[j] < a[i, j]) then min[j] := a[i, j];
    end;
    writeln;
  end;
  writeln('Седловые точки: ');
  for i := 1 to N do
    for j := 1 to N do
      if max[i] = min[j] then writeln('[', i, '; ', j, ']');
end.
4,6(19 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ