Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kamchatgtu246.pdf
Скачиваний:
50
Добавлен:
23.02.2016
Размер:
1.2 Mб
Скачать

Вариант 10

Найти сумму ряда с точностью ε = 10–5, общий член которого определяется формулой an = (n!)2/2n*n.

Вариант 11

Найти сумму ряда с точностью ε = 10–3, общий член которого определяется формулой an = n2/(2n + 1).

Вариант 12

Найти сумму ряда с точностью ε = 10–3, общий член которого определяется формулой an = 2n n!/(2n)!

Вариант 13

Найти сумму ряда с точностью ε = 10–3, общий член которого находим по формуле an = (n2 + 1)/n!

Вариант 14

Найти сумму ряда с точностью ε = 10–3, общий член которого определяется выражением an = (2n – 1)/(2n)!

Вариант 15

Найти сумму ряда с точностью ε = 10–3, общий член которого определяется формулой an = (3n – 1)/3n.

Вариант 16

Найти сумму ряда с точностью ε = 10–3, общий член которого определя-

ется формулой an = (2n!)2/(3n)!

ЛАБОРАТОРНАЯ РАБОТА № 7

СЛОЖНЫЕ ТИПЫ ДАННЫХ (МАССИВЫ)

Цели работы

1.Освоение структуры программы, в которой используются для своей реализации одномерные массивы.

2.Освоение структуры программы, в которой используются для своей реализации двумерные массивы.

3.Получение навыков в написании программ, содержащих индексную информацию на языке Паскаль.

86

Теоретический материал

1. Общие положения

Построение более крупных структур данных для хранения и обработки в программах сложных видов информации обеспечивается структурными типами. Они образуются путем объединения простых элементов данных, называемых компонентами. Компоненты могут быть при этом однородными или разнородными. В первом случае тип данных определяется как тип-массив, а во втором – как тип-запись. Необходимость в массивах возникает всякий раз, когда в памяти нужно хранить большое, но конечное количество однотипных упорядоченных данных. Массив – это структура данных, которую можно рассматривать как набор переменных одинакового типа, имеющих общее имя.

Тип элементов массива называется базовым. Используя любой ранее описанный тип, такой, как, например, базовый, можно получить массив массивов, массив записей, массив строк, массив множеств и т. д.

2. Одномерные массивы

Простейшая форма – это одномерный массив (линейная таблица). Он аналогичен одномерному числовому вектору и имеет индивидуальное имя, а для обозначения отдельной компоненты к имени массива добавляется индекс, который и выделяет нужную компоненту.

Компоненты массива называются переменными с индексами. В обычной математической символике записывают: Х1, Х2, …, Xn; или a1, ..., a50 и т. д.

Наименьший индекс называется нижней границей, наибольший – верхней границей, а число элементов – размером массива.

Размер массива фиксируется при описании и в процессе выполнения программы не меняется. Индексы можно вычислять. Наиболее часто в качестве типа индекса используется ограниченный целый тип или перечисляемый тип.

Описание массивов включает в себя указания:

из переменных какого типа должен состоять массив;

сколько в нем должно быть элементов;

какиеиндексыдолжныбытьиспользованыдлядоступакегоэлементам.

В общем виде объявление массива выглядит так: Var

< Имя массива > : Array [Нижний индекс. .Верхний индекс] Of < Тип

элементов >;

Для имени массива применяются идентификаторы, отвечающие тем же правилам, что и имена переменных и других элементов программы.

Параметры массива – нижний и верхний индексы – должны являться константами и определяют пределы изменения индекса и, соответственно, количество элементов, которые содержатся в массиве. Например, если в качестве нижнего индекса использовано значение 5, а в качестве верхнего индекса

– 7, то массив будет включать в себя три элемента, доступ к которым может быть осуществлен по индексам 5, 6 и 7.

В качестве типа элемента может быть использован любой необходимый для решения поставленной задачи тип данных, например Integer или String.

87

Задача 1

Рассмотрим примеры описания массивов с пояснениями: Program Lab7_1;

Const Start = 100;

Finish = 105; Var

S : Integer;

Al: Array [1..10] Of Integer;

массив десяти переменных типа Integer, для доступа будут использоваться индексы 1, 2, 3, 4, 5, 6, 7, 8, 9 и 10. Имя массива – A1

А2: Array [5..10] Of Real;

массив шести переменных типа Real, для доступа будут использоваться индексы 5, 6, 7, 8, 9 и 10. Имя массива – А2

Names: Array [5..10] Of String;

массив шести переменных типа String, для доступа будут использоватьсяиндексы5, 6, 7, 8, 9 и10. Имямассива– Names

Sprites: Array [0..99] Of Pointer;

массив ста переменных типа Pointer, диапазон индексов – от 0 до 99. Имя массива – Sprites

В: Array [Start..Finish] Of Byte;

массив шести переменных типа Byte, диапазон индексов задается константами Start и Finish – от 100 до 105. Имя массива – В

Bl: Array [Start..110] Of Byte;

массив одиннадцати переменных типа Byte, диапазон индексов задается константами Start и 110 – от 100 до 110. Имя массива – Bl

IC1: Array [Start..90] Of Byte;

некорректное описание массива: нижний индекс (задан константой Start = 100) превышает верхний индекс (задан константой 90)

IC2: Array [S..800] Of Byte;

некорректное описание массива: верхний индекс задан переменной, а не константой

IC3: Array [1..80000] Of Integer;

некорректное описание массива: объем оперативной памяти, необходимый для хранения такого массива – 160 000 байт (один элемент типа Integer занимает 2 байта), что превышает максимально допустимый объем

Begin

{Тело программы} End.

88

2.1. Использование массивов

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

< Имя массива >[< Индекс элемента >]

Индекс может быть константой или выражением целого типа, например: Team[1] : = ’Зенит’;

D : = koef [1] * koef [1] – 4 * koef [2] * koef [1]; ReadLn (name[n + 1]);

WriteLn (temper [I]);

2.2. Ввод–вывод массива

Под вводом массива понимают ввод значений элементов массива,

аименно:

как и вывод массива, ввод удобно реализовать при помощи инструк-

ции For;

чтобы пользователь программы знал, ввода какого элемента массива ожидает программа, следует организовать вывод подсказок перед вводом очередного элемента массива. В подсказке обычно указывается индекс элемента массива;

в качестве индексов массивов могут использоваться не только константы, но и переменные, в том и числе и счетчики оператора цикла For;

в прикладных программах ввод, как правило, осуществляется либо с клавиатуры, либо из файла;

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

n–количества элементов в массиве.

Количество элементов массива, их упорядоченность и тип задают явно до начала выполнения программы. Поэтому если границы массива точно неизвестны, то их выбирают «с запасом», так чтобы его размер был не меньше значения n, которое будет введено. Например, после описания

a : Array [1..100] of Real;

введенное n должно принадлежать диапазону 1..100, а после описания a : Array [Byte] of Real;

введенное n должно принадлежать типу Byte.

Описание же a : Array [Integer] of Real недопустимо и вызовет сообщение: «Error 22: Structure too large», потому что произведение количества компонентов массива на размер компонента в байтах не может превышать 65 520 байт.

Задача 2

Рассмотрим пример заполнения элементов массива с помощью оператора присваивания и вывод без использования оператора цикла For.

89

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]