Алгоритмическое мышление при решении задач (на примере языка C#). Шамшев А.Б - 10 стр.

UptoLike

Составители: 

10
5. Поэтому улучшим псевдокодовое решение.
Инициализировать результат значением -1.
Просматривать весь массив
НачалоЦикла
Если текущий элемент четный, то
НачалоЕсли
В результат записать текущую позицию
Прервать цикл
ОкончаниеЕсли
ОкончаниеЦикла
Если просмотрели весь массив и не нашли четного элемента, то
началоЕсли
вернуть как результат -1.
окончаниеЕсли.
Сравнить найденное значение со всеми оставшимися четными элементами
НачалоЦикла
Если тек. элемент массива больше результата, то
НачалоЕсли
Запомнить текущий элемент как результат.
ОкончаниеЕсли
ОкончаниеЦикла
Вернуть результат.
6. В виде кодов данный алгоритм материализуется следующим образом:
public int getMaxEvenIndex(int[] data) {
int res = -1;
for (int i = 0; i < data.Length; i++) {
if (data[i] % 2 == 0) {
res = i;
break;
}
}
if (res == -1) {
return -1;
}
for (int i = res + 1; i < data.Length; i++) {
if ((data[i] % 2 == 0) && (data[i] > data[res])) {
res = i;
}
}
return res;
}