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

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

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

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


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

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

Репутация: -  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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Altair
сообщение 7.11.2004 10:43
Сообщение #2


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

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

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


ты сам это сказал:
Цитата
мы изменяетм не n, а вектор int 8.

smile.gif
я тебе на слово поверил rolleyes.gif :D :P smile.gif


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

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


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

 



- Текстовая версия 20.07.2025 13:49
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"