КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Теоретические сведения. К выполнению лабораторной работы №8
Лабораторная работа №8 К выполнению лабораторной работы №8 МЕТОДИЧЕСКИЕ УКАЗАНИЯ по дисциплине «Информатика» специальностей инженерно-технического факультета для дневной формы обучения (для внутривузовского пользования)
г. Павлодар, 2000г.
Составитель старший преподаватель Третьякова Т.И.
Кафедра “Автоматизированные системы обработки информации и управления”
Утверждено на заседании кафедры “АСОИиУ” протокол № __ от _________ 200__г.
Зав. кафедрой “ АСОИиУ ” к.т.н., доцент Еслямов С.Г.
Одобрено УМО ПаУ
Нач. УМО к.т.н., доцент Мустафина Р.М.
Тема: применение записей в составлении программ. Цель работы: познакомиться с понятием «запись», научиться применять записи в составлении программ.
В настоящее время вычислительная техника находит широкое применение в различного рода информационных системах. Они имеются в больших библиотеках, торговле, производстве, адресных бюро и т.д. В информационных системах довольно часто приходится иметь дело с комбинациями разнотипных объектов. В Паскале комбинациями разного типа являются записи. Составляющие запись объекты называются полями. В записи каждое поле имеет своё собственное имя. Упрощённая форма определения записи включает указание имени записи, имён отдельных компонентов (полей) и соответствующих им типов данных. TYPE < имя записи >= RECORD < имя поля 1 >: < тип > < имя поля 2 >: < тип > ………………………… < имя поля N >: < тип > END; Например, для решения задачи определения среднего балла, имея данные по пяти дисциплинам для конкретного студента, запись может иметь вид: TYPE STR = RECORD FAM: STRING[20]; B1, B2, B3, B4, B5:1..5; SB: REAL; END; Здесь FAM обозначает строку символов для хранения фамилии студента, В1, B2, B3, B4, B5 – баллы по соответствующим дисциплинам, SB – средний балл. Переменная типа STR имеет смысл записи, содержащей информацию об одном студенте. Организация этой структуры показана на рис.1.
Запись
Массив Отрезки типов Веществен- символов ный тип Рис.1. Если требуется хранить информацию не по одному студенту, а по 25, то можно ввести массив записей TBL: VAR TBL: ARRAY [1..25] OF STR; Обращение к полям записи осуществляется посредством составного имени: < имя переменной-записи >.< имя поля > Возможны, например, такие операторы присваивания: TBL[ 3 ].FAM:= “Иванов”; TBL[ 20 ].B2:=5; TBL[ K+1 ].SB:=4.666; Имена компонент внутри записи не должны повторяться. Значения записи можно пересылать в другие переменные – записи с помощью операторов присваивания. Возвращаясь к рассмотренному примеру, можно записать: TYPE STR= RECORD FAM: STRING[20]; B1, B2, B3, B4, B5:2..5; SB: REAL END; VAR Z1, Z2: STR; BEGIN - - - - - - - - Z1:=Z2; Указанный в программе оператор присваивания эквивалентен следующим операторам: Z1.FAM:= Z2.FAM; Z1.B1:= Z2.B2; Z1.B2:= Z2.B2; Z1.B3:= Z2.B3; Z1.B4:= Z2.B4; Z1.B5:= Z2.B5; Z1.SB:= Z2.SB;
Составим программу для нахождения среднего балла для каждого студента группы, состоящей из 25 человек. PROGRAM BAL; TYPE STR= RECORD FAM: STRING[20]; B1, B2, B3, B4, B5: 1..5; SB: REAL; END; VAR TBL: ARRAY [ 1..25 ] OF STR; I: INTEGER; BEGIN FOR I:=1 TO 25 DO { Цикл для ввода фамилий всех 25 BEGIN студентов и их оценок по 5 READLN (TB < [ I ].FAM); дисциплинам} READLN (TBL [ I ],B1; READLN TBL [ I ],B2; READLN TBL [ I ],B3; READLN TBL [ I ],B4; READLN TBL [ I ],B5); END; FOR I:= 1 TO 25 DO { Цикл для выч-я и вывода сред.балла } BEGIN {Вычисление среднего балла} TBL [ I ].SB:=(TBL [ I ].B1+TBL [ I ].B2+ TBL [ I ].B3+TBL[ I ].B4+TBL[ I ].B5; {Вывод среднего балла} WRITELN (TBL[ I ].SB) END; END. При обращении к компонентам записи мы сталкиваемся с необходимостью указать в отдельных операторах составных имён, что приводит к удлинению программы и излишней громоздкости. Для устранения этого неудобства в языке Паскаль используется оператор WITH, который позволяет осуществлять доступ к компонентам записи таким образом, как если бы они были простыми переменными. Общий вид оператора: With < имя записи > do < оператор >; Внутри оператора к компонентам записи можно обращаться только с помощью имени компоненты. Например, ввод исходных данных для отдельных компонент записи TBL в предыдущей программе может быть организован следующим образом: FOR I:=1 TO 25 DO WITH TBL [ I ] DO READ (FAM,B1,B2,B3,B4,B5); Рассмотрим более сложную задачу, в которой требуется не только определить средний балл, но и упорядочить список студентов по убыванию среднего балла. Блок-схема алгоритма приведена на рисунке 2. Содержание 1,2,3, блоков не требует пояснений. В блоках с 4 по 9 осуществляется упорядочивание массива по убыванию среднего балла. Идея алгоритма заключается в том, что в цикле (блок 4) берётся каждый i-тый компонент массива (по которому осуществляется упорядочивание) и его номер (блок 5). Далее в цикле (блок 6) происходит сравнение (блок 7) этого элемента со всеми последующими элементами массива. Если очередной элемент меньше выбранного то цикл повторяется, в противном случае меняются значения переменных K и X, X получает большее из сравниваемых значение, а K – его номер. Таким образом, после окончания его цикла переменная X содержит наибольшее из просмотренных значений, а переменная K – его номер. В блоке 9 осуществляется замена очередного i-го элемента на найденный максимальный, а i-ый элемент занимает место максимального и процесс повторяется. Смысл блоков 10 и 11 понятен из блок – схемы. PROGRAM SBAL; TYPE STR= RECORD FAM: STRING [ 15 ]; B1, B2, B3, B4, B5: 2..5; SB: REAL; END; VAR TBL: ARRAY [ 1..25 ] OF STR; Y:STR; I,Y,K,M: INTEGER; X: REAL; BEGIN READLN (M); {Ввод числа записей в массиве} FOR I:= 1 TO M DO WITH TBL [ I ] DO BEGIN READLN (FAM); READLN (B1, B2, B3, B4, B5); END; FOR I:=1 TO M DO WITH TBL [ I ] DO SB:=(B1+B2+B3+B4+B5)/5; {Вычисление сред. балла} FOR I:=1 TO M-1 DO Рис. 2. BEGIN K:=1; X:=TBL [ I ].SB; FOR J:= I+1 TO M DO IF TBL [J].SB>X THEN BEGIN K:=J; X:=TBL [ J].SB END Y:=TBL [ K ]; TBL [ K ]:=TBL [ I ]; TBL [ I ]:=Y END; END. Для иллюстраций более сложной записи рассмотри пример, в котором в памяти ЭВМ требуется сохранить анкетные данные представленные в виде таблицы на рис.
Рис.3.
Обозначим запись через идентификатор ANKETA, который определим в разделе описания переменных следующим образом:
Дата добавления: 2015-05-10; Просмотров: 225; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |