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

Здравствуйте, Кто сможет ? Этап 1
Необходимо написать программу, которая угадывает задуманное пользователем число от 1 до 100 за как можно меньшее количество шагов. Программа выдаёт предполагаемые числа, а пользователь отвечает, больше его число или меньше, чем число на экране.

Допустим, пользователь загадал число 32, тогда вывод программы может быть похож на этот:

Is it 50?

> less

Is it 25?

> greater

Is it 40?

> less

Is it 30?

> greater

Is it 35?

> less

Is it 32?

> yes

Got it in 6 steps!

Указания:

Предполагайте, что пользователь всегда играет честно и не обманывает программу.

Считайте число шагов в функции угадывания и возвращайте его.

Делите код на функции.

Этап 2
Нужно добавить вариант игры наоборот: компьютер загадывает случайное число от 1 до 100, а пользователь должен отгадать. Компьютер выводит сообщения:

greater, если число больше догадки

less, если число меньше догадки

yes, если пользователь угадал

Указания:

В начале игры пользователь попадает в меню, где может выбрать режим игры.

Игрок в любой момент может ввести команду exit для выхода. Для этого напишите отдельную функцию, которая принимает и возвращает ввод пользователя и вызывает функцию exit()

После игры игрок возвращается в главное меню

Этап 3
Нужно добавить вариант игры по очереди. Один раунд состоит из двух этапов:

Пользователь загадывает число, а компьютер угадывает.

Компьютер загадывает число, а пользователь отгадывает.

Указания

Выигрывает тот, кто угадал число за меньшее число ходов.

Пользователь может выбрать, сколько раундов длится игра - от 1 до 10. По умолчанию в игре 3 раунда (пользователь ничего не ввёл и нажал enter).

В игре выигрывает тот, кто победил в большем количестве раундов. Если число раундов было четным, то может быть ничья.

Форматируйте вывод так, чтобы было понятно, кто сейчас играет, выводите номер раунда и отделяйте раунды друг от друга отступами. Вы можете использовать строки вида "" и переносы строк, чтобы аккуратно разделить раунды.

Этап 4,
Переделайте программу таким образом, чтобы у вас появился ещё один и более алгоритмов отгадывания числа.

Протестируйте, какой из угадывания эффективнее. Сгенерируйте массив из 100 или более случайных чисел и по очереди прогоните его через каждый алгоритм угадывания. Определите среднее количество шагов, которое потребовалось каждому алгоритму на одно число. Лучший алгоритм тот, который угадал быстрее.

Указания:

Сохраняйте результаты работы алгоритмов в отдельные списки.

Для тестирования скопируйте код алгоритмов и логику теста в отдельный файл .py.

Вместо хода игры выводите только загаданное число и количество шагов, например:

Using: Algorithm

Got 32 in 6 steps

Got 50 in 1 step

Got 100 in 7 steps

...

Этап 5.
Добавьте выбор уровня сложности. Используйте результаты этапа 4, чтобы выбрать алгоритмы для разных уровней сложности.

На лёгком уровне сложности компьютер использует более простой, медленный алгоритм угадывания.

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

Указания:

Пользователь выбирает уровень сложности после выбора режима игры.

👇
Открыть все ответы
Ответ:
Нютик1823
Нютик1823
09.04.2023

const

  n = 10; //количество элементов массива

var 

  a: array [1..n] of real;

  i: integer;

 

begin

  for i:= 1 to n do 

  begin

    writeln('Введите ', i, ' элемент массива');

    readln(a[i]); //вводим очередной элемент массива

  end;

  write('Исходный массив: ');

  for i:= 1 to n do 

    write(a[i], '  '); //Выводим исходный массив

  writeln; //Перевод на новую строку

  write('Полученный массив: ');

  for i:= 1 to n do

  begin 

    a[i]:= a[i] * a[n]; //элемент массива умножаем на последний элемент

    write(a[i], '  '); //выводим полученный элемент массива

  end;

end.

4,7(47 оценок)
Ответ:
zvonilovakarina
zvonilovakarina
09.04.2023
1.
begin
write('  ');
var P:=ArrRandom(10,10,90).Println('     ');
var T:=P.Select((x,k)->(k+1) mod 2=0?real(x*(k+1)):real(x/(k+1))).ToArray;
for var i:=0 to T.Length-1 do write(T[i]:7:2);
end.

Пример:
  50     37     37     15     40     86     64     41     53     46
  50.00  74.00  12.33  60.00   8.00 516.00   9.14 328.00   5.89 460.00

2.
begin
var k:=ReadInteger('k = ');
var a:=ArrRandom(10,-20,20).Println;
var m:=a.Where(x->x<0).Max;
writeln('Макс.отрицательное = ',m,', ',m,'*',k,'=',m*k);
end.

Пример:
k =  5
15 10 -7 -13 -4 16 -12 -2 9 -12
Макс.отрицательное = -2, -2*5=-10
4,6(6 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ