Министерство обраразования
Российской Федерации
Московский государственный университет
Экономики,статистики и информатики
(МЭСИ)
Лабораторная работа №2
По теме
« Программная обработка
Структурных данных »
Проверил: Смирнов А.А
Оглавление
1. Организация данных в виде массива.
-Описание организации обработки массивов.
-Распечатка текстов программ и результатов выполнения.
2. Обработка экономической информации, организованной в виде массива записей.
-Описание организации обработки массивов записей.
-Распечатка текстов программ и результатов выполнения.
3. Постановка задачи на обработку экономической информации с использованием массива записей
-Описание условия задачи.
-Распечатка текстов программ и результатов выполнения.
Работа состоит из частей:
Первая часть . «Организация данных в виде массива».
Первая часть предусматривает создание программного проекта , обеспечивающего обработку одномерного числового массива. Программный код , должен обеспечить выполнение следующих действий :
Во-первых ,ввод элементов массива;
Во-вторых ,определение местоположение (координаты) максимального элемента в массиве. Если несколько элементов имеют одинаковое максимальное значение ,то выдать координаты всех максимальных элементов.
Вторая часть. «Обработка экономической» информации, организованной в виде массива записей”.
Вторая часть предусматривает обработку массива, содержащего информацию, выбранную из документа «товарно-транспорная накладная ». Документ содержит следующие реквизиты:
-Во-первых , поставщик . Реквизит представлен в виде символьной строки длиной в 20 символов ;
-Во-вторых , пункт назначение .Реквизит представлен в виде символьной строки длиной в 20 символов ;
-В-третьих, название товара. .Реквизит представлен в виде символьной строки длиной в 20 символов ;
-В-четвертных ,количество . Реквизит представлен в виде числа ,не имеющего дробной в 20 символов
-В-пятых, цена .Реквизит представлен в виде числа , имеющего дробную часть.
При выполнение второй части требуется разработать, программный код ,обеспечивающий расчет общей суммы по всем товарам ,имеющимся в накладной .Сумма по каждому из товара на цену товара.
Третья часть «Постанова задачи на обработку экономической информации с использованием массива записей».
При выполнение третьей части требуется самостоятельно сформулировать условие задачи по обработки экономической информации с использованием массива записей ,а также разработать программный проект для решение поставленной задачи.
Первая часть.
«Организация данных в виде массива».
Описание конструкций языка, обеспечивающих обработку массивов
Под массивом понимается упорядоченная совокупность однотипных данных. Все элементы массива имеют имя .Каждый элемент массива имеет один или несколько номеров-индексов. Каждый индекс может изменяться от одного до некоторого заданного числа N .причем величина N неизменна и определяет размеры массива .Если для обращения к элементу используется 1 индекс ,то это одномерный массив.
Для создания массива необходимо предварительно задать его диапазон значений и тип элементов .Это делает в разделе Type программного кода , причем оператор выглядит следующим образом :[<1> =Array [1..N1, 1 .. N2 ...] of <2>,где <1> -название типа массива , N1,2…-размеры массива по данному измерению , <2> - тип элементов массива.
Для выделения оперативной памяти для элементов массива требуется задать описание массива в разделе Var.
В процессе обработки можно использовать значения индекса , не выходящие за границы диапазона.
Программныйкод
Program max ;
{$APPTYPE CONSOLE}
Uses
SysUtils;
var
A: array[1..30] of integer;
m ,n ,i : integer;
begin
writeln (‘vvedite kol-vo elementov ‘);
readln (n);
writeln (‘vvedite massiv’);
for i:=1 to n do
readln (A[i]);
m :=-maxint;
for I : =1 to n do
if A[i] >m then
m:=A[i];
writeln(‘koordinati’);
for I :=1 to n do
if A[i] =m then
writeln (I);
readln;
end.
Вторая часть .
«Обработка экономической информации, организованной в виде массива записей ».
Особенности обработки информации, организованной в виде массива записей .
Представление информации в виде массива записей используется для организации экономической информации в оперативной памяти.
Совокупность реквизитов, составляющих 1 документ. Представляется в виде отдельного элемента массива. При определении массива записей в разделе Typeразмерность массива записей определяется максимально возможным количеством обрабатываемых документов .Количество элементов массива будет соответствовать числу выделенных документов или введенных строк в многострочных документах.
Программныйкод
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TStpost=record
prod :string[10];
post :string[20];
potr :string[20];
sum :real;
end;
T_Array_TStPost=Array[1..40]of TStPost;
var
StPost: T_Array_TStPost;
N,I:integer;
Max:real;
MaxPost :string[20];
begin
{ TODO -oUser -cConsole Main : Insert code here }
writeln ('Vvedite kolichestvo zapicei ');
readln (N);
writeln ('Vvedite document');
For I:=1 to N do
begin
writeln ('Vvediteln kod prodykcii');
readln (StPost[I].Prod);
writeln ('kod postavshika prodykcii');
readln (StPost[I].Post);
writeln ('kod potrebileta prodykcii ');
readln (StPost[I].Potr);
writeln ('symma postavlennoi prodykcii ');
readln ( StPost[I].Sum );
end;
Max:=-MaxInt;
For I:=1 to N do
if StPost[I].Sum > Max then
begin
Max:= StPost[I].Sum ;
MaxPost := StPost[I].Post;
end;
writeln ('pstavshik ',MaxPost);
readln;
end.
Третья часть
«Постановка задачи на обработку экономической информации с использованием массива записей»
Условие:
Имеется отчет о поступлении денег с разных городов на приобретение билетов в форме массива записей со следующими реквизитами:
Во –первых ,город ,откуда поступили деньги .Реквизит представлен в виде символьной строки длиной в 20 символов ; Во-вторых ,ответственный ,принявший деньги . Реквизит представлен в виде символьной строки длиной в 20 символов ; В-третьих ,имя сдавшего деньги . Реквизит представлен в виде символьной строки длиной в 20 символов ; В-четвертых, количество билетов . Реквизит представлен в виде числа, не имеющего дробную часть. В-пятых ,цена билета . Реквизит представлен в виде числа ,имеющего дробную часть.Программныйкод
Program econom;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Type
M_class=record
Imya : String [20];
Otvestv : String [20];
Gorod : String [20];
Kolichestvo :integer ;
Cena :real;
End;
M_Array_class=Array [1..40] of M_class;
Var
M :M_Array_class;
N,I,KolVo:integer ;
Sum ,Sum0,SrCena :real;
C_Imya : string[20];
Begin
Writeln (‘Vvdite kolichestvo zapicei’);
Readln (N);
Writeln (‘Vvdite document ‘);
For I:=1 to N do
Begin
Writeln (‘Imya’);
Readln (M[I].Imya);
Writeln (‘gorod’);
Readln (M [I].Gorod);
Writeln (‘Otvetstvennij’);
Readln ( [I].Otvetstv);
Writeln (‘Kolichestvo’);
Readln (M [I].Kolichestvo);
Writeln (‘Cena bileta’);
Readln (M [I].Cena);
End;
Writeln (‘Zdaite imya’);
Readln (C_Imya);
Sum :=0;
KolVo :=0;
SrCena :=0;
For I :=1 to N do
Begin
KolVo :=KolVo +M[I].Kolichestvo;
SrCena := SrCena +M[I].Cena;
If M[I].Imya=C_Imya then
Sum := Sum +M[I].Kolichestvo*M[I].Cena;
End;
Sum0 :=KolVo *SrCena;
Writeln (‘summa ‘,Sum:8:2);
Readln;
End.