Автор Koekto задал вопрос в разделе Другие языки и технологии
Как вызвать процедуру из другой процедуры в Паскале? и получил лучший ответ
Ответ от Ангелина Дарецкая[гуру]
Вызываемая процедура должна описываться ВЫШЕ вызывающей, а у тебя наоборот.
Ответ от Jurijus Zaksas[гуру]
Так же, как ты вызываешь процедуру из основной программы, никакой разницы. Ты просто параметр какой-то неправильно передаешь.
Так же, как ты вызываешь процедуру из основной программы, никакой разницы. Ты просто параметр какой-то неправильно передаешь.
Ответ от [гуру]
а что является входящим параметром процедуры revers_str? передаёшь ты в неё значение из массива m[i,j] - может тип данных не соответствует?
и процедура - называется revers_str или всё таки revers ?
а что является входящим параметром процедуры revers_str? передаёшь ты в неё значение из массива m[i,j] - может тип данных не соответствует?
и процедура - называется revers_str или всё таки revers ?
Ответ от Oleh_Huz'[гуру]
обыкновенно.
процедура 1...
begin
....
....
button1.click;// с другой процедуры к примеру вызвал процедуру ...
....
end;
обыкновенно.
процедура 1...
begin
....
....
button1.click;// с другой процедуры к примеру вызвал процедуру ...
....
end;
Ответ от Infernix Crew[гуру]
Сергей Игнатов верно сказал. Однако, бывают ситуации, когда нужно все же описать процедуру ниже вызывающей (например, при искользовании рекурсии) . В таком случае используется директива компилятора Forward. Она нужна для того, чтобы системе сначала "сказать", что такая процедура/функция уже есть, и искать ее описание надо ниже - чтобы не возникало ошибки Неизвестный идентификатор. Как использовать - добавить в Вашу программу одну лишь строчку (перед вызывающей процедурой test):
procedure test2; forward; { <== вот здесь}
procedure test;
begin
test2;
end;
procedure test2;
begin
writeln('Выполнилось! ');
end;
Сергей Игнатов верно сказал. Однако, бывают ситуации, когда нужно все же описать процедуру ниже вызывающей (например, при искользовании рекурсии) . В таком случае используется директива компилятора Forward. Она нужна для того, чтобы системе сначала "сказать", что такая процедура/функция уже есть, и искать ее описание надо ниже - чтобы не возникало ошибки Неизвестный идентификатор. Как использовать - добавить в Вашу программу одну лишь строчку (перед вызывающей процедурой test):
procedure test2; forward; { <== вот здесь}
procedure test;
begin
test2;
end;
procedure test2;
begin
writeln('Выполнилось! ');
end;
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Как вызвать процедуру из другой процедуры в Паскале?
спросили в Ford
Forward в Pascal и других языках
Паскаль однопроходный компилятор, поэтому,
procedure P1;
begin
P2(10);
подробнее...
Forward в Pascal и других языках
Паскаль однопроходный компилятор, поэтому,
procedure P1;
begin
P2(10);
подробнее...