Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции по инфе / Лабораторная работа 8

.doc
Скачиваний:
49
Добавлен:
15.04.2015
Размер:
98.82 Кб
Скачать

Лабораторная работа 8

Обработка одномерных массивов

Задание 2. Поиск минимального и максимального элементов массива

Цель работы: Получить навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научиться находить максимальный и минимальный элемент массива и определять его место в массиве; изменять значения и расположение элементов массива; обрабатывать элементы массива, находящиеся перед (после) максимальным (минимальным) элементом.

Структура отчета:

  1. Титульный лист.

  2. Цель работы.

  3. Содержание отчета:

  • текст задания в соответствии со своим вариантом;

  • вид окон проекта с указанием визуальных компонентов (ВК);

  • таблица используемых ВК;

  • таблица используемых событий;

  • таблица используемых переменных;

  • схема алгоритма;

  • рукописные тесты;

  • распечатка текста процедуры;

  • распечатка формы с результатами работы (в соответствии с тестами).

Пример оформления отчета по алгоритмизации и программированию находится в файле «Пример оформления отчета.doc»

Контрольные вопросы и задания:

  1. Дайте словесное описание алгоритма поиска минимального элемента массива и определения его номера в массиве.

  2. Нарисуйте схему алгоритма поиска минимального элемента массива и определения его номера в массиве.

  3. Дайте словесное описание алгоритма поиска максимального элемента массива и определения его номера в массиве.

  4. Нарисуйте схему алгоритма поиска максимального элемента массива и определения его номера в массиве.

  5. Как поменять местами два элемента массива?

  6. Нарисуйте схему алгоритма и напишите фрагмент процедуры для решения следующих задач (или подобных им):

1.

Найти минимальный элемент и поменять его местами с предыдущим (последующим, первым, последним …) элементом массива.

2.

Найти максимальный элемент и заменить его с предыдущим (последующим, первым, последним …) элементом массива.

3.

Найти максимальный элемент из элементов на местах с четными номерами, присвоить его значение последнему элементу массива, а вместо максимального числа записать - 1.

4.

Поменять местами максимальный и минимальный элементы массива.

5.

Найти минимальный элемент из элементов на местах с номерами, кратными 3, и вычислить сумму элементов, расположенных в массиве после него.

6.

Найти максимальный элемент и определить в какой части массива положительных элементов больше: до максимального элемента или после него.

Теоретические сведения к работе

  1. Поиск минимальных и максимальных элементов массива и определение их номеров

Графическая схема алгоритма поиска максимального элемента массива:

:

При поиске минимального элемента блок 7 должен иметь вид:

Тесты:

  1. минимальный элемент находится на первом месте в массиве;

  2. минимальный элемент находится на последнем месте в массиве;

  3. минимальный элемент находится в середине массива;

  4. зависит от конкретных условий задачи.

  1. Перестановка местами и замена элементов массива.

Для перестановки местами двух элементов массива необходимо объявить дополнительную переменную того же типа, который имеют элементы массива.

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 чисел. Программа должна:

  1. вводить размерность и элементы исходного массива;

  2. выполнять действия в соответствии с условием задачи;

  3. выводить:

      • исходный массив,

        • максимальный или минимальный элемент массива и его номер,

      • массив, полученный в результате выполнения задания.

Исходные данные для отладки программы выбрать самостоятельно. Для ввода и вывода массива использовать визуальный компонент 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

Найти максимальный элемент и поменять его местами с предпоследним элементом массива.