Угадай число - Pascal ABC (13332)
Формулировка задачи:
Написать программу в которой компьютер будет угадывать число по ответам человека "холодно-жарко" (перед началом цикла делать запрос на диапазон чисел).
Решение задачи: «Угадай число»
textual
Листинг программы
begin
var cr: integer;
var h:= 50;
var pr_op: char;
var fch:= true;
var fr:= true;
Writeln('Загадай число, а я отгадаю. Как будешь готов, нажми любую кнопку');
System.Console.ReadKey(true);
Writeln('Если ваше число меньше моего, нажмите "-", иначе "+"');
var ch: char;
var n: integer;
while true do
begin
Writeln(cr);
ch:= System.Console.ReadKey(false).KeyChar;
Write(' ');
if (ch = '0') or (h = 0)
then
break;
if (ch <> pr_op) and (fr = false)
then
fch:= false;
if ch = '-'
then
begin
if pr_op = '-'
then
if fch = false
then
else
h *= 2
else
h := Trunc(h / 2);
cr -= h;
pr_op:= '-';
end
else
begin
if pr_op = '+'
then
if fch = false
then
else
h *= 2
else
h := Trunc(h / 2);
cr+= h;
pr_op:= '+';
end;
n+= 1;
fr:= false;
end;
Writeln('Я выиграл за ', n, ' попыток');
end.
Объяснение кода листинга программы
- Создаются переменные cr, h, pr_op, fch и n.
- Выводится сообщение для пользователя.
- Считывается нажатая пользователем клавиша.
- Проверяется, является ли нажатая клавиша нулем или равна ли она переменной h. Если это так, то цикл прерывается.
- Если нажатая клавиша не равна символу '-' или '+', то переменная fch устанавливается в false.
- Если нажата клавиша '-', то переменная h умножается на 2, иначе значение переменной h делится на 2.
- Если нажата клавиша '+', то переменная h умножается на 2, иначе значение переменной h делится на 2.
- Если нажата клавиша '-', то значение переменной cr уменьшается на значение переменной h, иначе значение переменной cr увеличивается на значение переменной h.
- Если нажата клавиша '+', то значение переменной cr увеличивается на значение переменной h, иначе значение переменной cr уменьшается на значение переменной h.
- После каждой операции переменная pr_op сбрасывается на символ '-' или '+'.
- После каждой операции переменная n увеличивается на единицу.
- Если было сделано n попыток и значение переменной fch равно true, то выводится сообщение о победе.