Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Калькулятор 
:(
    Опции темы
MacTag
Дата 27.2.2009, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.10.2006
Где: Камень-на-Оби - Н овосибирск

Репутация: нет
Всего: нет



Здрасте, читаю книгу Г.В. Галисеев Самоучитель по Delphi 8, это первая книжка, которую читаю по Delphi, ничего ещё не понимаю в нём. Хотелось, чтобы всё шло гладко, но дошел до создания калькулятора, перепечатал код, пробую запустить, ничего не выходит. Выдаёт ошибку. Помогите понять, где ошибка в программе, почему она вылетает и почему автор допустил ошибку.
  У меня стоит Delphi 8 for the Microsoft .NET Framework, также как и у автора книги. У него всё работает, у меня - нет. Помогите.
   Код
Код

     program Projectl;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,
b,
sign: Cardinal;
begin
{ TODO -oUser -cConsole Main : Insert code here }
while a<>0 do begin
Write('Input a: ') ;
Read(a) ;
Write('Input b: ') ;
Read(b);
Write('Operation: ') ;
Read(sign);
if sign=1 then begin
Write(' **Result: ') ;
Writeln(a+b);
end else begin
Write(' **Result: ') ;
Writeln(a-b);
end
end;
end. 


Вот ошибка:
Project Project5.exe encountered unhandled exception class System.NullReferenceException. Process stopped. Use Step or Run to continue.



PM MAIL WWW ICQ   Вверх
Данкинг
Дата 27.2.2009, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Количество begin и end определённо не сходится...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
MacTag
Дата 27.2.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.10.2006
Где: Камень-на-Оби - Н овосибирск

Репутация: нет
Всего: нет



сходится, причина в чём-то другом

Это сообщение отредактировал(а) MacTag - 27.2.2009, 10:28
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 27.2.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



В бегинами все в порядке. Да и с кодом тоже. У меня на Delphi 7 Enterprise все компилится и работает. Не знаю что там на Delphi for .NET не так. На какую строчку ругается?




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MacTag
Дата 27.2.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.10.2006
Где: Камень-на-Оби - Н овосибирск

Репутация: нет
Всего: нет



to Poseidon,
на 11 строчку
пишет [Warning] Project5dpr(11):Variable 'a' might not have been initialized

 т.е. не инициализирована переменная "а" ?


Это сообщение отредактировал(а) MacTag - 27.2.2009, 12:06
PM MAIL WWW ICQ   Вверх
Kbl4AH
Дата 27.2.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Цитата(MacTag @  27.2.2009,  12:06 Найти цитируемый пост)
пишет [Warning] Project5dpr(11):Variable 'a' might not have been initialized

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

Добавлено @ 12:10
добавь после 1-го begin (иницилизируй переменную)
Код

a := 1;


Это сообщение отредактировал(а) Kbl4AH - 27.2.2009, 12:19
PM MAIL ICQ   Вверх
MacTag
Дата 27.2.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.10.2006
Где: Камень-на-Оби - Н овосибирск

Репутация: нет
Всего: нет



подставил, теперь предупреждения нету, но всё равно

Project Project5.exe encountered unhandled exception class System.NullReferenceException. Process stopped. Use Step or Run to continue.

И появляется чёрное окошечко терминала, пустое совершенно. Когда закрываешь его - возвращаешься в редактор кода.
И так по кругу. 

Это сообщение отредактировал(а) MacTag - 27.2.2009, 12:32
PM MAIL WWW ICQ   Вверх
CodeMonkey
Дата 27.2.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



А посмотреть, на какой строчке встало, не судьба?

Цитата(Kbl4AH @  27.2.2009,  12:08 Найти цитируемый пост)
так это не ошибка ведь... это предупреждение (переменная а не инициализирована, т.е. ей не присвоено начальное значение, поэтому переменной а присваивается случайное значение)... у меня тоже его пишет, но программа компилируется и запускается...

Ага, вот только именно это и может быть фатальным. Не могу сказать за .NET - не имею опыта, но вот другой пример.



--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
MacTag
Дата 27.2.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.10.2006
Где: Камень-на-Оби - Н овосибирск

Репутация: нет
Всего: нет



Качаю Delphi 7 Enterprise, буду проверять на нём. 
  Хочется всё-таки докопаться до правды. В чём тут дело. Это беспокоит меня. Не даёт мне покоя. 
smile 
Пример вроде бы простой, в самом начале книги находится, всего на 60 странице.  Не могу я пропустить его и читать дальше.  Или пример начнёт работать, или я так и не прочитаю книгу)

Это сообщение отредактировал(а) MacTag - 27.2.2009, 13:09
PM MAIL WWW ICQ   Вверх
CodeMonkey
Дата 27.2.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(MacTag @  27.2.2009,  13:09 Найти цитируемый пост)
Качаю Delphi 7 Enterprise, буду проверять на нём. 

Проверять что? Вы вообще понимаете разницу между Delphi for Win32 и Delphi for .NET? Это два совершенно разных мира.

Цитата
Ключи потерял! - А ты их точно тут потерял? - Да нет! В соседнем переулке. - А чё ж тут лазишь? - А ТУТ СВЕТЛЕЕ!



--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Kbl4AH
Дата 27.2.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



Цитата(MacTag @  27.2.2009,  13:09 Найти цитируемый пост)
Пример вроде бы простой, в самом начале книги находится, всего на 60 странице.  Не могу я пропустить его и читать дальше.  Или пример начнёт работать, или я так и не прочитаю книгу)

 smile 
PM MAIL ICQ   Вверх
MoonDevil
Дата 27.2.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.2.2009

Репутация: нет
Всего: нет



Все прекрасно запускается и компилится,незнаю что там хочет Делфи 8 а мой 6ой проглотил нормально,а может ты не консольное прилоджение создалsmile?

PM MAIL   Вверх
Kbl4AH
Дата 27.2.2009, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 4
Всего: 15



CodeMonkey, а почему компилятор не инициализирует глобальную переменную, в данном случае, нулем?
По книжке, которую, я читаю должно быть именно так.
А в VCL-приложении - инициализирует нулем... 
PM MAIL ICQ   Вверх
Poseidon
Дата 27.2.2009, 14:11 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Kbl4AH @  27.2.2009,  13:57 Найти цитируемый пост)
CodeMonkey, а почему компилятор не инициализирует глобальную переменную, в данном случае, нулем?По книжке, которую, я читаю должно быть именно так.А в VCL-приложении - инициализирует нулем... 
Неа. В книжках не правильно пишут. Проверь сам:

Код
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
  ShowMessage(IntToStr(i));
end;


Было время, очень долго не мог понять, почему в моих расчетах ошибка.




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
CodeMonkey
Дата 27.2.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(Kbl4AH @  27.2.2009,  13:57 Найти цитируемый пост)
CodeMonkey, а почему компилятор не инициализирует глобальную переменную, в данном случае, нулем?

А кто это сказал? smile  Я не утверждал, что проблема здесь. Я сказал:
- что в общем случае может быть ГГ. 
- что нужно просто посмотреть, на какой строчке встала программа.
- что сравнивать Delphi for Win32 и Delphi for .NET - глупо.

Добавлено через 33 секунды
Цитата(Poseidon @  27.2.2009,  14:11 Найти цитируемый пост)
Проверь сам

А у вас разве глобальная переменная?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1064 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.