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

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

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

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

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

Написать рекурсивную функцию возвращающую произведение отрицательных элементов массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 15:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивно вычислить произведение отрицательных элементов массива (C++):

Вычислить произведение отрицательных элементов массива - C++
Добрый день. Помогите пожалуйста решить задачу, завтра экзамен. нужно вычислить произведение отрицательных элементов массива. Использовать...

Вычислить произведение отрицательных элементов массива - C++
Приветствую вас дорогие форумчане. Прошу о помощи в изменении программы. В коде предоставленном ниже требуется заменить: рандомный подбор...

Вычислить произведение отрицательных элементов массива - C++
Помогите пожалуйста! Надо написать программу в виде функций. Но я себе это как то слабо представляю. Вод задания: В одномерном массиве,...

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

Вычислить произведение отрицательных элементов массива - C++
В одномерном массиве, состоящем из вещественных элементов, вычислить: 1.произведение отрицательных элементов массива; 2.сумму...

Вычислить произведение отрицательных элементов массива - C++
В одномерном массиве, который состоит из n действительных элементов, вычислить: а) произведение отрицательных элементов массива; б)...

54
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:11 #16
Nameless One, исходя из условия, очевидно, что существует только одно число, которого мы не при каких раскладах не получим - это число 0. (Если в массиве присутствует хотя бы один отрицательный элемент). Из этого следует, что число 0 мы можем использовать для обозначения, какой-нибудь ситуации(ошибочной и т.д.). В данном случае мы используем его, как признак отсутствия отрицательных элементов. Да и по смыслу это подходит.
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 18:13 #17
ИМХО если элементов нету, то это равносильно умножению пустого множества на пустое множество, что на выходе должно давать пустое множество, а не нейтральный элемент.
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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 Посмотреть сообщение
В данном случае мы используем его, как признак отсутствия отрицательных элементов
если это присутствует в задании — Б-га ради. Я говорил про то, что в общем случае таких ситуаций не существует
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:24 #19
Просто из вопроса логики:
ничто повторенное нисколько раз будет ничто, а не что-то
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:25 #20
Цитата Сообщение от Nameless One Посмотреть сообщение
что в общем случаи
Вот тут и оно. Следует решать задачи в общем случае, т.е. использовать признак отсутствия отрицательных элементов. Если сделать оговорку, что в массиве обязательно есть хотя бы 1 отрицательный элемент, тогда да. Но как я уже отметил выше, задачи необходимо решать в общем случае.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:28 #21
да хоть на калькуляторе умножить

Добавлено через 2 минуты
http://www.google.by/search?ie=UTF-8&hl=ru&q=0*0
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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 Посмотреть сообщение
т.е. использовать признак отсутствия отрицательных элементов
где и кем это сказано?

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

Добавлено через 1 минуту
soon, так то степень
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.03.2012, 18:35 #25
Цитата Сообщение от Dani Посмотреть сообщение
При умножении начальное 1 ставят тогда, когда необходимо, чтобы результат не изменился. Но, т.к. умножение не происходит начальное значение не меняется, следовательно его надо поменять вручную.
что, прошу прощения?
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.03.2012, 18:36 #26
soon, так то степень
...показывает количество перемножаемых элементов.
0
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
31.03.2012, 18:37 #27
Dani, приведение к 0 - это далеко не общепринятое решение, да и в задании его нет. Каждый пишет как хочет, какие проблемы?
Самый оптимальный вариант - выводить сообщение, если значений нет, и все..
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:42 #29
Цитата Сообщение от DoZZer_ Посмотреть сообщение
Самый оптимальный вариант - выводить сообщение, если значений нет, и все..
Так он об этом и говорит. Если элементов нет, то функция вернет ноль(признак отсутствия: с массиве ноль отрицательных элементов). Вот и его нужно проверять.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:44 #30
Nameless One, В самом начале 1 ставят для того, чтобы при умножении на первый множитель РЕЗУЛЬТАТ он не изменил:
1(результат)*8 = 8, 0(а если 0 результат, то)*8 - уже не то.

Но на самом деле в начале результат 0, просто прописан для начала как 1.
0
31.03.2012, 18:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 18:44
Привет! Вот еще темы с ответами:

Вычислить произведение отрицательных элементов массива - C++
Дан массив из n элементов (вещественные числа). Вычислить: 1) произведение отрицательных элементов массива 2) сумму элементов массива,...

Вычислить сумму отрицательных элементов массива и произведение элементов, расположенных между максимальным и минимальным элементами - C++
Помогите пожалуйста в одномерном массиве, состоящих из вещественных элементов вычислить: 1)сумму отрицательных элементов массива ...

Вычислить произведение отрицательных, и сумму положительных элементов массива - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение отрицательных элементов массива; 2) сумму...

В одномерном массиве вычислить сумму отрицательных элементов, произведение элементов массива между максимальным и минимальным элементами - C++
В одномерном массиве, состоящем из 25 вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение...


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

Или воспользуйтесь поиском по форуму:
30
Закрытая тема Создать тему
Опции темы

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