лекции по инфе / Лабораторная работа 8
.docЛабораторная работа 8
Обработка одномерных массивов
Задание 2. Поиск минимального и максимального элементов массива
Цель работы: Получить навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научиться находить максимальный и минимальный элемент массива и определять его место в массиве; изменять значения и расположение элементов массива; обрабатывать элементы массива, находящиеся перед (после) максимальным (минимальным) элементом.
Структура отчета:
-
Титульный лист.
-
Цель работы.
-
Содержание отчета:
-
текст задания в соответствии со своим вариантом;
-
вид окон проекта с указанием визуальных компонентов (ВК);
-
таблица используемых ВК;
-
таблица используемых событий;
-
таблица используемых переменных;
-
схема алгоритма;
-
рукописные тесты;
-
распечатка текста процедуры;
-
распечатка формы с результатами работы (в соответствии с тестами).
Пример оформления отчета по алгоритмизации и программированию находится в файле «Пример оформления отчета.doc»
Контрольные вопросы и задания:
-
Дайте словесное описание алгоритма поиска минимального элемента массива и определения его номера в массиве.
-
Нарисуйте схему алгоритма поиска минимального элемента массива и определения его номера в массиве.
-
Дайте словесное описание алгоритма поиска максимального элемента массива и определения его номера в массиве.
-
Нарисуйте схему алгоритма поиска максимального элемента массива и определения его номера в массиве.
-
Как поменять местами два элемента массива?
-
Нарисуйте схему алгоритма и напишите фрагмент процедуры для решения следующих задач (или подобных им):
-
1.
Найти минимальный элемент и поменять его местами с предыдущим (последующим, первым, последним …) элементом массива.
2.
Найти максимальный элемент и заменить его с предыдущим (последующим, первым, последним …) элементом массива.
3.
Найти максимальный элемент из элементов на местах с четными номерами, присвоить его значение последнему элементу массива, а вместо максимального числа записать - 1.
4.
Поменять местами максимальный и минимальный элементы массива.
5.
Найти минимальный элемент из элементов на местах с номерами, кратными 3, и вычислить сумму элементов, расположенных в массиве после него.
6.
Найти максимальный элемент и определить в какой части массива положительных элементов больше: до максимального элемента или после него.
Теоретические сведения к работе
-
Поиск минимальных и максимальных элементов массива и определение их номеров
Графическая схема алгоритма поиска максимального элемента массива:
:
При поиске минимального элемента блок 7 должен иметь вид:
Тесты:
-
минимальный элемент находится на первом месте в массиве;
-
минимальный элемент находится на последнем месте в массиве;
-
минимальный элемент находится в середине массива;
-
зависит от конкретных условий задачи.
-
Перестановка местами и замена элементов массива.
Для перестановки местами двух элементов массива необходимо объявить дополнительную переменную того же типа, который имеют элементы массива.
var
x:array [1..10] of real;
p:real;
Пример1. Поменять местами второй и четвертый элементы массива:
p:=x[2];
x[2]:=x[4];
x[4]:=p;
Пример2. Поменять местами первый и последний элементы массива:
p:=x[1];
x[1]:=x[n]; n – число элементов массива, номер последнего элемента.
x[n]:=p;
Пример3. Поменять местами предпоследний элемент массива с элементом с заданным номером k:
if (k>=1) and (k<=n)
then
if k = n-1
then ShowMessage (‘Обмен не нужен, т.к. …..’)
else
begin
p:=x[n-1];
x[n-1]:=x[k];
x[k]:=p;
end;
x[n-1]:=x[k]; - заменить предпоследний элемент на элемент с заданным
номером k
Пример 4. Заменить положительные элементы массива на последний элемент массива.
for i:=1 to n-1 do
if x[i]>0 then
x[i]: =x[n];
Задания к работе
В каждой из задач предполагается, что задан массив из N чисел. Программа должна:
-
вводить размерность и элементы исходного массива;
-
выполнять действия в соответствии с условием задачи;
-
выводить:
-
исходный массив,
-
максимальный или минимальный элемент массива и его номер,
-
-
массив, полученный в результате выполнения задания.
Исходные данные для отладки программы выбрать самостоятельно. Для ввода и вывода массива использовать визуальный компонент StringGrid.
Вариант |
Задание |
1 |
Найти максимальный элемент и поменять его местами с последним элементом массива. |
2 |
Найти минимальный элемент и поменять его местами с предыдущим элементом массива. |
3 |
Найти минимальный элемент и поменять его местами с последующим элементом массива. |
4 |
Найти максимальный элемент и поменять его местами с шестым элементом массива. |
5 |
Найти максимальный элемент, присвоить его значение последнему элементу массива, а вместо максимального числа записать - 1. |
6 |
Найти минимальный элемент, присвоить его значение первому элементу массива, а вместо минимального элемента записать число 9999. |
7 |
Найти минимальный элемент и поменять его местами с третьим элементом массива. |
8 |
Найти максимальный элемент и поменять его местами с предпоследним элементом массива. |
9 |
Найти минимальный элемент и присвоить его значение элементу с номером (N - 3), а вместо минимального элемента записать число 101. |
10 |
Найти максимальный элемент и поменять его местами с элементом под номером (N - 4). |
11 |
Найти минимальный элемент и записать вместо него число N2+N. |
12 |
Найти максимальный элемент и поменять его местами со вторым элементом массива. |
13 |
Найти минимальный элемент и поменять его местами с последним элементом массива. |
14 |
Найти максимальный элемент и вместо него записать значение N+2. |
15 |
Найти минимальный элемент и поменять его местами с третьим элементом массива. |
16 |
Найти минимальный элемент и вместо него записать N2. |
17 |
Найти максимальный элемент и поменять его местами с предпоследним элементом массива. |
18 |
Найти минимальный элемент, присвоить его значение последнему элементу массива, а вместо минимального элемента записать значение 3N. |
19 |
Найти максимальный элемент и поменять его местами с четвертым элементом массива. |
20 |
Найти минимальный элемент и поменять его местами с предпоследним элементом массива. |
21 |
Найти максимальный элемент и присвоить его значение элементу с номером (N - 3). |
22 |
Найти минимальный элемент и присвоить его значение второму элементу массива. |
23 |
Найти максимальный элемент и поменять его местами со вторым элементом массива. |
24 |
Найти минимальный элемент и поменять его местами с элементом массива, номер которого задан. |
25 |
Найти максимальный элемент и поменять его местами с последующим элементом массива. |
26 |
Найти минимальный элемент, присвоить его значение первому элементу массива, а вместо минимального числа записать 10. |
27 |
Найти минимальный элемент, присвоить его значение второму и четвертому элементам массива, а вместо минимального числа записать сумму второго и четвертого элементов массива. |
28 |
Найти максимальный элемент и поменять его местами с элементом, номер которого задан. |
29 |
Найти минимальный элемент и заменить его полусуммой первого и последнего элементов. |
30 |
Найти максимальный элемент и поменять его местами с предпоследним элементом массива. |