|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.05.2012, 21:53 | #1 |
Форумчанин
Регистрация: 20.12.2011
Сообщений: 102
|
обнуление переменной
не могли бы вы сказать при каких случаях нужно обнулять переменную
например если такая программа uses crt; var i, j:integer; s:string; begin clrscr; s:='reding'; i:=2; delete(s,i,j); Здесь я хочу чтобы переменная j была равной 0,но я ее не обнулил удовлетворившиеся тем ,что она по умолчанию равна нулю ,так можно делать в турбо паскале 7.0? |
14.05.2012, 21:57 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Впрочем если не ошибаюсь локальные переменные в паскале тоже предусмотрительно обнуляются.
I'm learning to live...
|
|
14.05.2012, 23:35 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> локальные переменные в паскале тоже предусмотрительно обнуляются
только строки, динамические массивы и подобные типы. В остальных переменных будет мусор. > так можно делать можно, но правила хорошего тона звучат так: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
15.05.2012, 07:39 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
15.05.2012, 09:55 | #5 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
А чем вас принудительная инициализация переменных не устраивает? Согласен, лишний код, но зато точно известно, что и где находится, не полагаясь на прихоти компилятора. Вы потратите лишние 10 секунд, но выиграете несколько минут при отладке такой ошибки, когда она проявится.
Правильно поставленная задача - три четверти решения.
|
15.05.2012, 10:21 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я КАТЕГОРИЧЕСКИ за предварительную иницилизацию переменных.
Мой первый учитель программирования говорил, всегда, любую переменную, прежде чем прочитать/использовать, обязательно нужно записать (проиницилизировать!). Обязательно! иначе бёрем предложенный код. помещаем его в функцию. и оп-па. "подарочек" - результаты функции становятся НЕПРЕДСКАЗУЕМЫМИ! |
15.05.2012, 11:15 | #7 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Цитата:
Я очень долго приделживался правила обязательной инициализации. Но чисто объективно - зачем делать дважды одно и то же? Так что с некоторых пор полагаюсь на системное обнуление (в глобальных переменных и при динамической аллокации). Не вижу смысла в такой перестраховке.
Предпочитаю на "ты".
|
|
15.05.2012, 11:59 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
TinMan, а мне импонирует подход компиляторов .NET
попробуйте написать что-то вроде: Код:
и это, имхо, правильно!! |
15.05.2012, 13:31 | #9 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Хорошо, есть и другой:
Паскаль - язык, специально придуманный для обучению программировать. И вполне естественно, если после обучения человек будет программировать на каком-то другом языке. И в этом случае полученная в период обучения привычка НЕ инициализировать переменные может сыграть с ним злую шутку. И еще: при реальном программировании львиная доля кода приходится на подпрограммы, а в демонстрационном примере обычно код для простоты находится внутри основной программы. Если при перенесении кода из демонстрационного примера в реальную программу его приходится "допиливать", - это плохой код. |
15.05.2012, 13:44 | #10 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти значение переменной y в зависимости от значения переменной х | Rishi | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 11.05.2011 20:25 |
обнуление | kuzjaca | Microsoft Office Access | 7 | 24.02.2011 10:03 |
gcc inline assembler - обнуление переменной | gvf | Помощь студентам | 1 | 13.06.2010 19:33 |
Обнуление переменной | [MI_nor] | Общие вопросы C/C++ | 3 | 05.11.2008 18:01 |
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) | Arkuz | Общие вопросы Delphi | 12 | 25.09.2007 20:47 |