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

Напишите как решать ниже на 5 языках программирования записан алгоритм. получив на вход число х, этот алгоритм печатает число l. укажите наибольшее нечетное число х, при вводе которого алгоритм печатает 102. var x,l,m: integer; begin readln(x); d: =x; l: =30; m: =456; while l< =m do begin l: =l+d; m: =m-5*d; end; writeln(l); end. алгоритм решения нужен

👇
Ответ:
alenuhaa
alenuhaa
21.04.2020
Алгоритм содержит ошибку: необъявленную переменную d. Фактически она вообще не нужна, потому что d=x и не меняется.
Выводится значение l, которое вычисляется по формуле l=30+kx, где k - количество выполнений тела цикла while.
Получаем уравнение 30 + k·x = 102 → k·x = 72.
Но 72 = 2 × 2 × 2 × 3 × 3 если значение х нечетное, то оно может быть или 3, или 3 × 3 = 9.
В вопросе спрашивается о максимальном х, поэтому проверим, подходит ли х=9.
В этом случае k = 72 / 9 = 8
Значение k определяется условием выполнения цикла l ≤ m,
где m = 456 - 5·x·k.
При k= 8 получаем 102 ≤ 456 - 5×8×9; 102 ≤ 96 - ложно,
но еще при k=7 получаем 30+7×9 ≤ 456-5×7×9; 93 ≤ 141 истинно.

Следовательно, x=9 подходит.

ответ: 9
4,4(18 оценок)
Открыть все ответы
Ответ:
aigulkordai
aigulkordai
21.04.2020

Ваши ошибки:

1) Объявление текстовых переменных и неиспользование их.

2) Ненужный тип longint, зачем такой большой тип?

Типа Integer вполне достаточно (-32 768 … 32 767).

3) Объявление абсолютно ненужной переменной z.

4) Главная ошибка - это непонимание задания, и соответственно неправильно построенный алгоритм.


Попробуйте это, самое оптимальное по времени, минимальное кол-во переменных. Использован метод Гаусса, можно было и арифм. прогрессию.


var

  n: integer;

  text: text;


begin

  assign(text, 'input.txt'); reset(text);

  readln(text, n); close(text);

  

  if (n > 10000) then exit;

  

  assign(text, 'output.txt'); rewrite(text);

  if n < 0 then Writeln(text, -((1 + abs(n)) * (abs(n) / 2) - 1))

  else Writeln(text, (1 + n) * (n / 2));

  close(text);

end.

4,8(81 оценок)
Ответ:
Zizosia
Zizosia
21.04.2020

1100111111=1*2^9+1*2^8+0*2^7+0*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=512+256+0+0+32+16+8+4+2+1=831

111111111=1*2^8+1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=511

1100011111=1*2^9+1*2^8+0*2^7+0*2^6+0*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=799

В двоичную: (делим на 2каждое число до 1 или 0)

1) 4321=1000011100001            

-4320 2160 2          

1 -2160 1080 2          

0 -1080 540 2        

 0 -540 270 2        

  0 -270 135 2      

   0 -134 67 2      

    1 -66 33 2    

     1 -32 16 2    

      1 -16 8 2  

       0 -8 4 2  

        0 -4 2 2

         0 -2 1

          0  

Теперь собираем от последнего остатка до первого выделенные цифры.

2) 3333=110100000101

3) 7372 =1110011001100

4,6(29 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ