- •Министерство образования российской федерации
- •Содержание
- •Алгоритмизация вычислительных процессов.
- •Основные определения и понятия.
- •Средства изображения алгоритмов.
- •Базовые канонические структуры алгоритмов.
- •1)Следование
- •2) Развилка
- •3)Повторение
- •Вопросы к главе 1.
- •Введение в Турбо Паскаль.
- •Общая характеристика языка Паскаль.
- •Основные понятия языка Турбо Паскаль.
- •Алфавит языка.
- •Элементарные конструкции.
- •Типы данных.
- •Операторы языка Паскаль.
- •Оператор присваивания.
- •Оператор перехода. Пустой оператор. Составной оператор.
- •Условный оператор.
- •Оператор выбора.
- •Операторы цикла.
- •Var X: real; {аргумент }
- •If not fl then Writeln(‘ нет чисел на 3‘);
- •Вопросы к главе 2.
- •Структурированные типы данных.
- •Свойства множеств.
- •Операции над множествами.
- •If fl then writeln('идентификатор')
- •Описание записи (record).
- •Оператор присоединения.
- •Запись с вариантами.
- •Вопросы к главе 3.
- •Использование подпрограмм в Турбо Паскале.
- •Структура программы на языке Паскаль.
- •Описание и вызов процедур.
- •Описание функции.
- •Формальные и фактические параметры.
- •Параметры-значения.
- •Параметры-переменные.
- •Var r:tvect; {результат - вектор}
- •Var k:byte); {длина полученного вектора}
- •Параметры-константы.
- •Параметры-процедуры и параметры-функции.
- •Область действия имен.
- •Процедуры и функции без параметров.
- •Рекурсивные процедуры и функции.
- •Предварительно-определенные процедуры.
- •Модули.
- •Вопросы к главе 4.
- •Стандартные процедуры и функции.
- •Математические функции.
- •Функции округления и преобразования типов.
- •Функции порядкового типа.
- •Процедуры порядкового типа.
- •Строковые функции.
- •Строковые процедуры.
- •Прочие процедуры и функции.
- •Процедуры ввода данных.
- •Процедуры вывода данных.
- •Особенности вывода вещественных значений.
- •Вопросы к главе 5.
- •Работа с файлами.
- •Общие сведения о файлах.
- •Процедуры и функции для работы с файлами.
- •Особенности обработки типизированных файлов.
- •Особенности обработки текстовых файлов.
- •Файлы без типа.
- •Проектирование программ по структурам данных
- •Работа с файлами при обработке экономической информации
- •Постановка задачи.
- •Проектирование программы.
- •Кодирование программы.
- •Вопросы к главе 6.
- •Динамическая память.
- •Указатель.
- •Стандартные процедуры размещения и освобождения динамической памяти.
- •Стандартные функции обработки динамической памяти.
- •Примеры и задачи.
- •Работа с динамическими массивами.
- •Организация списков.
- •Задачи включения элемента в линейный однонаправленный список без головного элемента.
- •Формирование пустого списка.
- •Формирование очередного элемента списка.
- •Подсчет числа элементов списка.
- •Вставка элемента в начало списка.
- •Включение элемента в конец списка.
- •Включение в середину (после I-ого элемента).
- •Задачи на удаление элементов из линейного однонаправленного списка без головного элемента.
- •Удаление элемента из начала списка.
- •Удаление элемента из конца списка.
- •Удаление элемента из середины списка (I-ого элемента).
- •Удаление всего списка с освобождением памяти.
- •Задачи на замену элементов в линейном однонаправленном списке без головного элемента.
- •Стеки, деки, очереди.
- •Использование рекурсии при работе со списками.
- •Бинарные деревья.
- •Действия с бинарными деревьями.
- •Построение бинарного дерева.
- •Решение задач работы с бинарным деревом.
- •Вопросы к главе 7.
- •Основные принципы структурного программирования.
- •Понятие жизненного цикла программного продукта
- •Основные принципы структурной методологии.
- •Структурное кодирование.
- •Модульное программирование.
- •Вопросы к главе 8.
- •Список литературы
Кодирование программы.
Текст программы помимо тела, соответствующего матрице операций, должен содержать объявления файлов и структур данных. Для решения данной задачи используются не все поля записей основного и справочных файлов, однако необходимо отвести память для размещения входных записей. Должны быть объявлены и выходные файлы. Кроме того, должны быть объявлены поля управления, печати, итогов и т.п. Некоторые из этих переменных были определены при разметке диаграмм структур данных и заполнении матрицы операций, другие же могут определиться при детализации действий из матрицы операций, например, в связи с формированием ключей для обращения к файлам справочникам.
Текст программы приводится на рис.15. Таким образом из рассмотренного примера видно, что использование языка Паскаль в сочетании с методологиями проектирования программ по структурам данных может обеспечить высокую эффективность реализации процедур обработки экономической информации.
type tn=record
a:string[2];
b:string[2];
h:string[3];
c:string[4];
e:string[10];
k:integer
end;
tr=record
c:string[4];
m:string[30];
g:byte
end;
top=record
e:string[10];
p:word;
ei:string[2]
end;
tp=record
a:string[2];
x:string[25];
ph:string[7];
end;
var fn:file of tn; zn:tn;
fo:file of top; zo:top;
fr:file of tr; zr:tr;
fp:file of tp; zp:tp;
v1,v2,v3:text;
s0,sa,sb,sc,kod,chi:integer;
f:boolean;
a1,b1,bp:string[2];
c1:string[4];
nd:string;
ch:char;
begin
write('имя осн.файла='); readln(nd);
assign(fn,nd);
write('имя файла раб.='); readln(nd);
assign(fr,nd);
write('имя файла опер.='); readln(nd);
assign(fo,nd);
write('имя файла подр.='); readln(nd);
assign(fp,nd);
assign(v1,'v1'); rewrite(v1);
assign(v2,'v2'); rewrite(v2);
assign(v3,'v3'); rewrite(v3);
writeln(v1,' Ведомость 1');
writeln(v1,' Цех Участок Таб.номер ',
Начислено');
writeln(v2,' Ведомость 2');
writeln(v3,' Ведомость 3');
writeln(v3,' Цех Название ',
Начислено');
s0:=0; f:=true;
reset(fn); read(fn,zn);
reset(fp); reset(fr);
while f do
begin
a1:=zn.a; sa:=0;
zp.x:=' '; val(a1,chi,kod);
seek(fp,chi-1); read(fp,zp);
writeln(v2,'Цех ',a1:3,' ',zp.x:25);
writeln(v2,'Участок Т.ном. ФИО',
' Начислено');
while f and(a1=zn.a) do
begin
b1:=zn.b; bp:=b1; sb:=0;
while f and(a1=zn.a)and(b1=zn.b) do
begin
c1:=zn.c; sc:=0;
zr.m:=' '; val(c1,chi,kod);
seek(fr,chi-1); read(fr,zr);
while f and(a1=zn.a)and(b1=zn.b)and
(c1=zn.c) do
begin
reset(fo); zo.p:=0;
repeat
read(fo,zo);
until eof(fo) or (zn.e=zo.e);
close(fo);
sc:=sc+zo.p*zn.k;
if not eof(fn) then read(fn,zn)
else f:=false;
end;
writeln(v1,a1:5,b1:8,c1:10,sc:10);
writeln(v2,bp:5,c1:7,' ',zr.m:30,
sc:3);
bp:='';
sb:=sb+sc;
end;
writeln(v1,' по участку',
sb:5);
writeln(v2,' ',
'по участку', sb:5);
sa:=sa+sb;
end;
writeln(v1,' по цеху',
sa:5);
writeln(v2,' ',
' по цеху', sa:5);
writeln(v3, a1:6,zp.x:30,sa:5);
s0:=s0+sa;
end;
writeln(v1,' ',
'всего',s0:5);
writeln(v2,' ',
' всего',s0:5);
close(v1); close(v2); close(v3); close(fn);
end.
Рис.15 Текст программы.