03.11.2014 Views

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

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

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

МЕТОДИКА<br />

нее досрочное прерывание цикла и выполнять полный перебор элементов массива. В этом случае<br />

задача, по сути, сводится к подсчету количества имеющихся в массиве элементов, соответствующих<br />

заданному условию. Тогда по завершении цикла оператор if должен быть несколько изменен.<br />

Вопрос учащимся: как нужно изменить оператор if в конце программы, если по условию задачи требуется<br />

только определить факт наличия в массиве n-го по счету искомого элемента?<br />

if flag >= n<br />

then writeln('Искомый элемент существует')<br />

else writeln('Искомый элемент не найден');<br />

Здесь, если количество найденных элементов (переменная flag) равно n либо больше n, то в любом<br />

из таких случаев можно утверждать, что<br />

искомый n-й элемент в массиве имеется.<br />

Начало<br />

Подсчет количества элементов, соответствующих<br />

условию<br />

При решении задачи поиска n-го по<br />

счету элемента, удовлетворяющего заданному<br />

условию, мы в переменной-флаге<br />

фактически отсчитывали количество<br />

предыдущих элементов, удовлетворяющих<br />

условию. Теперь же для определения<br />

общего количества таких элементов в<br />

массиве необходимо лишь отказаться от<br />

досрочного прерывания цикла и произвести<br />

полный перебор элементов в массиве.<br />

Переменную же, в которой подсчитывается<br />

количество обнаруженных “правильных”<br />

элементов, мы будем называть<br />

уже не флагом, а счетчиком.<br />

Примеры:<br />

1) определить количество имеющихся в<br />

одномерном целочисленном массиве четных<br />

значений.<br />

Нет<br />

Ввод массива mas[]<br />

counter = 0<br />

i = 1 to 10<br />

mas[i] mod 2 = 0<br />

В массиве<br />

имеется counter<br />

элементов<br />

Конец<br />

Да<br />

counter = counter + 1<br />

Начало программы<br />

Объявление массива<br />

Выполняемое действие<br />

program mas_count;<br />

Объявление цикловой переменной i : integer;<br />

Объявление целочисленной переменной —<br />

счетчика<br />

Строки программы<br />

var mas : array[1..10] of integer;<br />

begin<br />

ввод массива<br />

counter : integer;<br />

Первоначально счетчик нужно обнулить counter := 0;<br />

40<br />

май 2012 / ИНФОРМАТИКА<br />

Цикл перебора элементов массива for i := 1 to 10 do<br />

begin<br />

Если текущий элемент массива удовлетворяет<br />

заданному условию (остаток от его деления<br />

на 2 равен нулю — значит, число четное), то<br />

увеличиваем значение счетчика на 1<br />

Конец цикла end;<br />

Вывод результата на экран<br />

Конец программы<br />

if (mas[i] mod 2) = 0<br />

then counter := counter + 1;<br />

writeln('В массиве MAS имеется ', counter:2,<br />

' четных чисел');<br />

end.

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

Saved successfully!

Ooh no, something went wrong!