![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Altair |
![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Код 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. ![]() Если есть подобные примеры работы с директивой absolute, кидайте сюда, может получиться интересная статья в итоге... ЗЫ: Странно, зачем вообще константы в Паскале .... :D -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
xds |
![]()
Сообщение
#2
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что касается "типизированных констант", то теперь трудно судить, чем руководствовались разработчики Borland, когда решили в BP инициализированные переменные определять через ключевое слово const.
Польза "настоящих" ("нетипизированных") констант очевидна - под них не выделяется место в сегменте данных, и компилятор может использовать в генерируемом коде инструкции с непосредственной адресацией. К тому же, этот тип констант изначально присутствовал в Паскале как простейшее макросредство. -------------------- The idiots are winning.
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:45 |