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



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

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

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

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

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

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

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

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