В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
iweriooo
iweriooo
09.03.2020 02:28 •  Информатика

Объясните работу алгоритма Integer gcd (Integer a, Integer b) {
while (b)
b ^= a ^= b ^= a %= b;
return abs(a);
}

Показать ответ
Ответ:
АрзуНаз
АрзуНаз
13.05.2021 18:02
// PascalABC.NET 3.0, сборка 1073
var
  c:char;
begin
  Write('Введите римскую цифру (I,V,X,L,C,D,M): '); Readln(c);
  case c of
  'I':Writeln('1');
  'V':Writeln('5');
  'X':Writeln('10');
  'L':Writeln('50');
  'C':Writeln('100');
  'D':Writeln('500');
  'M':Writeln('1000');
  else Writeln('Вы ошиблись')
  end
end.

// PascalABC.NET 3.0, сборка 1073
var
  n:byte;
  x,y:real;
begin
  Write('Введите номер варианта (1-5): '); Readln(n);
  case n of
  1:begin
    Write('Выражение x^2+y^2, введите x,y: '); Read(x,y);
    Writeln('Результат: ',sqr(x)+sqr(y))
    end;
  2:begin
    Write('Выражение (a+b)^2, введите a,b: '); Read(x,y);
    Writeln('Результат: ',sqr(x+y))
    end;
  3:begin
    Write('Выражение (c-d)^2, введите c,d: '); Read(x,y);
    Writeln('Результат: ',sqr(x-y))
    end;
  4:begin
    Write('Выражение |sin(x)|, введите x: '); Read(x);
    Writeln('Результат: ',abs(sin(x)))
    end;
  5:begin
    Write('Выражение sqrt(a^2+b^2), введите a,b: '); Read(x,y);
    Writeln('Результат: ',sqrt(sqr(x)+sqr(y)))
    end;
  else Writeln('Вы ошиблись')
  end
end.
0,0(0 оценок)
Ответ:
anastasijakokos
anastasijakokos
05.02.2023 08:36
Программу надо сформатировать и тогда её структура будет видна лучше.
А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".

var
  s, k: integer;
label
  met;
begin
  s:=-12;
  k:=90;
  Writeln('s=',s,', k=',k);
  s:=s+10;
  Writeln('s=',s);
met:
  Writeln('Метка met:');
  k:=k+10; Write('k=',k);
  if k<200 then s:=50 else s:=s+k;
  Writeln(', s=',s);
  if k<200 then goto met;
  Writeln('Результат: s=',s)
end.

Результат выполнения программы:
s=-12, k=90
s=-2
Метка met:
k=100, s=50
Метка met:
k=110, s=50
Метка met:
k=120, s=50
Метка met:
k=130, s=50
Метка met:
k=140, s=50
Метка met:
k=150, s=50
Метка met:
k=160, s=50
Метка met:
k=170, s=50
Метка met:
k=180, s=50
Метка met:
k=190, s=50
Метка met:
k=200, s=250
Результат: s=250
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота