понедельник, 9 ноября 2009 г.

Урок 17. Практическая работа № 2. "Разработка и исполнение программ обработки одномерных массивов"

Практическая работа № 2.
“Разработка и исполнение программ обработки одномерных массивов”.
Цель:.
Учебная: Достичь усвоения понятий: массив, элемент массива и его индекс, структура и вид массива;
Формировать умение и навыки создания алгоритма обработки одномерных массивов, ввода текста программы, запуска программы на компиляцию и выполнение, поиска и исправления синтаксических и логических ошибок, сохранения программы на диске, работы в отладочном режиме.
Воспитательная: Формировать навыки принятия решений, бережное отношение к технике и информации других.
Развивающая: Формировать алгоритмический стиль мышления, умения и навыки работы с интегрированной средой программирования.
Основные понятия
Массив – набор однотипных данных, упорядоченных по индексу. Однотипные данные, подлежащие одинаковой обработке, объединяют в массив.
Размер – количество значений, которые соответствуют имени массива.
Размерность – количество индексов, которые соответствуют одному значению.
Тип элемента – любой допустимый в паскале тип, кроме файлового.
Индекс – порядковый номер значения, величина порядкового типа, обычно связывается с значением счетчика цикла оператора For.
Значение – к нему обращаются a[i].
Сортировка – упорядочение элементов массива по значению.
Алгоритмы обработки: Оnбор элементов по условию. Подсчитать количество отрицательных элементов массива.
Информационная модель задачи
a – исходный массив;
n - количество элементов массива;
i - порядковый номер элемента массива;
k - количество отрицательных элементов массива.
Program negative;
Type
om=array[1..50] of real;
Var
A:om;
N,I,k:integer;
Begin
Writeln(‘Введите количество элементов массива’);
Readln(n);
{Заполнение массива значениями}
for i:=1 to n do
a[i]:=random(50)-25.0; {Распечатка исходного массива}
For i:=1 to n do
Write(a[i]:8:1);
Writeln;
{Обработка массива по условию задачи}
K:=0;
For i:=1 to n do
If a[i]'<'0 then k:=k+1; {Печать результата} Writeln(‘Количество отрицательных чисел = ’,k) End.

Задание 1: Решить задачи:

1. Найти сумму всех положительных элементов массива.

(4 балла)
2. Найдите произведение нечетных элементов одномерного массива, значения которых меньше х.

(7 баллов)
3. Найдите среднее арифметическое элементов одномерного массива, кратных 3 или 5.
(9 баллов)
4. Поменяйте местами минимальный и максимальный элементы массива местами
(10 баллов)

5. Упорядочите одномерный массив так, чтобы сначала разместились все нечетные числа, а затем все четные
(12 баллов)

Задание 2. Составить контрольно-тестовые примеры.
Задание 3: Программу запишите в тетрадь. Прокомментируйте блоки заполнения, распечатки и обработки массива. Выделите тело цикла.

Урок 18. Пошук у масиві. Алгоритми пошуку. Самостійна робота

Тема урока: Пошук у масиві. Алгоритми пошуку.
Цель Д: посредством самостоятельного решения задач на сложный поиск в массиве проверить уровень понимания использования сортировки массива для решения задач
Самостоятельная работа
1 вариант
1) Поменяйте местами первый и минимальный элементы массива.
2) Упорядочите одномерный массив, чтобы сначала разместились все четные элементы, а затем – все нечетные (порядок четных и нечетных необязателен)

2 вариант

1) Поменяйте местами последний и максимальный элементы массива.
2) Упорядочите одномерный массив, чтобы сначала разместились все элементы, значение которых больше заданного числа, а затем – все остальные.
ПОДСКАЗКА ДЛЯ ЗАДАНИЯ 2! Вспомните сортировку методом прямого выбора!

Урок 16. Пошук у масиві. Алгоритми пошуку.

Тема урока: Пошук у масиві. Алгоритми пошуку.

Цель Д: посредством решения задач на поиск в массиве, достичь полного понимания методов сортировок массива

Тип урока: урок закрепления знаний

Ход уроку

* Найти произведение трех наибольших отрицательных чисел

Назначение переменных

А – исходный массив

N – количество элементов в массиве

P – произведение трех наибольших отрицательных чисел

K – количество отрицательных чисел

L – порядковый номер наибольшего отрицательного числа

I – порядковый номер элемента в массиве, номер просмотра

J – порядковый номер просматриваемого элемента

X – промежуточная переменная

Program n1;

Type

Massiv=array [1..100] of real;

Var

A: massiv;

N: integer;

P: real;

Procedure Sort(n: integer; Var a:massiv);

Var

I, j: integer;

X: real;

Begin

For i:=2 to n do

For j:=n downto I do

If a[j]'<'a[j-1] then Begin X:=a[j]; A[j]:=a[j-1]; a[j-1]:=x; End; End; Procedure Work(n: integer; Var a : massiv; Var p:real); Var K,l,i: integer; Begin K:=0; For I:=1 to n do If a[i]'<'0 then Begin K:=k+1; L:=I; End; If k'>'3 then

Begin

P:=a[L]*a[L-1]*a[L-2];

Writeln(p:8:2);

End

Else

Writeln(‘невозможно найти’);

End.

* Найти сумму трех наименьших положительных чисел

Что изменится в программе, если нужно найти 3 наименьших положительных числа?

Как иначе можно изменить программу, чтобы алгоритм был более эффективным?

While(a[i]<=0) and (i<=n) do I:=i+1; If a[i]>0 then S:=S+a[i]+a[i-1]+a[i-2]

4. Практическая часть урока - проверить программі за компьютером, отослать на почтовій ящик преподавателю
5. Домашнее задание - Дан массив из n чисел. Определить, представляет ли массив чисел возрастающую последовательность?