![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
что будет выведено на печать?
Код:
program C; var a,b,c,d:integer; procedure P(var b:integer;c:integer); var d:integer; begin a:=5;b:=6;c:=7;d:=8;(writeln(a,b,c,d)end; begin a:=1;b:=2;c:=3;d:=4;P(a,b);writeln(a,b,c,d)end. |
|
#2
|
||||
|
||||
|
5678
6734 |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
||||
|
||||
|
Нескомпилится этот код.
|
|
#5
|
||||
|
||||
|
почему???
ну у мя щас экзамен и мне преподу надо объяснить откуда все это взялось...помогите пожалуйста... |
|
#6
|
||||
|
||||
|
Согласен с Aristarh Dark, ошибка при компиляции будет, причем не в одном месте. Догадайтесь почему
![]() |
|
#7
|
||||
|
||||
|
program C;
var a,b,c,d:integer; procedure P(var b:integer;c:integer); var d:integer; begin a:=5;b:=6;c:=7;d:=8;(writeln(a,b,c,d)end; |
|
#8
|
||||
|
||||
|
потому что дано больше значений?)))
ну сначала бегин с одним потом бегин со вторым?))) |
|
#9
|
||||
|
||||
|
я все равно не понимаю почему ошибка объясните пожалуйста.....
|
|
#10
|
||||
|
||||
|
Скобка лишняя, я ее выделил цветом специально
|
|
#11
|
||||
|
||||
|
там без скобки))))
я опечаталась))) |
|
#12
|
||||
|
||||
|
Тогда другое дело. На печать будет выведено я думаю следующее:
Сначала результат выполнения процедуры: 5 6 7 8 потом уже те значения, что в основном теле программы: 6 2 3 4 но поскольку в процедуру значение переменной а передается как ссылка, то а будет равно значению переприсвоенному в процедуре. Там хитро накручено. |
|
#13
|
||||
|
||||
|
Правильный и красивый код:
Код:
program C1; {название программы}
var a,b,c,d:integer; {объявление переменных}
procedure P(var b:integer;c:integer); {объявляем процедуру в которую передаеться два параметра b и c}
var d:integer;{объявление переменных в процедуре, т.е. локальная переменная}
begin
a:=5; {присваиваем переменной а значение 5 }
b:=6;
c:=7;
d:=8;
writeln(a,b,c,d); {выводим на экран переменные a,b,c,d}
end;
begin {начало самой программы}
a:=1;{присваиваем переменной а значение 1 }
b:=2;
c:=3;
d:=4;
P(a,b);{вызываем процедуру и передаем в нее переменные a b}
writeln(a,b,c,d); {выводим на экран переменные a,b,c,d}
end.сперва выдаст 6678 потом 6234 |
|
#14
|
||||
|
||||
|
Цитата:
Ну а результат уже рассказал friz |
|
#15
|
||||
|
||||
|
И я о том-же.
|