Автор: Пользователь скрыл имя, 28 Октября 2013 в 15:44, курсовая работа
Массив - это именованная группа однотипных данных, хранящихся в последовательных ячейках памяти. Каждая ячейка содержит элемент массива. Элементы нумеруются по порядку, но необязательно начиная с единицы. Массивы состоят из ограниченного числа компонент, причем все компоненты массива имеют один и тот же тип, называемый базовым. Структура массива всегда однородна. Массив может состоять из элементов типа integer, real или char, либо других однотипных элементов. Другая особенность массива состоит в том, что к любой его компоненте можно обращаться произвольным образом. Программа может сразу получить нужный ей элемент по его порядковому номеру (индексу). Индекс - это переменная типа INTEGER. В одномерном массиве элементы массива нумеруются одним индексом. Нужно четко понимать, что индекс ячейки массива не является ее содержимым. Содержимым являются хранимые в ячейках данные, а индексы только указывают на них. Действия в программе над массивом осуществляются путем использования имени переменной, связанной с областью данных, отведенной под массив.
Введение…………………………………………………………………………….3
1 Одномерные массивы……………………………………………………………5
2 Двумерные массивы…………………………………………………………….12
Заключение………………………………………………………………………...18
Глоссарий………………………………………………………………………….20
Список использованных источников……………………………………………22
Список сокращений……………………………………………………………….23
Приложения……………………………………………………………………….24
Никаких других операций с массивами целиком произвести невозможно, но с элементами массивов можно работать точно так же, как с простыми переменными соответствующего типа.
Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы. Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a 21 – это элемент, стоящий во второй строке и в первом столбце.
Описание двумерного массива Паскаля.
Существует несколько способов объявления двумерного массива Паскаля.
Мы уже умеем описывать
Пример описания двумерного массива Паскаля
Type
Vector = array [1..5] of <тип_элементов>;
Matrix= array [1..10] of vector;
Var m: matrix;
Мы объявили двумерный массив Паскаля m, состоящий из 10 строк, в каждой из которых 5 столбцов. При этом к каждой i -й строке можно обращаться m [ i ], а каждому j -му элементу внутри i -й строки – m [ i , j ].
Определение типов для двумерных массивов Паскаля можно задавать и в одной строке:
of <тип элементов>;
Обращение к элементам двумерного массива имеет вид: M [ i , j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце. Тут главное не перепутать строки со столбцами, а то мы можем снова получить обращение к несуществующему элементу. Например, обращение к элементу M [10, 5] имеет правильную форму записи, но может вызвать ошибку в работе программы.
Основные действия с двумерными массивами Паскаля
Все, что было сказано об основных действиях с одномерными массивами, справедливо и для матриц. Единственное действие, которое можно осуществить над однотипными матрицами целиком – это присваивание. Т.е.,если в программе у нас описаны две матрицы одного типа, например,
type
matrix= array [1..5, 1..10] of integer;
var
a , b : matrix ;
то в ходе выполнения
программы можно присвоить
Ввод двумерного массива Паскаля
Для последовательного ввода элементов одномерного массива использовался цикл for, в котором изменяли значение индекса с 1-го до последнего. Но положение элемента в двумерном массиве Паскаля определяется двумя индексами: номером строки и номером столбца.
Это значит, что нам нужно будет последовательно изменять номер строки с 1-й до крайней строки и в каждой строке перебирать элементы столбцов с 1-го до последнего. Поэтому нам потребуется два цикла for, причем один из них будет вложен в другой.
Рассмотрим пример ввода двумерного массива Паскаля с клавиатуры:
type
matrix= array [1..5, 1..10] of integer;
var
a, : matrix;
i, j: integer; { индексы массива }
begin
for i :=1 to 5 do {цикл для перебора всех строк}
for j :=1 to 10 do {перебор всех элементов строки по столбцам}
readln ( a [ i , j ]); {ввод с клавиатуры элемента, стоящего в i -й строке и j -м столбце}
Двумерный массив Паскаля
можно заполнить случайным
Вывод двумерного массива Паскаля на экран
Вывод элементов двумерного
массива Паскаля также
Пример программы вывода двумерного массива Паскаля
for i :=1 to 5 do {цикл для перебора всех строк}
begin
for j :=1 to 10 do {перебор всех элементов строки по столбцам}
write ( a [ i , j ]:4); {печать элементов, стоящих в i -й строке матрицы в одной экранной строке, при этом для вывода каждого элемента отводится 4 позиции}
writeln ; {прежде, чем сменить номер строки в матрице, нужно перевести курсор на начало новой экранной строки}
end ;
Двумерный массив (т.е. таблица, матрица, набор векторов)
- это пример массива, в котором элементы
нумеруются двумя индексами.
В качестве индекса элемента массива используется
выражение порядкового типа (integer).
Размер двумерного массива - количество элементов в массиве M*N, где
М- число строк, N- число столбцов (натуральные
числа).
У любого массива должно быть имя. Пусть у массива будет имя A, тогда к любой компоненте массива можно обратиться по адресу – A[i,j] или A[i][j], где индекс i – номер строки, а индекс j – номер столбца.
Квадратная матрица – матрица с равным числом строк и столбцов.
Порядок матрицы – число строк (столбцов) квадратной матрицы.
Для квадратной матрицы вводятся понятия главной и побочной диагонали, которые обладают следующими свойствами: 1) у элементов, лежащих на главной диагонали, номер строки и номер столбца совпадают, т.е. i=j; 2) у элементов, лежащих на побочной диагонали номер строки и номер столбца связаны следующим соотношением, если i – номер строки, то номер столбца j=N-i+1.
Описание двумерного массива
Тип описания массива может быть задан одним из способов:
1) Type tm1=array[ti2] of tk;
tm2=array[ti1] of tm1;
где tm1 – тип массива, ti2 – тип индекса, tk – тип компонент одномерного массива,
tm2 – тип массива, ti1 – тип индекса, tm1 – тип компонент двумерного массива
Из этого описания видно, что двумерный массив – это одномерный массив, у которого компоненты – одномерный массив.
Так как массивы относятся к произвольным типам, то их можно описывать как через раздел TYPE так и через раздел VAR.
Заполнение двумерного массива
Заполнение по строкам:
А[1,1] |
А[1,2] |
А[1,3] |
А[1,4] |
А[1,5] |
А[2,1] |
… |
… |
… |
… |
… |
… |
… |
… |
… |
Для заполнения матрицы организуется наружный цикл по i, внутренний – по j (при условии, что i- строки, j –столбцы). При этом индекс строки i меняется медленнее индекса столбца j за счет того, что происходит постепенный перебор всех элементов строки, т.е. столбцов i-й строки.
Заполнение по столбцам:
А[1,1] |
А[1,2] |
… |
… |
… |
А[2,1] |
… |
… |
… |
… |
А[3,1] |
… |
… |
… |
… |
A[4,1] |
… |
… |
… |
… |
Заполнение двумерного массива возможно по строкам и столбцам, каждый из элементов можно вводить:
С клавиатуры.
Например:
Write(‘Введите число строк M= ‘); readLn (M);
Write(‘Введите число столбцов N= ‘); readLn (N);
for i:=1 to M do
begin
for j:=1 to N do
begin
write(‘Введите элемент A[',i,',',j,']=’);
read(A[i,j]);
end;
readLn;
end;
С помощью генератора случайных чисел;
randomize;
writeLn(‘Матрица А:’);
FOR i:= 1 to M DO {наружный цикл по строкам}
begin
FOR j:=1 TO N DO {внутренний цикл по столбцам}
begin
A[i,j]:= random(10);
write(A[i,j]:3); {печатаем подряд всю строку}
end;
В этих примерах заполнение показано по строкам. Если порядок выполнения циклов поменять, то заполняться массив будет по столбцам.
Вывод двумерного массива осуществляется аналогичным образом.
{Вывод матрицы}
writeLn(‘Результирующая матрица A:’);
for i:=1 to M do
begin
for j:=1 to N do
write(A[i,j],’ ‘);
writeLn;
end;
В данной Курсовой работе было рассмотрено основное понятие массивов.
На данный момент мировая компьютерная индустрия развивается очень стремительно. Производительность систем возрастает, и поэтому возрастают возможности обработки больших объёмов данных. С каждым годом программы более усовершенствуются, поэтому работать в них становиться все легче, но, на мой взгляд, программа Турбо Паскаль таит в себе много сложностей, в которых можно долго разбираться, но в ней можно освоить основные приёмы решения задач и составления программ. Вот, например, очень часто в программах встречается ошибка, когда ввод с клавиатуры или вывод на экран массива пытаются осуществить следующим образом: readln (a), writeln (a), где а – это переменная типа массив. В сообщении написано, что переменную этого типа невозможно считать или напечатать. Заполнение и вывод на экран элементов массива также должно осуществляться последовательно и поэлементно, т.к. в памяти ЭВМ элементы массива располагаются в последовательных ячейках, т.е. друг за другом заполняются ячейки.
Массивы, как и другие элементы программирования, имеют свои достоинства и недостатки. Например, к числу достоинств относится легкость вычисления адреса элемента по индексу, идентичное время доступа к элементам и т.к. они состоят из одного поля – малый размер элементов. Недостатки «идут» на равнее с достоинствами: отсутствие динамики у статического массива, также у него невозможность удаления или добавления элемента без сдвига других массивов;— более низкое быстродействие динамического и гетерогенного массива и дополнительные накладные расходы на поддержку его свойств и угроза выхода за границы массива и повреждения данных в работе с массивом в стиле C , а также при отсутствии дополнительных средств контроля.
№ п/п |
Понятие |
Определение |
1 |
Алгоритм |
набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. |
2 |
Диапазон |
интервал значений какой-либо величины |
3 |
Индекс |
число, буквы или другая комбинация символов, указывающая место элемента в совокупности или характеризующая состояние некоторой системы, например показатель активности, производительности, развития, изменения чего-либо. |
4 |
Массив |
Упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа. |
5 |
Матрица |
двумерный массив |
6 |
Объект |
некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов). Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы. |
7 |
Операция |
конструкция в языках программирования,
аналогичная по записи математическим
операциям, то есть специальный способ
записи некоторых действий. Наиболее часто
применяются арифметические, логические и с |
8 |
Паскаль |
Язык программирования общего назначения. Один из наиболее известных языков программирования, используется для обучения программированию в старших классах и на первых курсах вузов, является базой для ряда других языков. |
9 |
Переменная |
поименованная,
либо адресуемая иным способом область
памяти, адрес которой можно |
10 |
Цикл |
разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода). |