|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
||||||
Рекурсивная функция, определяющая сумму элементов главной диагонали матрицы09.06.2016, 12:56. Показов 2868. Ответов 14
Метки нет (Все метки)
Доброго дня. Есть задание на лр-написать рекурсивную функцию, определяющую сумму элементов, лежащих на главной диагонали квадратной матрицы. Я написала программу, но в строчке вызова функции она выводит ошибку. Пожалуйста посоветуйте что исправить и вообще функция что я написала является рекурсивной? Прочитав в учебнике Т.А. Павловской где написан об этих функциях один абзац мне не совсем понятно. Т.е. Рекурсивная функция это функция которая вызывает саму себя, ну так и обычная функция вызывает саму себя, чего то я запуталась, если не трудно объясните на пальцах их различие. Заранее спасибо!
0
|
||||||
| 09.06.2016, 12:56 | |
|
Ответы с готовыми решениями:
14
Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали Найти сумму всех элементов главной диагонали матрицы, и сумму всех отрицательных элементов побочной диагонали |
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
||||||
| 09.06.2016, 13:47 | ||||||
|
КсенияФокина, рекурсивная функция - это как-то так;
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
|
| 09.06.2016, 14:26 [ТС] | |
|
а чем она от обычной отлиачется?
0
|
|
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
|||||||||||
| 09.06.2016, 15:05 | |||||||||||
|
КсенияФокина, ну, например.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
|
| 10.06.2016, 09:01 [ТС] | |
|
В рекурсивную функцию обязательно должно входит условие? т.е. она не может просто при вызове начать выполнять то что прописано в ее теле если не будет условия?
0
|
|
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
|
| 10.06.2016, 09:06 | |
|
КсенияФокина, нет. У рекурсивной функции где-то в теле есть вызов себя же. То есть, обычная функция может просто выполняться, а может вызывать в своём теле какую-то другую функцию, но не себя. У рекурсивной же обязательно должен быть в теле вызов себя, на то она и рекурсивная. Она будет вызывать себя до определённого момента, который мы определим логикой программы, а потом будет возвращаться из всех вызовов. То есть, если наша функция называется, например, rec_func, то рекурсивной она будет тогда и только тогда, когда в её теле есть вызов функции rec_func.
0
|
|
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
|
| 10.06.2016, 09:09 [ТС] | |
|
Я попробовала забить вашу рекурсивную функцию-что бы понять как она работает, поменять в ней что то , но она не работает(( на втором return выдает ошибку..
0
|
|
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
|
| 10.06.2016, 09:14 | |
|
КсенияФокина, странно, у меня всё работало. Какая ошибка, на какую строчку жалуется?
Добавлено через 3 минуты КсенияФокина, у меня и сейчас всё работает. Если что, это не решение вашей задачи, я написал для одномерного массива просто как пример, а не для диагонали матрицы.
0
|
|
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
|
| 10.06.2016, 09:36 [ТС] | |
|
Вот так понятнее, теперь осталось только реализовать это на практике)
Добавлено через 6 минут Нет ругаться перестала) теперь она работает но вызов функции не происходит, я в конце программы просто написала fun, понимаю что еще параметры нужно в скобках прописать, но что именно за параметры, до меня никак не дойдет) Добавлено через 1 минуту Я понимаю что это не решение) Но мне хоть понять, вот еще вопрос возник а зачем объявлять параметр а типом int*-это как указатель?
0
|
|
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
||||||
| 10.06.2016, 09:39 | ||||||
|
КсенияФокина, в с++ массивы реализуются указателем на первый элемент массива, а в квадратных скобках мы показываем, насколько далеко надо от него отступить, так мы и получаем доступ к другим элементам.
Добавлено через 41 секунду А вот Ваша программа, тут и обычной функцией сумма подсчитывается, и рекурсивной.
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
|
| 10.06.2016, 09:59 [ТС] | |
|
Спасибо за помощь. Для начала я решила не забивать 25,28,43 и 45 строчку. Если я правильно понимаю то это выделение памяти и ее удаление. Но без нее после ввода массива выдавало ошибку, о том что память не может быть read, потом я все таки забила эти строчки и теперь на строчке 25 он пишет мне, что time неизвестный идентификатор.
0
|
|
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
|
| 10.06.2016, 10:06 | |
|
КсенияФокина, попробуйте подключить библиотеку ctime или time.h.
0
|
|
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
|
| 10.06.2016, 12:16 [ТС] | |
|
Спасибо за помощь. Для начала я решила не забивать 25,28,43 и 45 строчку. Если я правильно понимаю то это выделение памяти и ее удаление. Но без нее после ввода массива выдавало ошибку, о том что память не может быть read, потом я все таки забила эти строчки и теперь на строчке 25 он пишет мне, что time неизвестный идентификатор.
Добавлено через 7 минут Добавила #include <time.h> программа компилируеться, но после того как я забиваю массив выводит ошибку что память не может быть written
0
|
|
|
27 / 27 / 16
Регистрация: 18.05.2016
Сообщений: 128
|
|
| 10.06.2016, 12:20 | |
|
КсенияФокина, Вы вводите данные после того, как память выделена?
0
|
|
|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
||||||
| 10.06.2016, 15:00 [ТС] | ||||||
|
Сейчас сделала без выделения памяти, выдает ошибку что память не может быть read, еще до того как начинаю забивать массив, то есть ctrl+f5 и сразу вылазиет окошко с ошибкой..
0
|
||||||
| 10.06.2016, 15:00 | |
|
Помогаю со студенческими работами здесь
15
Вычислить сумму элементов матрицы над главной диагональю под главной диагональю и на главной диагонали
Найти сумму элементов главной диагонали матрицы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|