- •Оглавление
- •Этапы разработки программы
- •Оформление решения
- •Структура программы
- •Характеристики программы
- •Типы данных
- •Целые числа
- •Вещественные числа
- •Лабораторная работа № 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):
- •Метод линейной сортировки
- •Сортировка методом «пузырька»
- •Практические примеры
- •Варианты заданий
- •Практические примеры
- •Варианты заданий
- •Практические примеры
- •Шифрование и дешифрование текста
- •Варианты заданий
- •Контрольные вопросы
- •Порядок выполнения лабораторных работ
- •Содержание пояснительной записки
- •Литература
Описание массива
Способ 1. В разделе описания переменных
var
ИмяМассива: array [Верх.Гр.1..Ниж.Гр.1,Верх.Гр.2..Ниж.Гр.2] of ТипЭлементов;
Способ 2. В разделе описания типов
type
ИмяМассива: array [Верх.Гр.1..Ниж.Гр.1,Верх.Гр.2..Ниж.Гр.2] of ТипЭлементов;
Способ 3. В разделе описания констант
const
ИмяМассива: array[1..3,1..3] of real=((1.2,2.4,0.4),(0.045,-0.47,0.003),(1.24,1,-7.4));
Заполнение массива данными (ввод элементов)
Массив, описанный как типизированная константа, уже содержит данные. Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия.
Значения элементов массива также можно задать следующими способами:
при вводе данных с клавиатуры:
write('Введите количество строк и столбцов');
readln(n,m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']='); {Можно эту строчку в программе не использовать}
readln(a[i,j]);
end;
с помощью датчика случайных чисел:
randomize;
writeln('Введите количество элементов массива');
readln(n);
for i:=1 to n do
begin
a[i]:=random(50);
writeln('a[',i,',',j,']=',a[i,j]);
end;
присвоением заданных значений (например по формуле i*i/i+2):
writeln('Введите количество элементов массива');
readln(n);
for i:=1 to n do
begin
a[i]:=i*i/i+2;
writeln('a[',i,',',j,']=',a[i,j]);
end;
Вывод массива
вывод в столбец:
for i:=1 to n do
writeln(a[i,j]);
по строкам и столбцам:
for i:=1 to n do
begin
for j:=1 to m do
begin
write(a[i,j]:3);
end;
readln;
end;
Обработка массивов
Часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значения и номера максимального и минимального элементов, а также изменить значения элементов массива и т.д. Особенность работы с двумерными массивами заключается в том, что расширяется возможность обработки массива (появились новые элементы: строки, столбцы – являющиеся одномерными массивами.
Пусть массив состоит из n строк и m столбцов.
Суммирование элементов каждой строки
for i:=1 to n do
begin
s:=0;
for j=1 to m do s:=s+a[I,j]; d[i]:=s;
end;
Квадратная матрица
Квадратной называется такая матрица, в которой количество строк равно количеству столбцов. Выделяют следующие элементы квадратной матрицы:
главная диагональ;
побочная диагональ;
элементы, расположенные выше главной диагонали;
элементы, расположенные ниже главной диагонали;
элементы, расположенные выше побочной диагонали;
элементы, расположенные ниже побочной диагонали.
Главная диагональ. Если значения индексов (i, j) элемента равны, то элементы расположены на главной диагонали.
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
if i=j then <инструкции>.
Побочная диагональ. Если для значений индексов (i, j) элементов выполняется равенство: i+j=n+1, то элементы расположены на побочной диагонали.
А11 |
А12 |
А13 |
А14 |
A21 |
A22 |
A23 |
А24 |
A31 |
A32 |
A33 |
А34 |
A41 |
A42 |
A43 |
А44 |
if i+j=n+1 then <инструкции>
Для элементов, расположенных выше главной диагонали необходимо использовать один из следующих фрагментов программы:
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
for i:=1 to n do
for j:=1 to n do
if i < j then <инструкции>
for i:=1 to n-1 do
for j:=i+1 to n do
<инструкции>
Если элементы расположены на главной диагонали и выше её необходимо использовать следующий фрагмент программы:
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
for i:=1 to n do
for j:=1 to n do
if i<=j then <инструкции>
Для элементов, расположенных ниже главной диагонали необходимо использовать следующий фрагмент программы:
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
for i:=1 to n do
for j:=1 to n do
if i>j then <инструкции>
Для элементов, расположенных ниже главной диагонали и на ней, необходимо использовать следующий фрагмент программы:
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
for i:=1 to n do
for j:=1 to n do
if i>=j then <инструкции>
Если элементы, расположены выше побочной диагонали, то необходимо использовать следующий фрагмент программы:
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
for i:=1 to n-1 do
for j:=1 to n-1 do
if i+j<=n then <инструкции>
Если элементы, расположены ниже побочной диагонали, то необходимо использовать следующий фрагмент программы:
-
А11
А12
А13
А14
A21
A22
A23
А24
A31
A32
A33
А34
A41
A42
A43
А44
for i:=2 to n do
for j:=2 to n-1 do
if i+j>n+1 then <инструкции>
