Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 5.00
ARTLINE-NN
1 / 1 / 0
Регистрация: 30.03.2012
Сообщений: 82
#1

Рекурсивно вычислить произведение отрицательных элементов массива - C++

31.03.2012, 15:36. Просмотров 5374. Ответов 54
Метки нет (Все метки)

Написать рекурсивную функцию возвращающую произведение отрицательных элементов массива
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 15:36     Рекурсивно вычислить произведение отрицательных элементов массива
Посмотрите здесь:
Вычислить произведение отрицательных элементов массива C++
C++ Вычислить произведение отрицательных элементов массива
Вычислить произведение отрицательных элементов массива C++
Вычислить произведение отрицательных элементов массива C++
C++ Вычислить произведение отрицательных элементов массива
C++ Вычислить произведение отрицательных элементов массива
C++ Вычислить произведение отрицательных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:11     Рекурсивно вычислить произведение отрицательных элементов массива #16
Nameless One, исходя из условия, очевидно, что существует только одно число, которого мы не при каких раскладах не получим - это число 0. (Если в массиве присутствует хотя бы один отрицательный элемент). Из этого следует, что число 0 мы можем использовать для обозначения, какой-нибудь ситуации(ошибочной и т.д.). В данном случае мы используем его, как признак отсутствия отрицательных элементов. Да и по смыслу это подходит.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 18:13     Рекурсивно вычислить произведение отрицательных элементов массива #17
ИМХО если элементов нету, то это равносильно умножению пустого множества на пустое множество, что на выходе должно давать пустое множество, а не нейтральный элемент.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
31.03.2012, 18:22     Рекурсивно вычислить произведение отрицательных элементов массива #18
Dani, потому, что единица — это нейтральный элемент по умножению (о чем я уже говорил).

Вот пара примеров. Haskell, считающийся «академичным» языком программирования:

Haskell
1
2
3
4
> product [1,2,3]
6
> product []
1
Octave — (Matlab-совместимый) _математический_ пакет:

Код
[~/samples/c]$ prod([1 2 3])
ans =  6
[~/samples/c]$ prod([])
ans =  1
[~/samples/c]$
Эти примеры говорят сами за себя

Цитата Сообщение от Dani Посмотреть сообщение
Nekto, хотел сказать, что из начально курса арифметики известно, что a*b = a+a+a... b раз. Следовательно, если a=0, b=2. У 2 детей есть 0 яблок. Всего яблоко 1 чтоли?
  1. я прекрасно понял, что он хотел сказать
  2. вот что я не понял, так это то, как связано умножение _на_ ноль с умножением нуля множителей. Может ты объяснишь?
  3. аналогии с яблоками (тем более, что твоя аналогия неправильная, т.к. ты опять путаешь умножение с сложением) нормально работают только для натуральных чисел

Добавлено через 48 секунд
Цитата Сообщение от Nekto Посмотреть сообщение
ИМХО если элементов нету, то это равносильно умножению пустого множества на пустое множество
это твои домыслы. Несогласен — аргументируй. Я свою позицию по этому утверждению изложить могу. И да, что под умножением подразумевается? Декартово произведение?

Добавлено через 4 минуты
Цитата Сообщение от go Посмотреть сообщение
В данном случае мы используем его, как признак отсутствия отрицательных элементов
если это присутствует в задании — Б-га ради. Я говорил про то, что в общем случае таких ситуаций не существует
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:24     Рекурсивно вычислить произведение отрицательных элементов массива #19
Просто из вопроса логики:
ничто повторенное нисколько раз будет ничто, а не что-то
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:25     Рекурсивно вычислить произведение отрицательных элементов массива #20
Цитата Сообщение от Nameless One Посмотреть сообщение
что в общем случаи
Вот тут и оно. Следует решать задачи в общем случае, т.е. использовать признак отсутствия отрицательных элементов. Если сделать оговорку, что в массиве обязательно есть хотя бы 1 отрицательный элемент, тогда да. Но как я уже отметил выше, задачи необходимо решать в общем случае.
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:28     Рекурсивно вычислить произведение отрицательных элементов массива #21
да хоть на калькуляторе умножить

Добавлено через 2 минуты
http://www.google.by/search?ie=UTF-8&hl=ru&q=0*0
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
31.03.2012, 18:33     Рекурсивно вычислить произведение отрицательных элементов массива #22
Цитата Сообщение от Dani Посмотреть сообщение
Просто из вопроса логики
ничто повторенное нисколько раз будет ничто, а не что-то
Ну да, согласен, http://www.cyberforum.ru/cgi-bin/latex.cgi?a \cdot 0 = 0http://www.cyberforum.ru/cgi-bin/latex.cgi?a для этого даже не обязательно быть «ничем», оно может быть _любым_ числом). Но, в очередной раз повторюсь, как это связано с перемножением нуля элементов? Я уже задавал тебе этот вопрос:

Цитата Сообщение от Nameless One Посмотреть сообщение
вот что я не понял, так это то, как связано умножение _на_ ноль с умножением нуля множителей. Может ты объяснишь?
Добавлено через 1 минуту
Цитата Сообщение от Dani Посмотреть сообщение
да хоть на калькуляторе умножить
да ты издеваешься что ли? Откуда ты взял вообще умножение на ноль? Еще раз повторю, мы говорим про перемножение нуля элементов, т.е. там вообще никаких чисел нет, ни нуля, ни положительных, ни отрицительных

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Следует решать задачи в общем случае
согласен

Цитата Сообщение от go Посмотреть сообщение
т.е. использовать признак отсутствия отрицательных элементов
где и кем это сказано?

И да, про общий случай ты неправильно понял. Произведение отрицательных чисел — это как раз-таки частный случай
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.03.2012, 18:34     Рекурсивно вычислить произведение отрицательных элементов массива #23
Пример из школы, уверен, его всем объясняли. Любое число в нулевой степени - 1.
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:35     Рекурсивно вычислить произведение отрицательных элементов массива #24
При умножении начальное 1 ставят тогда, когда необходимо, чтобы результат не изменился. Но, т.к. умножение не происходит начальное значение не меняется, следовательно его надо поменять вручную.

Добавлено через 1 минуту
soon, так то степень
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
31.03.2012, 18:35     Рекурсивно вычислить произведение отрицательных элементов массива #25
Цитата Сообщение от Dani Посмотреть сообщение
При умножении начальное 1 ставят тогда, когда необходимо, чтобы результат не изменился. Но, т.к. умножение не происходит начальное значение не меняется, следовательно его надо поменять вручную.
что, прошу прощения?
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.03.2012, 18:36     Рекурсивно вычислить произведение отрицательных элементов массива #26
soon, так то степень
...показывает количество перемножаемых элементов.
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
31.03.2012, 18:37     Рекурсивно вычислить произведение отрицательных элементов массива #27
Dani, приведение к 0 - это далеко не общепринятое решение, да и в задании его нет. Каждый пишет как хочет, какие проблемы?
Самый оптимальный вариант - выводить сообщение, если значений нет, и все..
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
31.03.2012, 18:38     Рекурсивно вычислить произведение отрицательных элементов массива #28
Цитата Сообщение от Dani Посмотреть сообщение
soon, так то степень
Степень — это частный случай того, о чем мы вообще-то говорим (т.е. все перемножаемые элементы равны):
http://www.cyberforum.ru/cgi-bin/latex.cgi?x^n = \prod \limits_{i = 1}^{n} x<br />
x^0 = 1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:42     Рекурсивно вычислить произведение отрицательных элементов массива #29
Цитата Сообщение от DoZZer_ Посмотреть сообщение
Самый оптимальный вариант - выводить сообщение, если значений нет, и все..
Так он об этом и говорит. Если элементов нет, то функция вернет ноль(признак отсутствия: с массиве ноль отрицательных элементов). Вот и его нужно проверять.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 18:44     Рекурсивно вычислить произведение отрицательных элементов массива
Еще ссылки по теме:
Вычислить сумму отрицательных элементов массива и произведение элементов, расположенных между максимальным и минимальным элементами C++
В одномерном массиве вычислить сумму отрицательных элементов, произведение элементов массива между максимальным и минимальным элементами C++
C++ Работа с одномерными массивами (вычислить произведение отрицательных элементов массива.)
C++ Вычислить произведение первого элемента массива на количества отрицательных элементов
Вычислить произведение отрицательных элементов массива, расположенных в строках с нечетными номерами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:44     Рекурсивно вычислить произведение отрицательных элементов массива #30
Nameless One, В самом начале 1 ставят для того, чтобы при умножении на первый множитель РЕЗУЛЬТАТ он не изменил:
1(результат)*8 = 8, 0(а если 0 результат, то)*8 - уже не то.

Но на самом деле в начале результат 0, просто прописан для начала как 1.
Yandex
Объявления
31.03.2012, 18:44     Рекурсивно вычислить произведение отрицательных элементов массива
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru