OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 13:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: ОТГОЛОСКИСИ :(
СообщениеДобавлено: Среда, 14 Октябрь, 2009 19:23 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Недавно ковырял PowerBasic 9.0

пишу:
...
dim i as integer
for i=1 to 1000000000000
next i
...

компилит без проблем... :) и работает.... правда i вроде как инкрементится по кругу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ОТГОЛОСКИСИ :(
СообщениеДобавлено: Среда, 14 Октябрь, 2009 20:16 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
ОТГОЛОСКИСИ чего?
ilovb писал(а):
работает.... правда i вроде как инкрементится по кругу
Вы подождите подольше: число-то ведь не маленькое ; )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ОТГОЛОСКИСИ :(
СообщениеДобавлено: Среда, 14 Октябрь, 2009 20:51 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Александр Ильин писал(а):
ОТГОЛОСКИСИ чего?...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ОТГОЛОСКИСИ :(
СообщениеДобавлено: Среда, 14 Октябрь, 2009 20:55 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
ilovb писал(а):
Александр Ильин писал(а):
ОТГОЛОСКИСИ чего?...
А, теперь понятно. У меня просто большие буквы в названии темы не отображаются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ОТГОЛОСКИСИ :(
СообщениеДобавлено: Четверг, 15 Октябрь, 2009 07:42 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
ilovb писал(а):
dim i as integer
for i=1 to 1000000000000
next i

Из документации следует, что если переменная объявлена так:
DIM I AS INTEGER
то она имеет тип 16-битное целое число (with a range of -32,768 to +32,767 ( -2^15 to 2^15 - 1))
Сделайте простенькую проверку в теле цикла, что-нить вроде
if i >= 50000 then print i
На это много времени уйти не может, компилятор же всё-таки...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ОТГОЛОСКИСИ :(
СообщениеДобавлено: Пятница, 16 Октябрь, 2009 17:44 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Я выяснил причину :)

Ничего там по кругу не инкрементится. Просто компилятор игнорирует старшие байты. По типу индексной переменной берет байты а остальные просто отбрасывает. Результат в итоге неоднозначный...
Оказывается что можно даже так писать:
dim a(5) as string
a(10)="abracadabra"
В этом случае все отработает тоже без ошибок. Но a(10) будет содержать ноль. Правда иногда, если обратиться опять же к левому индексу, элемент (несуществующий) массива может содержать какое нибудь значение.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB