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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> непонятный процесс сумирования 
:(
    Опции темы
Black_Joker
  Дата 22.2.2003, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ, возникла такая проблема:

sumin:= 0;
for l:= 1 to kolvo do writeln(ms[l]);
for l:= 1 to kolvo do inc(sumin, ms[l]);

writeln('sumin= ',sumin); writeln;

на экране

1
0
0
sumin= 2

2
0
0
sumin= 4

и т.д.

Пока этот фрагмент был в основной программе, было все нормально. Когда перенес в процедуру появился такой глюк. Кто-нить знает и как с этим бороться.
Разделить на 2 нельзя, могут придраться.

PM   Вверх
Vco
Дата 22.2.2003, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что именно? что за ошибка....если всё нормально то и в процедуре должно быть всё ок...мож синтаксит неправильный?
Код

procedure summa;
begin
sumin:= 0;
for l:= 1 to kolvo do writeln(ms[l]);
for l:= 1 to kolvo do inc(sumin, ms[l]);

writeln('sumin= ',sumin); writeln;
end;
begin
summa;
end;

так?


--------------------
Я всегда где-то рядом...! user posted image
PM MAIL WWW ICQ   Вверх
Vit
Дата 23.2.2003, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Посмотри где и как объявляются переменные...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 23.2.2003, 03:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



У меня такой же глюк был в Delphi: в переменную записывал указатель, через некоторое время он сам менялся на другой, хотя я к нему нигде не обращался. Так и остался он не понятым...
PM   Вверх
Vit
Дата 23.2.2003, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Цитата(Pakshin @ 22.2.2003, 18:16)
Так и остался он не понятым...

1) Отключи оптимизацию
2) Не объявляй глобальными переменными модуля - только локальными или полями класса и всё будет нормально


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Black_Joker
Дата 23.2.2003, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Понял где возникла ошибка


При объявлении переменных
ms: array [1..1] of word;
. . .
(kolvo <>0)
sumin:= 0;
for l:= 1 to kolvo do writeln(ms[l]);
for l:= 1 to kolvo do inc(sumin, ms[l]);

writeln('sumin= ',sumin); writeln;

на экране
1
0
0
sumin= 2

2
0
0
sumin= 4

по ходу программы значения заносились в ms[2] и т.д. Но почему паскаль не выругался при внесении переменных в несуществующие ячейки и почему вывел нули, при обращении к ним не понятно.

PM   Вверх
SmaLL
Дата 25.2.2003, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Black_Joker @ 23.2.2003, 15:27)
по ходу программы значения заносились в ms[2] и т.д. Но почему паскаль не выругался при внесении переменных в несуществующие ячейки и почему вывел нули, при обращении к ним не понятно.

Вероятно у тебя отключена опция компилятора проверки выхода за пределы диапазона


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
Guest_Black_Joker
Дата 25.2.2003, 21:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











И как включить?
  Вверх
SmaLL
Дата 25.2.2003, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Guest_Black_Joker @ 25.2.2003, 13:48)
И как включить?

В коде программы написать:
{$R+} - включить проверку
{$R-} - выключить проверку



--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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