- •Методические указания по проведению учебной практики
- •Раздел 1. Способы представления алгоритмов………………………………………………...4
- •Раздел 2. Архитектура предприятия…………………………………………………………..21
- •Раздел 3. Система управления архитектурой предприятия…………………………………40
- •Раздел 4. Системы управления контентом……………………………………………………53
- •Введение
- •Раздел 1. Способы представления алгоритмов
- •Линейные программы структура программы
- •Понятие массива данных
- •Одномерные массивы
- •Многомерные массивы
- •ДвумерныЕ массивЫ
- •Действия над элементами массивов
- •1.5. Контроль ошибок при работе с массивами
- •Решение задач - примеров
- •Раздел 2. Архитектура предприятия
- •2.1. Понятие и общее представление об архитектуре предприятия
- •2.2. Цели создания архитектуры предприятия
- •2.3. Методические принципы создания архитектуры
- •2.4. Корпоративная архитектура предприятия
- •Корпоративная архитектура
- •2.5. Детализация в формировании архитектуры
- •Подходы при построении архитектуры
- •Компоненты архитектуры предприятия
- •Комплексная архитектура предприятия Модельные и организационные подходы
- •Матрица согласованных моделей в архитектурах
- •Примеры заполнения ячеек схемы
- •Требования к «3д-модели»
- •Раздел 3. Система управления архитектурой предприятия
- •3.1. Приемы процессно-ориентированной архитектуры предприятия
- •3.2. Изменения архитектуры
- •Изменения и улучшения организационной структуры
- •Изменения и улучшения систем управления
- •3.3. Идентификация и описание бизнес-процессов
- •Менеджмент бизнес-процессов
- •Управление операционными улучшениями бизнес-процессов
- •3.4. Моделирование организации деятельности предприятия
- •Раздел 4. Системы управления контентом
- •4.1. Объектная модель
- •4.2. Сетевая модель
- •4.3. Модульная модель
- •4.5. Коммерческие системы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •9. Схема «3д-предприятие».
- •Учебно-методическое обеспечение
Понятие массива данных
На практике, при функционировании автоматизированных систем управления, информационных систем, измерительных комплексов и др., возникает необходимость обрабатывать большое количество различной информации. Например, показания температуры воздуха окружающей среды, стоимость товаров, значения координат движущихся объектов, характеристики приборов и других технических устройств и т.д. Программное обеспечение таких систем должно обеспечивать обработку, хранение, ввод-вывод больших объемов всевозможных данных. Интегрированная среда Turbo Pascal позволяет эффективно разрабатывать, тестировать и отлаживать программы, связанные с обработкой массивов данных самой различной структуры.
В языке Pascal под массивом понимается упорядоченный набор фиксированного количества однотипных данных.
Массивы, наряду с записями, строками, множествами, относятся к структурированному типу данных языка. Массивы могут быть одномерные и многомерные. При этом размер массива не ограничивается. Размерность массивов на практике ограничивается лишь объемом рабочей памяти конкретного компьютера. В памяти компьютера элементы массива располагаются в последовательных соседних ячейках памяти.
Одномерные массивы
Переменные массивов можно задавать двумя способами:
а) через объявление типа в формате
TYPE
< имя типа > = ARRAY [тип индекса] OF < тип элементов >;
VAR
< идентификатор >: < имя типа >;
б) через объявление переменных в формате
VAR
< идентификатор >: ARRAY [тип индекса] OF < тип элементов >;
Элементы массива могут быть любого, в том числе и структурированного, типа. Следует отметить, что вещественный тип не относится к упорядоченным типам данных. В качестве типа индекса может использоваться любой порядковый тип, кроме типа Longint. Обычно в качестве индексного типа используется целочисленный тип-диапазон, в котором задаются границы изменения индексов.
Примеры объявления массивов:
CONST
N = 25; {размерность массива}
TYPE
X = ARRAY [1.. 100] OF INTEGER;
Y = ARRAY [1.. N] OF REAL;
Z = RECORD
R, I: REAL
END;
VAR
M: X; {целочисленный массив}
V1, V2: Y; {вещественные массивы }
L1, L2: ARRAY [1.. 20 ] OF Z; {массивы записей }
K: ARRAY [ BYTE ] OF CHAR; { массив символов }
R: ARRAY [ 1.. 5 ] OF STRING [25]; { массив строк }
T: ARRAY [-10.. 9] OF BYTE; { массив целых чисел }
S: ARRAY [ BOOLEAN ] OF REAL; { вещественный массив }
F: ARRAY [ GREEN, RED, BLUE ] OF INTEGER; { целый массив с перечислимым типом-индексом}
G: ARRAY [ 1.. N ] OF (MO, TU, WE, TH, FR, SA, SU );
{ массив перечислимого типа }
Типизированная константа-массив объявляется в программе следующим образом:
CONST
A: ARRAY [1.. 5] OF INTEGER = ( 1, 2, 3, 4, 5 );
B: ARRAY [1.. 4] OF REAL = ( 1.1, 2.2, 3.3, 4.4 );
Приведена схема алгоритма формирования элементов массива с помощью датчика случайных чисел, вывод элементов массива на экран, вычисление суммы всех элементов. Программа приведена в примере:
const n1=100; {максимальный размер массива}
type mas = array[1..n1] of integer;
var a:mas;
i, {индекс элемента массива}
n,s:integer;
begin
writeln ('Введите число элементов массива:');
read (n);
{ Формирование массива с помощью датчика случайных чисел}
randomize;{Инициализация датчика случайных чисел }
for i:=1 to n do
a [i]:=random(10);
writeln ('Полученный массив');
for i:=1 to n do
write (a[i]:5);
writeln;
s:=0; { Нахождение суммы }
for i:=1 to n do
s:=s+a[i];
writeln ('s=',s);
end.
Графическая схема алгоритма определения максимального элемента массива и суммы положительных элементов, а также замены максимального элемента массива суммой положительных элементов массива.
const n1=100; {максимальный pазмеp массива}
type
mas = array[1..n1] of integer;
var
a:mas;
i, {индекс элемента массива}
n,s,
imax:integer;{индекс максимального элемента}
begin
writeln('Введите число элементов массива:');
read(n);
{Ввод массива}
for i:=1 to n do
begin
read(a[i])
end;
s:=0;
imax:=1;{пpедполагаем, что пеpвый элемент максимальный}
for i:=1 to n do
begin
{если элемент положительный, то прибавляем его к сумме}
if a[i]>0 then s:=s+a[i];
{если текущий элемент массива больше максимального, то запоминаем его индекс}
if a[imax]<a[i] then imax:=i;
end;
writeln('максимальный элемент массива =',a[imax]);
a[imax]:=s;{ замена максимального элемента суммой }
writeln('s=',s);
writeln('Обpаботанный массив:');
for i:=1 to n do
writeln (a[i]);
end.
Ввод и вывод элементов массивов происходит поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания или путем считывания из файла, но на практике они чаще всего вводятся с клавиатуры или с помощью генератора случайных чисел. Последний способ целесообразно использовать тогда, когда количество элементов массива достаточно велико.
Примеры ввода одномерных массивов:
а) ввод с клавиатуры
FOR I: = 1 TO N DO READ ( M [I] );
б) ввод с помощью генератора случайных чисел
RANDOMIZE; {инициализация генератора случайных чисел}
FOR I: = 1 TO N DO M [I]: = - 25 + RANDOM (D);
Стандартная функция Random формирует случайное целое число из диапазона от 0 до D-1. При этом i-му элементу массива будет присвоена сумма выбранного случайного числа и -25. Таким образом, массив будет заполняться целыми случайными числами от -25 до -25 + (D-1). Например, если выбрать D равным 51, то массив будет заполняться случайными числами от -25 до +25.
Вывод одномерных массивов происходит аналогичным образом, например:
FOR I: = 1 TO N DO WRITELN ( M [I] );
Ввод двумерных массивов (матриц) производится с помощью вложенного оператора FOR:
FOR I: = 1 TO N DO
FOR J: = 1 TO K DO
READ ( M [I, J] );
Вывод значений элементов двухмерных массивов производится аналогичным образом с использованием операторов вывода WRITE или WRITELN:
FOR I: = 1 TO N DO
FOR J: = 1 TO K DO
WRITELN ( M [I, J] )
Таким же образом, поэлементно, происходит ввод и вывод многомерных массивов.