- •Учебно-методическое пособие
- •Маршрутная карта изучения дисциплины по Модулю 1
- •1. Логические и арифметические основы эвм
- •Системы счисления
- •1.1. Десятичная система счисления
- •1.2. Двоичная система счисления
- •1.3. Восьмеричная и шестнадцатеричная системы счисления
- •1.4. Перевод чисел из любой системы счисления в десятичную
- •1.5. Перевод чисел из десятичной системы счисления в любую другую
- •Вопросы для самоконтроля
- •Методические указания для выполнения практического задания №1. «Системы счисления»
- •Приложение 1. Таблица вариантов заданий
- •2. Алгебра логики
- •2.1. Логические операции
- •Инверсия
- •2.2. Нормальные формы
- •Конъюнктивная нормальная форма
- •Дизъюнктивная нормальная форма
- •3. Применение средств алгебры логики для описания функционирования устройств компьютера
- •3.1. Логические схемы
- •Пример решение логических задач средствами алгебры логики
- •Методические указания для выполнения практического задания №2. «Алгебра логики». Построение таблиц истинности.
- •Пример построения логических схем
- •Методические указания для выполнения практического задания №3. «Алгебра логики». Построение логических схем.
- •Приложение 2. Таблица вариантов заданий
- •4. Индивидуальное задание. Модуль 1. «Построение логических схем по заданным булевым выражениям»
- •Приложение 3. Таблица вариантов индивидуального задания
- •Приложение 4. Титульный лист идз
- •Маршрутная карта изучения дисциплины по Модулю 2
- •5. Введение в алгоритмизацию
- •6. Знакомство со средой Турбо Паскаль
- •6.1. Общие сведения
- •6.2. Запуск Турбо-Паскаля на выполнение
- •6.3. Назначение функциональных клавиш системы Турбо-Паскаль
- •6.4. Работа с текстовым редактором Турбо-Паскаля
- •Клавиши перемещения курсора
- •Работа с блоками текста
- •7. Основы алгоритмизации
- •7.1. Алгоритм
- •7.2. Алгоритмические структуры
- •8. Программирование на языке Pascal
- •8.1. Алфавит языка
- •8.2. Арифметические выражения и правила их записи
- •Знаки операций
- •Операции div и mod
- •8.3. Типы данных
- •Целые типы
- •Логический тип
- •8.5. Структура программы на языке Паскаль
- •8.6. Описательная часть программы
- •8.7. Исполнительная часть программы
- •8.10. Комментарии в программе
- •Пример программы линейной структуры
- •Вопросы для самоконтроля
- •8.11. Методические указания для выполнения практического задания №4. «Следования»
- •Приложение 5. Таблица вариантов заданий
- •9. Ветвления
- •9.1. Операторы условия и перехода
- •Логический оператор
- •Операции отношения
- •Логические операции
- •9.2. Оператор выбора
- •Пример программы разветвленной структуры
- •Вопросы для самоконтроля
- •9.3. Методические указания для выполнения практического задания №5. «Ветвления»
- •Приложение 6. Таблица вариантов заданий
- •10. Циклические вычислительные процессы
- •10.1. Оператор цикла с параметром
- •10.2. Оператор цикла с постусловием
- •10.3. Оператор цикла с предусловием
- •10.4. Вложенные циклы
- •10.5. Оператор прерывания цикла
- •Пример программы циклической структуры
- •Вопросы для самоконтроля
- •10.6. Методические указания для выполнения практического задания №6. «Циклы»
- •Приложение 7. Таблица вариантов заданий
- •11. Операции с индексированными переменными
- •11.1. Массивы одномерные
- •11.2. Описание массивов
- •Ввод элементов массива
- •Вывод элементов массива
- •11.3. Обработка одномерных массивов
- •Пример программы обработки одномерного массива
- •Вопросы для самоконтроля
- •11.4. Методические указания для выполнения практического задания №7. «Операции с индексированными переменными»
- •Приложение 8. Таблица вариантов заданий
- •12. Двумерные массивы
- •12.1. Матрицы
- •12.2. Описание двумерного массива
- •Ввод элементов двумерного массива
- •Вывод элементов двумерного массива
- •12.3. Обработка двумерных массивов
- •Пример программы обработки двумерного массива
- •Вопросы для самоконтроля
- •12.4. Методические указания для выполнения практического задания №8. «Матрицы»
- •Приложение 9. Таблица вариантов заданий
- •13. Подпрограммы
- •13.1. Функции и процедуры
- •Структура программы, содержащей процедуру (функцию)
- •13.2. Процедуры
- •13.3. Вложенные процедуры Директива forward
- •13.4. Функции
- •Пример программы с использованием подпрограмм
- •Вопросы для самоконтроля
- •Методические указания для выполнения практического задания №9. «Подпрограммы»
- •Приложение 10. Таблица вариантов заданий
- •14. Обработка строк текста
- •14.3. Строковые переменные
- •14.4. Функции обработки строковых переменных
- •14.5. Процедуры обработки строковых переменных
- •14.6. Примеры обработки строковых переменных
- •Вопросы для самоконтроля
- •15. Структурированные типы данных
- •Пример программы использования массива записей
- •Вопросы для самоконтроля
- •Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей»
- •Приложение 11. Таблица вариантов индивидуального задания
Пример программы использования массива записей
Задача:
Создать массив записей, содержащий сведения о сотрудниках фирмы. Каждая запись содержит поля – фамилия сотрудника, наименование отдела, оклад, трудовой стаж. Написать программу, выдающую следующую информацию:
список сотрудников отдела Х с указанием оклада и трудового стажа;
подсчитать среднюю заработную плату сотрудников отдела Х.
Название отдела Х вводится по запросу с клавиатуры.
Таблица идентификаторов
№ |
Наименование переменной |
Обозначения в программе |
Тип переменной |
1 |
Имя массива |
f |
record (запись) |
2 |
Количество сотрудников |
n |
integer |
3 |
Поле фамилия |
surname |
string |
4 |
Поле отдел |
otdel |
string |
5 |
Поле оклад |
oklad |
real |
6 |
Поле стаж |
Stag |
integer |
7 |
Средняя зарплата |
Sred |
real |
8 |
Отдел поиска Х |
X |
string |
9 |
Количество сотрудников в отделе Х |
K |
integer |
10 |
Индексы массива |
i |
integer |
Листинг программы
program rec_1;
uses crt;
type
firma = record; {запись}
surname : string[20];
otdel : string[20];
oklad : real;
Stag : integer;
end;
var
f:array[ 1..30 ] of firma; {массив записей}
X:string[20];
i,n,k:integer;
sred:real;
begin
clrscr;
writeln(‘Введите n’); readln(n);
writeln(‘Введите информацию о сотрудниках’);
for i:=1 to n do
with f[i] do
begin
writeln(‘Введите фамилию ’); readln(surname);
writeln(‘Введите отдел ’); readln(otdel);
writeln(‘Введите оклад ’); readln(oklad);
writeln(‘Введите стаж ’); readln(Stag);
end;
writeln(‘Введите название отдела’); readln(X);
sred:=0; k:=0;
writeln(‘Список сотрудников отдела ’,X);
for i:=1 to n do
if f[i].otdel=X then
begin
writeln(f[i].surname,’ ‘,f[i].oklad:8:3);
sred:=sred+f[i].oklad;
k:=k+1;
end;
writeln(‘Средняя зарплата отдела=’,(sred/k):8:3);
readln;
end.
Вопросы для самоконтроля
В чем состоит основное преимущество записи?
Почему записи называют комбинированным типом записи?
Чем записи отличаются от массивов?
Что называется полем записи?
Какие требования предъявляются к идентификаторам поля записи?
Как определить объем памяти, требуемый для размещения записи?
С какой целью при обращении к полю записи используется оператор with … do?
Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей»
Цель работы: Ознакомиться с пользовательскими типами данных, записями. Научиться организовывать массивы записей.
Задание:
В приложении 11 выбрать вариант задания.
Выполнить индивидуальное задание по Модулю 2 , на примере программы использования массива записей.
Составить блок-схему алгоритма.
Утвердить блок-схему у тьютора.
Написать программу и отладить ее по заранее подготовленному тесту.
Результат выполнения программы предъявить преподавателю.
Оформить ИДЗ в формате А4, титульный лист по образцу Приложение 4
Защитить выполненную работу у преподавателя.
Приложение 11. Таблица вариантов индивидуального задания
Вариант
|
Задание |
1 |
Создать массив записей, содержащий сведения о месячной заработной плате рабочих завода. Каждая запись содержит поля – фамилия рабочего, наименование цеха, размер заработной платы за месяц. Необходимо: -отсортировать массив записей по полю заработная плата; -подсчитать общую сумму выплат за месяц по цеху Х. Наименование цеха Х вводится по запросу с клавиатуры. |
2 |
Создать массив записей, содержащий сведения об участниках конференции. Каждая запись содержит поля – фамилия участника, возраст, город, из которого прибыл участник. Написать программу, выдающую следующую информацию: -список участников, приехавших из города Х с указанием возраста; -средний возраст участников конференции. Название города Х вводится по запросу с клавиатуры. |
3 |
Создать массив записей, содержащий информацию о сотрудниках частной клиники. Каждая запись содержит поля – фамилия врача, специализация, стаж работы. Написать программу, выдающую следующую информацию: -список врачей по специализации Х с указанием стажа работы; -средний стаж сотрудников клиники. Специализация Х вводится по запросу с клавиатуры. |
4 |
Создать массив записей, содержащий сведения об абонентах телефонной компании. Каждая запись содержит поля – фамилия абонента, год установки телефона, номер телефона. Написать программу, выдающую следующую информацию: -список абонентов, отсортированный по полю год установки; - по вводимой фамилии Х выдается номер телефона абонента. Фамилия Х вводится по запросу с клавиатуры.
|
5 |
Создать массив записей, содержащий сведения об ассортименте игрушек в магазине. Каждая запись содержит поля – название игрушки, цена, количество. Написать программу, выдающую следующую информацию: - стоимость самой дорогой игрушки и ее наименование; - общую стоимость всех игрушек в магазине. |
6 |
Создать массив записей, содержащий сведения об экспортируемых товарах. Каждая запись содержит поля – наименование товара, страна, импортирующая товар, объем поставляемой партии в штуках. Написать программу, выдающую следующую информацию: -список стран, в которые экспортируется товар Х и объем его экспорта; -средний объем экспорта товара Х. Наименование товара Х вводится по запросу с клавиатуры. |
7 |
Создать массив записей, содержащий сведения о студентах группы. Каждая запись содержит поля – фамилия студента, год рождения и оценки по трем экзаменам. Написать программу, выдающую следующую информацию: -список студентов, отсортированный по полю год рождения с указанием полученных оценок; -количество студентов, получивших неудовлетворительные оценки хотя бы по одной дисциплине. |
8 |
Создать массив записей, содержащий сведения о городской библиотеке. Каждая запись содержит поля – шифр книги, автор, название, год издания и стоимость. Написать программу, выдающую следующую информацию: -список книг автора Х с указанием названия и года издания книги; -стоимость самой дорогой книги автора Х; Фамилия автора Х вводится по запросу с клавиатуры. |
9 |
Создать массив записей, содержащий сведения о наличии билетов и рейсах Аэрофлота. Каждая запись содержит поля – номер рейса, пункт назначения, время вылета, стоимость билетов. Написать программу, выдающую следующую информацию: -список рейсов самолетов в город Х, с указанием времени вылета и стоимости билетов; -номер рейса в город Х, с минимальной стоимостью билета. Наименование города Х вводится по запросу с клавиатуры. |
10 |
Создать массив записей, содержащий сведения об ассортименте товаров в магазине. Каждая запись содержит поля – артикул, наименование, стоимость единицы товара, количество. Написать программу, выдающую следующую информацию: -список товаров, отсортированный по полю стоимость товара; - общую стоимость всех товаров в магазине. |
11 |
Создать массив записей, содержащий сведения о сессии. Каждая запись содержит поля – индекс группы ( например ЭС-101), фамилия студента, оценки по трем экзаменам. Написать программу, выдающую следующую информацию: -фамилии неуспевающих студентов группы Х, с указанием количества задолженностей; -количество неуспевающих студентов группы Х. Наименование группы Х вводится по запросу с клавиатуры.
|
12 |
Создать массив записей, содержащий сведения об отправлении поездов дальнего следования. Каждая запись содержит поля – номер поезда, станция назначения, время отправления, стоимость билетов. Написать программу, выдающую следующую информацию: -время отправления поездов в город Х с указанием стоимости билетов; -номер поезда в город Х с минимальной стоимостью билета. Наименование города Х вводится по запросу с клавиатуры. |
13 |
Создать массив записей, содержащий сведения о сотрудниках института. Каждая запись содержит поля – фамилия, пол, название отдела, год рождения, стаж. Написать программу, выдающую следующую информацию: -список сотрудников мужского пола отдела Х призывного возраста (старше 18 и младше 30 лет), с указанием стажа работы; -средний возраст сотрудников мужского пола отдела Х. Наименование отдела Х вводится по запросу с клавиатуры. |
14 |
Создать массив записей, содержащий сведения о телефонах абонентов. Каждая запись содержит поля – фамилия абонента, адрес, номер телефона. Написать программу, выдающую следующую информацию: -по вводимой фамилии абонента Х и адресу Y выдается номер телефона. Фамилию абонента Х и адрес Y вводится по запросу с клавиатуры. |
15 |
Создать массив записей, содержащий сведения о товарах некоторого склада. Каждая запись содержит поля – наименование, цена единицы товара, количество. Написать программу, выдающую следующую информацию: -список товаров, стоимость которых не превышает Х рублей с указанием количества; -общее количество товаров, стоимость которых не превышает Х. Стоимость Х вводится по запросу с клавиатуры. |
16 |
Создать массив записей, содержащий сведения о товарах автосалона. Каждая запись содержит поля – модель автомобиля, цвет, номер двигателя, стоимость. Написать программу, выдающую следующую информацию: -список автомобилей модели Х с указанием цены, цвета и номера двигателя; -самый дорогой автомобиль модели Х. Модель автомобиля Х вводится по запросу с клавиатуры. |
17 |
Создать массив записей, содержащий сведения о туристической фирме. Каждая запись содержит поля – наименование страны, наименование города, стоимость тура. Написать программу, выдающую следующую информацию: -список туров в страну Х с указанием наименования города и стоимости тура; -самый дорогой тур в страну Х. Название страны Х вводится по запросу с клавиатуры. |
18 |
Создать массив записей, содержащий сведения о студентах группы. Каждая запись содержит поля – фамилия студента, индекс группы (например ЭС-101) и оценки по трем экзаменам. Написать программу, выдающую следующую информацию: -список отличников группы Х; -процент отличников по отношения к общему количеству студентов группы Х. Индекс группы Х вводится по запросу с клавиатуры. |
19 |
Создать массив записей, содержащий сведения об абонентах телефонной компании. Каждая запись содержит поля – фамилия абонента, год установки телефона, номер телефона. Написать программу, выдающую следующую информацию: -список абонентов, отсортированный по полю год установки; -количество установленных телефонов с Х года. Значение Х вводится по запросу с клавиатуры. |
20 |
Создать массив записей, содержащий информацию о количестве изделий, собранных рабочими за месяц. Каждая запись содержит поля – фамилия сборщика, наименование цеха, количество изделий, собранных рабочим за месяц. Считая заданными значение расценок по сборке единицы изделия Х, выдать следующую информацию: -ведомость заработной платы рабочих цеха; -общую сумму выплат по цеху. Стоимость сборки единицы изделия Х вводится по запросу с клавиатуры. |
21 |
Создать массив записей, содержащий сведения о сотрудниках таксомоторного парка. Каждая запись содержит поля – фамилия водителя, номер автомобиля, количество выездов за месяц. Написать программу, выдающую следующую информацию: -подсчитать общее количество выездов за месяц; -фамилию водителя, с наибольшим количеством выездов. |
22 |
Создать массив записей, содержащий сведения об услугах частной клиники. Каждая запись содержит поля – название операции, стоимость операции, возрастные ограничения на каждую операцию. Написать программу, выдающую следующую информацию: -список услуг клиники, отсортированный по полю название операции; -по введенному названию операции Х распечатать стоимость и возрастные ограничения. Название операции Х вводится по запросу с клавиатуры. |
23 |
Создать массив записей, содержащий сведения о сотрудниках института. Каждая запись содержит поля – фамилия сотрудника, оклад, стаж работы. Написать программу, которая должна: -начислить премию сотрудникам в размере оклада, стаж которых превышает Х лет: -распечатать список сотрудников, получивших премию с указанием размера премии. Величина Х вводится по запросу с клавиатуры. |
24 |
Создать массив записей, содержащий сведения о товарах магазина. Каждая запись содержит поля – наименование товара, стоимость, количество. Написать программу, которая; -уменьшит стоимость товаров, количество которых не превышает Х, на 50%; -распечатать список новых цен. Количество Х вводится по запросу с клавиатуры. |
25 |
Создать массив записей, содержащий информацию о количестве изделий, собранных рабочими цеха. Каждая запись содержит поля – фамилия рабочего, наименование цеха, количество собранных им изделий за месяц. Написать программу, выдающую следующую информацию: -список рабочих цеха, отсортированный по полю фамилия; -общее количество изделий, собранных рабочими цеха за месяц. |
26 |
Создать массив записей, содержащий сведения о сотрудниках таксомоторного парка. Каждая запись содержит поля – фамилия водителя, номер автомобиля, количество выездов за месяц, оплата за каждый выезд. Написать программу, выдающую следующую информацию: -подсчитать общее количество выездов за месяц; -фамилию водителя, с наибольшей суммой оплат за выезды. |
27 |
Создать массив записей, содержащий сведения о туристической фирме. Каждая запись содержит поля – наименование страны, цель поездки( например: экскурсионная, отдых), стоимость тура. Написать программу, выдающую следующую информацию: -список туров с целью поездки Х с указанием наименования города и стоимости тура; -самый дешевый тур с целью поездки Х. Цель поездки Х вводится по запросу с клавиатуры. |
28 |
Создать массив записей, содержащий сведения о товарах автосалона. Каждая запись содержит поля – модель автомобиля, цвет, номер двигателя, стоимость. Написать программу, выдающую следующую информацию: -список автомобилей модели Х с указанием цены, цвета и номера двигателя; -самый дешевый автомобиль модели Х. Модель автомобиля Х вводится по запросу с клавиатуры. |
29 |
Создать массив записей, содержащий сведения о сотрудниках института. Каждая запись содержит поля – фамилия, пол, название отдела, год рождения, стаж. Написать программу, выдающую следующую информацию: -список сотрудников женского пола в возрасте от 18 и до 55 лет, с указанием стажа работы; -средний возраст сотрудников женского пола отдела Х. Наименование отдела Х вводится по запросу с клавиатуры. |
30 |
Создать массив записей, содержащий сведения о товарах некоторого склада. Каждая запись содержит поля – наименование, цена единицы товара, количество. Написать программу, выдающую следующую информацию: -список товаров, стоимость которых превышает Х рублей с указанием количества; -общую стоимость товаров на складе. Стоимость Х вводится по запросу с клавиатуры. |