Реферат по предмету "Информатика, программирование"


Обработка массивов данных в среде Turbo Pascal

Министерствообразования Российской Федерации
УФИМСКИЙ ГОСУДАРСТВЕННЫЙАВИАЦИОННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедраавтоматизированных систем управления
ОБРАБОТКА МАССИВОВДАННЫХ В СРЕДЕ TURBO PASCAL
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторномупрактикуму по курсу
“Информатикаи программирование”
Составители: Ю.Б. Головкин,Р.А. Ярцев
УФА 2007

УДК 681.3
Обработка массивов данныхв среде Turbo Pascal: Методические указания к лабораторному практикуму покурсу “Информатика и программирование”/ Уфимск. гос. авиац. техн. ун-т; Сост.:Ю.Б.Головкин, Р.А.Ярцев. -Уфа, 2007. — 14 с.
Представленный лабораторныйпрактикум посвящен вопросам разработки программ на языке Turbo Pascal на основе использования массивов данных. Рассматриваютсяособенности хранения данных в массивах, способы объявления переменных, действиянад элементами массивов, ввод и вывод массивов. Практическое применениеодномерных и многомерных массивов иллюстрируется на примере написания двухпрограмм на языке Turbo Pascal. В приложении приводятся вариантызаданий на лабораторную работу.
Библиогр.: 5 назв.
Рецензенты: канд. техн.наук, доц. А.М.Сулейманова;
канд. техн. наук, доц. Р.В.Насыров
© Уфимскийгосударственный
авиационный технический
университет, 2007

СОДЕРЖАНИЕ
1. Цель работы
2. Теоретическая часть
2.1 Понятие массива данных
2.2 Одномерные массивы
2.3 Многомерные массивы
2.4. Действия над элементами массивов
2.5 Ввод и вывод элементов массива
2.6 Контроль ошибок при работе смассивами
3. Решение задач — примеров
4. Порядок выполнения работы
5. Требования к отчету
6. Контрольные вопросы
Библиографический список
Приложение. Варианты заданий налабораторную работу

1. ЦЕЛЬ РАБОТЫ
Целью настоящей работыявляется приобретение студентами умений и навыков работы с массивами данных всреде Turbo Pascal.

2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
2.1 Понятие массиваданных
На практике, прифункционировании автоматизированных систем управления, информационных систем,измерительных комплексов и др., возникает необходимость обрабатывать большое количестворазличной информации. Например, показания температуры воздуха окружающей среды,стоимость товаров, значения координат движущихся объектов, характеристикиприборов и других технических устройств и т.д. Программное обеспечение такихсистем должно обеспечивать обработку, хранение, ввод-вывод больших объемоввсевозможных данных. Интегрированная среда Turbo Pascal позволяет эффективно разрабатывать, тестировать иотлаживать программы, связанные с обработкой массивов данных самой различнойструктуры.
В языке Pascal под массивом понимаетсяупорядоченный набор фиксированного количества однотипных данных.
Массивы, наряду сзаписями, строками, множествами, относятся к структурированному типу данныхязыка. Массивы могут быть одномерные и многомерные. При этом размер массива неограничивается. Размерность массивов на практике ограничивается лишь объемомрабочей памяти конкретного компьютера. В памяти компьютера элементы массиварасполагаются в последовательных соседних ячейках памяти.
2.2 Одномерные массивы
Переменные массивов можнозадавать двумя способами:
а) через объявление типа в формате
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 );
2.3 Многомерные массивы
Элементами массивов могутбыть также массивы. В этом случае мы имеем двухмерный массив ( матрицу ).
Двухмерные массивызадаются в программе следующим образом:
а) через объявление типа в формате
TYPE
= ARRAY [тип индекса 1] OF ARRAY [тип индекса 2] OF ;
или
= ARRAY [ тип индекса 1, тип индекса 2 ] OF ;
Обе формы описанияравносильны, но вторая употребляется чаще.

VAR
: ;
б) через объявление переменных вформате
VAR
: ARRAY [тип индекса 1, тип индекса 2] OF ;
Необходимо отметить, чтоиндексы не обязательно должны иметь один и тот же тип. В общем случае индексы покаждому измерению могут быть разных типов как, например, в следующем фрагментераздела описаний.
Примеры объявления двухмерныхмассивов:
CONST
N = 5;
M = 10;
TYPE
A = ARRAY [ 1…N, 1… M ] OF WORD;
B = ARRAY [ 1…10, 1… 20 ] OF REAL;
VAR
C: ARRAY [ 1…N, BOOLEAN ] OF -20… 20;
D1, D2: A;
F1, F2: B;
Типизированнаяконстанта-матрица объявляется в программе следующим образом:
CONST
M: ARRAY [1…3, 1… 2] OF INTEGER = ((1, 2), (3, 4), (5, 6));

Массивы могут быть нетолько одномерными или двухмерными, но и 3-х, 4-х и n-мерными. В этом случае они описываются в программе следующимобразом:
VAR
M: ARRAY [ 1… 10, -10… 9, CHAR ] OF BYTE;
N: ARRAY [ 1…5, 1… 10, 1… 15, 1…20 ] OF SHORTINT;
В памяти компьютераэлементы размещаются друг за другом так, что при переходе от младших адресов кстаршим наиболее быстро изменяется самый правый индекс массива. Например, дляматрицы 2х2: A[1,1], A[1,2], A[2,1],A[2,2].
2.4 Действия надэлементами массивов
Для обеспеченияэффективной работы с отдельными элементами необходимо прежде всего обеспечитьправильный доступ к элементам массива. Доступ (обращение) к отдельным элементаммассива осуществляется путем указания имени переменной массива, за которым вквадратных скобках помещается значение индекса (порядкового номера) элемента.
Примеры задания индекса:
M [5] — непосредственно числом;
M [x] — косвенно через переменную x;
M [y+5] — косвенно через выражение;
M [Succ(i)] — косвенно через значение функции.
Всем элементам одногомассива можно присвоить значения элементов другого массива с помощью одногооператора присваивания, в том случае, когда массивы имеют идентичный тип. Так,если заданы следующие массивы:
VAR
X, Y: ARRAY [1… 10] OF INTEGER;
Z: ARRAY[1… 10] OF INTEGER;
то допустим следующийоператор присваивания:
X: = Y;
но недопустим оператор
Z: = X;
так как массивы X и Z не идентичных типов.
В Паскале над массивамине определены операции отношения. Сравнивать массивы можно только поэлементно.К отдельным элементам массива можно применять стандартные процедуры и функции,предусмотренные в языке. Перечень допустимых стандартных подпрограмм зависит оттипа элементов массива.
2.5 Ввод и выводэлементов массива
Ввод и вывод элементовмассивов происходит поэлементно. Значения элементам массива можно присвоить спомощью оператора присваивания или путем считывания из файла, но на практикеони чаще всего вводятся с клавиатуры или с помощью генератора случайных чисел.Последний способ целесообразно использовать тогда, когда количество элементовмассива достаточно велико.
Примеры ввода одномерныхмассивов:
а) ввод с клавиатуры

FOR I: = 1 TO NDO READ ( M [I] );
б) ввод с помощьюгенератора случайных чисел
RANDOMIZE; { инициализация генератораслучайных чисел }
FOR I: = 1 TO NDO M [I]: = — 25 + RANDOM (D);
Стандартная функция Random формирует случайное целое число издиапазона от 0 до D-1. При этом i-му элементу массива будет присвоенасумма выбранного случайного числа и -25. Таким образом, массив будетзаполняться целыми случайными числами от -25 до -25 + (D-1). Например, если выбрать D равным 51, то массив будет заполняться случайными числами от-25 до +25.
Вывод одномерных массивовпроисходит аналогичным образом, например:
FOR I: = 1 TO NDO WRITELN ( M [I] );
Ввод двумерных массивов(матриц) производится с помощью вложенного оператора FOR:
FOR I: = 1 TON DO
FOR J: = 1 TO KDO
READ ( M [I, J] );
Вывод значений элементовдвухмерных массивов производится аналогичным образом с использованиемоператоров вывода WRITE или WRITELN:
FOR I: = 1 TON DO
FOR J: = 1 TO KDO
WRITELN ( M [I, J] )
Таким же образом,поэлементно, происходит ввод и вывод многомерных массивов.
2.6 Контроль ошибок приработе с массивами
Самой распространеннойошибкой при работе с массивами является выход индексов за допустимые диапазоны.Для исключения таких ошибок в среде Turbo Pascalпредусмотрена директива компилятора {R}. При указании в программе директивы {$R+} все массивы проверяются на предмет нахождения их внутриуказанных границ. Если обнаруживается нарушение диапазона, программа завершаетсвою работу, выводя сообщение об ошибке выполнения. Если директива неиспользуется (этот режим принят по умолчанию), выход индекса за пределыдопустимого диапазона не приведет к прекращению работы программы. Но приобращении к ’’несуществующему’’ элементу массива даст неопределенный результат,что может сделать ход дальнейшего выполнения программы непредсказуемым.
Следует заметить, что применениедирективы {R+} несколько замедляет выполнениепрограммы и увеличивает ее размер. Поэтому рекомендуется использовать этудирективу при отладке, а затем ее удалить из текста программы.

3. РЕШЕНИЕ ЗАДАЧ — ПРИМЕРОВ
В качестве примерарассмотрим решение двух задач с одномерным и двухмерным массивами.
Пример 1. Создать одномерный вещественныймассив из 25 элементов. Определить максимальный и минимальный элементы массиваи поменять их местами. Полученный результат вывести на экран.
Текст программы на языке Turbo Pascal:
PROGRAM MAS;
VAR
M: ARRAY [1…25] OF REAL; { Вещественный массив }
MAX, MIN, MN: REAL;
I, K, N: INTEGER; { Вспомогательные переменные }
BEGIN
{ Ввод вещественногомассива из 25 элементов }
FOR I: = 1 TO 25DO READ ( M [I] );
{ Переменным MAX и MIN присваиваем значение первого элемента массива }
MAX: = M [1]; K:= 1;
MIN: = M [1]; N:= 1;
{ Определяем максимальныйи минимальный элементы массива и их индексы}

FOR I:= 2 TO 25DO
BEGIN
IF M [I] >MAX THEN
BEGIN
MAX: = M [I];
K: = I;
END;
IF M[I]
BEGIN
MIN: = M [I];
N: = I;
END;
END;
{ Меняем местамимаксимальный и минимальный элементы }
MN: = M [K];
M [K]: = M [N];
M [N]: = MN;
{ Вывод полученногомассива на экран }
FOR I: = 1 TO 25DO WRITELN ( M[I] );
END.
Пример 2. Создать целочисленную матрицу А 10х8.Сформировать одномерный массив В, который содержит суммы положительныхэлементов каждой строки матрицы А и вывести его на экран.
Текст программы на языке Turbo Pascal:
PROGRAM PRIM;
VAR
A: ARRAY [1…10, 1… 8] OF INTEGER;
B: ARRAY [1…10] OF INTEGER;
I, J, S: INTEGER;
BEGIN
{ Ввод целочисленнойматрицы А 10х8 }
FOR I:= 1 TO 10DO
FOR J: = 1 TO 8DO
READ ( A[ I, J] );
{ Вычисление суммыположительных элементов каждой строки матрицы А и формирование массива В }
FOR I: = 1 TO 10DO
BEGIN
S: = 0;
FOR J: = 1 TO 8DO
IF A [ I, J ]> 0 THEN S: = S + A [ I, J ];
B [ I ]: = S;
END;
{ Вывод сформированногомассива В на экран }
FOR I: = 1 TO 10DO WRITELN ( B [ I ] );
END.

4. ПОРЯДОК ВЫПОЛНЕНИЯРАБОТЫ
Для выполнения работынеобходимо:
а) повторить правилатехники безопасности при работе с вы-числительной техникой;
б) изучить раздел“Массивы” лекционного курса, а также тео-ретическую часть настоящихметодических указаний;
в) получить упреподавателя вариант задания (образцы зада-ний приведены в приложении);
г) в соответствии сзаданием написать программу на языке Turbo Pascal;
д) ввести программу вкомпьютер, отладить и результаты вы-полнения показать преподавателю;
е) в соответствии стребованиями, приведенными в разделе 5, оформить отчет по лабораторной работе;
ж) защитить лабораторнуюработу, продемонстрировав препо-давателю:
1) отчет по лабораторнойработе;
2) умение решатьаналогичные задачи;
3) теоретические знанияиз раздела “Массивы”.
При подготовке к защитедля самопроверки рекомендуется ответить на контрольные вопросы, приведенные вразделе 6.

5. ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторнойработе должен содержать:
а) титульный лист;
б) условие задания;
в) текст программы наязыке Turbo Pascal.

6. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое массивданных?
2. Какими способами можноописать массивы?
3. Какой максимальныйразмер может иметь массив?
4. Как происходит доступк отдельным элементам массива?
5. Могут ли бытьмногомерные массивы?
6. Какие могут быть типы элементовмассивов?
7. Какие могут быть типыиндексов массивов?
8. Можно ли всемэлементам одного массива присвоить значения элементов другого массива?
9. Как происходитввод-вывод одномерных и многомерных массивов?
10. Какие действия можнопроизводить с отдельными элементами массивов?
11. Чем отличаютсямассивы данных от записей?
12. Чем отличаютсямассивы от других структурированных типов данных?
13. Как задаетсятипизированная константа-массив?
14. Как хранятся массивыв памяти компьютера?
15. Можно ли сравниватьмассивы?

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Фаронов В.В. Turbo Pascal 7.0. — М.: Нолидж, 2007. — 616 с.
2. Мануйлов В.Г. Разработкапрограммного обеспечения на Паскале. — М.: ПРИОР, 1996. — 238 с.
3. Марченко А.И., Марченко Л.А.Программирование в среде Turbo Pascal 7.0. — К.:ЮНИОР, 1997. — 496 с.
4. Зуев Е.А. Практическое программирование.- М.: ПРИОР, 2005. — 336 с.
5. Епанешников А.М., Епанешников В.А.Программирование в среде Turbo Pascal 7.0. — М.:ДИАЛОГ-МИФИ, 2006. — 288 с.

ПРИЛОЖЕНИЕ
ВАРИАНТЫ ЗАДАНИЙ НАЛАБОРАТОРНУЮ РАБОТУ
Вариант 1
1. Создать одномерныйцелочисленный массив. Упорядочить
массив по возрастаниюэлементов.
2. Сформировать вещественную матрицу 4х6.Вычислить сумму и количество положительных элементов каждого столбца матрицы.
3. Найти произведение двух целочисленныхматриц 3х3.
4. Вычислить У = (М1 + М2) / 2, где
М1 — максимальный элементодномерного целочисленного массива из 10 элементов;
М2 — минимальный элементодномерного целочисленного массива из 15 элементов.
Вариант 2
1. Создать одномерный вещественныймассив. Определить количество отрицательных элементов массива.
2. Сформировать целочисленную матрицу3х4. Найти максимальный элемент в каждой строке матрицы и выбрать наибольший изних.
3. Найти сумму двух вещественных матриц5х5.
4. Вычислить А = В + С, где
В — произведениеотрицательных элементов главной диагонали целочисленной матрицы 3х5;
C — сумма положительных элементовглавной диагонали целочисленной матрицы 4х4.

Вариант 3
1. Создать символьный массив данных.Подсчитать количество вхождений в массив буквы А.
2. Сформировать вещественную матрицу5х5. Упорядочить по возрастанию элементов каждой строки матрицы.
3. Ввести одномерный целочисленныймассив. Найти, сколько в нем пар одинаковых соседних элементов.
4. Вычислить У = (S1 + S2) / (K1 + K2), где
S1,K1 — сумма и количество положительных элементов одномерногоцелочисленного массива из 15 элементов;
S2,K2 — сумма и количество отрицательных элементов вещественной матрицы 4х6.
Вариант 4
1. Создать одномерный целочисленныймассив, заполненный случайным образом. Найти среднее арифметическое элементовмассива.
2. Сформировать вещественную матрицу5х5. Вычислить про-изведение отрицательных элементов, находящихся над и подглавной диагональю матрицы.
3. Создать целочисленную матрицу 4х5.Сформировать одно-мерный массив, который содержит отрицательные элементысозданной матрицы.
4. Ввести одномерный вещественныймассив из 20 элементов. Упорядочить массив по убыванию элементов.
Вариант 5
1. Создать одномерный вещественный массив.Определить максимальный элемент массива и его порядковый номер.
2. Вычислить у = x1 — x2 + x3 -...-x(n-1) + x(n).
3. Сформировать матрицу 5х5, состоящуюиз латинских букв. Отсортировать каждую строку матрицы в алфавитном порядке.
4. Ввести матрицу NхM, состоящую из вещественных чисел. Упорядочить матрицу повозрастанию элементов второго столбца.
Вариант 6
1. Создать символьный массив данных.Заменить все символы А массива на символы В.
2. Вычислить y = x(1)x(n) + x(2)x(n-1) +...+ x(n)x(1).
3. Оттранспонировать целочисленнуюматрицу 4х4.
4. Переписать подряд в массив B положительные и в массив C отрицательные элементы массива A.
Вариант 7
1. Создать одномерный целочисленныймассив. Найти сумму отрицательных элементов массива и произведениеположительных.
2. Сформировать одномерный вещественныймассив. Распеча-тать его в обратном порядке.
3. Создать матрицу NхN, состоящую из букв латинского алфа-вита. Подсчитатьколичество гласных букв.
4. Ввести матрицу NхN, состоящую из целых чисел. Зеркально отразить ее элементыотносительно главной диагонали. Вывести результат на экран.
Вариант 8
1. Создать одномерныйвещественный массив. Найти разность между максимальным и минимальным элементамимассива.
2. Вычислить сумму квадратовнечетных элементов целочисленного массива из 20 элементов.
3. Ввести матрицу NхM, состоящую из вещественных чисел. Сформировать одномерныймассив, который содержит только положительные элементы матрицы и вывести его наэкран.
4. Сформировать матрицу NхN, состоящую из целых чисел. Повернуть ее на 90 градусов почасовой стрелке и вывести результат на экран.
Вариант 9
1. Сформировать одномерныйцелочисленный массив. Определить, есть ли в данном массиве положительныеэлементы, кратные k.
2. Создать одномерный вещественныймассив. Определить число положительных, отрицательных и нулевых элементовмассива.
3. Ввести целочисленную квадратнуюматрицу NхN. Найти максимум среди сумм элементов диагоналей,параллельных побочной диагонали.
4. Ввести с клавиатуры двухмерныймассив размерностью 4х6, заполненный целыми числами. Сформировать одномерныймассив, каждый элемент которого равен количеству элементов соответствующейстроки, больших заданного числа n.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.