
- •Оглавление
- •Этапы разработки программы
- •Оформление решения
- •Структура программы
- •Характеристики программы
- •Типы данных
- •Целые числа
- •Вещественные числа
- •Контрольные вопросы
- •Лабораторная работа № 2 Алфавит языка Паскаль. Операторы языка
- •Теоретические сведения Алфавит языка
- •Специальные символы
- •Составные символы
- •Зарезервированные слова
- •Стандартные функции и процедуры языка
- •Комментарии и директивы
- •Операторы
- •Простые операторы
- •Структурные операторы
- •Полезные формулы
- •Запись числовых констант, переменных и выражений
- •Контрольные вопросы
- •Лабораторная работа № 3 Программирование алгоритмов линейной структуры
- •Теоретические сведения
- •Задание к работе
- •Пример выполнения работы
- •Варианты заданий
- •Задание 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Примеры задач Программа 1
- •Программа 2
- •Программа 3
- •Варианты заданий
- •Задание2
- •Примеры задач Программа 1
- •Программа 2
- •Программа 3
- •Варианты заданий
- •Алгоритм цикла с предусловием – While
- •Алгоритм цикла с постусловием Repeat
- •Алгоритм цикла со счетчиком For
- •Практические примеры Задачи с использованием оператора while
- •Задачи с использованием оператора repeat
- •Задачи с использованием оператора for
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 7 Программирование алгоритмов со структурой вложенных циклов
- •Теоретические сведения
- •Практические примеры
- •Задачи для решения
- •Лабораторная работа № 8 Обработка одномерных массивов
- •Теоретические сведения
- •Обработка массивов
- •Действия с одномерными массивами
- •Практические примеры
- •Варианты заданий
- •Контрольные вопросы
- •Что представляет собой массив в Pascal'е?
- •Лабораторная работа № 9 Обработка двумерных массивов, матрицы
- •Теоретические сведения
- •Описание массива
- •Заполнение массива данными (ввод элементов)
- •Вывод массива
- •Обработка массивов
- •Квадратная матрица
- •Транспонирование матрицы
- •Практические примеры
- •Варианты заданий
- •Сформировать матрицу по следующему правилу
- •Контрольные вопросы
- •1. Как можно описать следующий массив?
- •2. В какой ячейке находится элемент d[2,6] ?
- •3. Каким образом выведется массив на экран монитора?
- •4. Сколько элементов находится в массиве х(4;7):
- •Метод линейной сортировки
- •Сортировка методом «пузырька»
- •Практические примеры
- •Варианты заданий
- •Практические примеры
- •Варианты заданий
- •Практические примеры
- •Шифрование и дешифрование текста
- •Варианты заданий
- •Контрольные вопросы
- •Порядок выполнения лабораторных работ
- •Содержание пояснительной записки
- •Литература
Лабораторная работа № 8 Обработка одномерных массивов
Цель работы овладение практическими навыками работы с одномерными массивами.
Теоретические сведения
Все простые типы данных (целые, вещественные, символьные, логические) имеют два характерных свойства: неделимость и упорядоченность их значений.
Составные, или структурные, типы данных в отличие от простых задают множества сложных значений с одним общим именем. Структурные типы определяют некоторый способ образования новых типов из уже имеющихся.
Существует несколько методов структурирования, каждый из которых отличается способом обращения к отдельным компонентам и, следовательно, способом обозначения компонентов, входящих в структурные данные. По способу организации и типу компонентов в сложных типах данных выделяют следующие разновидности:
регулярный тип (массивы);
комбинированный тип (записи);
файловый тип (файлы);
множественный тип (множества);
строковый тип (строки).
В отличие от простых типов данных, данные структурированного типа характеризуются множественностью образующих этот тип элементов, т.е. переменная или константа структурированного типа всегда имеет несколько компонентов. Каждый компонент в свою очередь может принадлежать структурированному типу, т.е. возможна вложенность типов.
Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе можно использовать массивы.
Массив – это совокупность конечного числа элементов одного и того же типа, в котором каждый элемент имеет номер, а все элементы общее имя. Номер элемента называется индексом.
Характеристики массива:
тип – общий тип всех элементов массива;
размерность (ранг) – количество индексов максима;
диапазон изменения индекса (индексов) – определяет количество элементов в массиве.
Одномерный массив (вектор) – это пример массива, в котором элементы нумеруются одним индексом.
В качестве номера (индекса) элемента массива используется выражение порядкового типа (чаще integer).
Описание массива
Способ 1. В разделе описания переменных
var
ИмяМассива: array[НижняяГраница..ВерхняяГраница] of ТипЭлементов;
Способ 2. В разделе описания типов
type
ИмяМассива: array[НижняяГраница..ВерхняяГраница] of ТипЭлементов;
Способ 3. В разделе описания констант
const
ИмяМассива: array[1..10] of integer=(5, 78, -45, 14, -63, 100, -789, 10, 1, 0);
При объявлении массива нельзя задавать границы индексов при помощи переменных. Удобно использовать предварительно описанные константы, которые задают количество элементов. Например опишем двумерный массив
Const
maxrow=10; maxcol=15;
var
m, n:integer;
matrix:array[1..maxrow,1.. maxcol] of real
Какие ошибки могут возникнуть при описании массивов:
не определены размерность и границы диапазонов: a: array[] of real;
значение нижней границы массива превышает значение верхней: b: array[10..1] of integer;
границы массива необходимо задавать константой, а не выражением: c: array[1..a+b] of real;
недопустимо использовать вещественные числа для границ индексов: d: array[1.0..100.0] of integer;
Заполнение массива данными (ввод элементов)
Массив, описанный как типизированная константа, уже содержит данные. Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия.
Значения элементов массива также можно задать следующими способами:
при вводе данных с клавиатуры:
write('Введите количество элементов в массиве');
readln(n);
for i:=1 to n do
begin
writeln('a[',i,']='); {Можно эту строчку в программе не использовать}
readln (a[i]);
end;
с помощью датчика случайных чисел:
randomize;
writeln('Введите количество элементов массива');
readln(n);
for i:=1 to n do
begin
a[i]:=random(50);
writeln('a(',i,')=',a[i]);
end;
присвоением заданных значений (например по формуле i2/(i+2)):
writeln('Введите количество элементов массива');
readln(n);
for i:=1 to n do
begin
a[i]:=i*i/i+2;
writeln('a(',i,')=',a[i]);
end;
Вывод массива
вывод в столбец:
for i:=1 to n do
writeln(a[i]);
в одну строку, через пробел – разделитель:
for i:=1 to n do
write(a[i],' ');
с заданием формата (например, где под каждый элемент отводится 4 позиции):
for i:=1 to n do
writeln(a[i]:4);