Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/62: Рейтинг темы: голосов - 62, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28

объявление переменной

30.09.2009, 18:27. Показов 13186. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
необходимо ли в начале программы присваивать переменным значение равное нулю?
т.е. у нас есть программа со счетчиком цикла
перед входом в цикл он должен равняться нулю, больше перед циклом он не используется

т.е. без разницы писать
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
Program ...;
var a;b,schet;
begin
readln(a)
while a<100 do
begin
b:=b+a;
a:=a*2;
schet:=schet+1
end;
wrileln(b,schet)
end.
или надо
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Program ...;
var a;b,schet;
begin
 
schet:=0;
b:=0;
 
readln(a)
while a<100 do
begin
b:=b+a;
a:=a*2;
schet:=schet+1
end;
wrileln(b,schet)
end.
?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2009, 18:27
Ответы с готовыми решениями:

Переменной Y присвоить значение той переменной, которое находится между двумя другими на числовой оси
Даны три вещественных, не равных между собой числа a, b, c. Переменной Y присвоить значение той переменной, которое находится между двумя...

Объявление переменной вызывает ошибку 86 при компиляции
Здравствуйте. При компиляции выдаёт ошибку 86 о том, что нет двоеточия, на строку &quot;o:=0&quot; Соль в том, что двоеточие стоит....

По значению переменной x (названию сезона) присвоить переменной t соответствующее значение и вывести на экран
Дано описание: Type сезон= (зима, весна, лето, осень); Var x: сезон; t: (тепло, жарко, холодно); По значению переменной x (названию...

15
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
30.09.2009, 18:31
надо присваивать
0
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28
30.09.2009, 18:34  [ТС]
т.е. начальное значение переменной зависит от куска памяти, что выделил компилятор и не равно нулю?
0
Реальность Нереальна!
 Аватар для PAZITIV
352 / 128 / 7
Регистрация: 02.08.2009
Сообщений: 3,216
Записей в блоге: 1
30.09.2009, 18:39
ну во-первых нужно присваивать тип переменным, а во-вторых, по-моему, значение переменных по умолчанию считается равным нулю, если ранее никакое значение не присвоено
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
30.09.2009, 18:41
ну как вам сказать... я помню со школы что обьявлять надо)))
хотя в Фри паскале у меня вродь оно "0" присваивает)
0
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28
30.09.2009, 18:47  [ТС]
вот и у меня один учитель не обращал на это внимание, второй говорил что надо присваивать
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
30.09.2009, 18:51
Присваивай! 100 раз будет ноль, а на 101-й раз что-нибудь выкинет. Проверено опытом.
0
Реальность Нереальна!
 Аватар для PAZITIV
352 / 128 / 7
Регистрация: 02.08.2009
Сообщений: 3,216
Записей в блоге: 1
30.09.2009, 18:56
Puporev, если честно, первый раз такое слышу!!!Например у меня в универе наш препод за каждый лишний символ "нагибал"
1
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28
30.09.2009, 21:36  [ТС]
написал маленькую программу
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program proverka;
var
a:longint;
b:real;
c:char;
f: text;
begin{$I-}
assign(f,'file.txt');
reset(f);
append(f);
{$I+}
writeln(f,a,'  ',b:1:10);
close(f)
end.
после этого запустил скомпилированный файл 1430 раз
получилось 1430 строк
Code
1
0  0.0000000000
Добавлено через 1 час 41 минуту
36 986 строк(файл 600кБ)
все одно и то-же

сейчас переделаю программу...

сделал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program proverka;
var
a:array[-999..999] of longint;
i:longint;
b:array[-999..999] of real;
c:char;
f: text;
begin{$I-}
assign(f,'file.txt');
reset(f);
append(f);
{$I+}
for i:=-999 to 999 do
writeln(f,a[i],'  ',b[i]:1:10);
writeln;
close(f)
end.
запускаю ее, получается 1999 строк(999-(-999)+1) + 1 пустая

запускаю ее через батник
Code
1
2
3
4
:s
call proverka.exe
goto s
exit
очень быстро файл разрастается до огромных размеров(увеличивает размер примерно на мегабайт в секунду)

через 10 секунд смотрю получившийся файл, содержащий 667795 строк
и все они:
0 0.0000000000
поиск говорит что никаких цифр кроме нулей нет

это считается доказательством что даже 7 Borland Pascal ставит значение переменных при их создании на нуль?
0
Реальность Нереальна!
 Аватар для PAZITIV
352 / 128 / 7
Регистрация: 02.08.2009
Сообщений: 3,216
Записей в блоге: 1
30.09.2009, 21:40
LeXa4894, а не легче было посмотреть в лит-ре данный раздел, чем писать программу?
0
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28
30.09.2009, 21:43  [ТС]
а вот как раз где ни искал, не нашел нигде
вот поэтому и обратился сюда
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
30.09.2009, 21:45
по моему я встречал такое, что если пишешь программу, в ней присваиваешь переменным какие-то значения и потом закрываешь ее и начинаешь новую программу и в ней используешь переменные с таким же именем, то значение переменных не обнуляется, а остается такое же как было в предыдущей программе.
вроде после этого я теперь всегда обнуляю переменные в программе )))
0
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28
30.09.2009, 21:52  [ТС]
Цитата Сообщение от TAVulator Посмотреть сообщение
по моему я встречал такое, что если пишешь программу, в ней присваиваешь переменным какие-то значения и потом закрываешь ее и начинаешь новую программу и в ней используешь переменные с таким же именем, то значение переменных не обнуляется, а остается такое же как было в предыдущей программе.
вроде после этого я теперь всегда обнуляю переменные в программе )))
у меня такого нет...
сделал прогу, сказал в что переменная а=5
потом не закрывая паскаля начал писать программу вывода а, вывела 0

может из-за того что я сижу из под волкова, его русифицирую и уже после запускаю паскаль
0
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
01.10.2009, 01:24
PAZITIV, Всё нормально, я например литературу по Паскалю так и не почитал, может и зря, всё изучил на форуме и в инете, а сейчас когда читал тему не мог вспомнить что происходит при статистическом выделении памяти для переменных в Паскале, а после того как я видел такое доказательство, то я его не забуду(код как-то всегда лучше запоминается чем теория).

Не по теме:

В С я помню что происходит, а в Паскале нет, вот такая вот дилемма...

0
2 / 2 / 0
Регистрация: 30.09.2009
Сообщений: 28
12.12.2009, 21:28  [ТС]
кажется нашел ответ
на давно поставленный мною вопрос)
в ОС Windows происходит очистка памяти при запуске программы
в Unix-like ОС очистки памяти не происходит
так что для кросс-платформености надо таки переучиваться объявлять начальное значение переменной
0
0 / 0 / 0
Регистрация: 11.04.2011
Сообщений: 9
13.10.2013, 11:44
Только что столкнулся с этой проблемой. При объявлении локальной переменной. Всегда обнулял на всякий случай все переменные - а тут - опростоволосился. Лучше обнулять заранее все, конечно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2013, 11:44
Помогаю со студенческими работами здесь

Присвоить переменной max наибольшее, а переменной min наименьшее из значений следующих величин
Дано вещественное число х. Присвоить переменной max наибольшее, а переменной min наименьшее из значений следующих величин е в степини х,...

Как присвоить переменной файл если, допустим, путь к файлу находится в переменной s?
Ну, допустим, у меня в переменной s хранится путь к файлу. Как переменной, допустим, f присвоить файл путь к которому записан в переменной...

Как из переменной вида Real достать целую часть и сделать её переменной порядкового типа?
В программе была переменная типа Real. Применил к этой переменной функцию Int(x) (возвращает целую часть х). Как известно, на выходе тоже...

При присваивании символа unicode переменной типа char происходит выход за диапазон переменной
В программе при присваивании символа unicode переменной типа char происходит выход за диапазон переменной. Не могу понять в чём моя...

Присвоить переменной max наибольшее, а переменной min – наименьшее
Помогите с решением задачи: Дано вещественное число х. Присвоить переменной max наибольшее, а переменной min – наименьшее из значений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru