Урок 5
Алгоритм
поиска в таблицах элементов с некоторым свойством.
Цели урока:
Ход урока.
I. Орг . момент. Сообщение цели урока.
На этом занятии вы познакомитесь с алгоритм поиска в таблицах элементов с некоторым свойством. Научитесь формировать массивы в программах, применять их при составлении программ.
II. Проверка дом задания. ( Всем ученикам написать программу на компьютерах).
Дом задание. Сложите два двумерных массива — А и В. Результатом является двумерный массив С.
Вопрос: Чем отличается условие этой задачи от условий предыдущих задач?
Program
Tab_1;
const
n=20; m=20;
var a:array[1..n,1..m]
of integer;
b:array[1..n,1..m]
of integer;
c:array[1..n,1..m]
of integer; k,l,i,j:integer;
begin
writeln('‘ Сколько строк и столбцов в массивах?');
readln(k,l);
for i:=1 to k do
begin
for j:=1 to l do
begin
writeln(' vvest chisla
mas a');
readln(a[i,j]); {vvod chisel}
writeln(' vvest chisla
mas b');
readln(b[i,j]); {vvod chisel}
end; end;
for i:=1 to k do
begin
for j:=1 to l do
begin
c[i,j]:=a[i,j]+b[i,j];
writeln(c[i,j]); end;end;
end.
Примечание: Оценить работу всех учеников.
III.
Новая
тема.
- Одна из важных невычислительных задач- поиск данного элемента среди элементов таблицы. Такой поиск называется также поиском по ключу. На практике поиск осуществляется в упорядоченном массиве.
Алгоритмы поиска бывают разные. Рассмотрим пример, когда возможен поиск
элементов массива путем полного
перебора.
·
Если элемент найден, напечатаем его номер;
если – нет, то сообщим об этом.
·
Для досрочного выхода из цикла будем
использовать оператор GOTO и Метки(LabeL) .
Примечание:
·
Метки(LabeL) обявляются
в заголовке после оператора Program;
·
LabeL имена меток;
·
Метка ставится перед оператором; отделяется
от оператора двоеточием
.
Формат оператора:
·
GOTO номер метки;
2. Задача
Задан одномерный массив A, состоящий из 7 чисел. Определить: существует ли среди введенных в массив чисел число 3.
Program Poisk;
Label 1,2
Var A: array[1..7] of real; x:real; i:integer;
i,S:
integer;
Begin
writeln('Введите элементы массива ');
for i:=1 to 7 do
readln(A[i]);
writeln('Введите число для поиска ');
readln(x);
for i:=1 to 7 do
if a[i] =x then goto 1;
writeln(' такого числа в массиве нет’);
goto 2;
1: writeln(' номер элемента массива, равного данному’,i);
2:end.
Задача 2. Найти элемент, введенного
последним из одинаковых элементов, равный заданному.
Учитель . –В этом случае нужно использовать цикл обратного пересчета:
for i:=n
downto 1 do
Program Poisk;
Label 1,2;
Var
A: array[1..7] of
real;
x:real; i:integer;
Begin
writeln('Введите элементы
массива ');
for i:=7 downto 1 do
readln(A[i]);
writeln('Введите число для поиска ');
readln(x);
for i:=1 to 7 do
if a[i] =x then goto 1;
writeln(' такого числа в массиве нет');
goto 2;
1: writeln(' номер
элемента массива, равного данном',i);
2:end.
IV.
Итоги урока.
Выставление оценок.
V.
Домашнее
задание.
·
Выучить конспект.
· Задача 1. Задан одномерный массив A, состоящий из n чисел. Найти числа, которые больше заданного числа Х.