Программная обработка структурных данных

Министерство обраразования

Российской Федерации

Московский государственный университет

Экономики, статистики и информатики

(МЭСИ)



















Лабораторная работа №2

По теме 

« Программная обработка

Структурных данных »



































Проверил: Смирнов А.А

















                                             Оглавление  





Организация данных в виде массива.

Описание организации обработки массивов.

Распечатка текстов программ и результатов выполнения. 

Обработка экономической информации, организованной в виде массива записей.

Описание организации обработки массивов записей.

Распечатка текстов программ и результатов выполнения. 

Постановка задачи на обработку экономической информации с использованием массива записей

Описание условия задачи.

Распечатка текстов программ и результатов выполнения. 





































































Работа состоит из частей:



Первая часть . «Организация данных в виде массива».

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

Во-первых ,ввод элементов массива;

Во-вторых ,определение местоположение (координаты) максимального элемента в массиве. Если несколько элементов имеют одинаковое максимальное значение ,то выдать координаты всех максимальных элементов.



    Вторая часть . «Обработка экономической» информации, организованной в виде массива записей”.

Вторая часть предусматривает обработку массива, содержащего информацию, выбранную из документа «товарно-транспорная накладная ». Документ содержит следующие реквизиты:

Во-первых , поставщик . Реквизит представлен в виде символьной строки длиной в 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.