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

Проанализируйте приведенную ниже процедуру вывода общего решения. В чем ее отличие от предложенной ранее?
Предложите свой вариант реализации алгоритма. Можно
ли в нем обойтись без цикла и некоторых условий для a, b
и c?
Procedure Diofant2 (a,b,c:Integer);
Var d,x,y,cd,bd,ad:Integer;
Begin
ExEuclid (abs(a),abs(b),d,x,y);1.5. Расширенный алгоритм Евклида 87
If c Mod d<>0 Then WriteLn('ɪɟɲɟɧɢɣ ɧɟɬ')
Else Begin
cd:=Abs(c) Div d;
x:=x*cd;
y:=y*cd;
bd:=Abs(b) Div d;
ad:=Abs(a) Div d;
If x>0 Then bd:=-bd Else ad:=-ad;
While Abs(x+bd)+Abs(y+ad) Do Begin
x:=x+bd;
y:=y+ad;
End;
If a<0 Then Begin x:=-x; bd:=-bd; End;
If b<0 Then Begin y:=-y; ad:=-ad; End;
If c<0 Then Begin
x:=-x; bd:=-bd;
y:=-y; ad:=-ad;
End;
WriteLn(x,' ',bd, '*k');
WriteLn(y,' ',ad, '*k');
End;
End; в Pascal

👇
Открыть все ответы
Ответ:
лолл18
лолл18
12.12.2021
Const n=10;
var 
a:array[1..n,1..n] of integer;
b:array[1..n] of integer;
i,j,s:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
 for j:=1 to n do
  begin
  a[i,j]:=random(21);
  write(a[i,j]:4);
  end;
  writeln;
 end;
for i:=1 to n do
 begin
 s:=0;
 for j:=1 to n do s:=s+a[i,j];
 b[i]:=s;
 end;
writeln('Полученный массив:');
for i:=1 to n do write(b[i]:4);
writeln; 
end.

Пример:
Исходный массив:
   8  12  16  16  19  15  11  11  13   7
   7   3  20   3  13   2  20  18   9   2
  18  11  17   0   4   0  18   3  17  12
  12   9  18   9  18   4   7  15   4  20
  17  12  13  20  12  20   4  10  16  18
  15  19   2   1  18  20  13   1  19   3
  12   7   8  13   3   3  15  13   2  15
  15   0  20   9  20  14   3  19   6  20
  12   4  19   0  19   2  18   4  12  10
   3   7   5  15  15   3  19   9  10   8
Полученный массив:
 128  97 100 116 142 111  91 126 100  94
4,4(44 оценок)
Ответ:
sonashkumatova
sonashkumatova
12.12.2021
// PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

a)

begin
  var (a,b):=ReadReal2('Введите через пробел два числа:');
  if a>b then Writeln('Первое число больше второго')
  else
    if b>a then Writeln('Второе число больше первого')
    else Writeln('Числа равны')
end.

b)

begin
  var (a,b):=ReadReal2('Введите через пробел два числа:');
  if a<b then Writeln('Первое число меньше второго')
  else
    if b<a then Writeln('Второе число меньше первого')
    else Writeln('Числа равны')
end.
4,7(50 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ