Студопедия — Пример 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; просмотров: 1081. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

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

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

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