FORMAT(A15,4I5)
IF(FAM1.EQ.FAM2) WRITE(6,9) FAM2,K1,K2,K3,K4
FORMAT(1X,A15,4I5)
В этой строке происходит сравнивание исходной фамилии (введённой с клавиатуры после запроса) и очередной считанной фамилии из файла DEKANAT. Если фамилии совпадают, то выводим на экран: Ф.И.О. и 4 оценки. Затем происходит переход на новую строку файла и считывание очередной фамилии и проверка её по условию.
GOTO 4
STOP
END
Недостатком программы является то, что фамилия в файле и фамилия, введённая с клавиатуры, должны совпадать полностью. Если будет различие хоть в одном символе (другая буква или лишний символ пробел), то программа не выведет никакого результата (так как не выполнится условие оператора IF). Еще необходимо бы доработать программу, чтобы выводимый текст выводился с поясняющей информацией (Ф.И.О.: …, Оценка №1: …, Оценка №2: … и т.д.).
Пример данной программы не является идеальным решением этой задачи, это всего лишь простейший способ решения, призванный показать основные приёмы, которые лучше использовать в аналогичных ситуациях.
Задача:
В отдел кадров предприятия из КГБ пришла телеграмма: “Сотрудник вашего предприятия Михаил, 1962 года рождения, замешан в связях с вражеской разведкой. Используя вашу базу данных, представьте все сведения о сотрудниках по имени Михаил 1962 года рождения”.
База данных предприятия содержится в файле KADRY в виде записей:
Ф.И.О.год рождениядомашний адрестабельный № телефон 40 поз. 5 позиций 15 поз. 5 поз. 7 поз.
CHARACTER*40 FIO,DOM*15,TEL*7,IMJA*6/’Михаил’/В операторе character можно не только описывать длину текстовых переменных, но и задавать значение 'Михаил' также, как и в операторе Data.
OPEN (4,FILE=’WYWOD’)
WRITE (4,*)’Сведения по вашему запросу’
OPEN (3,FILE=’KADRY’,STATUS=’OLD’)
4 READ (3,7,END=10) FIO, NGOD, DOM, NTAB, TEL
Считывает первую запись: Ф.И.О., год рождения, домашний адрес, номер по табелю, телефон.
Дата добавления: 2015-06-10; просмотров: 554;