Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
2021-04-18 | 79 |
5.00
из
|
Заказать работу |
|
|
Переменная R для представления точки на плоскости
x | y |
Переменная S типа Tsession
Fam | marke |
Переменная Е типа Temploye
day | month | year | City | Street | NumHouse | NumRoom | |
Fam | Date | Adress |
Доступ к значению поля в записи
Для доступа к значению поля используется уточненное имя. Уточненное имя формируется по правилу: имя переменной. имя поля. Если имя поля в свою очередь представляет переменную типа запись, то правило распостраняется на имя этого поля.
Примеры формирования имени.
1) Имя поля переменной R.
R.x или R.y
2) Доступ к значению оценки по третьему экзамену в сессию.
S.marke[3]
3) Доступ к значению поля City переменной E.
E.Adress.City
Расчет объема памяти, выделяемого переменной типа запись
Количесво байтов памяти, выделяемой полям фиксированной части плюс количество байтов для самой длинной альтернативы вариантной части.
Требования к выполнению лабораторной работы
Требуется создать сначала консольное одномодульное приложение, затем из одномодульного создать многомодульное приложение.
Создание одномодульного приложения
1. Разработать структуру данных массив, элементами которой являются записи. Структура одной записи определена вариантом.
2. Разработать подпрограммы:
· заполнение отдельной записи;
· вывод записи;
· добавление нового элемента в динамический массив;
· сортировка мАссива (методом, указанным в варианте);
· подзадач, которые будут выявлены вами при разработке дополнительной операции;
· вывод массива записей;
· вывод результатов операций.
Примечание. Обмен данными с подпрограммами обеспечить через механизм параметров.
|
3. Разработать консольное приложение, управляемое пользовательским интерфейсом и продемонстрируйте работу всех операций.
Создание многомодульного приложения.
1. Создайте модуль Unit_Def и разместите в нем:
· определение типа записи;
· определение типа массива записей.
2. Создайте модуль Unit_Input_Output, включите в него модуль Unit_Def и разместите в нем подпрограммы
· заполнение отдельной записи;
· вывод записи;
· добавление нового элемента в динамический массив;
· вывод массива записей;
· вывод результатов операций.
3. Создайте модуль Unit_Operation и включите в него:
· модуль Unit_Def;
· подпрограммы по сортировке массива и дополнительным операциям.
4. Разработайте новое многомодульное приложение, демонстрирующее выполнение операций над массивом записей и использующее, разработанные подпрограммы. Для демонстрации всех операций разработайте пользовательский интерфейс. План создания приложения:
· создать консольное приложение;
· подключить к нему модули;
· разработать интерфейс на основе текстового меню;
· отладить проект, включая операции последовательно, а не все сразу.
Таблица 5
Варианты заданий
Структура записи | Метод сортировки | Дополнительная операция | |
1 | Сведения о студенте: Номер зачетной книжки, Фамилия, Имя, Дата рождения, Номер телефона, Дата поступления, Признак удаления записи | Метод прямого выбора. Отсортировать массив по дате рождения(перевести ее сначала в число исчисляя начало 1900 годом) | Найти и удалить всех окончивших институт (т.е. более срок обучения более 6 лет) |
2 | Сведения о спортсмене:Фамилия, Имя, Дата рождения, Вес, Рост, Пол | Метод “Пузырька”. Отсортировать массив по полю Вес. | Сформировать список спортсменов мужчин не старше 22 лет |
3 | Сведения о расписании занятий: Номер группы, название дисциплины, вид занятия (лек, лаб, практ), номер аудитории, день недели, номер пары, фамилия преподавателя.. | Отсортировать массив по номеру группы, используя алгоритм Шейкер сортировки. | Сформировать список групп, у которых лекция проходит в потоке. |
4 | Сведения о жителе: Фамилия, Город, Адрес: улица, дом, квартира. | Отсортировать массив методом вставки, упорядочивая по возрастанию по городам | Вывести фамилии двух жителей, живущих в разных городах по одному адресу. |
5 | Сведения о книге: Автор, Название, Инвентарный номер, Издательство, Количество страниц, Цена | Отсортировать массив по по Автору, используя метод улучшенного Пузырька. | Вставить новую книгу в упорядочен -ный массив. |
6 | Сведения об успеваемости одного студента по одной дисциплине: Номер зачетной книжки, Шифр группы, Название дисциплины, Дата получения оценки, Оценка, Фамилия преподавателя[1]. | Отсортировать массив методом Вставки по Названию дисциплины | Сформировать ведомость успеваемости группы по определенной дисциплине (Шифр группы и Название дисциплины вводятся). Найти средний балл группы по Дисциплине. |
7 | Учет выдачи книг пользователям библиотеки. Карточка пользователя библиотеки содержит сведения, о выданной книге: Инвентарный номер, Автор, Название, Дата выдачи, Дата возврата | Отсортировать по дате выдачи методом прямого выбора | Сформировать список книг, которые не возвращены вовремя. |
8 | Успеваемость группы студентов. Сведения по одному экзамену одного студента: Номер зачетной книжки, Название дисциплины, Дата получения оценки, Оценка, Фамилия преподавателя. (по каждому студенту будет столько записей сколько экзаменов он сдал). При вводе данных в строковые поля предусмотреть преобразование их к формату: первая буква большая, остальные маленькие | Отсортировать в хронологическом порядке по дате получения оценки. | Найти студентов с наибольшим баллом и вывести их фамилии. |
9 | Список экспортируемых товаров. Об отдельном товаре хранятся данные: Наименование товара, Страна импортирующая товар, Количество(в штуках). | Отсортировать список методом Пузырька по Стране | Сформировать массив стран, в которые импортируется указанный товар(название товара вводит пользователь) |
10 | Магазин игрушек. Сведения об игрушке: Название(например: кукла, конструктор и т.д.), стоимость в копейках(вводится может дробное число, содержащее рубли и копейки), возрастные границы детей, для кого игрушка предназначена(два поля – начальный возраст и конечный) | Отсортировать методом улучшенного пузырька по возрастным группам | Сформировать список игрушек для детей указанного возраста и определенной стоимости. |
11 | Служба знакомств. Структура данных хранит сведения о претендентах. Об отдельном претенденте: Фамилия, Имя Отчество, Возраст, Рост, Цвет глаз, Цвет волос, Зарплату, Наличие квартиры, Наличие машины. | Отсортировать список претендентов по возрасту методом прямой вставки. | Сформировать список пар, которые можно построить на основе некоторого критерия. Критерий определите сами |
12 | Продажа квартир. Сведения о продаваемой квартире: Общая площадь, Жилая площадь, Площадь кухни, Наличие лоджии, Наличие санузла и его характеристики(совмещенный или нет), Панельный или кирпичный дом, Этаж, Общее количество этажей, Адрес, Стоимость, Район города | Отсортировать по убыванию методом Пузырька по общей площади и по району | Сформировать список квартир по заданному критерию. Критерий составить самим. Отбор должен осуществляться минимум по трем параметрам. |
13 | Поликлиника. Структура содержит данные о жителях, обслуживаемых данной поликлиникой. О жителе хранятся сведения: Фамилия, Имя, Отчество, Адрес, Место работы, Наличие прививки от гриппа, Дата последней флюорографии | Отсортировать методом прямой вставки по дате флюорографии. | Сформировать список не сделавших прививку от гриппа. |
14 | ГИБДД. Структура хранит данные об автомашинах, О каждой машине: Модель, Номер(код региона, цифровой код, буквенный код), Цвет, Сведения о владельце(Фамилия, Имя, Адрес), дата последнего техосмотра. | Отсортировать по моделям методом бинарной сортировки | Сформировать список номеров машин модели “Волга” не прошедших техосмотр в этом году. |
15 | Справочник владельца видеотеки. О каждом видеофильме хранятся данные: Название, Студия, Жанр, Год выпуска, Режиссер, Исполнители главных ролей(не более 10): фамилия. | Отсортировать по возрастанию методом прямого выбора по жанру. | Сформировать список видеофильмов данного режиссера, за данный год и указанного жанра |
16 | Справочник фаната. Содержит данные о спортсменах: Анкетные и антропологические данные, Гражданство, Вид спорта, Клуб, Данные о личном рекорде(дата, призовое место) | Отсортировать по призовому месту методом улучшенного пузырька. | Сформировать список спортсменов различных стран, по одному виду спорта, принадлежащих одному клубу |
17 | Справочник коммерческих банков. Об отдельном банке хранятся данные: Наименование, Адрес, Статус(форма собственности), условия хранения средств на личном счету(годовые проценты на различных видах вкладов) | Отсортировать в порядке убывания по годовым процентам методом прямого выбора. | Выбрать банк с наибольшим процентом для заданного вида вклада |
18 | Автосалон. Об отдельном автомобиле: Марка, Год выпуска, Мощность двигателя, Количество цилиндров, Запрашиваемая цена. Сведения о покупателях: контактный телефон, Марка, Технические характеристики, Финансовые возможности. | Отсортировать по марке и году выпуска методом Пузырька | Выполнить подбор вариантов для покупателя (подбор по всем поля покупателя, кроме контактного телефона) |
19 | Справочник туриста. Турагенство предлагает услуги: Страна, Город, Условия проживания(Отель-звезды, Автобус и т. д.), Условия проезда, Экскурсионное обслуживание, Сервис принимающей стороны, Стоимость путевки. | Выполнить сортировку методом прямой вставки по стране и стоимости | Сформировать список туров по стране и стоимости |
Пример разработки одномодульного приложения.
|
|
|
Разработать приложение, выполняющее арифметические операции с обыкновенной дробью, состоящей из числителя и знаменателя. Числитель и знаменатель представлены целыми числами.
Пример кода одномодульного приложения
Program PrimRec;
Uses
sysutils;
type
TDroby=record
a:integer;
b:integer;
end;
TDar=array of Tdroby;
//Добавление записи в массив
procedure Add_to_Array(var Mass:TDar;r:TDroby);
var
i:word;
begin
i:=high(Mass);
setlength(Mass,i+1);
Mass[i]:=r;
end;
//Сложение двух дробей
function ADD(r1,r2:TDroby):TDroby;
begin
result.a:=r1.a*r2.b+r1.b*r2.a;
result.b:=r1.b*r2.b;
sokrashenye_droby(result);
end;
//наибольший общий делитель числителя и знаменателя дроби //для сокращения дроби
function NOD_a_b(r:TDroby):integer;
var
n,m,modr:integer;
begin
n:=r.a;
m:=r.b;
modr:= n mod m;
while modr<>0 do
begin
n:=m;
m:=modr;
modr:=n mod m;
end;
result:=m;
end;
//Сокращение дроби
procedure sokrashenye_droby(var r:Tdroby);
var
del:integer;
begin
del:=NOD_a_b(r);
r.a:=r.a div del;
r.b:=r.b div del;
end;
//Нахождение суммы дробей массива
function Add_Mass(Var Mass:TDar):Tdroby;
var
i:integer;
sum:Tdroby;
begin
if length(Mass)=0 then showMessage('Массив дробей не создан')
else
begin
sum.a:=Mass[0].a;
sum.b:=Mass[0].b;
for i:=1 to high(Mass) do
begin
sum:=ADD(sum,Mass[i])
end;
end;
result:=sum;
end;
//Ввод дроби
procedure input_record(var r:Tdroby;var p:boolean);
begin
p:=true;
MY_writeln('Введите дробь');
MY_writeln('Числитель');readln(r.a);
MY_writeln('Знаменатель');readln(r.b);
if (r.a=0) or (r.b=0) then p:=false
else
sokrashenye_droby(r);
end;
//Ввод данных в массив записей (дробей)
|
procedure input_Array(var mass:Tdar;var p:boolean);
var
otvet:char;
r:TDroby;
i:integer;
begin
i:=0;
MY_writeln('Создание массива завершается по требованию пользователя');
repeat
input_record(r); p:=true;
Add_to_Array(Mass,r);
MY_writeln('Продолжить ввод дробей Y/N');
readln(otvet)
until (otvet='N') or (otvet='n');
end;
//вывод записи
procedure out_record(var r:Tdroby);
begin
my_write('Дробь=');
writeln(r.a,'/',r.b);
end;
//Вывод массива записей
procedure out_Array(var mass:Tdar);
var
i:integer;
begin
for i:=0 to high(mass) do
with mass[i] do
write(a,'/', b,' ');
end;
procedure my_writeln(const s:string);
begin
writeln(RUSANSI1251_ASCII866(s));
end;
procedure my_write(const s:string);
begin
writeln(RUSANSI1251_ASCII866(s));
end;
//ОСНОВНАЯ ПРОГРАММА
var
r1,r2:TDroby;
mass:TDar;
n,num:byte;
p1,p2:boolean; //признаки заполнения массива
otvet:char;
sum:Tdroby;
begin
P1:=false;P2:=false;
while true do
begin
My_writeln('Набор операций');
My_writeln('1.Формирование одной дроби');
My_writeln('2.Вывод дроби');
My_writeln('3.Создание массива дробей');
MY_writeln('4.Вывод массива');
MY_writeln('5.Сложение всех дробей массива');
MY_writeln('6.Выход');
MY_writeln('Введите номер операции');
Readln(num);
case num of
1: begin
input_record(r1,p1); //p1 - признак заполнения записи
end;
2: begin
if p1 then
out_record(r1)
else
My_writeln('Дробь не введена');
end;
3: begin
input_Array(mass,p2);
end;
4:
if p2 then
out_Array(mass)
else
MY_writeln('Масcив не создан');
5:if p2 then
begin
sum:=ADD_Mass(mass);
MY_write(' Сумма=');
out_record(sum);
end
else
MY_writeln('Масcив не создан');
6:halt(0);
end
end;
end.
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!