ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
МЕТОДИКА<br />
34<br />
май 2012 / ИНФОРМАТИКА<br />
for i := 1 to 5 do<br />
writeln('Получился элемент<br />
массива mas[',i,']=', mas[i]);<br />
end.<br />
Задание 3<br />
program mas_3;<br />
var mas : array[1..5] of integer;<br />
i, N : integer;<br />
begin<br />
write('Введите максимальное<br />
значение элемента массива N: ');<br />
readln(N);<br />
for i := 1 to 5 do<br />
begin<br />
mas[i] := random(N) + 1;<br />
end;<br />
writeln;<br />
for i := 1 to 5 do<br />
writeln('Получился элемент<br />
массива mas[',i,']=', mas[i]);<br />
end.<br />
Задание 4<br />
program mas_2;<br />
var mas : array[1..5] of integer;<br />
i : integer;<br />
begin<br />
for i := 1 to 5 do<br />
begin<br />
mas[i] := random(15-(-3)+1) - 3;<br />
end;<br />
writeln;<br />
for i := 1 to 5 do<br />
writeln('Получился элемент<br />
массива mas[',i,']=', mas[i]);<br />
end.<br />
Задание 5<br />
program mas_5;<br />
var mas : array[1..5] of integer;<br />
i : integer;<br />
begin<br />
for i := 1 to 5 do<br />
begin<br />
mas[i] := i*i - i;<br />
end;<br />
writeln;<br />
for i := 1 to 5 do<br />
writeln('Получился элемент<br />
массива mas[',i,']=', mas[i]);<br />
end.<br />
УЭ4 (материал для изучения новой темы)<br />
Поиск элемента, соответствующего заданному<br />
условию. Запоминание номера элемента.<br />
Подсчет количества элементов, удовлетворяющих<br />
условию<br />
При обработке массивов часто встречается задача<br />
поиска в массиве элемента 1 , соответствующего<br />
некоторому условию: первого нулевого, первого ненулевого,<br />
первого отрицательного и т.д. Возможен и<br />
вариант, когда нужно найти не первый (“основной”)<br />
элемент, соответствующий некоторому условию, а<br />
второй по счету или же несколько таких элементов.<br />
Кроме того, отдельно может ставиться задание, что<br />
при наличии в массиве нескольких элементов, соответствующих<br />
условию, требуется найти все такие<br />
элементы либо достаточно найти любой из них.<br />
Подобная задача решается путем полного перебора<br />
элементов массива с проверкой соответствия<br />
каждого очередного элемента заданному условию.<br />
Если такое соответствие достигнуто, необходимо<br />
(в зависимости от задания) запомнить (сохранить<br />
в отдельной переменной) номер (индекс) найденного<br />
элемента либо вывести его на печать. Далее,<br />
в зависимости от задания, можно или прекратить<br />
просмотр массива (если достаточно найти первый<br />
требуемый элемент), или продолжить перебор элементов,<br />
чтобы найти другие элементы, удовлетворяющие<br />
заданному условию.<br />
Поиск первого элемента, соответствующего<br />
условию<br />
Для решения этой задачи может быть использован<br />
цикл for, обеспечивающий полный перебор элементов<br />
массива. Но при достижении первого же подходящего<br />
элемента массива надо досрочно прервать этот<br />
цикл, не просматривая оставшиеся элементы.<br />
Вопрос учащимся: почему необходимо досрочно<br />
прервать цикл?<br />
В некоторых языках программирования для прерывания<br />
цикла предусмотрены специальные операторы.<br />
В некоторых современных версиях языка Паскаль реализован<br />
оператор break, а в более старых версиях Паскаля<br />
досрочное прерывание цикла можно произвести,<br />
используя оператор безусловного перехода goto на первый<br />
же оператор<br />
после завершающего<br />
цикл слова<br />
end. При этом цикловая<br />
переменная<br />
сохраняет свое<br />
последнее значение<br />
и далее может<br />
быть использована<br />
как результат<br />
решения задачи.<br />
Пример<br />
Найти в одномерном<br />
целочисленном<br />
массиве и<br />
вывести на экран<br />
номер первого<br />
нулевого элемента<br />
(просмотр массива<br />
произвести с<br />
его начала):<br />
Нет<br />
Начало<br />
Ввод массива<br />
mas[]<br />
i = 1 to 10<br />
mas[i] = 0<br />
Вывод<br />
элемента<br />
mas[i]<br />
Конец<br />
1<br />
Очевидно, что для решения такой задачи достаточно<br />
определить номер (индекс) элемента, тогда как сам этот<br />
элемент можно при необходимости извлечь из исходного<br />
массива по его индексу. Но можно аналогичным способом<br />
запоминать в отдельной переменной само значение найденного<br />
элемента.<br />
Да