Страница 1 из 2

Спаситеее. Генератор случайных чисел

Добавлено: 23 мар 2007, 12:29
Небо Принстона
Спасите девушку от двойки. Напишите пожалуйста программу:
Запрограммировать игру «Угадай число». Программа с помощью генератора случайных чисел выбирает целое число в диапазоне от 0 до 9. Угадать это число за три попытки. После каждой попытки сообщается больше или меньше названное число задуманного.
:)

Re: Спаситеее. Генератор случайных чисел

Добавлено: 23 мар 2007, 12:48
Хыиуду
Какой язык хотя бы?
Допустим, Паскаль ;)

Код: Выделить всё

uses crt;
var x,count,i:byte;
begin
 randomize;
 x:=random(10);
 for count:=1 to 3 do
 begin
  writeln('Введите число');
  readln(i);
  if i>x then writeln('Ваше число больше')
  else if i<x then writeln('Ваше число меньше')
  else begin writeln('Вы угадали!'); break;end;
 end;
if count>3 then writeln('Вы проиграли!') else writeln('Вы выиграли!');
readln;
end.

Re: Спаситеее. Генератор случайных чисел

Добавлено: 23 мар 2007, 14:05
somewhere
&quot писал(а):if count>3
Хыиуду, вроде опытный программист, а такие нелепые ошибки. Нет Begin к тому-же в цикле For.

Код: Выделить всё

uses crt;
var x,count,i:byte;
begin
 randomize;
 x:=random(10);
 count:=1;
 repeat
  writeln('Введите число');
  readln(i);
  if i>x then writeln('Ваше число больше')
  else if i<x then writeln('Ваше число меньше');
  inc(count);
 until (i=x) or (count>3);
if i<>x then writeln('Вы проиграли!') else writeln('Вы выиграли!');
readln;
end.

Re: Спаситеее. Генератор случайных чисел

Добавлено: 23 мар 2007, 21:16
Колядин Максим
Хыиуду писал(а):Хыиуду, вроде опытный программист, а такие нелепые ошибки.
Никто не застрахован от ошибок, даже такой опытный программист, как Хыиуду. Но бывают такие неблагоприятные деньки, когда голова совсем "не в ту степь" думает-)]
uses crt;
var c,x,attempt: integer;{с-введённое число; x-загаданное; attempt - кол-во попыток}
begin {начать}
clrscr;
randomize; {инициализируем генератор случайных чисел}
x:=random(10); {загаданное число от 0 до 9}
attempt:=1; {первая попытка}
repeat {повторяем...}
writeln('Попытка №',attempt);
write('Введите число: '); readln(c); {вводим число}
if (c>9) or (c<0) then begin
writeln('Будь внимательнее!'); {контролируем выход за пределы интервала}
continue
end;
if c>x then writeln('Перебор!') else if c<x then writeln('Слишком мало...');
{если введенное число больше загаданного, написать "Перебор", иначе, "Слишком мало..."}
inc(attempt); {увеличиваем число использованных попыток}
until (c=x) or (attempt>3); {завершаем цикл, если загаданное число равно введённому, или если использовано больше трёх попыток}
If c=x then write('Поздравляем! Вы угадали число с ',attempt,' попытки!')
else
write('Вы проиграли...');
{если загаданное число равно введённому, тогда написать "Поздравляем...", иначе, "Вы проиграли..."}
readkey; {пауза}
end.
[/code]

Re: Спаситеее. Генератор случайных чисел

Добавлено: 24 мар 2007, 12:41
Небо Принстона
Спасибо большое. только два я видимо получу. они требуют написать все через процедуру и функцию. :(

Re: Спаситеее. Генератор случайных чисел

Добавлено: 24 мар 2007, 19:17
Колядин Максим
Небо Принстона писал(а):Спасибо большое. только два я видимо получу. они требуют написать все через процедуру и функцию.
Эта проблема легкорешаема:

Код: Выделить всё

uses crt]
Сама сказала с процедурами и функциями, хотя они здесь не очень нужны...

Re: Спаситеее. Генератор случайных чисел

Добавлено: 26 мар 2007, 10:47
Хыиуду
А в чем ошибка? Это как раз из серии "левые штучки". Если выход из цикла будет естественным путем, а не через break, значение count будет равно 4. Можно проверить.
А насчет Begin согласен - мой косяк. Это уже начинаются заглюки с Python, где нету бегинов и эндов, а операторные скобки делаются путем добавления пробелов в начале строки.

Re: Спаситеее. Генератор случайных чисел

Добавлено: 26 мар 2007, 11:30
somewhere
&quot писал(а):А в чем ошибка? Это как раз из серии "левые штучки". Если выход из цикла будет естественным путем, а не через break, значение count будет равно 4. Можно проверить.
Вот это уже точно "левые" штучки. Видно ты с чем-то путаешь

Код: Выделить всё

var i:byte;
begin
 for i:=1 to 3 do
  writeln(i);
Writeln(i);
end.
Results

Код: Выделить всё

1
2
3
3

Re: Спаситеее. Генератор случайных чисел

Добавлено: 26 мар 2007, 12:10
Хыиуду
У меня ровно с тем же кодом (только выводил через Memo1.Lines.Add() ) получилось
1
2
3
4
Дельфи 7.0

Re: Спаситеее. Генератор случайных чисел

Добавлено: 26 мар 2007, 13:52
somewhere
На Дельфи - согласен, но вот (uses crt ;) в проге, говорит о Паскале - а там немного по-другому.