IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Изменение констант в процессе работы., мои наблюдения
сообщение
Сообщение #1


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Код
Uses CRT;
Const
n=2;
D:word=12;
var
a:array[1..n] of integer;
b:word absolute n:2;
i:word;
c:word absolute d;
begin
ClrScr;
readln(b);
for i:=1 to b do a[i]:=random(100);
for i:=1 to b do write(a[i],' ');
writeln; writeln('c=');
readln(c);
writeln(d);

end.

Значение константы, используемой для индексации можно безболезненно менять в меньшую сторону.

Значение свободной константы можно изменять свободно.

Почему значение констант индексирования нельзя менять в большую сторону при сохранении размера переменной в памяти?
ответ:
массив или строка увеличится, автоматически новая облать памяти попытается обнулиться, а там могут быть данные чужие, и получаем RUN-TIME ERROR. smile.gif

Если есть подобные примеры работы с директивой absolute, кидайте сюда, может получиться интересная статья в итоге...

ЗЫ: Странно, зачем вообще константы в Паскале .... :D


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
но ради чего?

согласен, с памятью шутки плохи smile.gif
просто любопытсво ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Altair   Изменение констант в процессе работы.   5.11.2004 1:51
xds   Не понятна суть проблемы/недовольства. const …   5.11.2004 7:35
Altair   Проблеммы нет. Вопрос в другом - зачем надо было …   5.11.2004 11:02
xds   Что касается "типизированных констант", …   5.11.2004 11:27
xds   "Нетипизированную" константу нельзя изм…   5.11.2004 11:39
Altair   xds, ты глубоко ошибаешся, посмотри - ка код внима…   5.11.2004 17:16
xds   Ах, да где же? Не вижу - ткни меня носом...:)   5.11.2004 21:56
GoodWind   и я ,кстати, тоже ... :p2:   5.11.2004 23:48
Altair   Const n=2; { это константане имеющая типа - нети…   6.11.2004 10:54
Флогримм   а для чего нужна деректива absolute?   6.11.2004 11:30
Dark   При помощи прямого доступа к памяти можно обойти а…   6.11.2004 15:01
GoodWind   Oleg_Z, понял... Флогримм, директива absolute нуж…   6.11.2004 16:59
Altair   согласен, с памятью шутки плохи :) просто любопыт…   6.11.2004 20:57
xds   Конструкция absolute имеет две синтаксических форм…   7.11.2004 6:27
xds   Ух, Олежка, вцени: program Code; uses  Dos…   7.11.2004 6:38
Флогримм   Я еще с памятью никогда не работал. Что такое сегм…   7.11.2004 10:11
Altair   В последнем примере, две переменные расположенны п…   7.11.2004 13:00
xds   Под "памятью" подразумеваются адресное п…   7.11.2004 13:14
xds   Младшим байтом! (в Intel принят порядок littl…   7.11.2004 13:21
Altair   А ты про что? :lol: :lol: :lol: Да, точно. О…   7.11.2004 13:33
xds   Я все про константы... :) мы изменяетм не n, а в…   7.11.2004 13:45
Altair   угу...в твоем примере мы действтиетльно изменяем в…   7.11.2004 13:54
xds   Не припоминаю, чтобы в моем примере изменялся вект…   7.11.2004 14:06
Altair   ты сам это сказал: :) я тебе на слово поверил :…   7.11.2004 14:43
xds   Я сказал это по поводу строчки из твоего примера :…   7.11.2004 15:15
Altair   стоп, стоп, у меня в примере мы не изменяем никаки…   7.11.2004 15:52
xds   Запись в b в твоем примере: readln(b) изме…   7.11.2004 16:38


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.11.2025 4:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name