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

Напишите программу, которая отгадывает загаданное целое число от 1 до 1000 (пользователь или тестирующая система загадывает число в уме и не сообщает программе). Угадать число нужно не более чем за 10 попыток. На каждую попытку пользователь отвечает, что загаданное число больше названного (вводит символ ">"), меньше названного ("<") или угадано правильно ("="). Используйте бинарный поиск. Ваша программа должна каждый раз называть число, находящееся посередине исследуемого диапазона — в результате станет ясно, в какой половине диапазона находится искомое число.

Например, для диапазона от 1 до 8 (а не до 1000) это могло бы выглядеть так (загадано число 5):

4 (программа пробует угадать, называя число из середины интервала от 1 до 8)
> (пользователь отвечает, что загаданное число больше введенного; теперь программа ищет в интервале от 5 до 8)
6
<
5
=

Показать ответ
Ответ:
YeezyM
YeezyM
26.03.2020 17:02

2  1  6  2  10  3  14  4  18  5  

Объяснение:

n = 1

n - чётное (НЕТ)

y = 2 * 1 = 2

Вывод на экран: 2

n = 1 + 1 = 2

2 <= 10 (ДА)

n = 2

n - чётное (ДА)

y = 2 / 2 = 1

Вывод на экран: 1

n = 2 + 1 = 3

3 <= 10 (ДА)

n = 3

n - чётное (НЕТ)

y = 2 * 3 = 6

Вывод на экран: 6

n = 3 + 1 = 4

4 <= 10 (ДА)

n = 4

n - чётное (ДА)

y = 4 / 2 = 2

Вывод на экран: 2

n = 4 + 1 = 5

5 <= 10 (ДА)

n = 5

n - чётное (НЕТ)

y = 2 * 5 = 10

Вывод на экран: 10

n = 5 + 1 = 6

6 <= 10 (ДА)

n = 6

n - чётное (ДА)

y = 6 / 2 = 3

Вывод на экран: 3

n = 6 + 1 = 7

7 <= 10 (ДА)

n = 7

n - чётное (НЕТ)

y = 2 * 7 = 14

Вывод на экран: 14

n = 7 + 1 = 8

8 <= 10 (ДА)

n = 8

n - чётное (ДА)

y = 8 / 2 = 4

Вывод на экран: 4

n = 8 + 1 = 9

9 <= 10 (ДА)

n = 9

n - чётное (НЕТ)

y = 2 * 9 = 18

Вывод на экран: 18

n = 9 + 1 = 10

10 <= 10 (ДА)

n = 10

n - чётное (ДА)

y = 10 / 2 = 5

Вывод на экран: 5

n = 10 + 1 = 11

11 <= 10 (НЕТ)

0,0(0 оценок)
Ответ:
zolotoy1979
zolotoy1979
22.09.2021 00:06

Новые возможности, которые добавляют разработчики, позволяют вообще написать одну строчку:

Код (PascalABC.NET):

## ArrRandomInteger(13).Println.Average.Print;

## говорит о том, что компилятор добавит в начало и конец begin и end.

ArrRandomInteger(13) - функция, генерирующая массив из 13 случайных целых чисел

Println - метод расширения, выводящий элементы через пробел и в конце переходящий на новую строку

Average - метод, вычисляющий среднее значение

Print - вывод значения на экран

В стиле "старого" паскаля:

Код (PascalABC.NET):

var

 a: array[1..13] of integer;

 s, i: integer;

begin

 randomize;

 s := 0;

 for i := 1 to 13 do

 begin

   a[i] := random(100);

   write(a[i], ' ');

   s := s + a[i];

 end;

 writeln;

 write(s / 13);

end.

Пример вывода:

38 86 86 0 24 95 51 41 32 18 74 15 55  

47.3076923076923

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