Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Тема. Решение задач с использованием переменной типа Record ⇐ ПредыдущаяСтр 10 из 10
Цель работы: приобретение навыков работы с переменной типа Record Теоретическая часть Запись представляет собой совокупность ограниченного числа логически связанных компонентов, принадлежащих к разным типам. Компоненты записи называются полями, каждое из которых определяется именем. Поле записи содержит имя поля, вслед за которым через двоеточие указывается тип этого поля. Поля записи могут относиться к любому типу, допустимому в языке Delphi, за исключением файлового типа.Описание записи в языке DELPHI осуществляется с помощью служебного слова RECORD, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом END.Например, записная книжка содержит фамилии, инициалы и номера телефона, поэтому отдельную строку в записной книжке удобно представить в виде следующей записи:type Row=Record FIO: String[20]; TEL: String[7] end; var str: Row; Описание записей возможно и без использования имени типа, например:var str: Record FIO: String[20]; TEL: String[7] end; Обращение к записи в целом допускается только в операторах присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа. Во всех остальных случаях оперируют отдельными полями записей. Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать имя нужного поля, например:str.FIO, str.TEL Такое имя называется составным. Компонентой записи может быть также запись, в таком случае составное имя будет содержать не два, а большее количество имен. Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения with. Он позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения:with M do OP; Пример 16.1. Создать базу данных о студентах student, содержащую следующие поля: · Номер зачетки (n_zach); · фамилия и инициалы (fio); · средний балл (sr_b); · количество сданных зачетов и экзаменов (kz); · форма обучения (fo).Написать программу, выполняющую следующие действия: 1) ввод с клавиатуры данных в массив, состоящий из n записей; 2) вывод на экран всей введенной информации; 3) вывод на экран информации о студентах, которые получают стипендию (форма обучения – b, количество зачетов и экзаменов – 10, средний балл > =7.5).Program Project1; type student=record n_zach: string[5]; fio: string[35]; sr_b: real; kz: byte; fo: string[2]; end;
var s: array[1..30] of student; n, k, i: integer; srbg: real;
begin write('n='); readln(n); for i: =1 to n do // начало цикла for для ввода исходных данных with s [i] do begin writeln('n зачетки'); readln(n_zach); writeln('ФИО'); readln(fio); writeln('средний балл? '); readln(sr_b); writeln('количество зачетов? '); readln(kz); writeln('форма обучения? '); readln(fo); end; // конец цикла for для ввода исходных данных
k: =0; for i: =1 to n do with s [i] do begin if(fo='b') and (kz=10)and (sr_b> =7.5) then begin writeln(n_zach, ' ', fio, ' ', sr_b: 3: 1, ' ', kz, ' ', fo); k: =k+1; end; writeln('количество студентов, которые получают стипендию ', k: 2); readln; end. Пример 16.2. Необходимо организовать массив записей, а затем из общего списка вывести фамилии студентов 2-го курса.
program Project2; end; var student: array [1..100] of anketa; I: integer;
Например, фрагмент из предыдущей программы с использованием оператора присоединения (with …. Do ….) будет выглядеть так: Фрагмент примера for I: =1 to 100 do Варианты заданий В программе использовать одномерный массив с элементами массива типа Record. Исходные данные вводятся с клавиатуры в 10 элементов массива. Программа должна выводить соответствующее сообщение, если искомых данных в массиве нет. 1. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (средний балл). Запрограммировать вывод на экран фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4, 5. 2. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (средний балл). Запрограммировать вывод на экран фамилий и номер группы для студентов, имеющих средний балл 4 или 5. 3. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (средний балл). Запрограммировать вывод на экран фамилий и номеров групп для всех студентов, имеющих средний балл от 6 до 8. 4. Описать структуру с именем AEROFLOT, содержащую следующие поля: название пункта назначения рейса; номер рейса; тип самолета. Запрограммировать вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры. 5. Описать структуру с именем AEROFLOT, содержащую следующие поля: название пункта назначения рейса; номер рейса; тип самолета. Запрограммировать вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры. 6. Описать структуру с именем WORKER, содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу. Запрограммировать вывод на экран фамилий работников, чей стаж работы в организации превышает значение стажа, введенного с клавиатуры. 7. Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Запрограммировать вывод на экран информации о поездах, отправляющихся после введенного с клавиатуры времени. 8. Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Запрограммировать вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры. 9. Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Запрограммировать вывод на экран информации о поезде, номер которого введен с клавиатуры. 10. Описать структуру с именем MARSH, содержащую следующие поля: название начального пункта маршрута; название конечного пункта маршрута; номер маршрута. Запрограммировать вывод на экран информации о маршруте, номер которого введен с клавиатуры. 11. Описать структуру с именем MARSH, содержащую следующие поля: название начального пункта маршрута; название конечного пункта маршрута; номер маршрута. Запрограммировать вывод на экран информации о маршрутах, которые начинаются или оканчиваются в пункте, название которого введено с клавиатуры. 12. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя; номер телефона; год рождения. Запрограммировать вывод на экран информации о человеке, номер телефона которого введен с клавиатуры. 13. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя; номер телефона; год рождения. Запрограммировать вывод на экран информации о людях, чьи дни рождения приходятся на год, значение которого введено с клавиатуры. 14. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя; номер телефона; год рождения. Запрограммировать вывод на экран информации о человеке, чья фамилия и имя введены с клавиатуры. 15. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, отчество; месяц рождения; год рождения. Запрограммировать вывод на экран информации о людях, родившихся в месяце, название которого введено с клавиатуры. 16. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, отчество; знак Зодиака; год рождения. Запрограммировать вывод на экран информации о людях, родившихся под знаком Зодиака, название которого введено с клавиатуры.
Литература 1. Архангельский, А. Я. Программирование в Delphi: учебник по классическим версиям Delphi / А. Я. Архангельский. – Москва: Бином, 2008. – 1154 с. 2. Бобровский, С. И. Delphi 7: учебный курс / С. И. Бобровский. – Санкт-Петербург: Питер, 2008. – 736 с. 3. Графические средства Delphi: методические указания для самостоятельной работы студентов механических специальностей дневной и заочной форм обучения по дисциплинам: " Информатика", " Вычислительная техника, программирование и расчеты на ЭВМ" / УО " ВГТУ" ; сост. В. П. Терентьев, Т. П. Стасеня. – Витебск, 2007. – 61 с. 4. Климов, Ю. С. Программирование в среде Turbo Delphi 6.0: справ. пособие / Ю. С. Климов, А. И. Касаткин, С. М. Мороз. – Минск: Вышэйшая школа, 1992. – 158 с. 5. Методические указания к курсовому проектированию для студентов механических специальностей по предметам цикла " Информатика" / УО " ВГТУ" ; сост. В. П. Терентьев, А. С. Дягилев, Т. П. Стасеня. – Витебск: УО " ВГТУ", 2004. – 81 с. 6. Программирование на персональных ЭВМ: практикум / под ред. Д. В. Офицерова. – Минск: Вышэйшая школа, 1993. – 256 с. 7. Сурков, Д. А. Программирование в среде Borland Delphi для Windows: справочное пособие / Д. А. Сурков, К. А. Сурков, А. Н. Вальвачев. – Минск: Вышэйшая школа, 1996. – 432 с. 8. Фаронов, В. В. Delphi: учебник / В. В. Фаронов. – Санкт-Петербург: Питер, 2010. – 640 с. 9. Фаронов, В. В. Delphi. Программирование на языке высокого уровня: учебник для студентов вузов, обучающихся по направлению подготовки дипломированных специалистов " Информатика и вычислительная техника" / В. В. Фаронов. – Санкт-Петербург: Питер, 2010, 2007. – 640 с. 10. Фаронов, В. В. Основы Турбо Паскаля: учеб. пособие / В. В. Фаронов. – Москва: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992. – 304 с. 11. Язык программирования Object Delphi (Delphi): курс лекций по дисциплине " Вычислительная техника, программирование и расчеты на ЭВМ" для студентов механических спец. / УО " ВГТУ" ; сост. В. П. Терентьев. – Витебск: УО " ВГТУ", 2005. – 75 с.
Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 1016; Нарушение авторского права страницы