Задачи для изучающих программирование самостоятельно 30 Задания на лабораторную работу по теме "Обработка одномерных массивов" 39
Вид материала | Документы |
- Обработка одномерных массивов, 21kb.
- Поэтому при написании программы будьте особенно внимательны, не путайте индексы элементов, 363.59kb.
- Лекция № Распределение памяти. Динамические переменные, 73.48kb.
- Алгоритмы сортировки одномерных массивов, 53.15kb.
- Урок 6 (1 час) Тема урока, 169.57kb.
- Поняття масиву. Одновимірний масив, 62.45kb.
- План урока Выступление со словами: Нередко… Показ презентации, 73.14kb.
- Курс является базовым как для изучения других математических дисциплин, так и для более, 36.89kb.
- В. А. Давыденко программирование и основы алгоритмизации лабораторный практикум, 1951.1kb.
- Методические указания могут быть полезны для студентов экономических специальностей,, 198.11kb.
ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ 4
ВВЕДЕНИЕ в массивы 5
Основные алгоритмы обработки одномерных массивов 11
Задачи для изучающих программирование самостоятельно 30
Задания на лабораторную работу по теме "Обработка одномерных массивов" 39
Список литературы: 46
ПРЕДИСЛОВИЕ
Цель данных методических указаний - помочь студенту, изучающему Turbo Pascal, освоить алгоритмы обработки массивов.
Существует общераспространенное мнение, что при изучении основ программирования ключевой темой является тема “Обработка массивов”. И это действительно так, поскольку весьма и весьма сложно найти сколько-нибудь полезную программу, в которой бы не использовались массивы. Массивы многолики. В численных (математических) задачах массив – это вектор, а двумерный массив -матрица. В задачах обработки текста массив – это строка текста, а массив массивов (массив строк) – это сам текст. В задачах обработки изображений в массивах хранятся изображения. В базах данных в массивах хранится информация о фамилии / зарплате / возрасте / квалификации / росте / весе / болезнях и т.п. – такой массив называется таблицей.
Хорошие знания алгоритмов обработки массивов помогают в изучении целого ряда других тем. Наиболее важными из них являются “Обработка текстов”, “Обработка файлов”, “Обработка списков”.
Данные методические указания предназначены для студентов вуза, начинающих изучать программирование на языке Turbo Pascal и уже знакомых с основными конструкциями языка (развилки, циклы), основными стандартными типами данных (целые, вещественные, логические, символьный), а также знакомых с консольным вводом/выводом информации в Turbo Pascal’е (процедуры read/write). (Консольный ввод/вывод – это ввод с клавиатуры, а вывод на экран дисплея).
Структура данных методических указаний следующая:
- Введение – краткая информация о массивах, о работе с массивами в Turbo Pascal’е.
- Основные алгоритмы обработки одномерных массивов– описание основных алгоритмов обработки одномерных массивов.
- Задачи для изучающих программирование самостоятельно – этот раздел полезен для обучающихся самостоятельно, а также для повторяющих тему «Обработка массивов» перед экзаменом.
- Задания на лабораторную работу по теме "Обработка одномерных массивов" – этот раздел включает в себя общее задание и варианты разной степени сложности (от наипростейших до относительно сложных).
ВВЕДЕНИЕ в массивы
Понятие массива
Чтобы определить понятие «массив», сначала необходимо определить понятие «простая переменная».
Простая переменная - это одно значение, имеющее имя и занимающее одну ячейку памяти. Размер этой ячейки зависит от типа переменной.
Например:
Var
X:Real; {простая переменная X, занимает 6 байт памяти}
N:Integer; {простая переменная N, занимает 2 байта памяти}
Обращение к простой переменной производится через ее имя.
Например:
X:=10.4; {X присвоили значение 10.4}
N:=round(X)+5; {N присвоили значение округленного до целого
X (а это 10) + 5= 10+5=15}
Массив, в отличии от простой переменной, представляет собой не одно значение, а множество значений, объединенных одним именем. В языке Turbo Pascal’е все значения из этого множества должны иметь один и тот же тип.
Каждое из значений массива называется элементом массива.
Доступ к элементам массива производится посредством указания имени массива и номера элемента массива, заключенного в квадратные скобки.
Номер элемента массива называется индексом элемента массива.
Использование элемента массива не отличается от использования простой переменной, имеющей тот же тип, что и элемент массива.
В Turbo Pascal’е массив объявляется при помощи ключевого слова array, после которого в квадратных скобках указываются границы индексов – верхняя, а после двух точек нижняя. После квадратных скобок после ключевого слова of указывается тип элементов массива.
Пример определения массивов:
Var
A: Array [1..10] of integer; {массив A, состоящий из 10 элементов
целого типа с индексами от 1 до 10}
B: Array [5..8] of real; {массив B, состоящий из 4 элементов
вещественного типа с индексами от 5 до 8}
Пример работы с массивами:
Begin
A[1]:=3; {в элемент массива A с индексом 1 записали число 3}
A[4]:=A[1]+1; {в элемент массива A с индексом 4 записали
число 3+1=4}
B[5]:=0.111; {в элемент массива B с индексом 5 записали
число 0.111}
B[A[1]+A[4]]:=B[5]*2; {в элемент массива B с индексом=
A[1]+A[4]=3+4= 7 записали число 0.222}
End.
Индексы массива
В качестве индекса массива можно использовать любой порядковый тип, кроме типа Longint. Напомним, что порядковый тип – это тип, все значения которого можно перечислить. К таким типам относятся все целые типы(integer, shortint, longint, byte, word), все логические (boolean, wordbool, longbool, bytebool), символьный тип (char), перечисляемые типы и типы-диапазоны.
Примеры использования в качестве индексов порядковых типов:
Var {примеры объявления массивов}
A: Array [Byte] of integer; {массив A, состоящий из 256 элементов,
нижняя граница индекса 0, верхняя 255}
B: Array [Char] of real; {массив B, состоящий из 256 элементов,
нижняя граница индекса #0(символ с кодом 0),
верхняя граница индекса #255(символ с кодом 255)}
i:Byte; {переменная, используемая как индекс массива A}
c:Char; {переменная, используемая как индекс массива B}
Begin {примеры обращения к элементам массива}
A[45]:=0; {В элемент массива A, имеющий индекс 45, записали 0 }
B[‘t’]:=2.4; {В элемент массива B, имеющий индекс ‘t’, записали 2.4}
i:=200; {i присвоили значение 200 }
c:=’#’; {c присволили значение ‘#’ }
A[i]:=23400; {В элемент массива A, имеющий индекс i=200,
записали 23400}
B[c]:=123.456; {В элемент массива B, имеющий индекс c=’#’,
записали 123.456}
End.
Обычно в качестве индекса используют диапазон значений какого-либо перечисляемого типа.
Например:
Var {примеры объявления массивов}
C: Array [-10..5] of integer; {массив C, состоящий из 16 элементов,
нижняя граница индекса -10, верхняя 5}
D: Array [‘A’..’Z’] of char; {массив D, состоящий из 26 элементов,
нижняя граница индекса ’A’,
верхняя граница индекса ‘Z’}
j: -10..5; {переменная, используемая как индекс массива C}
c1: ‘A’..’Z’; {переменная, используемая как индекс массива D}
k: integer; {эту переменную можно использовать в качестве индекса
массива C, т.к. –10..5 – это диапазон значений целого типа}
c2: char; {эту переменную можно использовать в качестве индекса
массива D, т.к.’A’..’Z’ – это диапазон значений символьного типа}
begin {примеры обращения к элементам массивов}
C[-4]:=3;
D[‘F’]:=’%’;
j:=4; C[j]:=-10;
c1:=’R’; D[c1]:=’q’;
k:=-3; C[k]:=80;
c2:=’G’; D[c2]:=’Й’;
end.
Чаще же всего используют диапазон значений целого типа, причем нижний индекс обычно берут равным 1.
Например:
Var
E: Array [1..10] of integer; {массив E, состоящий из 10 элементов,
нижняя граница индекса 1, верхняя 10}