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

нее досрочное прерывание цикла и выполнять полный перебор элементов массива. В этом случае<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!