03.11.2014 Views

Выпуск 5 - Российский государственный профессионально ...

Выпуск 5 - Российский государственный профессионально ...

Выпуск 5 - Российский государственный профессионально ...

SHOW MORE
SHOW LESS

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 />

Да

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!