Информатика. Программирование для библиотечных специалистов. Учебное пособие
.pdf
Практический блок
Рассмотрите теоретический материал презентации «Линейная структура программы», используя «Курс по программированию».
Составьте блок-схему алгоритма и напишите программу на языке программирования Pascal: в библиотеке были куплены A книг по R рублей. Определите общую стоимость покупки.
В соответствии с этапами решения задач:
1. Исходные данные: А — тип word, R — тип real. Результат: Р — тип real.
Математическая модель: Р = А * R Блок-схема:
Ввод данных
Обработка
Вывод результатов
Программный код:
program bibl1; var a: word; r,p:real;
begin
write('введите количество книг'); readln(a);
write('введите цену книги'); readln(r);
p:=a*r;
writeln('общая стоимость покупки составляет', p:2:2, 'рублей');
31
readln;
end.
Тестирование. А = 10, R = 100, тогда Р = 1 000 рублей.
Вопросы и задания для самостоятельной работы
1.Какова структура программы в среде Turbo Pascal?
2.Что такое тестирование и отладка программы?
3.В чем состоит принцип выполнения линейного алгоритма?
4.При помощи какого оператора выполняется ввод данных?
5.При помощи какого оператора выполняется вывод данных?
6.Что такое формат вывода данных?
7.При помощи оператора присваивания разработайте алгоритм обмена числовых значений двух переменных (используя третью переменную или используя арифметические действия).
Творческий блок
Индивидуальные задания.
1.Составьте блок-схему алгоритма и напишите программу на языке программирования Pascal: ежедневно в библиотеке обрабатывается в среднем 15 наименований периодических изданий. Определите количество изданий за месяц.
2.Составьте блок-схему алгоритма и напишите
программу на языке программирования Pascal: ежемесячно в библиотеке проводится 9 мероприятий. Определите количество мероприятий за год.
3.Составьте блок-схему алгоритма и напишите программу на языке программирования Pascal: ежедневно в библиотеке сканируется примерно 4 книги. Определите количество отсканированного материала за месяц.
4.Составьте блок-схему алгоритма и напишите программу на языке программирования Pascal: ежемесячно в библиотеке
32
оцифровывается примерно N документов. Определите количество оцифрованных документов за год.
5. Составьте блок-схему алгоритма и напишите программу на языке программирования Pascal: внебюджетный доход библиотеки за год составил 50 256 руб. Определите среднемесячный доход библиотеки.
6. Составьте блок-схему алгоритма и напишите программу на языке программирования Pascal: были куплены D дисков по R рублей. Определите общую стоимость покупки.
33
ТЕМА 5. ТЕХНОЛОГИЯ СОЗДАНИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
Теоретический блок
Интерфейс — в широком смысле слова, это способ (стандарт) взаимодействия между объектами.
Интерфейс — совокупность технических, программных и методических (протоколов, правил, соглашений) средств сопряжения в вычислительной системе пользователей с устройствами и программами, а также устройств с другими устройствами и программами.
Пользовательский интерфейс — набор методов взаимодействия компьютерной программы и пользователя этой программы.
Дружественный (или дружелюбный) интерфейс — тот,
который удобен не программисту, а пользователю. Такой интерфейс называют «прозрачным», т.е. пользователь представляет себя «внутри» программы.
Для создания хорошего интерфейса необходимо разработать дизайн экрана пользователя.
Любая программа, написанная на языке Pascal, может работать с экраном в двух режимах: в те кстовом или в графическом. По умолчанию всегда используется текстовый режим. Для работы с экраном в текстовом режиме в состав стандартных библиотек языка Pascal входит модуль Crt.
В текстовом режиме единицей вывода информации служит символ. На экране каждый символ занимает одно знакоместо — прямоугольный участок размером 8 × 16 пикселей (зерен экрана). Во весь экран помещается 80 × 25 знакомест.
Курсор (мигающий прямоугольник) помечает то место на экране, куда по умолчанию будет осуществлен вывод очередного символа, — текущую позицию. Для определения текущей позиции курсора предназначена сетка координат, мысленно накладываемая на экран. Левое верхнее знакоместо имеет коор-
34
динаты (1,1), правое верхнее — (1,80), левое нижнее — (25,1) и правое нижнее — соответственно (25,80).
Для каждого элемента можно задать цвет фона (задний план) и цвет символа (передний план).
Все команды текстового режима находятся в модуле Crt, чтобы их использовать, необходимо после заголовка программы вставить строку:
Uses Crt; { подключение модуля CRT }
1.CLRSCR; — очистка экрана.
2.GOTOXY(x, y); — задать координаты, где x — целое
число от 1 до 80, обозначает номер столбца (отступ вправо от первой позиции в строке), y — целое число от 1 до 25 (50), обозначает номер строки (отступ вниз от первой верхней строки экрана).
3. TEXTCOLOR(c); — цвет символов, который можно задавать двумя способами — числом от 0 до 15 или словом,
|
Таблица цветов: |
|
|
|
|
0 |
— black (черный); |
8 — darkgray (темно-серый); |
|
||
1 |
— blue (синий); |
9 — lightblue (светло-синий); |
|
||
2 |
— green (зеленый); |
10 |
— lightgreen (светло-зеленый); |
||
3 |
— cyan (голубой); |
11 |
— lightcyan (светло-голубой); |
||
4 |
— red (красный); |
12 |
— lightred (светло-красный); |
||
5 |
— magenta (малиновый); 13 |
— |
lightmagenta |
(светло- |
|
малиновый); |
|
|
|
|
|
6 |
— brown (коричневый); |
14 |
— yellow (желтый); |
|
|
7 |
— lightgray (серый); |
15 |
— white (белый). |
|
|
4.TEXTBACKGROUND(c); — цвет фона задается аналогично цвету символов, но используются только цвета от 0 до 7.
5.WINDOW(x1,y1,x2,y2); — ограничить окно, где x1,y1 —
координаты левого верхнего угла окна, x2,y2 — координаты правого нижнего угла окна.
6.CLREOL; — стирает символы до конца строки.
7.DELAY(d); — установить задержку выполнения программы, где d — определяет длительность паузы.
35
8.KEYPRESSED — эта функция позволяет определить, нажата клавиша (значение true) или нет (значение false), значение функции — boolean — логический тип.
9.READKEY — функция, которая присваивает код нажа-
той клавиши, значение функции — char — символьный тип. 10. WHEREX — эта функция определяет текущую пози-
цию курсора в строке, значение — byte — целое число.
Пример:
Program P1; {заголовок программы} Uses Crt; {подключение модуля CRT} Begin {начало программы}
Textbackground(1); ClrScr; {окрасить весь экран в синий цвет}
Window(22,6,37,16); {границы окна, изображающего тень}
Textbackground(0); ClrScr; {закрасить окно тени чёрным цветом}
Window(20,5,35,15); {границы изображаемого окна}
Textbackground(7); ClrScr; {закрасить окно серым цветом}
Gotoxy(5,2); {задать координаты вывода} Write('Библиотека№1!'); {вывести сообщение} Readln; {задержка до нажатия клавиши Enter} End. {конец программы}
Для программных продуктов прикладного характера, которые ориентированы на конечного пользователя, большое значение имеет организация диалогового режима взаимодействия с пользователем. Важно правильно и эффективно организовать обмен сообщениями, которые управляют обработкой данных: настройка параметров выдачи данных на печать, запуск методов обработки, изменение свойств объектов и т.д.
Профессор Н. В. Макарова предлагает такую классификацию систем, поддерживающих диалоговые процессы:
−системы с жестким сценарием диалога — стандартизированное представление информации обмена;
−дескрипторные системы — формат ключевых слов сообщений;
36
−тезаурусные системы — семантическая сеть дескрипторов, образующих словарь системы (аналог — гипертекстовые системы);
−системы с языком деловой прозы — представление сообщений на языке, естественном для профессионального пользования.
Наиболее просты для реализации и распространены диалоговые системы с жестким сценарием диалога, которые представлены в виде:
−меню — диалог инициируется программой; пользовате-
лю предлагается выбор альтернативы функций обработки из фиксированного перечня; предоставляемое меню может быть иерархическим и содержать вложенные подменю следующего уровня;
−действия «запрос — ответ» — фиксирован перечень возможных значений, выбираемых из списка, или ответы типа Да/Нет;
−запрос по формату – с помощью ключевых слов, фраз или путем заполнения экранной формы с регламентированным по составу и структуре набором реквизитов осуществляется подготовка сообщений.
Диалоговый процесс управляется согласно созданному сценарию, для которого определяются:
−точки (момент, условие) начала диалога;
−инициатор диалога — человек или программный продукт;
−параметры и содержание диалога — сообщения, состав
иструктура меню, экранные формы и т.п.;
−реакция программного продукта на завершение диалога. Описание сценария диалога выполняют:
−блок-схема, в которой предусмотрены блоки выдачи сообщений и обработки полученных ответов;
−ориентированный граф, вершины которого — сообщения и выполняемые действия, дуги — связь сообщений; словесное описание;
37
− специализированные объектно-ориентированные языки построения сценариев [7].
Сценарий состоит из кадров — состояний экрана в момент времени для создания диалоговых процессов и интерфейса конечного пользователя. В интегрированной среде Turbo Pascal наиболее подходят диалоговые системы с жестким сценарием диалога в виде меню и свободного ввода.
При создании пользовательского интерфейса необходимо вначале составить сценарий. В качестве примера рассмотрим задачу из предыдущей темы. Сценарий будет состоять из четырех кадров. Смена кадров осуществляется при нажатии на любую клавишу:
writeln('Для продолжения работы нажмите на любую клавишу');
readkey; clrscr.
Для инициации диалога введем символьную переменную:
var fio:string [20].
В тело программы добавим запрос на ввод фамилии и имени:
writeln('Введите Ваши фамилию и имя'); gotoxy(25,14);
readln(fio).
Первый кадр. Заставка. Это информационный компонент интерфейса, который появляется сразу после запуска. В заставке содержатся сведения для пользователя о том, какую задачу р е- шает программа, какие ограничения и особенности при решении этой задачи. Это позволит пользователю правильно сориентироваться для решения задачи. В заставке обычно прописывают название программы, краткие комментарии, информацию об авторах и т.д. Чаще всего заставка состоит из отдельного экрана, который исчезает после нажатия любой клавиши.
Для нашей задачи заставка будет иметь вид, представленный на рис. 1.
38
Рис. 1. Заставка
Второй кадр. Ввод информации. Язык Pascal относится к процедурно-ориентированным языкам, поэтому последовательность ввода информации жестко задается самой программой. Эта жесткость накладывает на программиста дополнительные обязательства при оформлении интерфейса. Пользователь может вводить информацию двумя способами: свободным вводом или выбором из предоставленных возможностей (меню).
Приглашения. Хорошее приглашение должно сообщать пользователю, что именно от него хотят получить в данный момент: тип, формат и размер вводимых данных. Каждый раз, когда программа ждет свободного ввода от пользователя, она должна сообщать об этом, выводя на экран приглашение к вводу. На втором кадре будет приглашение ввести фамилию и имя:
writeln('Введите Ваши фамилию и имя'); gotoxy(25,14);
readln(fio).
Третий кадр. Приглашение ввести исходные данные.
В нашей задаче мы будем использовать свободный ввод и за-
39
прашивать количество книг и их цену. Причем, для реализации диалогового режима будем использовать переменную fio.
Защита. Пользователь может не знать особенностей языка программирования, на котором создана программа, например, что в языке Pascal существует несоответствие типов данных, а также, что различаются данные по формату, поэтому необходимо проверять любую введенную информацию. В среде программистов такой прием получил название «защита от дураков».
Необходимо предусмотреть ситуацию, когда ввод данных произошел, но он ошибочный. Лучше всего для уменьшения вероятности семантической ошибки выводить значения всех промежуточных переменных.
Меню предоставляет пользователю возможность выбора из нескольких предложенных программой вариантов. Самое простое меню в программе на языке Pascal — это пронумерованный список возможных действий с запросом у пользователя номера выбранного варианта. При обработке этого номера также необходим контроль правильности ввода.
(О том, как программировать защиту и меню, можно узнать при изучении следующих тем).
Четвертый кадр. Вывод информации (результата). На этом кадре также выводится окончание диалога.
Рассмотрите программный код и найдите все кадры.
program biblioteka; uses crt;
var chit,m,s:word;fio:string[20]; begin;
textbackground(3);
clrscr;
textcolor(12);
gotoxy(28,10);
writeln('*****************');
textcolor(12);
gotoxy(28,14);
writeln('*****************');
textcolor(12);
gotoxy(28,11);
writeln('*');
40
