- •ЛАБОРАТОРНАЯ РАБОТА № 1
- •Теоретический материал
- •1.2. Интерфейс IDE
- •1.3. Комбинации клавиш
- •2. Подготовка текста программы
- •2.5. Удаление фрагмента текста
- •ЛАБОРАТОРНАЯ РАБОТА № 2
- •Теоретический материал
- •Константа (англ. constant) – это величина, значения которой не изменяются в период ее существования. Значения переменных предварительно описываются в разделе описания переменных CONST.
- •2.1. Простые типы данных
- •5. Вычисление выражений
- •Задача 2
- •Задача 3
- •Необходимо ввести и вывести на печать два целых числа и два вещественных числа:
- •ЛАБОРАТОРНАЯ РАБОТА № 3
- •Теоретический материал
- •Допускается опускать служебное слово ELSE:
- •Задача 2
- •Задача 3
- •Program Lab3_3_2; {Случай 2}
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •ЛАБОРАТОРНАЯ РАБОТА № 5
- •ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*A < = 3*N +1.
- •Program Lab5_2;
- •Задача 4
- •6. Вложенные циклы
- •8. Практическое задание – решение задач с использованием операторов цикла
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •ОРГАНИЗАЦИЯ ИТЕРАЦИОННЫХ ЦИКЛОВ В ПРОГРАММЕ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Пояснения к задаче 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •Таблица 14
- •Задача 3
- •Задача 4
- •Задача 5
- •Умножить на 3 каждый элемент массива и получить результат на экране дисплея распечатанным по строкам.
- •5. Практическое задание – решение задач с использованием массивов
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант16
- •ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ TURBO PASCAL
Вариант 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