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

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

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




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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

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

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

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