1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
|
1 | |
Определить когда массив меняет знак.16.08.2011, 19:17. Показов 2530. Ответов 17
Метки нет (Все метки)
Дан массив чисел, как положительных так и отрицательных.
Нужно определить номер элемента, который первым меняет знак с отрицательного на положительный и номер элемента, который последним меняет знак с положительного на отрицательный . Например: -1, 1, -4, 2, 5, -6, -7 Тут знак первым меняет второй элемент, а последним шестой. При этом если массив не меняет знак вообще, в ответы записывались бы "0". Пожалуйста, напишите циклы, которые позволят это сделать, очень нужно. На самом деле задача немного другая, нужно найти когда массив впервые превосходит определенный порог и когда последний раз падает ниже этого порога, но насколько я понимаю, если в цикле отнять от массива этот порог, то задача сводится к задаче со сменой знака. Заранее благодарю всех откликнувшихся.
0
|
16.08.2011, 19:17 | |
Ответы с готовыми решениями:
17
Определить сколько раз массив меняет знак Определить сколько раз массив меняет знак на противоположный (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак Определить, сколько раз последовательность меняет знак |
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
16.08.2011, 19:29 | 2 | |||||
Ну просто нереально сложная задача
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
16.08.2011, 19:40 | 3 | |||||
Еще раз перечитал задание, нужно так:
1
|
16.08.2011, 20:05 | 4 | |||||
Может тут лучше два раза пройтись по массиву, с начала и с конца?
Осторожно, плохой код!
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
16.08.2011, 20:08 | 5 |
А вообще, ИМХО, тут ничего от исходного массива отнимать не нужно, а нужно рассматривать исходный массив, сравнивая его элементы с пороговым значением. Условия сильно от этого измениться не должны.
1
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
||||||
16.08.2011, 22:11 [ТС] | 6 | |||||
Ребят, прошу прощения, я совсем начинающий и половину не понял((
У меня есть массив Ar[n] (n известно заранее) и мне нужно получить 2 значения , скажем n1 и n2, чтобы использовать их в дальнейшем в той-же программе с другой целью. И есть порог, скажем 10. Нужно определить 1) когда массив 1 раз превысит порог (n1) 2)когда массив последний раз станет ниже порога (n2). Если массив ни разу не становится выше 10, n1 и n2 сделать нулями Первая задача:
Еще раз прошу прощения, совсем не имел дела с программированием, пришлось столкнутся, вот пытаюсь разобраться.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
17.08.2011, 05:04 | 7 | |||||
Отнимать тут пороговое значение от элементов массива - это лишняя работа.
1
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
17.08.2011, 08:53 | 8 |
Не. Если порог меньше минимального элемента, то после вычитания порога в массиве отрицательных все равно не будет. И ноль как считать - смена знака или нет?
1
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
||||||
17.08.2011, 14:42 [ТС] | 9 | |||||
Nameless One спасибо, но у меня все эти операции должны быть внутри других циклов и почему-то они не работают. Приведу свой код. Никак не пойму что не так. Заранее спасибо
Чуть не забыл, в последнем примере условия немного поменялись, но это уже не столь важно.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
17.08.2011, 16:27 | 10 |
pistol, приведи полностью постановку задачи, а то я из твоего, хмм, кода ничего не понял
1
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
|||||||||||
17.08.2011, 16:58 [ТС] | 11 | ||||||||||
Ну есть довольно длинная программа, в которой есть массивы Ar и Ar1, известны их размеры ArSize. Нужно определить номер элемента t1 когда массив Ar впервые превосходит 2300 и вычислить значение Ar2[t1]. Я делаю так, но цикл не выплняется (программа выдает ошибку).
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
17.08.2011, 17:44 | 12 |
Ну, насколько я понял, первый цикл у тебя ищет первое привышение порогового значения, а второй - последнее принижение (поправь, если я не прав). Так вот, если у тебя найдено первое привышение, то у тебя происходит возврат из функции и второе значение (т.е. последнее принижение) уже не ищется. Аналогично, даже если у тебя начался поиск последнего принижения, то если оно у тебя найдено (а по твоему коду я бы не сказал, что во втором цикле ищется именно оно), то опять происходит возврат из функции и значения Res1 и Res2 не устанавливаются.
никто не мешает тебе взять мой код и поместить его внутри твоих циклов
1
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
|
17.08.2011, 17:58 [ТС] | 13 |
А как сделать, чтобы он останавливал цикл когда условие выполняется, значения t1 и t2 устанавливались, но программа не возвращалась из функции?
Никто не мешает тебе взять мой код и поместить его внутри твоих циклов Там у тебя массив задается в коде, не мог бы ты его написать для случая когда массив задан заранее, просто не могу разобраться? П.С. Да, задача немного изменилась, но как я уже написал второй цикл можно сделать по аналогии с первым, главное разобраться. Заранее спасибо
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
17.08.2011, 18:05 | 14 |
break (лучше) либо дополнительное условие в for (хуже)
ну так сделай заполнение массива так же, как он заполняется у тебя (читай: возьми мой исходник и переделай его под себя). Как заполняется массив - это несущественно. А имеет значение лишь поиск необходимых элементов, который у меня выполняют функции first_element_exceeding_threshold и last_element_preceeding_threshold.
1
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
|
17.08.2011, 18:50 [ТС] | 15 |
Спасибо большое, break помогло, всё оказалось банально просто. сори за глупость, совсем не имел опыта. Nameless One смотри личку.
0
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
|
14.09.2011, 19:27 [ТС] | 16 |
Ребят, помогите пожалуйста, задача немного усложнилась. Теперь в массиве надо найти самый большой участок, лежащий ниже порога (границы данного участка). Чтобы было немного понятнее, приложил рисунок. Чёт не знаю даже как приступить к задаче даже в теории((
Заранее спасибо
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
14.09.2011, 20:08 | 17 |
pistol, уточни пожалуйста. Самых длинный по размеру отрезок или самый "глубокий" отрезок (то есть отрезок, где лежит минимум массива)?
Если первое, то надо найти первый отрезок. А потом по принципу поиска максимума искать отрезки более длинные.
0
|
1 / 1 / 0
Регистрация: 16.08.2011
Сообщений: 18
|
|
14.09.2011, 21:59 [ТС] | 18 |
Самый длинный по размеру.
0
|
14.09.2011, 21:59 | |
14.09.2011, 21:59 | |
Помогаю со студенческими работами здесь
18
Определить, сколько раз последовательность меняет знак Определить, сколько раз последовательность меняет знак Определить, сколько раз последовательность меняет знак. Вводится последовательность из N целых чисел, отличных от нуля. Определить, сколько раз последовательность меняет знак Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |