Реферат: Поэтому при написании программы будьте особенно внимательны, не путайте индексы элементов массива со значениями элементов массива. Описание массива


Задание:

Повторить основные понятия одномерных массивов и основные алгоритмы заполнения и обработки одномерных массивов в данном ниже материале;

Изучить разделы с 6-го по 8-ый см. ниже.

Выполнить задания № 2.27, № 2.30, 2.33 см. ниже.



Обработка массивов


Напомним, что такое массив и каковы основные операции работы с массивами.

Массив - совокупность однотипных данных, имеющих общее имя. Каждая такая единица данных называется элементом массива. Каждый элемент массива имеет уни­кальный номер, называемый индексом элемента массива.

В языках программирования обычно для указания нужного элемента массива ука­зывают имя самого массива, рядом с которым, в скобках- индекс этого элемента. Например, для указания 5-го элемента массива MAS нужно написать MAS[5].

Обратите внимание! Очень важно отличать значения элементов массива от индек­сов этих элементов. То, что в квадратных скобках - индекс!

Часто (но не всегда) индекс элемента и значение элемента относятся к различным типам данных.

Так, например, индексом элемента массива может быть только значение перечис­лимого (порядкового) или ограниченного типа.

Поэтому при написании программы будьте особенно внимательны, не путайте индексы элементов массива со значениями элементов массива.

^ Описание массива

Для использования в программе массив нужно обязательно описать. Это значит, что Вы предписываете компьютеру зарезервировать область памяти для хранения всех элементов вашего массива, указываете его имя, тип данных для элементов и размер (количество элементов).

На Паскале:

В разделе описания переменных

^ Var: имя_массива: array [начал ьный_индекс.. конечный_индекс] of тип_элементов;




Пример, для элементов - вещественных чисел, пронумерованных от 1 до 25, нужно написать:-

^ MAS: array[l..25]of real;

На Паксале принято элементы массива нумеровать начиная с первого.

Заметим, что из трех официально поддерживаемых ЕГЭ языков программирования Паскаль предоставляет наибольшую гибкость в создании массивов с определенными индексами. Так, например, только в Паскале можно создать массив с индексами от 10 до 2 0 или от ' а' до 'z' или даже указать в качестве индексов тип char



При работе с массивами правильнее описать отдельную константу - количество элементов массива и в программе вместо числа 25 везде использовать именно ее. Это позволит быстро "изменять размерность задачи" - достаточно будет поменять одно число в начале программы и тогда вся программа начнет правильно работать при новом размере массива.

Это нужно написать примерно так:


const n=25;

var MAS: array[l..n] ofreal;


В наших примерах мы (для определенности) будем считать, что массив описан именно так - он называется MAS и в нем n элементов .

Перечислим основные операции работы с массивами.

Прежде всего, вы должны понимать, что любая операция с массивами - это всегда обращение к нескольким (или всем) элементам с разными номерами. То есть, это почти всегда цикл. Если нужно обратиться ко всем элементам - то число повторений известно и наиболее подходящим является цикл FOR. Если нужно обратиться не ко всем элемен­там - это тоже цикл. Может быть, это будет не цикл FOR, но цикл - практически обяза­тельно2.

Если вы написали программу обработки массива в целом, и в ней нет цикла - зна­чит, она неправильна, а вы (к сожалению) не понимаете, как обрабатываются массивы .


^ 1. Задание начальных значений (инициализация) массива

Как правило, в задании С2 не требуется каким-либо способом задавать начальные значения элементов массива. И вы можете этого не делать, не опасаясь снижения оцен­ки. Но в реальной программе значения массива, конечно, должны откуда-то браться. Поэтому мы, все же, рекомендуем написать две строчки ввода массива с клавиатуры. С нашей точки зрения, это создаст у эксперта более положительное впечатление о вашей компетентности - он будет знать, что вы понимаете про необходимость задания на­чальных значений. Тем более, что эти две строчки всегда одинаковы и при обучении работе с массивами они у вас уже (мы надеемся) доведены до автоматизма.

Напомним вам эти две строчки:

for i:=l to n do

read1n(MAS[i]);


^ 2. Заполнение элементов массива определенными значениями

1. Заполнение с клавиатуры.

2. Заполнение случайными числами.

3. Очень распространенный случай- присвоить элементам массива значения их индексов:

for i:=1 to n do MAS[i]:=i;


Если найти формулу, используя которую, можно по индексу элемента вычислить его требуемое значение, то инициализация элементов массива - тоже простая задача.

Например, элементы массива должны принимать значения 1,4,7,10, ...

Можно заметить, что это- арифметическая прогрессия. Первый элемент равен 1, каждый последующий на 3 больше предыдущего. То есть, разность прогрессии равна 3. Используем формулу i-ro члена: ai=ai+d(i-l). Подставляем ai=l и d=3, получаем ai=l+3(i-l). После раскрытия скобок и приведения подобных слагаемых получаем ai=3i-2.

В программе:

for i:=l to n do

MAS[i]:=3*i-2;


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

Даже если мы не можем (или не хотим) вывести формулу вычисления значения элемента массива по его индексу, но знаем, как вычислить значение элемента массива по его предыдущему элементу, можно воспользоваться таким способом:


Найдем правило, по которому вычисляется следующий элемент массива по пре­дыдущему (в нашем случае прибавляется 3). Значит, в начальный элемент массива нужно положить требуемое число (1), а все остальные элементы вычислять, прибавляя число 3 к предыдущему:

На Паскале:

MAS[1]:=1; for i:=2 to n do

^ MAS[i] :=MAS[i-1]+3;

Сделайте трассировку программы, чтобы убедиться в правильности ее работы.

Более сложный случай - заполнить элементы массива последовательностью чисел Фибоначчи (1, 1, 2, 3, 5, 8, ...)• Здесь правило - каждый последующий равен сумме двух предыдущих. Значит, достаточно задать значение двух начальных элементов массива, а для остальных указать, что они равны сумме двух предыдущих:

^ На Паскале:

MAS[1]:=1;

MAS[2]:=1;

for i:=3 to n do

^ MAS[i] :=mas[i-1] + mas[i-2] ;

Сделайте трассировку программы, чтобы убедиться в правильности ее работы.

Задания для самостоятельного решения

При выполнении каждого задания обязательно выполните трассировку и убеди­тесь, что массив заполняется правильно!

2.15. Заполнить элементы массива последовательностью чисел: 2, 4, 6, 8, ...

2.16. Заполнить элементы массива последовательностью чисел: 2, 5, 8, 11, ...

2.17. Заполнить элементы массива последовательностью чисел: 2, 4, 8, 16, 32, ...

2.18. Заполнить элементы массива последовательностью чисел: 1, 3, 7, 15, 31, ...

^ 3. Вычисление суммы всех элементов массива

Для этого нужно завести дополнительную переменную, положить в нее начальное значение - ноль. Потом перебрать все элементы и значение каждого добавить к этой переменной:

^ На Паскале:

sum:=0;

for i:=1 to n do

sum:=sum+MAS[i];

Еще раз подчеркнем значение трассировки программы. На экзамене у вас нет возможности запустить программу на компьютере или сверить ваше решение с отве­том. Единственный способ проверить ее правильность - трассировка.

Не нужно думать, что "настоящие программисты обходятся без трассировки, по­этому и я этого делать не буду". Просто либо "настоящие программисты" имеют столь­ко опыта, что способны быстро в голове "прокрутить" свою программу. Либо у них есть готовые примеры, на которых они свои программы проверяют (запускают). Либо с ними работают тестировщики - специалисты, которые специально только этим и зани­маются. Либо эти "настоящие программисты" излишне самоуверенны и рискуют поте­рять работу.

Приучив себя делать трассировку каждый раз после написания программы, вы постепенно научитесь быстро находить ошибки и "прокручивать" трассировку в уме.

Сложность трассировки в этом и последующих примерах (в отличие от предыду­щего) в том, что значения элементов массива заранее неизвестны. Потому наименьшее, что вы должны сделать - придумать хоть какой-нибудь вариант значений массива и оттрассировать свою программу на нем. То есть, убедиться, что ваша программа работает хотя бы на одном примере входных данных. Это необходимо.

Задания для самостоятельного решения

2.19. Найти произведение всех элементов массива

2.20. Найти среднее арифметическое всех элементов массива

2.21. Найти среднее отличие элементов массива от их правого соседа

Пояснение

Для массива 5, 1, 3, 8 (из четырех элементов) имеется три пары соседних элемен­тов (5 и 1, 1 и 3, 3 и 8). Отличия в парах составляют 4, 2, 5 соответственно. Среднее от­личие равно (4+2+5)/3≈3,67).

^ 4. Вычисление количества элементов массива, удовлетворяющих условию

Для этого нужно: завести дополнительную переменную (целочисленную) - счет­чик количества таких элементов, присвоить ей начальное значение - ноль. Затем пере­брать все элементы массива, значение каждого проверить на выполнение условия. Если условие выполняется - увеличить на единицу счетчик количества. Например, посчита­ем количество четных элементов:

^ На Паскале:




kol:=0;




for i:=1 to n do




if MAS[i] mod 2=0

then

kol:=kol+1;




Задания для самостоятельного решения

2.22. Найти количество отрицательных элементов массива

2.23. Найти среднее арифметическое всех нечетных элементов целочисленного массива

Замечание

Это тот случай, когда трассировки программы на одном варианте входных дан­ных не достаточно. Потому что нужно проверить работу вашей программы на всех возможных различных вариантах входных данных. Под различными вариантами мы понимаем, конечно, не все-все различные числа, а все такие случаи, при которых программа должна вести себя по-разному. И чем сложнее задачу вы будете решать, тем большее количество случаев должна предусматривать ваша программа и тем на боль­шем количестве тестов вы должны будете сделать трассировку. Научиться определять, какие случаи входных данных нужно предусмотреть и протестировать - это большое искусство. Это часть искусства программирования. Вероятнее всего, это приходит с опытом. В данном случае не забудьте рассмотреть случай, когда в массиве все элемен­ты являются четными.

2.24. Найти количество всех элементов целочисленного массива, которые не яв­ляются положительными двузначными числами

^ 5. Выполнение над элементами массива, удовлетворяющими условию, каких-то действий

Для этого нужно перебрать все элементы массива, для каждого проверить нужное условие. Если оно выполняется - выполнить требуемые действия. Иначе (если не вы­полняется) - выполнить другие действия.

Например, удвоить все положительные элементы массива, и поменять знак у всех остальных:

На Паскале:

for i:=1 to n do

if MAS[i]>0 then

MAS[i]:=MAS[i]*2

else

^ MAS[i] :=-MAS[i] ;

Задания для самостоятельного решения

2.25. Обнулить все отрицательные элементы массива и посчитать количество ос­тальных.

2.26. Все четные положительные элементы целочисленного массива уменьшить вдвое, все нечетные положительные увеличить на 2, а у всех остальных поменять знак.

^ 6. Перестановка всех элементов массива в обратном порядке

Задача решается путем перестановки элементов массива попарно - первый с по­следним, второй с предпоследним, и т.д. Два тонких момента, которые нужно учесть -что количество таких перестановок равно вовсе не количеству элементов массива (очень распространенная ошибка), а в два раза меньше. И формула, которая по номеру элемента i вычисляет номер элемента, с которым его нужно поменять местами - n+1-i :

На Паскале:

for i :=1 to n div2 do

begin

tmp:=MAS[i];

MAS[i]:=MAS[n+1- i];

MAS[n+1-i]:=tmp

end;


Заметим, что в случае нечетного количества элементов массива средний элемент должен просто остаться на месте. Этот случай не рассмотрен отдельно, потому что он учтен при вычислении числа повторений (операция целочисленного деления* "отбро­сит" дробную часть от деления на 2).

Задания для самостоятельного решения

2.27. Развернуть обе половинки массива в обратном порядке. Считать, что массив имеет четное число элементов.

Пояснение

Из массива (1, 2, 3, 4, 5, 6, 7, 8) нужно получить массив (4, 3, 2, 1, 8, 7, 6, 5).

2.28. Сдвинуть все элементы массива на одну позицию влево (циклически). Пер­вый элемент должен оказаться на месте последнего.

2.29. Сдвинуть все элементы массива на одну позицию вправо (циклически). По­следний элемент должен оказаться на месте первого.

^ 7. Проверить, есть ли в массиве хотя бы один четный элемент

Это очень важная задача для понимания тонкостей работы с массивами. Нужно проверить, для всех ли элементов массива выполняется определенное условие. Типич­ная ошибка в такой задаче - перебирать все элементы, для каждого проверять условие и, если оно выполняется, выводить "Да", а если не выполняется- выводить "Нет". Та­кая программа выведет на экран много слов "Да" и "Нет" и не будет иметь ничего об­щего с правильной программой. Важно понимать, что ответ нужно вывести на экран только один раз и что пока не проверишь ВСЕ элементы массива, нельзя утверждать, что хотя бы один из них не удовлетворяет какому-то условию.

Самый понятный (и достаточно эффективный) способ - посчитать, для скольких элементов выполняется искомое свойство. В конце проверить, чему равно это количе­ство. Если нулю - таких элементов в массиве нет. Если не нулю - они есть.

На Паскале:

kol:=0;

for i:=l to n do

if MAS[i] mod 2=0 then

kol:=kol+l;

if kol=0 then

^ Writeln('нeт четных')

else

Writeln(‘ecть четные’);

Задания для самостоятельного решения

2.30. Проверить, что в массиве все элементы положительны.

2.31. Проверить, что все элементы массива равны друг другу.

2.32. Проверить, есть ли в массиве элемент, равный заданному значению.

^ 8. Проверка упорядоченности массива

Для определенности - по возрастанию (неубыванию). Введем дополнительную переменную-флажок (критерий упорядоченности). Присвоим ей начальное значение, равное нулю. Посчитаем, в каком количестве случаев порядок элементов в паре будет неверным. Для этого переберем все соседние пары элементов (их будет n-1 штука). Если в паре левый элемент (с меньшим номером) оказался больше, чем правый, то уве­личим на единицу переменную-флажок. После окончания цикла проверим, изменилась ли переменная-флажок. Если она осталась равной нулю - значит, во всех парах порядок верный и массив упорядочен. Иначе - массив неупорядочен:

На Паскале:

flag:=0;

for i :=1 to n-1 do

if MAS[i]>MAS[i+1] then

flag:=flag+1;

if flag=0 then wri te('упорядочен')

else wri te('неупорядочен');




Обратите внимание на номера сравниваемых элементов - мы перебираем в цикле элементы от начального до предпоследнего. Это значит, что мы должны текущий эле­мент сравнивать со следующим. Если счетчик цикла равен i (номер текущего элемен­та), то номер следующего элемента - на единицу больше. То есть, i+1.

Задания для самостоятельного решения

2.33. Проверить, что массив упорядочен строго по убыванию (каждый последую­щий элемент строго меньше предыдущего).

^ 9. Поиск максимального элемента произвольного массива

Общая идея поиска максимума (минимума) такая: возьмем некоторое значение в качестве начального значения максимума. Затем переберем все элементы и проверим, есть ли элемент, который больше, чем этот выбранный максимум. Если такой нашел­ся - будем теперь считать его максимальным и сравним с остальными.

Отдельного внимания заслуживает выбор начального значения максимума.

Если про значения элементов массива ничего не известно, в качестве начального значения нужно выбирать первый элемент массива.

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

На Паскале:

тах:=МАS[1];

for i:=2 to n do

if MAS[i]>max then

max:=MAS[i];


Обратите внимание, цикл начинается не с начального элемента, а со следующего.

Очевидно, что если нужно найти наименьший элемент, достаточно поменять знак операции сравнения на "<". Хотя, для лучшего понимания программы, лучше еще по­менять и имя переменной "max" на "mi n".

^ 10. Поиск количества элементов произвольного массива, равных максимальному

Данная задача имеет два метода решения. Первый - сначала (за один проход по массиву) найти значение максимального элемента. Затем (за второй проход по массиву) сравнить все элементы с найденным максимумом и посчитать количество равных.

Второй способ - сделать это одновременно, за один проход по массиву.

Оба эти способа работают с одинаковой скоростью и считаются одинаково эф­фективными, Но второй считается "красивее". Его "красивость" состоит в том, что каж­дый элемент массива при этом просматривается только один раз. Таким образом, такой способ может быть применим не только к массиву, но и к задаче, в которой все про­сматриваемые значения не хранятся, а просто поступают откуда-то последовательно (например, вводятся с клавиатуры).

В этом случае однопроходный алгоритм позволяет не хранить все просмотренные значения - значит, экономит память.

Идея метода состоит в том, чтобы кроме значения максимума хранить сразу и их количество. Если очередной элемент оказывается больше текущего максиму­ма- меняем максимум и считаем, что таких максимумов встретилось к настоящему моменту один. Если же текущий элемент не больше максимума, сравниваем его с мак­симумом на равенство. Если равны - счетчик максимумов увеличиваем на 1:

На Паскале:

max:=MAS[l];

nmax:=l;

for i:=2 to n do

if MAS[i]>max then

begin

max:=MAS[i];

nmax:=1

end

else

if MAS[i]=max then

nmax:=nmax+l;

Обратите внимание, что если слово else из программы убрать, то она будет рабо­тать неверно!

Задания для самостоятельного решения

2.34. Найти номер максимального элемента массива, если он единственный, или количество максимальных элементов, если их несколько.

^ 11. Поиск второго по величине максимального элемента массива

Данная задача, как и предыдущая, имеет два метода решения. Первый - за два прохода по массиву (ищем номер максимума, затем ищем максимум среди остальных элементов). Заметим, что если на втором проходе искать максимум среди элементов, не равных первому максимуму, то результат будет не совсем тот - программа найдет второе по величине значение элемента массива, а не значение элемента, который в упоря­доченном по возрастанию массиве стоял бы предпоследним (как требуется), хотя могут встречаться задачи, где будет требоваться именно это - найти два самых больших раз­личных значения.

Нас будет (по тем же причинам, что и ранее) интересовать однопроходный алго­ритм поиска второго максимума.

Идея метода такая - вводим две переменные (первый и второй максимумы) и за­даем им начальные значения.

Затем перебираем все элементы массива и сравниваем их сначала с максимумом. Если текущий элемент лучше (больше) текущего максимума - значение максимума пе­рекладываем в переменную второго максимума, а в максимум кладем значение текуще­го. Иначе - сравниваем текущий элемент со вторым максимумом. Если текущий боль­ше - кладем его на место второго максимума.

Отдельного рассмотрения заслуживает задание начальных значений для обоих максимумов. Если про значения элементов массива заранее известно, что они не пре­вышают некоего значения - самый просто случай - кладем в оба максимума меньшее значение. Если же про значения элементов ничего не известно - выбираем начальные значения из двух первых элементов массива. Большее положим в максимум, значение другого элемента - во второй максимум:



На Паскале:

max:=MAS[1];

max2:=MAS[2];

if max

begin

max:=MAS[2] ;

max2:=MAS[1]

end;

for i:=3 to n do

if MAS[i]>max then

begin

max2:=max;

max:=MAS[i]

end

else

if MAS[i]>max2 then

max2:=MAS[i];

Задания для самостоятельного решения

2.35. Найти номер второго по величине максимального элемента массива.

2.36. Найти номер третьего по величине максимального элемента массива.

2.37. Найти второе по величине значение элемента массива. Возможно, в массиве все элементы одинаковы.

^ 12. Поиск максимального элемента массива, про значения элементов которо­го известно, что они принадлежат определенному диапазону

Если заранее известно, что значения элементов массива ограничены определен­ными значениями (например, от -500 до +500), то в качестве начального значения можно взять значение, про которое заранее известно, что оно меньше любого элемента массива. В данном примере это может быть -501.

На Паскале:

max:=-501;

for i:=1 to n do

if MAS[i]>max then

max:=MAS[i];

Обратите внимание, теперь цикл начинается с начального элемента, чтобы не пропустить тот случай, когда он является максимальным элементом массива.

Задания для самостоятельного решения

2.38. Найти минимальный элемент массива, если известно, что значения элемен­тов массива положительны и не превосходят 100.

2.39. Найти максимальный элемент массива, который больше 150. Известно, что значения элементов массива положительны и не превосходят 200.

^ 13. Поиск номера максимального элемента

Хотя эта задача очень похожа на предыдущую задачу, пока она нами не решена. Так как, зная значение наибольшего элемента, мы не знаем, какой у него индекс. Либо теперь нужно еще раз пройти по массиву и сравнить каждый элемент с max, либо нуж­но переписать программу, чтобы она сразу искала индекс наибольшего.

Заметим, что если знать индекс наибольшего, то значение наибольшего элемента по нему получить очень просто.

Используем ту же технологию, но теперь в дополнительной переменной будем хранить не значение текущего максимума, а его номер. Обозначим эту переменную че­рез imax. Ее начальное значение будет равно номеру начального элемента. Сравнивать теперь мы будем текущий элемент (с номером i) с текущим наибольшим элементом (с номером imax). При несоответствии - положим в imax значение текущего номера:

На Паскале:

imax:=1;

for i:=2 to n do

if MAS[i]>MAS[imax] then

imax:=i;

Задания для самостоятельного решения

2.40. Найти номер минимального элемента массива, если известно, что значения элементов массива лежат в диапазоне 100..200.

2.41. Найти номер максимального элемента массива, который меньше 100. Из­вестно, что значения элементов массива положительны и не превосходят 200.

^ 14. Поиск максимального элемента массива, удовлетворяющего определен­ному условию (например, максимального отрицательного)

Особенностью этой задачи является то, что в качестве начального значения максимума нельзя принять первый элемент массива, так как совсем не обязательно, что он удовлетворяет условию (в данном случае - что он отрицательный).

Если про значения элементов массива известно, что они принадлежат определен­ному диапазону (например, от -500 до +500 ), то в качестве начального значения мож­но, как и в предыдущем примере, взять значение, которое гарантированно меньше лю­бого элемента массива:

На Паскале:

mах:=-501;

for i:=1 to n do

if MAS[i]<0 then

if MAS[i]>max then

max:=MAS[i];




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

На Паскале:

к:=1;

while MAS[k]>=0 do

к:=к+1;

max:=MAS[k];

for i:=k+1 to n do

if MAS[i]<0 then

if MAS[i]>max then

x:=MAS[i];

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

На Паскале:

к:=1;

while (k

(MAS[k]>=0) do

к:=к+1;

if MAS[k]<0 then

begin

max:=MAS[k];

for i:=k+1 to n do

if MAS[i]<0 then

if MAS[i]>max

then

max:=MAS[i];

write(max)

end

else

^ Write(‘таких нет');


Существует более элегантный (хотя и не такой понятный) способ решения этой задачи:

На Паскале:

к:=0;

for i:=1 to n do

if MAS[i]<0 then

if (k=0) or

(MAS[i]>MAS[k]) then

k:=i;

if k>0 then

write(MAS[k])

else

Write (‘таких нет‘);

Задания для самостоятельного решения

2.42. Найти минимальный четный элемент целочисленного массива, если извест­но, что значения элементов массива лежат в диапазоне -200..+200, и в массиве есть хо­тя бы один четный элемент.

2.43. Найти минимальный четный элемент целочисленного массива.

2.44. Найти номер минимального двузначного элемента целочисленного массива, если известно, что значения элементов массива лежат в диапазоне 1..200, и в массиве есть хотя бы один двузначный элемент.

2.45. Найти номер минимального двузначного элемента целочисленного массива.

^ 15. Поиск номера элемента, удовлетворяющего определенному условию

Самый простой случай - поиск номера элемента, равного указанному значению (х). При этом нужно учитывать три случая - в массиве ровно один такой элемент, в массиве несколько таких элементов, либо в массиве нет указанного элемента. Если ни­чего в условии не сказано, при наличии нескольких нужных элементов, достаточно указать любой. Например, первый по счету. При этом, если специально не указано, можно этот случай не рассматривать отдельно, а просто найти первый нужный элемент.

А вот случай, когда нужного элемента нет, нужно обязательно рассмотреть от­дельно.

Самый "правильный" способ решения задачи - перебирать подряд все элементы массива, начиная с первого, пока не будет выполнено нужное условие или пока не кон­чится массив. Если массив кончится, а условие ни разу не выполнится- вывести сооб­щение, что нужного элемента
еще рефераты
Еще работы по разное