|
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 18
|
||||||
Рекурсивная функция, определяющая сумму элементов главной диагонали матрицы09.06.2016, 12:56. Показов 2824. Ответов 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
Вычислить сумму элементов матрицы над главной диагональю под главной диагональю и на главной диагонали
Найти сумму элементов главной диагонали матрицы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|