
- •1. Общие положения
- •2. Требования к курсовой работе
- •2.1. Требования к отчету
- •2.2. Требования к программе
- •2.3. Требования к защите курсовой работы
- •3. Методические рекомендации
- •3.1. Структурное программирование
- •3.2. Виды меню
- •3.3. Заставка (текстовая, графическая)
- •4. Разработка информационно-поисковой системы (ипс)
- •5. Типовой пример
- •5.1. Постановка задачи
- •5.2. Описание базы данных
- •5.3. Структура программы
- •5.4. Первоначальные данные
- •5.5. Интерфейс программы
- •5.6. Разработка процедур
- •Пояснения к алгоритму
- •Программа процедуры
- •Пояснения к алгоритму
- •Программа процедуры
- •5.7. Текст программы
- •5.8. Результаты машинного тестирования
- •6. Литература
- •Оглавление
- •1. Общие положения…………………………………………….…2
- •2. Требования к курсовой работе……………………………….…3
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
|
Схема алгоритма реализации данной процедуры
|