Что будет выведено на экран в результате работы программы?Объясните эту задачу.
Program Main; Uses crt; Var a,b,c,d:integer; Function f(var b:integer; c:integer):integer; Var d:integer; Begin a:=2; b:=b+1; d:=3; c:=b-a; Writeln(a,b,c,d); f:=d; end; begin a:=0; b:=0; c:=0; d:=0; d:=f(a,b); Writeln(a,b,c,d); end.
Код к задаче: «Что будет выведено на экран в результате работы этой программы?»
Листинг программы
Program Main; Function f(var b:integer; c:integer):integer; //данные параметры согласно вызову функции (d:=f(a,b)) можно записать (для понимания только) как Function f(var a:integer; b:integer):integer; //передача параметра по ссылке означает, что мы передаём функции ссылку на исходное значение. т.е. если мы изменяем параметр внутри функции — он изменяется и «снаружи». модификатор var (есть ещё const, если что) //передача по значению означает, что мы делаем копию переменной в памяти. на деле это значит, что изменения параметра при выходе из тела функции не сохраняются Var d:integer; //теперь по области видимости: если у нас имеются глобальные переменные — они могут изменяться внутри функции. это крайне не рекомендуется. лучше передавать по ссылке как параметр. //если же мы в теле функции объявляем переменную с таким же именем, как и глобальная — в теле же функции по имени мы будем иметь доступ только к локальной переменной. Begin a:=2; //обращение к глобальной переменной. — значения глобальных переменных: a = 2; bl = 2; bg = 0; cl = 0; cg = 0; dl не определено (переменная не инициализирована); dg = 0 b:=b+1; //изменение ag через ссылку (bl = ag): a = 2+1=3; bl = 2+1=3; bg = 0; cl = 0; cg = 0; dl = не определено; dg = 0 d:=3; //изменение dl: a = 3; bl = 3; bg = 0; cl = 0; cg = 0; dl = 3; dg = 0 c:=b-a; //изменение cl: a = 3; bl = 3; bg = 0; cl = 3-3=0; cg = 0; dl = 3; dg = 0 Writeln(a,b,c,d); //вывод a, bl, cl, dl: 3 3 0 3 f:=d; //возвращаем dl = 3 end; var a, b, c, d: Integer; begin a:=0; b:=0; c:=0; d:=0; //ag = 0; bg = 0; cg = 0; dg = 0 d:=f(a,b); //ag = 3; bg = 0; cg = 0; dg = 3 Writeln(a,b,c,d); //вывод ag, bg, cg, dg: 3 0 0 3 end.
Источник: studassistent.ru
PASCAL. Урок 1. Ввод (write/writeln). ПАСКАЛЬ
ПОМОГИТЕ ПЖЖЖЖЖЖЖЖЖЖ
Что будет выведено на экран после выполнения следующей программы:
begin
writeln (‘Hello, ’);
write (‘World!’)
end.
Объяснение:После «Writeln» напишет «Hello,» курсор перейдёт на следующую строку,и на ней «Write» напишет «World!»(без перехода на следующую строку курсора).
Новые вопросы
Литература, 9 месяцев назад
Русский язык, 9 месяцев назад
Математика, 5 лет назад
Химия, 5 лет назад
Литература, 7 лет назад
Музыка, 7 лет назад
Лучшие помощники
Помощников пока нет:( Станьте первым!
- 2023 — Znanijam.net | Бесплатные знания для всех
- Контакты
- Пользовательское соглашение
- Политика обработки данных
Входя или регистрируясь на сайте, вы принимаете условия Политики обработки данных и Пользовательского соглашения.
#2.2 — «Поколение Python»: курс для начинающих stepik.org Ответы и решения | Команды print и input
Источник: znanijam.net