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;

И так далее, по пунктам.

Наши рекомендации