Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2012, 15:15   #1
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию Программа зависает

Всем привет!
Понадобилось в короткие сроки сделать тест (в виде игры "кто хочет стать миллионером") для студентов бухгалтерского отделения, так как времени не было, решил найти исходник.
Скачанное запустил, тест начался нормально но иногда зависает и не отвисает, кто может помогите! Где в коде ошибка
Файл прикреплён.
Вложения
Тип файла: zip millionare.zip (42.0 Кб, 13 просмотров)
SKS вне форума Ответить с цитированием
Старый 23.02.2012, 17:39   #2
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

Поднимаю тему, в виду необходимости.
Посмотрите что с кодом? Никак разобраться не могу, виснет и всё.
SKS вне форума Ответить с цитированием
Старый 23.02.2012, 18:44   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Программа из разряда "ломай меня полностью". Такого быдлокода я ещё не видел.
ваша проблема вот здесь:
Код:
 Randomize;
 rn1:=random(15)+1;
 rn2:=random(15)+1;
 rn3:=random(15)+1;
 rn4:=random(15)+1;
 rn5:=random(15)+1;
 rn6:=random(15)+1;
 rn7:=random(15)+1;
 rn8:=random(15)+1;
 rn9:=random(15)+1;
 rn10:=random(15)+1;
 rn11:=random(15)+1;
 rn12:=random(15)+1;
 rn13:=random(15)+1;
 rn14:=random(15)+1;
 rn15:=random(15)+1;

 while (rn1=r1) or (rn1=r2) or (rn1=rn6) or (rn1=rn5) or (rn1=rn4) or (rn1=rn3) or (rn1=rn2) or (rn1>5) do begin
 rn1:=random(15)+1;
 end;

 while (rn2=r1) or (rn2=r2) or (rn2=rn6) or (rn2=rn5) or (rn2=rn4) or (rn2=rn3) or (rn2=rn1) or (rn2>5) do begin
 rn2:=random(15)+1;
 end;

 while (rn3=r3) or (rn3=r4) or (rn3=rn6) or (rn3=rn5) or (rn3=rn4) or (rn3=rn2) or (rn3=rn1) or (rn3<6) or (rn3>10) do begin
 rn3:=random(15)+1;
 end;

 while (rn4=r3) or (rn4=r4) or (rn4=rn6) or (rn4=rn5) or (rn4=rn3) or (rn4=rn2) or (rn4=rn1) or (rn4<6) or (rn4>10) do begin
 rn4:=random(15)+1;
 end;

 while (rn5=r5) or (rn5=r6) or (rn5=rn6) or (rn5=rn4) or (rn5=rn3) or (rn5=rn2) or (rn5=rn1) or (rn5>15) or (rn5<11) do begin
 rn5:=random(15)+1;
 end;

 while (rn6=r5) or (rn6=r6) or (rn6=rn5) or (rn6=rn4) or (rn6=rn3) or (rn6=rn2) or (rn6=rn1) or (rn6>15) or (rn6<11) do begin
 rn6:=random(15)+1;
 end;

 while (rn7=r6) or (rn7=r6) or (rn7=rn5) or (rn7=rn4) or (rn7=rn3) or (rn7=rn2) or (rn7=rn1) or (rn7>15) or (rn7<11) do begin
 rn7:=random(15)+1;
 end;

 while (rn8=r2) or (rn8=r2) or (rn8=rn5) or (rn8=rn4) or (rn8=rn3) or (rn8=rn2) or (rn8=rn1) or (rn8>15) or (rn8<11) do begin
 rn8:=random(15)+1;
 end;

 while (rn9=r2) or (rn9=r2) or (rn9=rn5) or (rn9=rn4) or (rn9=rn3) or (rn9=rn2) or (rn9=rn1) or (rn9>15) or (rn9<11) do begin
 rn9:=random(15)+1;
 end;

 while (rn10=r2) or (rn10=r2) or (rn10=rn5) or (rn10=rn4) or (rn10=rn3) or (rn10=rn2) or (rn10=rn1) or (rn10>15) or (rn10<11) do begin
 rn10:=random(15)+1;
 end;

 while (rn11=r2) or (rn11=r2) or (rn11=rn5) or (rn11=rn4) or (rn11=rn3) or (rn11=rn2) or (rn11=rn1) or (rn11>15) or (rn11<11) do begin
 rn11:=random(15)+1;
 end;

 while (rn12=r2) or (rn12=r2) or (rn12=rn5) or (rn12=rn4) or (rn12=rn3) or (rn12=rn2) or (rn12=rn1) or (rn12>15) or (rn12<11) do begin
 rn12:=random(15)+1;
 end;

 while (rn13=r3) or (rn13=r3) or (rn13=rn6) or (rn13=rn5) or (rn13=rn4) or (rn13=rn2) or (rn13=rn1) or (rn13>15) or (rn13<11) do begin
 rn13:=random(15)+1;
 end;

 while (rn14=r3) or (rn14=r3) or (rn14=rn6) or (rn14=rn5) or (rn14=rn4) or (rn14=rn2) or (rn14=rn1) or (rn14>15) or (rn14<11) do begin
 rn14:=random(15)+1;
 end;

 while (rn15=r3) or (rn15=r3) or (rn15=rn6) or (rn15=rn5) or (rn15=rn4) or (rn15=rn2) or (rn15=rn1) or (rn15>15) or (rn15<11) do begin
 rn15:=random(15)+1;
 end;

 r1:=rn1;
 r2:=rn2;
 r3:=rn3;
 r4:=rn4;
 r5:=rn5;
 r6:=rn6;
 r7:=rn7;
 r8:=rn8;
 r9:=rn9;
 r10:=rn10;
 r11:=rn11;
 r12:=rn12;
 r13:=rn13;
 r14:=rn14;
 r15:=rn15;
Человек_Борща вне форума Ответить с цитированием
Старый 24.02.2012, 03:37   #4
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

Подскажите как решить проблему, может есть код короче?
SKS вне форума Ответить с цитированием
Старый 24.02.2012, 04:13   #5
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

А циклы эти (while) для какой необходимости?
Прик вне форума Ответить с цитированием
Старый 24.02.2012, 07:13   #6
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

типа рандомом показывают варианты вопросов и ответов.
SKS вне форума Ответить с цитированием
Старый 24.02.2012, 07:30   #7
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Я в личку дал пару вариантов улучшения. Смотрите.
Прик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При компиляции программа зависает utro35 Общие вопросы Delphi 5 20.01.2012 11:24
Зависает программа Symba Общие вопросы Delphi 10 24.06.2011 11:48
Программа зависает Anubys Помощь студентам 0 20.05.2011 23:40
зависает программа - обработчик прерывания mrmrmr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 01.05.2011 12:50
Зависает программа DimOn4Ik Общие вопросы Delphi 4 29.05.2010 21:05