Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Требования к курсовой работе.DOC
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
715.78 Кб
Скачать

5.6. Разработка процедур

Рассмотрим подробно две процедуры.

1. Суммарное население континента - procedure sumpop

Схема алгоритма реализации данной процедуры

Пояснения к алгоритму

Переменные процедуры sumpop

Имя

переменной

Смысл

переменной

Назначение

переменной

Ограничения

Z

элемент

файла tip1.dat

исходная

глобальная переменная, запись

Z1

массив,

элементы

которого двухкомпонентные

записи

результат

типизированная

константа

Z2

двухкомпонентная

запись

промежуточная

поле1 – это название континента, поле2 – численность населения

i, j

индексы

массива Z1

целые числа

В процедуре используется локальная типизированная константа Z1.

type

zap1=record

cont:string[13];

nas:longint

end;

const

z1:array[1..5] of zap1=

((cont:'Africa';nas:0),

(cont:'Asia';nas:0),

(cont:'Europe';nas:0),

(cont:'North America';nas:0),

(cont:'South America';nas:0));

var z2:zap1; i,j:integer;

Это массив состоящий из 5 элементов (по числу континентов). Каждый элемент массива – запись состоящая из двух полей (название континента, численность населения стран приведенных в таблице соответствующего континента). Типизированная константа используется в процедуре, чтобы задать начальные значения полям записи (название континента и значения ноль для численности населения).

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

Из файла tip1.dat считывается очередной элемент файла (запись о стране) и помещается в переменную Z

type zap=record

continent,country:string [13];

area:real;

population:longint

end;

var f:file of zap; z:zap;

Значение поля континент (название континента) переменной Z последовательно сравнивается со значением поля cont элементов массива Z1. если сравнение произошло, то значение поля nas (соответствующего элемента Z1) увеличивается на значение поля population переменной Z. Таким образом, после просмотра всех элементов файла в массиве Z1 в полях nas будут результаты вычисления сумм населения стран для каждого континента.

Далее организована сортировка массива Z1 по убыванию численности населения континентов (для сортировки используется метод прямой выборки) и вывод данных массива Z1 на экран.

Программа процедуры

procedure sumpop;

type

zap1=record

cont:string[13];

nas:longint

end;

Const

z1:array[1..5] of zap1=

((cont:'Africa';nas:0),

(cont:'Asia';nas:0),

(cont:'Europe';nas:0),

(cont:'North America';nas:0),

(cont:'South America';nas:0));

var z2:zap1; i,j:integer;

begin

clrscr; ;

reset (f);

while not eof (f) do

begin

read (f,z);

for i:=1 to 5 do

if z.continent=z1[i].cont then

z1[i].nas:=z1[i].nas+z.population

end;

for i:=1 to 4 do

for j:=i+1 to 5 do

if z1[i].nas<z1[j].nas then

begin

z2:=z1[i]; z1[i]:=z1[j]; z1[j]:=z2

end;

textcolor(lightred);

gotoxy(10,2);

write('SUM population on continents:');

textcolor(yellow);

gotoxy(5,3);write('Continent');

gotoxy(20,3);

write('Population (thousand people)');

for i:=1 to 5 do

with z1[i] do

begin

textcolor (white);

gotoXY (5,i+4);

write (cont);

if nas<>0 then

begin gotoXY (20,i+4); write (nas) end

else

begin

textcolor (lightred);

gotoxy(20,i+4); write ('NO INFORMATION')

end

end;

gotoxy(10,15);

write('Continue. Press on key');

readkey;

close (f)

end;

Примечание: при выводе данных на экран используется стандартная процедура gotoxy(x,y)-установливает курсор в позицию экрана с координатами (x,y) и с этой позиции осуществляется вывод по процедуре Write. Если численность населения континентов равна нулю, то на экран выводится текст'NO INFORMATION'(нет информации).

2. Средняя плотность населения - procedure plotnst

Переменные процедуры plotnst

Имя

переменной

Смысл

переменной

Назначение

переменной

Ограничения

Z

элемент файла tip1.dat

исходная

глобальная переменная, запись

S

название страны

вводимое

данное

с клавиатуры

строка, максимальный размер 13 символов

R

средняя плотность населения заданной страны

результат

число

вещественное

b

флажок

промежуточная

логическая

ans

флажок

промежуточная

целое число

Схема алгоритма реализации данной процедуры