IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Угадай число
сообщение
Сообщение #1


Гость






Нужна ваша помощь! Программа «Угадай число» делает один проход и дальше не работает. Пытаюсь зациклить, но выводится ошибка. Как правильно оформить это все в цикл?


procedure TForm1.FormActivate(Sender: TObject);
begin
MEdit.SetFocus;
Label1.Caption:='Сыграем в игру?'
end;


procedure TForm1.BbRunClick(Sender: TObject);
begin
a:=InputBox('Диапазон чисел’,'Введите количество чисел','');
n:=StrToInt(a);
n:=random(n+1);
Label1.Caption:='Я запомнил число! Сумеешь угадать?';
MEdit.SetFocus;
BbRun.Visible:=False;
BbResult.Visible:=True;
end;

procedure TForm1.BbResultClick(Sender: TObject);
begin
if MEdit.Text='' then exit;
i:=StrToInt(Trim(MEdit.Text));
if i>n then
begin
Label1.Caption:='Введенное число больше моего! Попробуй еще раз!';
MEdit.Clear;
MEdit.SetFocus;
end;
else
if i<n then
begin
Label1.Caption:='Введенное число меньше моего! Попробуй еще раз!';
MEdit.Clear;
MEdit.SetFocus;
end
else
begin
Label1.Caption:='Поздравляю!!!! Ты угадал!!!';
b:=InputBox('Сообщение',' Повторить?','');
if InputBox.Text:='äà' then
begin
bbResult.Visible:=False;
bbRun.Visible:=True;
end
else
Form1.Close;
end;
end;

procedure TForm1.BbCloseClick(Sender: TObject);
begin
Form1.Close;
end;
end.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Не пойму что нужно зацыклить, ведь сравнение должно происходить каждый раз после нажатия на кнопку BbRun ?Что именно пытаешся зацыклить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Сравнение то поисходит, только всего лишь один раз.. sad.gif
выдаст "больше" или "меньше" и дальше не идет.. sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Выложи весь проект.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Оно ведь при введении 1 числа и должно 1 раз проверяться.
То есть человек ввел предположение, нажал на кнопку и получил результат....


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Нет, прога должна продолжать работу, пока пользователь не отгадает загаданное число.. не факт, что он сделает это спервого раза..
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Что делать, если размер загружаемых файлов превышает допустимое значение?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Запаковать проект в архив (без EXE-шника, разумеется), и присоединить...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Он у меня 6кб весит, но все равно вылазиет ошибка!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Посмотрите, плиз!


Прикрепленные файлы
Прикрепленный файл  ____________.rar ( 6.91 килобайт ) Кол-во скачиваний: 90
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






У тебя просто не генерируется случайное число (точнее, все время N = 0), поэтому программа тебе постоянно выдает "Введенное число больше моего! Попробуй еще раз!", правда?

Попробуй добавить Randomize:
a:=InputBox('Диапазон чисел','Введите количество чисел','');
randomize;
n:=random(StrToInt(a)+1);
, тогда N будет отличаться от нуля...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Спасибо огромное!!! РАБОТАЕТ!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Здравствуйте, снова нужна ваша помощь! Необходимо модифицировать прогу. В местах, отмеченных !!!, необходимо поставить условие, что если юзер правильно нажимает на кнопку, текст окрашивается в зеленый цвет, если ошибка – в красный! Подскажите, пожалуйста, как это можно осуществить! Заранее огромное спасибо!


Прикрепленные файлы
Прикрепленный файл  ____________.rar ( 8.13 килобайт ) Кол-во скачиваний: 98
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


нужно просто добавить в начале каждого условия
label1.Color:=clred
- это для неправильного и
label1.Color:=clgreen
для верного решения.
И не забыть указать в FormActivate
Label1.caption:=clblack
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


не получается.. к примеру прога выдает "введенное чсло больше", тогда юзер должен нажать на одну из кнопочек > или <. Если нажал правильно - текст выделяется зеленым цветом, неправильно - красным.
Возникает вопрос: как я могу засунуть одну процедуру(нажатие клавиши <,>) в другую?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


нажатие клавиши - это ведь обработчик события, так? может, проще в него засунуть окрашивание?
прямо при выводе проверять на правильность и окрашивать...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


проблема в том, как проверить эту правильность.. sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


а зачем вообще эти кнопки - Больше и Меньше? По логике, число нужно угадывать так:
Например, загадано 63, диапазон от 1 до 100.

50? -нет, больше
75? -нет, меньше
63? -да, правильно.
Я такую лабу еще на первом курсе делал, по математической логике. вот ее маленький кусок. Вам это надо?

n:=(random(100));
writeln(n);
writeln('vvedite chislo ot 1 do 100');
i:=1;
repeat
begin
writeln('popitka ',i);
inc(i);
readln(chislo);
if chislo=n then
writeln('vi ugadali')
else
if chislo>n then
writeln('>')
else
writeln('<');
end;
until chislo=n;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 31.10.2020 15:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name