Søphia
08.12.2021 03:49

Опредилите тип алгаритма для указанных команд

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
swatcamgg
20.02.2023 12:14
Где-то в условии ошибка.
Таблица истинности для пяти переменных будет содержать два в пятой степени, (т.е. 32) строки. Как можно трактовать фразу "нет ни одной совпадающей строки"? Только так, что если A=0? то B=1 или если А=1, то В=0. Комбинаций вида 0 0 или 1 1 быть не может.
Но выражение A v B истинно, если истинно хотя бы А или В. Сделовательно, для комбинаций вида 0 1 и 1 0 такое выражение истинно всегда. Тогда столбец значений для такой функции будет содержать все 32 единицы.
Поэтому ответ: 32 единицы.

По вопросу "Почему в ответах 0?" я бы сказал следующее: все 32 нуля могут быть получены, если в условии ошибка и функция имеет вид A ^ B. В том случае комбинации 0 1 и 1 0 будут давать именно нули.
0,0(0 оценок)
Ответ:
Savelijbih
14.11.2021 07:00
1) Все правильно, это и будет разность между максимумом и минимумом
program one;
var input,max,min:integer;
    i:integer;
begin
  readln(input);
  max:=input;
  min:=input;
  for i:=2 to 25 do begin
    readln(input);
    if input>max then max:=input;
    if input<min then min:=input;
  end;
  writeln(max-min);
end.

2) Гораздо проще не суммировать в цикле степени половины, а воспользоваться тем, что 1+\frac12+...+\frac1{2^n}=2-\frac1{2^n}.
program two;
var res:real;
    i,n:integer;
begin
  readln(n);
  res:=0.5;
  for i:=2 to n do res*=0.5;
  res:=2-res;
  writeln(res);
end.

3) Здесь существует несколько реализации; в частности, можно было просто считать число как строку и возвратить ее в перевернутом виде (ReverseString(s)), не заботясь о переполнении, однако я решил, что по логике задания нужно делать через числа. Впрочем, для выявления случаев переполнения все равно используется переворот строки
program three;
var a,b:int64; {можно использовать uint64, если в вашей среде Паскаля  этот тип поддерживается, тогда число в строке ниже надо заменить}
begin
  readln(a);
  if ReverseString(IntToStr(a))>'9223372036854775807' then writeln('Слишком много') else begin
    while a>0 do begin
      b:=10*b+a mod 10;
      a:=a div 10;
    end;
    writeln(b);
  end;
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота