Эквивалентирование текстовых переменных
С помощью оператора EQUIVALENCEможно приводить в соответствие два объекта данных текстового типа.
Если в списке оператора EQUIVALENCE описать две переменные, например А и В, то при выполнении программы в оперативной памяти ЭВМ переменной В будет соответствовать блок памяти переменной А. То есть, если переменной А присвоить какое-либо значение, то из-за того, что обе переменные занимают в памяти ЭВМ один и тот же блок, значение переменной В будет соответствовать значению переменной А и наоборот.
Пример:
CHARACTER*12 A,B*3
EQUIVALENCE(A(1:3),B)
В примере первые 3 символа текстовой переменной А будут соответствовать переменной В.
Задача:
В файле DEKANAT хранятся записи, в каждой записи записаны:
Фамилия и инициалы, и 4 оценки по экзаменам.
Написать подпрограмму, которая по запросу выдаёт сообщения об успеваемости студента, фамилия которого вводится с клавиатуры.
CHARACTER*12 FAM1,FAM2
OPEN (3,FILE=’DEKANAT’)
WRITE (6,*)’Введите искомую фамилию’
READ (5,’(A12)’) FAM1
Происходит считывание искомой фамилии студента. Запись READ(5,‘(A12)’)FAM1 можно заменить на следующие две строки:
READ (5,7) FAM1
7 FORMAT (A12) или 7 FORMAT(A) , что абсолютно аналогично предыдущему.
4 READ (3,8,END=1) FAM2,K1,K2,K3,K4
В этой строке из файла DEKANAT происходит считывание Ф.И.О.(переменная FAM2) и оценок за экзамены (переменные K1,K2,K3,K4) при помощи оператора FORMAT с меткой 8. При возникновении ситуации “конец файла” управление передаётся на метку 1.
Дата добавления: 2015-06-10; просмотров: 536;