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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2016, 10:05   #21
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
обнулить думате сам не догадается??
уверен, что не догадается!

более того, программа будет иногда работать, а иногда - не работать.
Причину новичку (да порой и не только новичку) понять очень сложно.

честное слово, я бы поступил так, как это делают многие современные компиляторы (C#, Java и т.п.) - если Вы обращаетесь к переменной до того, как Вы в неё что-то записали - не компилировать код, это ошибка программиста, такой код не будет корректно работать. А кому нужен компилятор, который потакает ошибкам программиста?!
(ноги этой проблемы растут от того, что разработчики в Borland решили помочь программистам и поэтому, все ГЛОБАЛЬНЫЕ статические переменные стандартных типов компилятор сам обнуляет при генерации кода. Поэтому, если Вы используете глобальную переменную типа integer, то можете быть уверенным, в ней изначально ноль.)
Впрочем, это уже на форму обсуждалось многократно. Много копий было сломано.
Я высказываю исключительно собственное субъективное мнение. IMHO.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.01.2016, 22:05   #22
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
че не понятного??
Код:
var
kol:byte;
i:Integer;
begin
i:=random(2);
inc(kol) // наращиваем переменную на +1
Edit1.Text:=Edit1.Text+IntToStr(i);
case kol of // если количество цифр равно    
1:                 // 1       выполняем что ты хочешь пиши суда    
2:                 // 2       выполняем что ты хочешь пиши суда    
.......             // и так далее 
20:                  
end;
if i <> 0 then kol:=0;  // если к строке добавили не ноль обнуляем счечик
end.
подскажи пожалуйста почему в Memo1 ничего не появляется при таком коде?
Код:
var
kol:byte;
i:Integer;
begin
i:=random(2);
inc(kol);
Edit1.Text:=Edit1.Text+IntToStr(i);
case kol of
1: Memo1.Lines.Add('Умножить на 2');
2: Memo1.Lines.Add('Умножить на 4');
end;
if i <> 0 then kol:=0;
end;
Lorden вне форума Ответить с цитированием
Старый 17.01.2016, 22:26   #23
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Lorden Посмотреть сообщение
подскажи пожалуйста почему в Memo1 ничего не появляется при таком коде?
Код:
var
kol:byte;
i:Integer;
begin
i:=random(2);
inc(kol);
Edit1.Text:=Edit1.Text+IntToStr(i);
case kol of
1: Memo1.Lines.Add('Умножить на 2');
2: Memo1.Lines.Add('Умножить на 4');
end;
if i <> 0 then kol:=0;
end;
может так подскажет?
Код:
var
kol:byte;
i:Integer;
begin
i:=random(2);
inc(kol);
Edit1.Text:=Edit1.Text+IntToStr(i);
case kol of
1: Memo1.Lines.Add('Умножить на 2');
2: Memo1.Lines.Add('Умножить на 4');
else: Memo1.Lines.Add(IntToStr(kol));
end;
if i <> 0 then kol:=0;
end;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.01.2016, 22:30   #24
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
может так подскажет?
Код:
var
kol:byte;
i:Integer;
begin
i:=random(2);
inc(kol);
Edit1.Text:=Edit1.Text+IntToStr(i);
case kol of
1: Memo1.Lines.Add('Умножить на 2');
2: Memo1.Lines.Add('Умножить на 4');
else: Memo1.Lines.Add(IntToStr(kol));
end;
if i <> 0 then kol:=0;
end;
В Memo1 всегда добавляется цифра 157
Lorden вне форума Ответить с цитированием
Старый 17.01.2016, 22:44   #25
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вот и ответ: kol не получает значения 1 или 2, следовательно ничего в мемо не выводится
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.01.2016, 09:01   #26
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от Lorden Посмотреть сообщение
В Memo1 всегда добавляется цифра 157
А если генератор инициировать?
Iron Monk вне форума Ответить с цитированием
Старый 18.01.2016, 09:46   #27
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
А если генератор инициировать?
нужно но не в нем проблема

Serge_Bliznykov любезно напомнил, что переменные обнулять нужно.
обнулить нужно ге то вне тела продпрограммы, например при создании формы. П.С. переменная должна быть глобальной.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 18.01.2016, 11:37   #28
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
П.С. переменная должна быть глобальной.
Точно.
И в данном случае это принципиально!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2016, 11:58   #29
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Точно.
И в данном случае это принципиально!
а разве нет??
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 18.01.2016, 14:38   #30
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
а разве нет??
я без сарказма. И ни разу не шутил.
в данном случае Kol нужно делать глобальной.

(ну или менять логику (алгоритм) работы напрочь)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строкой. Rockot PHP 4 10.06.2014 21:45
Работа со строкой? Death-woolf Общие вопросы C/C++ 0 20.05.2014 12:06
Работа со строкой TI_ProJecT Помощь студентам 7 08.11.2011 21:10
Работа со строкой в С++ X_RaY Помощь студентам 1 10.10.2011 18:27
Работа с строкой. celovec Общие вопросы Delphi 8 06.04.2011 16:17