| Цитата(iff @ 26.4.2012, 18:31) | Цитата(Mirkes @ 26.4.2012, 17:29 ) | | Бред! |
Процедура (как и функция) может изменять значения параметра, переданного по ссылке.
Цитата(Mirkes @ 26.4.2012, 17:29 ) | | Процедуры нельзя складывать |
Да. Но можно прибавлять значение параметра, которое было передано процедуре по ссылке, или вообще процедура сама может прибавлять к переменной то, что нужно.
| Код | Procedure AddMax(Var X : Integer; A, B, C : Integer); Var Result : Integer; Begin Result := A; If B > Result Then Result := B; If C > Result Then Result := C; X := X + Result; End;
Var A, B, C, D, S : Integer; Begin ReadLn(A, B, C, D); AddMax(S, A, B, C); AddMax(S, A, C, D); AddMax(S, A, B, D); AddMax(S, B, C, D); WriteLn(S); End.
|
|
Я в курсе того, что могут процедуры. А в задаче было указано другое. Теперь по поводу кода. В соседней ветке Вы поправили меня переходом из Дельфийского синтаксиса в Паскалевский, а в этом варианте не обнулили переменную суммирования. По конвенциям, стандартам и описаниям Паскаль никогда не задает гарантированных начальных значений каким бы то ни было переменным. Так что в начале тела программы следует добавить S:=0; |