Вопрос задан 24.05.2026 в 08:16.
Предмет Информатика.
Спрашивает Курнов Андрей.
Что напечатает следующая программа? program p3; var x,y:integer; procedure p1 (var a,b:integer); begin a:=sqr(a); b:=sqr(a)+a; end; procedure p2 (a,b:integer); begin a:=sqr(a); b:=sqr(b)+b; end; begin x:=2; y:=2; p1(x,y); writeln ('x=',x,' y=',y); p2(x,y); writeln ('x=',x,' y=',y); end.
Ответы на вопрос
Отвечает Морський Макс.
Разберём пошагово, что делает эта программа на Pascal.
Исходный код программы:
pascalprogram p3;
var x, y: integer;
procedure p1(var a, b: integer);
begin
a := sqr(a);
b := sqr(a) + a;
end;
procedure p2(a, b: integer);
begin
a := sqr(a);
b := sqr(b) + b;
end;
begin
x := 2;
y := 2;
p1(x, y);
writeln('x=', x, ' y=', y);
p2(x, y);
writeln('x=', x, ' y=', y);
end.
Пошаговый разбор
1. Начальные значения:
x = 2
y = 2
2. Вызов p1(x, y)
pascalprocedure p1(var a, b: integer);
begin
a := sqr(a); // a = 2^2 = 4
b := sqr(a) + a; // b = 4^2 + 4 = 16 + 4 = 20
end;
Важно, что параметры a и b объявлены как var, то есть передаются по ссылке. Это значит, что изменения внутри процедуры изменяют исходные переменные x и y.
После выполнения p1:
x = 4
y = 20
Вывод:
x=4 y=20
3. Вызов p2(x, y)
pascalprocedure p2(a, b: integer);
begin
a := sqr(a); // a = 4^2 = 16
b := sqr(b) + b; // b = 20^2 + 20 = 400 + 20 = 420
end;
Параметры a и b объявлены без var, то есть передаются по значению. Это значит, что изменения внутри процедуры не влияют на x и y в основной программе.
После выполнения p2:
x = 4
y = 20
Вывод:
x=4 y=20
Итоговый вывод программы:
x=4 y=20
x=4 y=20
Если кратко:
-
p1изменяетxиy, потому что параметрыvar. -
p2не изменяетxиy, потому что параметры по значению.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

