Тема: Массивы
Показать сообщение отдельно
Старый 03.03.2009, 16:40   #67
jimon
 
Сообщений: n/a
Ответ: Массивы

Petrofan
таксь, от простого к сложному

есть масив чисел 1,4,8,2,2,6,3,2,2,2,7,9,1 (размер n, индексы от 0 до n-1)
нужно определить есть ли в них три подряд одинаковых числа,
если есть то найти индекс (позицию) первого числа из этого ряда

записываем базовое условие которое надо проверить : a[i] = a[i+1] = a[i+2]
где a это наш масив, i это индекс первого елемента из трёх равных между собой елементов

решение задачи - проверить базовое условие для всех елементов масива
там где базовое условие выполняется, то по индексу i находится первый из трёх одинаковых елементов

базовые слова из решения - проверить условие для всех елементов, тоесть ЦИКЛ !

теперь определимся с границами цикла, если равные первые три то индекс первого елемента будет 0, значит левая граница 0
если равные последние три индекс третего елемента будет n-1, второго елемента n-2, первого елемента n-3
значит у нас цикл от 0 до n-3

basic и подобные языки не позволяют проверять на равенство три числа сразу, потому нам надо чтобы одновременно выполнялись 1=2 и 2=3
вот буква и и есть названием комманды - and (с англ "и")
тоесть наше условие теперь выглядит так (a[i] = a[i+1]) and (a[i+1] = a[i+2])

результат будем хранить в переменной i_result

пишем наш цикл :
1) первоначальные установки, если трёх подряд елементов нету то мы получим отрицательный индекс
i_result = -1
2) сначала заголовок цикла
for i = 1 to n-3
3) потом наше условие
if (a[i] = a[i+1]) and (a[i+1] = a[i+2]) then
4) если условие выполняется то пишем ответ
i_result = i
5) и закрываем цикл
next
получаем вот такой код
i_result = -1
for i = 0 to n-3
if (a[i] = a[i+1]) and (a[i+1] = a[i+2]) then i_result = i
next
в переменной i_result у нас будет индкс первого елемента из трёх равных между собой елементов

теперь задача именно тебе, найти индексы первых елементов из трёх равных между собой елементов во всех строках и столбцах 2д масива что у тебя есть

ps. я расписал так как сопли вытирают младенцу, пока не поймешь то что я написал то дальше не сможешь ничего сделать
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо за это полезное сообщение:
ABTOMAT (03.03.2009), Taugeshtu (03.03.2009)