анастасиятихая
26.08.2022 08:02

Проанализируйте приведенную ниже процедуру вывода общего решения.
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;

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
2005NeZnayka2005
18.06.2022 19:05
1. есть число n.  пускай n=123. что будет, если разделить его на 10? получится 12,3. то есть 12 - целая часть, а 3 - остаток. далее снова делим на 10. 1,23. и в последний раз: 0,123. целая часть =0. на этом останавливаемся. а сколько раз выполнили деление? 3. вот и ответ. теперь запишем на паскале: как видно из вышенаписанного, нужно продолжать выполнять действия, пока целая часть не равна 0. то есть while n> 0 do и у нас есть некоторый счетчик итераций, значение которого и будет являться ответом. а тело цикла: n div 10 (целочисленное деление) inc(k) (увеличение счетчика) вторая: как я понял, нужно просто вывести на экран то, что должно получиться? нужно в цикле пройти по каждому символу. если он равен "*" (if s[i] = '*' then), ничего не делать. иначе вывести его два раза (write(s[i], добавить данные в начало файла нельзя. нужно либо записывать в новый, либо перезаписывать исходный (предварительно считав все в память)
0,0(0 оценок)
Ответ:
Brynd
06.04.2023 12:16
Program Project1;

var m:array [0..14] of integer; i:integer;

function IsPositive(a:integer):boolean;
begin
  result:=(a>-1);
end;

procedure work;
var min, max, count:integer;
begin
  count:=0;
  min:=m[0];
  max:=0;
  for i:=0 to 14 do begin
    if IsPositive(m[i]) then begin
      inc(count);
      if m[i]>max then max:=m[i];
      if m[i]<min then min:=m[i];
    end;
  end;
  writeln('MAX: ', max);
  writeln('MIN: ', min);
  writeln('Count: ', count);
end;

begin
  for i:=0 to 14 do begin
    write('n: ');
    readln(m[i]);
  end;

  work;

  readln;
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота