Студопедия — Пример 3
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 3






Пассажирский самолет может поднять груз общим весом 30 т. Составить программу для определения веса почтового груза, который можно поместить в самолете после посадки пассажиров и загрузки их багажа. Во время регистрации пассажиров ЭВМ должна подсчитывать количество пассажиров (условный вес одного пассажира 70 кг). Предусмотреть возможность ввода номера пассажира и веса его багажа в таблицу и вывода таблицы на экран. Упорядочить номера пассажиров в зависимости от веса багажа пассажиров.

Unit Work;

 

Interface

Const N = 7; {количество элементов массива}

Type mas = array [1..N] of integer;

Procedure View(x: mas; l:integer) {информация о пассажирах}

Procedure zapolnenie (var x: mas); {заполнение элементов массива}

procedure Create(var x: mas; var l:integer); {регистрация пассажиров}

procedure View_sort(x: mas; l:integer); {oтсортированный просмотр пассажиров}

procedure Gruz(x: mas; l:integer); {почтовый груз}

procedure sort(var x,y: array of integer; count: integer); {сортируется массив x, а элементы y переставляются соответственно}

 

Implementation

 

{информация о пассажирах}

procedure View(x: mas; l:integer);

var

i, S: integer;

begin

 

Writeln(' Информация о пассажирах');

Writeln('| № п/п| Регистрационный № | Вес багажа |');

Writeln('_________________________________________');

S:= 0;

For i:= 1 to l do

begin

WriteLn('|', i:4, ' | ', x[1,i]:6,' | ', x[2,i]:6,' | ');

S:= S + x[2,i] + ves;

Writeln('_________________________________________');

end;

 

Writeln ('Всего ', l, ' пассажиров');

Writeln ('Общий вес ', S);

ReadKey;

end;

 

{регистрация пассажиров}

procedure Create(var x: mas; var l:integer);

var

i, S: integer;

ch: char;

begin

Writeln('Регистрация пассажиров');

i:= 0; S:= 0;

repeat

inc(i);

write('Введите регистрационный номер ',i, '-го пассажира ');

ReadLn(x[1,i]);

write('Введите вес багажа ',i, '-го пассажира ');

ReadLn(x[2,i]);

S:= S + x[2,i] + ves;

Write('Продолжить? (Y/N) ');

ReadLn(ch);

If (i > N) or (S > N_max) then

begin

writeln('Самолет перегружен!');

break

end;

until (ch='N') or (ch='n');

l:= i;

Writeln ('Регистрация завершена');

ReadKey;

end;

{oтсортированный просмотр пассажиров}

procedure View_sort(x: mas; l:integer);

var

y: mas;

t,t1: mas1;

 

begin

t:= x[2];

t1:= x[1];

sort(t,t1,l);

y[1]:= t1;

y[2]:= t;

Writeln('Упорядоченный вывод ');

View(y,l);

end;

 

{почтовый груз}

procedure Gruz(x: mas; l:integer);

var

i, S: integer;

begin

 

S:= 0;

For i:= 1 to l do

begin

S:= S + x[2,i];

end;

 

Writeln ('Всего ', l, ' пассажиров');

Writeln ('Общий вес багажа ', S);

Writeln ('Общий вес пассажиров ', ves * l);

Writeln ('Вес почтового груза ', N_max - S - ves *l);

ReadKey;

end;

 

{сортировка массивов}

procedure sort;

var

i,k,c: integer;

f: boolean;

 

begin

k:= 0;

repeat

f:= true;

for i:= 0 to count-k-2 do

begin

if x[i] > x[i+1] then

begin

c:= x[i]; x[i]:= x[i+1]; x[i+1]:= c;

c:= y[i]; y[i]:= y[i+1]; y[i+1]:= c;

f:= false

end;

end;

inc(k);

until f;

end;

end.

 

Program Lab_Rab_6_4;

Uses Crt, Work;

Const N_max = 30000; {максимальная грузоподъемность самолета}

N = 300; {максимальное количество пассажиров}

Ves = 50; {условный вес пассажира}

Type

mas1 = array [1..N] of integer;

mas = array [1..2] of mas1;

 

var

Ch: integer; {пункт меню}

A: mas;

Count: integer;

 

Begin

Count:= 0;

Repeat

ClrScr;

Writeln('1 - Регистрация пассажиров ');

Writeln('2 - Просмотр пассажиров ');

Writeln('3 - Отсортированный вывод ');

Writeln('4 - Почтовый груз ');

Writeln('5 - Выход ');

Writeln;

Write('Введите № пункта меню - ');

ReadLn(Ch);

ClrScr;

Case ch of

1: Create (A,Count);

2: View(A,Count);

until Ch=5;

End.

 

Задание 3.3 (12 баллов)

Написать программу в процедурном стиле.

Указания. Интерфейс программы оформить в виде некоторого меню, пункты которого соответствуют заданиям варианта. Выполнить процедурную декомпозицию задачи методом пошаговой детализации. Реализацию выделенных подзадач оформить в виде модуля. Подготовить тесты иллюстрирующие правильность работы программы.

 







Дата добавления: 2015-08-12; просмотров: 1085. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия