Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новая папка / 05 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ЛабРаб ОП та АМ_5.doc
Скачиваний:
9
Добавлен:
28.03.2016
Размер:
229.38 Кб
Скачать

1. Условие задачи:

Массив Х содержит 10 целых чисел. Переписать четные элементы массива Х в массив А, нечетные – в массив В, и найти максимальный элемент массива А и минимальный элемент массива В.

2. Решение задачи в ее предметной области, в данном случае этого не требуется.

3. Проектируем структуры данных (их имена и типы). Понятно, что все имена масивов с их типами, входящие в условие задачи, нужно описать в программе. Кроме того, нам понадобятся: переменная цикла i, количество четных элементов KolChet, количество нечетных элементов KolNech, значение максимального элемента Max, его индекс MaxInd, значение минимального элемента Min и его индекс MinInd – все типа Integer.

Значит в разделе описаний программы, назовем ее MaxMin, с учетом требований о необходимости обеспечения легкочитаемости программы и размещения необходимых комментариев, поместим следующие описания:

Type

VectorType = Array[1..10] of Integer;

Var

X, {Массив для хранения вектора}

A, {Массив для хранения четных чисел}

B : VectorType; {Массив для хранения нечетных чисел}

i, {Параметр цикла}

KolChet, {Количество четных элементов}

KolNech, { Количество нечетных элементов }

Max, {Максимальное значение}

MaxInd, {Его индекс}

Min, {Минимальное значение}

MinInd : Integer; { Его индекс}

4. Проводим нисходящую разработку (проектирование) программы методом пошаговой детализации с помощью псевдокода. Воспользуемся результатами (рис. 1) для получения первой версии алгоритма:

Ввести данные MaxMin

Выполнить вычисления MaxMin

Вывести результаты MaxMin

С учетом требований к «дружественности» интерфейса, детализация псевдокода Ввести данные MaxMin дает следующее:

Вывести на экран приглашение для ввода массива Х

Ввести массив Х

Детализация псевдокода Выполнить вычисления MaxMin дает следующее:

Определить четные элементы Х и переписать в А

Определить нечетные элементы Х и переписать в В

Найти максимальный элемент массива А

Найти минимальный элемент массива В

Детализация псевдокода Вывести результаты MaxMin дает следующее:

Вывести название максимального эл-та и его содержимое

Вывести название минимального эл-та и его содержимое

5. Выполняем структурное программирование с использованием стандартных приемов:

BEGIN

ClrScr; { Очищаем экран }

WriteLn(‘Введите 10 элементов вектора Х:’);

for i:=1 to 10 do {Организуем цикл по количеству элементов}

begin

Write (‘ X[‘,i,’] = ’); {Удобно видеть номера элементов}

ReadLn (X[i])

end;

WriteLn; {Устанавливаем курсор на новую строку}

{Переносим чётные элементы из Х в А с использованием функции Odd(i)}

KolChet := 0;

for i:=1 to 10 do

if not Odd(X[i]) then {для чётных – условие – not Odd(X[i])}

begin

KolChet := KolChet+1; {Определяем номер очередного эл-та}

A[KolChet] := X[i] {Заносим по этому номеру}

end;

{Переносим нечётные элементы из Х в В с использованием функции Odd(i)}

KolNech := 0;

for i:=1 to 10 do

if Odd(X[i]) then {для нечётных – условие – Odd(X[i])}

begin

KolNech := KolNech+1; {Определяем номер очередного эл-та}

A[KolNech] := X[i] {Заносим по этому номеру}

end;

{Определяем максимальный элемент массива А из KolChet элементов}

Max := A[1]; {Считаем, что первый элемент массива – максимальный }

for i:= 2 to KolChet do {Поэтому начинаем обработку со второго элемента}

if A[i] > Max then {Сравниваем с текущим максимальным значением }

begin

Max := A[i]; {Запоминаем максимальное значение}

MaxInd := i { Запоминаем его индекс}

end;

{Определяем минимальный элемент массива В из KolNech элементов}

Min := B[1]; {Считаем, что первый элемент массива – минимальный }

for i:= 2 to KolNech do {Поэтому начинаем обработку со второго элемента}

if B[i] < Min then {Сравниваем с текущим минимальным значением }

begin

Min := B[i]; {Запоминаем минимальное значение}

MinInd := i { Запоминаем его индекс}

end;

{ Выводим результат }

WriteLn(‘Максимальный элемент A[’, MaxInd, ‘] = ‘,

A[MaxInd]);

WriteLn(‘Минимальный элемент B[’, MinInd, ‘] = ‘,

A[MinInd]);

ReadLn

END.

6. Отладка программы. Отладка программы – это процесс поиска и устранения синтаксических ошибок в готовой программе. Обычно отладка предшествует стадии тестирования. В этом пункте необходимо привести скриншот результата работы готовой программы (см. п. 5 Лаб. раб № 1).

7. Тестирование программы. Цель тестирования всякой программы состоит в том, чтобы убедиться, что она решает действительно ту задачу, для которой предназначена, и выдаёт правильный ответ при любых значениях из области решений. Тестовые данные должны обеспечивать проверку всех возможных условий возникновения ошибок. Подготовьте тестовый набор данных для вектора Х.

Исследуйте Вашу программу при необходимых тестовых значениях.

8. Перед защитой лабораторной работы Вам необходимо подготовить отчет (Приложение 2). Перед распечаткой обязательно продемонстрируйте его преподавателю в электронном виде, чтобы избежать ошибок в оформлении!