Практическое занятие № 5
Одномерные массивы
Оглавление
Тема. 1
Цель. 1
Изучаемые понятия. 1
Задачи. 1
Примеры решений задач. 2
З а д а ч а № 1. 2
З а д а ч а № 3. 4
З а д а ч а № 4. 5
З а д а ч а № 6. 6
З а д а ч и № 7, 8, 9. 8
З а д а ч а № 10. 12
Одномерные массивы (векторы).
Сформировать практические навыки организации и описания процессов обработки данных с помощью одномерных массивов и подпрограмм.
Тип индекса. Тип компонентов. Размер массива. Индексное выражение. Интервальные типы. Типы диапазона. Доступ к компонентам массива. Размещение массивов в памяти.
1. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму значений компонентов массива.
2. Написать и оттестировать функцию. Функция получает через параметр одномерный массив целых переменных и возвращает сумму четных значений компонентов массива.
3. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму компонентов массива с нечетными значениями индексов.
4. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает компонент массива с максимальным значением среди всех компонентов массива.
5. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает минимальный по значению элемент этого массива и номер его индекса.
6. Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных. В полученном массиве процедура переставляет значения компонентов массива в обратном порядке.
7. Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных. Процедура изменяет массив циклическим сдвигом его элементов влево на одну позицию.
8. Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных и целое – параметр сдвига. Процедура изменяет массив циклическим сдвигом его элементов вправо на число позиций, равное параметру сдвига.
9. Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных и целое – параметр сдвига. Процедура изменяет массив циклическим сдвигом его элементов на заданное число позиций, равное параметру сдвига в указанном направлении. Направление сдвига задаётся знаком параметра сдвига: вправо, если параметр больше нуля; влево, если он отрицателен.
10. Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных. Процедура изменяет массив упорядочением его элементов по возрастанию в сторону больших значений индексов компонентов.
11. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных (типа Vector). Вычисляет и возвращает максимальное значение среди элементов массива с чётными значениями индекса и значение индекса (через параметр).
Например:
Const
Columns = 5;//компонентов в массиве
Type
Index = 0.. Columns – 1;
Vector = array [Index] of real;
Var
A: Vector = (1, 5, -3, 2, 7);// массив инициированный начальными
//значениями
Исходный массив |
|||||
Компоненты |
A[0] |
A[1] |
A[2] |
A[3] |
A[4] |
Значения |
1 |
5 |
–3 |
2 |
7 |
Максимальное значение |
7 |
||||
Индекс компонента |
4 |
12. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных (типа Vector) и возвращает минимальное значение среди элементов массива с нечётными значениями индекса и значение индекса (через параметр).
Например:
Const
Columns = 5; //компонентов в массиве
Type
Index = 0.. Columns – 1;
Vector = array [Index] of real;
Var
A: Vector = (1, 5, -3, 2, 7);// массив инициированный начальными
//значениями
Исходный массив |
|||||
Элемент |
A[0] |
A[1] |
A[2] |
A[3] |
A[4] |
Значение |
1 |
5 |
–3 |
2 |
7 |
Минимальное значение |
2 |
||||
Индекс элемента |
3 |
Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму значений компонентов массива.
Для вычисления суммы значений компонентов массива необходимо перебрать все компоненты, добавляя их значения к накопителю (переменная Sum). Перед началом цикла значение накопителя необходимо установить в 0. Для организации цикла воспользуемся управляющей структурой FORDO.
Блок-схема решения представлена ниже на рисунке.
Пример консольного приложения, в котором представлена функция, реализующая вычисление суммы значений компонентов одномерного массива вещественных переменных, представлен ниже.
program PSum;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Columns = 5; //компонентов в массиве
Type
Index = 0.. Columns – 1;// тип индекса
Vector = array [Index] of real;// тип массива
//-------------------------------------------------------------------------------------
function Sum(const a: array of real): Real; //константный открытый
//параметр-массив
//Возвращает сумму значений компонентов одномерного массива.
//------------------------------------------------------------------------------------
var i: integer;
begin
result:= 0;
for i:= Low(a) to high(a) do
result:= result + a[i]
end;
//------------------------------------------------------------------------------------
var
S: real;//Сумма значений компонентов массива
A: Vector = (1, 5, -3, 2, 7); // массив инициированный начальными //значениями
begin
//----------Вызов функции-------------------------------------------------------
S:= Sum(A);
writeln('Summa = ',S:6:2);
//----------Вызов функции------------------------------------------------------
writeln('Summa = ',Sum(A):6:2);
readln;
end.
Написать и оттестировать
функцию. Функция получает через параметр одномерный массив вещественных
переменных и возвращает сумму значений компонентов массива с нечётными
значениями ин-
дексов.
Для нахождения суммы значений компонентов с нечётными значениями индексов необходимо перебрать все компоненты массива, начиная с первого. Значение компонента добавляется к сумме, если его индекс – нечётное значение. Перед началом цикла в значение суммы необходимо установить значение 0. Для просмотра значений компонентов массива необходимо организовать цикл. Для этой цели воспользуемся управляющей структурой FORDO.
Блок-схема решения представлена ниже на рисунке.
Пример консольного приложения, в котором представлена функция, реализующая вычисление суммы значений компонентов одномерного массива вещественных переменных с нечётными индексами, представлен ниже.
program PSumOdd;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Columns = 5; //компонентов в массиве
Type
Index = 0.. Columns – 1;// тип индекса
Vector = array [Index] of real;// тип массива
//-------------------------------------------------------------------------------------
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.