Как вызвать процедуру? - Pascal
Формулировка задачи:
Вопщем, мне нада вызвать процедуру Krest_1 с ввода клавиатуры. Например, ввожу "1" и получаю процедуру
"Krest_1". нада как то присвоить процедуру к переменной, но я всю голову сломал, не знаю как.
Program gravika;
Var
K : integer;
N : integer;
Procedure Krest_1;
Begin
Line( 40, 10, 80, 50);
Line( 40, 50, 80, 10);
end;
Procedure Krest_2;
Begin
Line( 40, 49, 80, 89);
Line( 40, 88, 80, 48);
end;
Procedure Krest_3;
Begin
Line( 79, 10, 119, 50);
Line( 79, 50, 119, 10);
end;
Procedure Krest_4;
Begin
Line( 79, 49, 119, 89);
Line( 79, 88, 119, 48);
end;
Procedure Nol_1;
Begin
Ellipse( 80, 50, 40, 10);
End;
Procedure Nol_2;
Begin
Ellipse( 80, 49, 40, 89);
End;
Procedure Nol_3;
Begin
Ellipse( 79, 50, 119, 10);
End;
Procedure Nol_4;
Begin
Ellipse( 79, 49, 119, 89);
End;
Begin
Begin
Rectangle( 40, 10, 80, 50);
Rectangle( 40+39, 10, 80+39, 50);
Rectangle( 40, 10+39, 80, 50+39);
Rectangle( 40+39, 10+39, 80+39, 50+39);
WriteLn;
WriteLn('Âûáåðåòå êðåñòèê ');
Read;
end;
end.Решение задачи: «Как вызвать процедуру?»
textual
Листинг программы
VAR n:integer;
PROCEDURE Krest (n:integer); Begin
CASE n OF
1:{и здесь рисуешь крест для цифры 1};
2:{и здесь рисуешь крест для цифры 2};
3:{и здесь рисуешь крест для цифры 3};
{и так далее}
end;
end;
BEGIN
Readln (n);
Krest (n);
END.
Объяснение кода листинга программы
- Создаётся переменная
nтипаintegerдля хранения введенного числа. - Описывается процедура
Krestс параметромnтипаinteger. - Внутри процедуры используется конструкция
CASE..OFдля выполнения различных действий в зависимости от значенияn. - Для каждого возможного значения
n(начиная с 1 и так далее) задаются действия для рисования креста. - В основной части программы пользователю предлагается ввести значение переменной
nс клавиатуры. - Затем процедура
Krestвызывается с передачей в неё значенияnдля выполнения соответствующих действий в зависимости от введенного числа.