Лабораторный практикум по программированию на языке Паскаль. Найханова Л.В - 113 стр.

UptoLike

113
Примечание
. {$I-} и {$I+} - директивы компилятора для отключения и включения
стандартной проверки завершения операций ввода-вывода.
При создании удобного интерфейса используются "окна" CRT. Табулирование внутри
"окна" осуществляется процедурой GOTOXY.
Пример применения этих процедур при вводе данных.
Словесная постановка задачи.
Ввести данные о студенте: фамилию, имя, отчество, год рождения и номер группы.
Выполнить контроль правильности ввода значения данного "год рождения" на не цифру.
Ввод данных организовать с помощью окон.
Текстуальная запись алгоритма.
1.
Рассчитать ширину "окна". Ширина "окна" (рис.1) состоит из:
количества символов в "подсказке" - наименовании данного;
количества символов значения данного;
количества символов для пробелов (информация в окне должна располагаться
свободно, поэтому необходимо вставлять пробелы).
2.
Рассчитать высоту "окна". Высота "окна" состоит из:
количества вводимых данных (одно данное записывается в одной строке);
строки для заголовка "окна";
строки для диагностических сообщений (сообщение удобнее помещать внизу
"окна" или в отдельном выпадающем "окне");
количества пустых строк для повышения визуальности восприятия "окна", например,
необходима пустая строка между верхней границей окна и заголовком окна, между
заголовком и первой строкой данных и т.д.
3.
Для лучшего визуального восприятия создать три вложенных друг в друга "окна" с
помощью процедуры WINDOW. Для каждого "окна" установить цвет фона и цвет
изображаемых в нем символов.
4.
Написать в первом "окне" вспомогательную информацию о работе с программой (HELP-
помощь); во втором "окне" название третьего "окна"; и в третьем - тексты "подсказок "
по каждому вводимому данному.
5.
Процедурой GOTOXY установить курсор на позицию экрана, с которой нужно вводить
значение первого данного.
6.
Оператором ReadLn ввести значение данного.
7.
Организовать диагностику числовых данных.
8.
Если при вводе числового значения выявлена ошибка, то
a)
войти в первое "окно";
b)
установить курсор процедурой GOTOXY на строку "окна" для диагностических
сообщений;
c)
предложением WRITE напечатать сообщение "Введена не цифра";
d)
предложением DELAY выполнить задержку сообщения на экране;
e)
удалить с экрана диагностическое сообщение, используя при этом процедуру
GOTOXY и пустые пробелы в предложении WRITE;
f)
процедурой GOTOXY снова установить курсор на позицию экрана, с которой нужно
вновь ввести значение данного;
g)
удалить с экрана неправильно введенное значение. Для этого предложением WRITE
вывести пробелы, количество которых равно максимальной длине вводимого данного;
h)
вернуться в третье "окно" с помощью процедуры WINDOW;
i)
процедурой GOTOXY снова установить курсор на позицию экрана , с которой
нужно вводить значение первого данного;
j)
предложением READLN ввести уточненное значение данного;
k)
передать управление на пункт 7.
9.
Процедурой GOTOXY установить курсор на позицию экрана, с которой нужно вводить
значение следующего данного.
Примечание. {$I-} и {$I+} - директивы компилятора для отключения и включения
стандартной проверки завершения операций ввода-вывода.
При создании удобного интерфейса используются "окна" CRT. Табулирование внутри
"окна" осуществляется процедурой GOTOXY.
Пример применения этих процедур при вводе данных.
Словесная постановка задачи.
Ввести данные о студенте: фамилию, имя, отчество, год рождения и номер группы.
Выполнить контроль правильности ввода значения данного "год рождения" на не цифру.
Ввод данных организовать с помощью окон.
Текстуальная запись алгоритма.
1. Рассчитать ширину "окна". Ширина "окна" (рис.1) состоит из:
   − количества символов в "подсказке" - наименовании данного;
   − количества символов значения данного;
   − количества символов для пробелов (информация в окне должна располагаться
      свободно, поэтому необходимо вставлять пробелы).
2. Рассчитать высоту "окна". Высота "окна" состоит из:
   − количества вводимых данных (одно данное записывается в одной строке);
   − строки для заголовка "окна";
   − строки для диагностических сообщений (сообщение удобнее помещать внизу
      "окна" или в отдельном выпадающем "окне");
   − количества пустых строк для повышения визуальности восприятия "окна", например,
      необходима пустая строка между верхней границей окна и заголовком окна, между
      заголовком и первой строкой данных и т.д.
3. Для лучшего визуального восприятия создать три вложенных друг в друга "окна" с
   помощью процедуры WINDOW. Для каждого "окна" установить цвет фона и цвет
   изображаемых в нем символов.
4. Написать в первом "окне" вспомогательную информацию о работе с программой (HELP-
   помощь); во втором "окне" название третьего "окна"; и в третьем - тексты "подсказок "
   по каждому вводимому данному.
5. Процедурой GOTOXY установить курсор на позицию экрана, с которой нужно вводить
   значение первого данного.
6. Оператором ReadLn ввести значение данного.
7. Организовать диагностику числовых данных.
8. Если при вводе числового значения выявлена ошибка, то
   a) войти в первое "окно";
   b) установить курсор процедурой GOTOXY на строку "окна" для диагностических
       сообщений;
   c) предложением WRITE напечатать сообщение "Введена не цифра";
   d) предложением DELAY выполнить задержку сообщения на экране;
   e) удалить с экрана диагностическое сообщение, используя при этом процедуру
       GOTOXY и пустые пробелы в предложении WRITE;
   f) процедурой GOTOXY снова установить курсор на позицию экрана, с которой нужно
       вновь ввести значение данного;
   g) удалить с экрана неправильно введенное значение. Для этого предложением WRITE
       вывести пробелы, количество которых равно максимальной длине вводимого данного;
   h) вернуться в третье "окно" с помощью процедуры WINDOW;
   i) процедурой GOTOXY снова установить курсор на позицию экрана , с которой
       нужно вводить значение первого данного;
   j) предложением READLN ввести уточненное значение данного;
   k) передать управление на пункт 7.
9. Процедурой GOTOXY установить курсор на позицию экрана, с которой нужно вводить
   значение следующего данного.

                                                                                    113