Процедурные типы. Рекурсия и итерация Цель работы: - приобретение навыков в создании универсальных программ, использующих процедуры и функции как параметры; - приобретение навыков в создании и использовании в программе рекурсивных подпрограмм. 1. Теоретическая часть Перед началом выполнения данной работы необходимо изучить раздел 18 «Вспомогательные алгоритмы (подпрограммы)» конспекта лекций по дисциплине «Языки программирования». 2. Практическая часть Требования к выполнению заданий 1. Для варианта задания из лабораторной работы № 11 (Обработка последовательностей) необходимо: а) представить вычисления (действия по заданию) в виде функции (процедуры); б) придумать, как реализовать эту функцию (процедуру) и ее использование: - как обычную (нерекурсивную); - как рекурсивную. 2. Для заданий из лабораторной работы № 10 (Разветвляющиеся вычислительные процессы) необходимо: а) взять задания 2 из вариантов с номерами Номер бригады (студента) | Номера вариантов (из которых взять задание 2) | | 1,3 | | 2,4 | | 3,5 | | 4,6 | | 5,7 | | 6,8 | | 7,9 | | 8,10 | | 9,11 | | 10,12 | | 11,13 | | 12,14 | | 11,1 | | 12,2 | б) построить таблицу значений функций для заданий из своего варианта в соответствии с пунктом «а», причем вычисление значений для таблицы оформить в виде функций, например, с именами f1 и f2; в) используя процедурный тип, реализовать обобщенные функции f3 и f4, которые должны для названных выше функций f1 и f2 вычислять соответственно минимальное и максимальное значение, причем функции f1 и f2 должны передаваться в функции f3 и f4 как параметры (процедурного типа). 2.2. Требования к содержанию отчета Отчет о лабораторной работе должен включать: 1. Конспект теоретической части. 2. Тексты разработанных программ с комментариями. 3. Копии экранов с результатами выполнения программы. 4. Выводы о полученных результатах. 2.3. Контрольные вопросы 1. Какие известны способы записи повторяющихся действий в программе? 2. Что понимается под блочной структурой программы и в чем состоит особенность использования блоков в языке Паскаль? 3. Что такое область видимости и время жизни переменной программы? 4. Каковы особенности (инициализация, время жизни, место хранения) локальных и глобальных объектов подпрограммы? 5. Какие существуют механизмы (способы) передачи данных в подпрограммы на языке Паскаль? В чем состоят особенности этих механизмов? 6. В чем состоят особенности описания и вызова подпрограмм-функций? 7. В чем состоит побочный эффект при использовании подпрограмм? 8. Что такое опережающее описание подпрограмм и зачем оно нужно? 9. Что такое рекурсия и итерация? В чем заключаются достоинства и недостатки рекурсивных подпрограмм? 10. Какие требования предъявляются к рекурсивным подпрограммам? 11. Как передавать подпрограммы как параметры в подпрограмму? 12. Как использовать в программе переменные процедурного типа? 13. Зачем бывает необходимо передавать подпрограммы как параметры? 14. Как получить из программы доступ к параметрам командной строки? Лабораторная работа № 17 Использование записей Цель работы: - приобретение навыков в работе с данными типа запись; - приобретение навыков представления таблиц в виде массивов записей; - приобретение навыков в заполнении, обработке и поиске информации в таблицах, представленных в виде массивов записей. 1. Теоретическая часть Перед началом выполнения данной работы необходимо изучить раздел 19 «Записи» конспекта лекций по дисциплине «Языки программирования». 2. Практическая часть 2.1. Варианты заданий для выполнения Вариант 1 (2) В виде массива записей представлена информация об итогах сессии на 1-м курсе. Сведения о каждом студенте представлены в следующем виде: Форма документа | Итоги экзаменационной сессии | № п/п | ФИО | Пол | № группы | Результаты экзамена | Математика | Программирование | История | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 1 - выводит список студентов, которые учатся в определенной группе; - определяет и выводит на экран список студентов, имеющих задолженность хоть по одному из трех предметов; для варианта 2 - определяет и выводит на экран процент студентов, сдавших сессию только на 4 и 5; - определяет и выводит на экран список всех студентов в порядке убывания средней успеваемости. Вариант 3 (4) В виде массива записей представлена информация о студентах различных факультетов. Сведения о каждом студенте представлены в следующем виде: Форма документа | Информация о студенте | № п/п | ФИО | Пол | Возраст | Факультет | Фимилия | Имя | Отчество | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 3 - определяет и выводит на экран факультет, на котором наибольший процент мужчин; - выводит список студентов определенного возраста; для варианта 4 - определяет и выводит на экран самое распространенное мужское и женское имя; - определяет и выводит на экран список трех фамилий (в алфавитном порядке) тех студентов, возраст и отчество которых являются самыми распространенными. Вариант 5 (6) В виде массива записей представлена информация о погоде в определенной местности. Форма документа | Сводка погоды | Номер записи | Дата | Температура | Влажность | Давление | Год | Месяц | Число | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 5 - выводит сводку погоды в определенный день; - определяет и выводит на экран годы максимума и минимума температур в определенный день; для варианта 6 - находит и выводит на экран среднюю температуру заданного месяца; - выводит на экран сводку погоды за определенный период. Вариант 7 (8) В виде массива записей представлена информация об абонентах различных АТС. Форма документа | Телефонная книга | | ФИО абонента | Домашний адрес | № телефона | Фамилия | Имя | Отчество | Улица | № дома | № квартиры | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 7 - по номеру телефона выводит ФИО и адрес абонента; - выводит на экран номера и фамилии всех абонентов, проживающих в одном доме; для варианта 8 - выводит номера телефонов всех абонентов, имеющих определенную фамилию; - выводит на экран абонентов определенной АТС. Вариант 9 (10) В виде массива записей представлено расписание движения пригородных поездов. Форма документа | Расписание движения пригородных поездов | Номер поезда | Пункт назначения | Время отправления | Время прибытия | Примечание (раб. или празд. дни) | ч | мин | ч | мин | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 9 - по номеру поезда выводит информацию о времени отправления и прибытия; - выводит на экран номера поездов, которые прибывают сразу после полуночи; для варианта 10 - выводит номера поездов, которые направляются в определенный пункт назначения; - выводит на экран номера поездов, которые отправляются в определенный пункт назначения в утренние часы. Вариант 11 (12) В виде массива записей представлен каталог строительных объектов. Форма документа | Каталог строительных объектов | Шифр объекта | Наименование объекта | Код СМУ | Год вступления в эксплуатацию | Сметная стоимость | Район города | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 11 - выводит информацию об объектах, которые вступят в эксплуатацию в этом году; - выводит на экран все объекты, строительством которых занято определенное СМУ; для варианта 12 - выводит информацию об объектах, которые вступят в эксплуатацию в определенном районе города; - выводит на экран объекты с минимальной и максимальной сметной стоимостью. Вариант 13 (14) В виде массива записей представлена информация об амбулаторных больных поликлиники. Форма документа | Амбулаторная карта | № амб. карты | ФИО | Год рождения | Пол | Адрес | Страховая компания | Отметка о ФЛГ | Отметка о прививках | | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 13 - определяет и выводит на экран фамилию самого пожилого пациента, который не сделал прививку; - определяет и выводит на экран список пациентов из одного дома, которые прошли ФЛГ; для варианта 14 - определяет и выводит на экран всех женщин, у которых общая страховая компания (определяется пользователем); - определяет и выводит информацию о несовершеннолетних пациентах, которым необходимо сделать ФЛГ и прививки. Вариант 15 (16) В виде массива записей представлена информация об абонентах библиотеки. Форма документа | Информация об абоненте библиотеки | № читат. билета | ФИО | Год рожд. | Место работы (учебы) | Дата возврата книг | Кол-во выданных книг | Отметка о пере-регист-рации | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 15 - выводит список абонентов-должников, которые работают на конкретном предприятии; - определяет и выводит на экран среднее количество книг, которое берут абоненты определенной возрастной группы; для варианта 16 - определяет и выводит на экран номера читательских билетов абонентов, у которых одинаковая фамилия; - выводит список абонентов, которые не прошли перерегистрацию. Вариант 17 (18) В виде массива записей представлена информация о товарах на складе. Форма документа | Товар на складе | Наименование товара | Кол-во на складе | Требуем. кол-во | Информация о покупателе | Дата получения товара | Стоимость товара | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 17 - выводит список товаров, количество которых на складе необходимо пополнить; - выводит товары, которые заказал определенный покупатель; для варианта 18 - выводит покупателей, которые не получили товар, несмотря на его наличие на складе; - определяет покупателя, который сделал самый дорогой заказ. Вариант 19 (20) В виде массива записей представлена информация об абитуриентах. Форма документа | Анкета абитуриента | № п/п | ФИО | Год рожде-ния | Место-житель-ство | Оценка вступ. экзаменов | № спец. | Проход. балл | Матем. | Физика | Сочинение | | | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 19 - выводит список абитуриентов, которые набрали необходимый проходной балл; - определяет средний возраст абитуриентов; для варианта 20 - определяет процент иногородних абитуриентов; - выводит номера специальностей в порядке убывания «популярности». Вариант 21 (22) В виде массива записей представлена информация о владельцах автомобилей. Форма документа | Учетная карточка владельца автомобиля | Поряд. № | ФИО | Знак ГАИ | Марка автомобиля | Дата последнего техосмотра | Местожительство | Фамил. | Иниц. | Улица | № дома | № кв. | | | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 21 - выводит список автовладельцев, которые проживают в одном доме; - выводит список владельцев автомобиля «ОКА», которые не прошли техосмотр; для варианта 22 - выводит марки автомобилей в порядке убывания «популярности»; - по знаку ГАИ выводит информацию о владельце. Вариант 23 (24) В виде массива записей представлена ведомость на зарплату. Форма документа | Ведомость на зарплату | № п/п | ФИО | Долж-ность | Оклад | Число дней по бюлл. | Аванс | Налог 13 % | Зарплата за месяц | Отметка о полу-чении | | | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 23 - выводит список сотрудников, которые болели в этом месяце; - выводит среднюю зарплату сотрудников, занимающих определенную должность; для варианта 24 - выводит список сотрудников, которые не получили зарплату; - выводит минимальную и максимальную зарплату. Вариант 25 (26) В виде массива записей представлена информация о сотруднике. Форма документа | Сведения о сотруднике | Табельный номер | ФИО | Пол | Год рождения | Адрес | Должность | Стаж работы на предприятии | | | | | | | | Написать программу, которая выполняет следующие действия: для варианта 25 - выводит список сотрудников, проживающих в одном доме; - определяет и выводит средний возраст сотрудников; для варианта 26 - выводит список сотрудников, которые имеют стаж работы более 10 лет; - определяет и выводит в процентах количество мужчин и женщин. 2.2. Требования к содержанию отчета Отчет о лабораторной работе должен включать: 1. Конспект теоретической части. 2. Схемы разработанных алгоритмов и тексты разработанных программ с комментариями. 3. Копии экранов с результатами выполнения программы. 4. Выводы о полученных результатах. 2.3. Контрольные вопросы 1. В чем состоят особенности записей (хранение в памяти, тип элементов, постоянство числа элементов) как структуры данных? 2. В чем состоят сходство и различие между записями и массивами? 3. Какие известны способы представления таблиц с помощью записей? 4. Как выполняется доступ к полям записи? 5. Зачем нужен оператор with при работе с записями? 6. Что такое записи с вариантами и каковы способы их использования? 7. Как инициализировать запись в виде типизированной константы? 8. Какие действия можно/нельзя выполнять над записями? Лабораторная работа № 18 Использование файлов Цель работы: - приобретение навыков в работе с данными типа файл; - приобретение навыков в работе с файлами разных типов; - приобретение навыков представления и хранения таблиц в виде файлов; - приобретение навыков в заполнении, обработке и поиске информации в таблицах, представленных в виде файлов. 1. Теоретическая часть Перед началом выполнения данной работы необходимо изучить раздел 21 «Файлы» конспекта лекций по дисциплине «Языки программирования». 2. Практическая часть 2.1. Варианты заданий для выполнения Варианты заданий те же, что и в лабораторной работе № 17 (Использование записей). |