363.71K
Категория: ПрограммированиеПрограммирование

Последовательный поиск в массиве начала программирования

1.

ПОСЛЕДОВАТЕЛЬНЫЙ ПОИСК
В МАССИВЕ
НАЧАЛА ПРОГРАММИРОВАНИЯ

2.

Ключевые слова
- массив
- описание массива таблица
- заполнение массива
- вывод массива
- обработка массива
- последовательный поиск

3.

Типовые задачи поиска
Определение наибольшего (наименьшего)
элемента массива
Определение элемента массива, значение
которого равно заданному значению

4.

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

5.

Программа поиска наибольшего
элемента в массиве
program n_3;
var s, i, imax: integer;
a:array[1...10] of integer;
begin
s:=0;
for i:=1 to 10 do a[i]:=random(50);
for i:=1 to 10 do write (a[i],` `);
imax:=1
for i:=2 to 10 do
if a[i]>a[imax] then imax:=i;
write ('Наибольший элемент a[',imax,']=', a[imax])
end.

6.

Нахождение элемента массива с
заданными свойствами
Результатом поиска элемента, значение которого равно заданному, может быть:
• n - индекс элемента массива такой, что a[n]= x, где х заданное число;
• сообщение о том, что искомого элемента в массиве не
обнаружено.
10 50 1
3 50 14 21 50 10 21
Здесь:
• трём равен 4-й элемент;
• десяти равны 1-й и 9-й элементы;
• нет элемента, равного 12.

7.

Поиск элемента, равного 50
program n_4;
var n, i: integer;
a:array[1...10] of integer;
begin
for i:=1 to 10 do a[i]:=random(60);
for i:=1 to 10 do write (a[i],` `);
n:=0;
for i:=1 to 10 do
if a[i]=50 then n:=i;
if n=0 then write('Нет') else write (i)
end.
В программе найден последний из элементов, удовлетворяющих условию.
10 50 1
3 50 14 21 50 10 21

8.

Поиск элемента, равного 50
program n_5;
var n, i: integer;
a:array[1...10] of integer;
begin
for i:=1 to 10 do a[i]:=random(60);
for i:=1 to 10 do write (a[i],` `);
i:=0;
repeat
i:=i+1;
until (a[i]=50) or (i=10);
if a[i]=50 then write(i) else write('Нет')
end.
В программе найден первый из элементов, удовлетворяющих условию.
10 50 1
3 50 14 21 50 10 21

9.

Подсчет количества элементов
Для подсчета вводится переменная, значение которой увеличивается на
единицу каждый раз, когда найден нужный элемент.
program n_6;
var k, i: integer;
a:array[1...10] of integer;
begin
for i:=1 to 10 do a[i]:=random(60);
for i:=1 to 10 do write (a[i],` `);
k:=0;
for i:=1 to 10 do
if a[i]>50 then k:=k+1;
write('k=', k)
end.
10 60 21 53 58 14 28 50 10 51

10.

Сумма значений элементов,
удовлетворяющих условию
program n_7;
var s, i: integer;
a:array[1...10] of integer;
begin
for i:=1 to 10 do a[i]:=random(60);
for i:=1 to 10 do write (a[i],` `);
s:=0;
for i:=1 to 10 do
if a[i]>10 and (a[i]<30 then s:=s+a[i];
write(‘s=', s)
end.
10 50 1
3 50 14 21 50 10 21

11.

Самое главное
Массив - это
Заполнять
массив
поименованная
можно либосовокупность
вводя значение
однотипных
каждого элемента
элементов,
с
клавиатуры, либо
упорядоченных
поприсваивая
индексам, определяющим
элементам некоторые
положение
значения.
элементов
При в
заполнении
массиве.
В языках
массива
программирования
и его выводе на экран
массивы
используется
используются
циклдля
с
параметром.таких структур данных, как последовательности и таблицы.
реализации
Перед использованием
Решение
разнообразныхв задач,
программе
связанных
массивс должен
обработкой
бытьмассивов,
описан. Общий
базируется
вид
описания
на одномерного
таких типовых
массива:
задачах, как:
- суммирование
var
<имя_массива>:
элементов
array [<мин_знач_индекса>
массива;

- поиск элемента с заданными
<макс_знач_индекса>]
of тип_элементов;
свойствами;
- сортировка массива.

12.

Вопросы и задания
Проанализируйте
представленный
всколько
форме
блок-схемы
алгоритм
В
целочисленных
массивах
aчисел.
и b содержатся
длины
катетов
десяти
От
острова
Буяна
до
царства
славного
Салтана
месяц
пути.
Капитан
Определите,
Объявлен
Дан
массив
набор
из
что
десяти
будет
в
школьную
целых
напечатано
баскетбольную
в
Определите,
результате
команду.
выполнения
Известен
элементов
следующей
рост
этого
классе
20
учеников
писали
диктант
по
русскому
языку.
Напишите
и укажите результат его выполнения при заданном входном потоке
прямоугольных
треугольников
(a[i]
— длина
катета,
b[i] —
длина
корабля
записывает
в вахтенный
журнал
количество
миль,
пройденных
за
программы:
каждого
массива
из
имеют
N
учеников,
максимальное
желающих
значение.
попасть
в первого
эту троек,
команду.
Запишите
на языке
программу,
подсчитывающую
количество
двоек,
четвёрок
и пятёрок,
данных:
i -4, -3, 2, 5, -1, -7, 4
-5,
3,
1,
второго
катета
i-го
треугольника).
Найдите
треугольник
симеющих
наибольшей
день.
Составьте
блок-схему
для
определения,
в какую из
трёх
Паскаль
программу
подсчётаалгоритма
количества
претендентов,
шанс
полученных
за диктант.
Запишите соответствующую программу на языке
площадью.
Выведите
его
номер,
длины
катетов
исоответствующую
площадь.
Предусмотрите
десятидневок
больший
путь.
Напишите
a[i]
попасть
program
в команду,
a8;пройден
если
рост
игрока
команды
должен
быть не
менее 170 см.
программирования
Паскаль.
случай,
таких
треугольников
несколько.
программу
языке
Паскаль. в команду
Считайте
var i,когда
k:на
integer;
рост
претендента
случайным числом из диапазона от
i
150 a:
доarray
200 см,
[1..7]
а число
of integer;
претендентов N = 50.
a[i]
k
i
begin
i
z
y
a[i]>0
k := 0;
for i :=1 to 7 do a[i] := i*3;
for i :=1 to 7 do
if a[i] > 10 then k := k + 1;
writeln (‘k=’, k);
end.

13.

Опорный конспект
Массив - это поименованная совокупность однотипных элементов,
упорядоченных по индексам, определяющим положение элементов в
массиве.
var <имя_массива>: array [<мин_знач_индекса> .. <макс_знач_индекса>]
of тип_элементов;
Заполнение массива
Ввод с клавиатуры
Присваивание значений
Задачи по обработке массива
Суммирование элементов
Поиск элемента во свойствам
Сортировка элементов массива

14.

Домашнее задание
§4.7 (5), вопросы и задания 5, 7, 8, 9 к параграфу,
РТ № 203(б), 204, 205.
English     Русский Правила