Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 12:47   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Адрес ячейки памяти при каждом запуске скорее всего будет отличен от предыдущего (и АртМоней это подтверждает), константа же это число всегда.
локальные переменные все равно относительно вершины стека адресуются, а не по абсолютным адресам.

просто почему нельзя?
причины так и не увидел.(ибо наш случай просто короче)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.12.2010, 12:50   #22
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Уважаемый GunSmoker, вряд ли мы сможем придти к взаимопонимаю, хотя бы потому что я Вас пытаюсь понять, а Вы меня нет. Я отвечу, потому что это может быть интересно остальным.
Вы все опять собрали в кучу - такая конструкция запрещена и для глобальный переменных - в Паскале. Таким образом, Вирт здесь ни при чем. А вот незнание первоисточников... Хотя ладно, не будем превращать тему ТС в полный срач. Если у Вас есть желание выразить свое мнение относительно меня, а также Вирта, либо кого-то еще, то есть о ком-то лично, прошу в лс.
Цитата:
локальные переменные все равно относительно вершины стека адресуются, а не по абсолютным адресам.
Вы так и не поняли, что константа это число. Что такое Пи? Это не переменная, а конкретное значение. Причем здесь локальные переменные, глобальные?

Цитата:
просто почему нельзя?
причины так и не увидел.(ибо наш случай просто короче)
В общих словах - не соответствует стилю написания программ.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 22.12.2010 в 12:53.
Utkin вне форума Ответить с цитированием
Старый 22.12.2010, 12:56   #23
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
В общих словах - не соответствует стилю написания программ.
короче выходит девиз: "сокращение кода не в нашем стиле"
просто мне порой тяжело после плюсов.
Цитата:
Причем здесь локальные переменные, глобальные?
да я вообще то про разный адрес говорил.(просто в цитате чуть лишнего взял)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.12.2010, 13:03   #24
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
короче выходит девиз: "сокращение кода не в нашем стиле"
Конечно, что значит сокращение кода? Реально ведь экзешник от этого меньше не станет. Это все революция в умах. Иное дело, что при проектировании языка Вирт навязывал программисту определнные правила, которые по его мнению, позволяли писать программы так, чтобы число ошибок было меньше. Это как ремень безопасности в машине - в Паскале если ремень не пристегнут (или если нет рулона туалетной бумаги - кому как нравится), машина не поедет. Поэтому Паскаль требует меньше знаний от программиста, чем С++, к примеру.

Цитата:
просто мне порой тяжело после плюсов.да я вообще то про разный адрес говорил.(просто в цитате чуть лишнего взял)
Это дело привычки - мне не нравятся плюсы именно своим синтаксисом, однако я из этого не делаю трагедии .
Насчет адреса - тогда это я не так понял .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 22.12.2010 в 13:07.
Utkin вне форума Ответить с цитированием
Старый 22.12.2010, 13:21   #25
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

У-у-ух. Ребят, кончай боталии. Я все понял.
Я это так, в общеобразовательных целях спросил. В нэте ничего не попалось. Я думал пояснят потихому, так мол и так, а тема то горячая оказалась.
Sibedir вне форума Ответить с цитированием
Старый 22.12.2010, 13:29   #26
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Serge_Bliznykov, касательно Вашего кода - это вообще кощунство . Пытаться присвоить значение константе... Дайте валерьянки !
В первом случае все правильно, второй можно трактовать так:
Есть число 0 и далее по тексту 0=0+ххх. ЧИслу нельзя присвоить значение выражения, ему вообще ничего нельзя присваивать.
Это же сами понимаете что, ну также нельзя .
Вы издеваетесь?!
Ну как быстренько почитать, что такое "ТИПИЗИРОВАННАЯ КОНСТАНТА"
(кстати, в Turbo Pascal она уже была)
проверить работоспособность кода и убедиться, что значение типизированной константы - ИЗМЕНЯЕТСЯ!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.12.2010, 13:31   #27
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Проверил. Компилятор меня обматерил (Delphi7)
Код:
procedure TForm1.Button2Click(Sender: TObject);
const
  sum: Integer = 0;
var
  i: Integer;
begin
  for i := 1 to 10 do
    sum := sum + 1;
  ShowMessage (IntToStr( sum));
end;
Что делаю не так?

Последний раз редактировалось Sibedir; 22.12.2010 в 13:33.
Sibedir вне форума Ответить с цитированием
Старый 22.12.2010, 13:33   #28
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
[Error] Unit1.pas(43): Left side cannot be assigned to
Проверял в ФормКреате...
Если вынести объявление как глобальные эффект такой же (опять же для ФормКреате).
Может речь шла о Паскале?

-----ДОБАВЛЕНО--------
ТурбоПаскаль 7.1. Принимает такую конструкцию...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 22.12.2010 в 13:45.
Utkin вне форума Ответить с цитированием
Старый 23.12.2010, 21:03   #29
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы меня удивили...

проверил на двух доступных мне компиляторах Delphi:
Delphi 5
Delphi 2006

Delphi 5 на подобный код даже warning не выдал, всё откомпилировал и всё работало.

А вот дальше, борладовцы, вероятно подправили поведение типизированных констант - и Delphi 2006 заявил, что левой стороне (то бишь sum) присвоить ничего нельзя...

но FreePascal 2.4.0 отработал так, как надо:
Код:
const
  sum: Integer = 0;
var
  i: Integer;
begin
  for i := 1 to 10 do
    sum := sum + 1;
  WriteLn ( sum );
  Readln;
end.
вот результаты поиска по типизированным константам:


Ладно. Раз в новых версиях такая фича закрыта, значит я свой вопрос снимаю...

прошу прощения, что вытащил древнюю (и, к моему удивлению, незнакомую форумчанам) фишку на свет божий..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.12.2010, 21:48   #30
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Вы в настройки проекта давно последний раз заглядывали?

Про writable consts on я для кого говорил?

Предоставим слово и Barry Kelly.

Цитата:
вот результаты поиска по типизированным константам
Как щас вам укажет Utkin, батько Вирт про типизированные константы даже не заикался.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 23.12.2010 в 21:59.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56
Глобальные и локальные переменные Kapitann JavaScript, Ajax 2 03.08.2010 14:24
Как обычно делаются такие локальные переменные в методах классов? Oleg_SK Общие вопросы C/C++ 8 11.07.2010 04:09
Локальные и глобальные переменные. Proger10 Общие вопросы Delphi 1 04.05.2009 05:55
Локальные минимумы и их номера. f4rr3l Паскаль, Turbo Pascal, PascalABC.NET 5 06.01.2009 21:51