При выбранных представлении данных и сценарии диалога решением могут служить следующие алгоритм и программа:
АлгоритмПрограмма
алг «Телефонный справочник» ' Телефонный справочник
нач сls
вывод («поиск номера телефона») print «поиск номера телефона»
запрос(«имя=», NN) input «имя=», NN$
чтение-таблицы tel restore tel
цикл do
чтение (имя, пот) read im$, nm$
если имя = NN то if im$ = NN$ then
вывод («номер:»,пот) print «номер:»,nm$
выход [из цикла] exit do
инес имя = «» то elseif im$ = «» then
вывод («нет такого») print «нет такого»
выход [из цикла] exit do
все end if
кцикл loop
кон end
Из приведенного примера видно, что при составлении алгоритмов и программ обработки данных важную роль играют не только сценарии ввода-вывода данных в ЭВМ, но и представление данных. От выбора этих представлений существенно зависят способы доступа к данным и процедуры обработки.
Однако наиболее важным при составлении алгоритмов и программ обработки данных прежде всего является четкое определение исходных и результирующих данных, а уже затем - подбор представлений входных, выходных и сохраняемых данных на ЭВМ.
Систематические методы разработки алгоритмов и программ обработки данных состоят в том, что постановка решаемых задач, выбор представлений данных и составление спецификаций диалога проводятся до составления детальных алгоритмов и программ обработки данных.
Подобный подход к составлению алгоритмов и программ обработки данных позволяет проверять правильность составляемых алгоритмов и программ по отношению к этим спецификациям и обеспечить в них полное устранение ошибок.
Приведем пример систематического составления алгоритмов и программ обработки данных с использованием спецификаций для решения задачи «Выбор друзей по росту». Допустим, что исходные данные этой задачи представлены следующей таблицей:
фамилия | имя | рост |
Иванов | Саша | |
Петров | Вова | |
Сидоров | Миша |
Примем, что запросы на поиск друзей по росту и результаты поиска будут выводиться на экран по следующему сценарию:
Сценарий «Поиск друзей»
выбор друзей по росту мин_рост =? <min> макс_рост =? <max> |
<фамилия> <имя> |
нет таких |
Для представления данных о друзьях в программе воспользуемся следующими операторами data: