Val (choice2, choice, code);. Then writeln ('Вы ввели не число!’
if (code<>0)
then writeln ('Вы ввели не число!’,
’ Повторите ввод! ');
until code=0 ;
Case choice of
Begin
{ Реализация первого варианта действий }
{ операторы }
. . .
End;
Begin
{ Реализация второго варианта действий }
{ операторы }
. . .
End;
Begin
{ Реализация третьего варианта действий }
{ операторы }
. . .
End;
Begin
{Реализация четвёртого варианта действий }
{ операторы }
. . .
End;
Begin
writeln ('Вы действительно хотите’,
’ закончить работу? (Y/N)');
Readln (exit_ans);
if exit_ans = 'Y'
then F:=false;
End;
Else writeln ('Incorrect menu point',choice);
end; { case }
end; { While }
writeln ('Спасибо за работу! До свидания!');
Readln;
End.
Далее необходимо отладить программу. Для этого подойдут пункты оператора CASE, в ветвях которого будут стоять только операторы вывода на монитор, которые только выводят отладочную информацию для своего пункта, например, для 1 пункта меню:
Begin
{Реализация первого варианта действий }
Writeln (‘Выбран и работает 1 пункт меню’);
End;
И т.д.по порядку.
После отладки можно приступать к «наполнению» составных операторов в ветвях оператора CASE, по очереди реализуя соответствующие варианты вычислений – ввод исходной информации, варианты обработки, выход из программы.
Repeat
writeln(' Заголовок меню');
writeln('1. Первый вариант действий');
writeln('2. Второй вариант действий ');
writeln('3. Третий вариант действий’);
writeln('4. Четвёртый вариант действий ');
writeln('5. Выход из программы');
writeln('Ваш выбор:');
АРХИВ
PROGRAM Menu;
Var
exit_ans : string;
choice, code : integer;
F, Fl : boolean;
{Тело главной вызывающей программы}
Begin
{ clrscr; }
F := true; { Флаг управления циклом меню }
while (F = true) do
Begin
Repeat
{ clrscr;}
writeln(' Заголовок меню');
writeln('1. Первый вариант действий');
writeln('2. Второй вариант действий ');
writeln('3. Третий вариант действий’);
writeln('4. Четвёртый вариант действий ');
writeln('5. Выход из программы');
writeln('Ваш выбор:');
Readln (choice2);
Val (choice2, choice, code);
if (code<>0)
then writeln ('Вы ввели не число!’,
’ Повторите ввод! ');
until code=0 ;
Case choice of
Begin
{ Реализация первого варианта действий }
{ операторы }
. . .
End;
Begin
{ Реализация второго варианта действий }
{ операторы }
. . .
End;
Begin
{ Реализация третьего варианта действий }
{ операторы }
. . .
End;
Begin
{Реализация четвёртого варианта действий }
{ операторы }
. . .
End;
Begin
writeln ('Вы действительно хотите’,
’ закончить работу? (Y/N)');
Readln (exit_ans);
if exit_ans = 'Y'
then F:=false;
End;
end; { case }
end; { While }
writeln ('Спасибо! До свидания!');
Readln;
End.
PROGRAM Menu;
Var
exit_ans : string;
choice, code : integer;
F, Fl : boolean;
{Тело главной вызывающей программы}
Begin
{ clrscr; }
F := true; { Флаг управления циклом меню }
while (F = true) do
Begin
Repeat
{ clrscr;}
writeln(' Заголовок меню');
writeln('1. Первый вариант действий');
writeln('2. Второй вариант действий ');
writeln('3. Третий вариант действий’);
writeln('4. Четвёртый вариант действий ');
writeln('5. Выход из программы');
writeln('Ваш выбор:');
Readln (choice2);
Val (choice2, choice, code);
if (code<>0)
then writeln ('Вы ввели не число!’,
’ Повторите ввод! ');
until code=0 ;
Case choice of
Begin
{ Реализация первого варианта действий }
{ операторы }
. . .
End;
Begin
{ Реализация второго варианта действий }
{ операторы }
. . .
End;
Begin
{ Реализация третьего варианта действий }
{ операторы }
. . .
End;
Begin
{Реализация четвёртого варианта действий }
{ операторы }
. . .
End;
Begin
writeln ('Вы действительно хотите’,
’ закончить работу? (Y/N)');
Readln (exit_ans);
if exit_ans = 'Y'
then F:=false;
End;
end; { case }
end; { While }
writeln ('Спасибо! До свидания!');
Readln;
End.
Далее необходимо отладить программу с точки зрения правильности логики работы. Для этого подойдут пункты оператора CASE, в ветвях которого будут стоять только операторы вывода на монитор, которые только выводят отладочную информацию для своего пункта, например, для 1 пункта меню:
Begin
{Реализация первого варианта действий }
Writeln (‘Выбран и работает 1 пункт меню’);
End;
И т.д. по порядку.
. . .
Case choice of
Begin
{ Реализация первого варианта действий }
Writeln (‘Выбран и работает 1 пункт меню’);
Readln;
. . .
End;
Begin
{ Реализация второго варианта действий }
Writeln (‘Выбран и работает 2 пункт меню’);
Readln;
. . .
End;
Begin
{ Реализация третьего варианта действий }
Writeln (‘Выбран и работает 3 пункт меню’);
Readln;
. . .
End;
Begin
{Реализация четвёртого варианта действий }
Writeln (‘Выбран и работает 4 пункт меню’);
Readln;
. . .
End;
Begin
writeln ('Вы действительно хотите’,
’ закончить работу? (Y/N)');
Readln (exit_ans);
if exit_ans = 'Y'
then F:=false;
End;
Else writeln ('Incorrect menu point',choice);
end; { case }
end; { While }
После отладки можно приступать к «наполнению» составных операторов в ветвях оператора CASE, по очереди реализуя соответствующие варианты вычислений – ввод исходной информации, варианты обработки, выход из программы. Например, если в 1 пункте меню предусмотрен ввод одномерного массива, то вид этого пункта в CASE может быть таким.
Case choice of
Begin
{ Ввод одномерного массива }
Writeln (‘Введите фактическое количество’,
‘ элементов массива, <= 30’);
Readln (N);
For i:= 1 to N do
Begin
Writeln (‘ Введите элемент №: ‘,i);
Readln ( A [i] );
End;
End;
И так далее, по пунктам.