Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Проблема с Geany (pascal) не правильно работает под пользователем Ubuntu 11.04  (Прочитано 1329 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн max220

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
установил Geany и Pascal  под моей учетной записью все работает...
создал еще одну учетную запись User для учеников и там неправильно работает например:
 program fromMax;
 var i : byte;
 BEGIN
 i:=i+10;
 END.
Выдает ошибку:
max.pas(4,4) Warning: Variable "i" does not seem to be initialized

Под моей учеткой все работает замечательно. давал User права админа не помогло

Оффлайн Meo

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Это может показаться странным, но всё у User работает именно правильно.
Вы обратили внимание на то, о чём компилятор предупреждает? (это именно предупреждение, а не ошибка)
Цитировать
max.pas(4,4) Warning: Variable "i" does not seem to be initialized
Это проблема не Geany&Pascal и не прав доступа, а программиста, который ими пользуется. И на выходе получаем непредсказуемо работающие программы.
Вообще-то по всем правилам хорошего программирования переменные перед вычислениями нужно инициализировать (к примеру, i:=0 сразу за begin), ибо они совершенно не обязаны после объявления быть равны 0 (там вообще может находиться совершенно случайная величина) и ворнинг компилятора совершенно справедлив (i:=i+10 в Вашем случае может быть равно чему угодно, включая ошибку превышения диапазона значений объявленной переменной (0..255 для byte), если непроинициализированная i перед вычислением окажется больше 245) и то, что Вам везло под своей учёткой совершенно не означает, что такая примитивная программа будет работать всегда одинаково и показывать одинаковый результат, равный 10.
Даже приснопомянутый ТурбоПасквиль ДОСовский этого требовал. Помню, когда долго соображал (понадеявшись, что после обьявления переменной она обязана инициализированться нулём), почему правильно написанное вычисляется вообще непредсказуемо (ну, а компилятор даж ворнингов не показывал).
Если же Вы считаете, что всё так и должно быть, то отключите в конфигурации компилятора проверку на проинициализированность переменных (что под Вашим пользователем, видимо и сделано было, а под User используется дефолтная конфига с ужесточёнными проверками).
« Последнее редактирование: 20 Октября 2011, 17:46:21 от Meo »

Оффлайн max220

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
БЛагодарен за ответ!
сейчас буду пробовать.
в ТурбоПаскаль я никогда не присваивал обьявленым перменным ноль, никогда проблем небыло... хотя по логике это конечно неправильно.
буду искать где эта функция отключается потомучто в учебниках школьных нет такого "правила" присваивать ноль.

 

Страница сгенерирована за 0.037 секунд. Запросов: 25.