Как вы мыслите, можно ли использовать в арифметическом выражении оператора присваивания

Как вы думаете, можно ли использовать в арифметическом выражении оператора присваивания неопределенную переменную? К каким последствиям это может
привести?

Задать свой вопрос
Илья Макокин
Как повезет. Но чаще всего к ужасным: программка либо ведет себя непредсказуемо, либо просто аварийно завершается.
1 ответ
1. Если имеется в виду язык Pascal, то получим последующее:
var: a;
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
begin
  readln(a);
  b:=a+a;
  writeln (b);
end.

Program50.pas(5) : Неизвестное имя 'b'

2. Попробуем такой вариант на Python

a =int(input())
b = a+a
print(b)


При вводе а получим на выходе 10

Получается, что в Pacal нужно объявлять переменные в секции переменных, или в любом месте программки можно объявить переменную с поддержкою служебного слова var для PascalABC.net. 1-ый код можно переписать так, и он будет работать:

var: a;
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
begin
  readln(a);
  var b:=a+a;
  writeln (b);
end.

Рузультат при введенном значении 5 равен 10





Аделина
Это правильно, если речь о необъявленной переменной. Но почаще неопределенной именуют переменную, которой не присвоили значение, т.е. неинициализированную.
Камилла Артименя
Да, основная неудача freepascal, переменнная получает место в памяти а там мусор ...
Мария
Это не беда, это абсолютно правильное поведение переменной. В С/С++ так все объекты себя водят.
Шваров Владислав
Если программер не выполнил инициализацию - означает ему так надо было. Почему компилятор против воли инициализирует числовую переменную нулем?
Артём Шармергор
Да, наверняка это логичнее чем при объявлении переменных их автоматом инициализировать
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт