Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2016, 18:03   #1
23566
Новичок
Джуниор
 
Регистрация: 28.12.2016
Сообщений: 1
По умолчанию Помогите с программой

Здравствуйте. Разъясните пожалуйста полностью программу(написана на С#), какая строчка, что обозначает. Что значит ? и : в 15 и 16 строчке. как доказать что это рекурсия. Если можно, то подробно, буду очень благодарен.

Вот задач: Необходимо описать рекурсивную функцию MaxElem(A, n) целого типа, которая находит максимальный элемент целочисленного массива А размера n. С помощью этой функции найти наименьшее значение из максимальных элементов массивов А, В.

Вот программа:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace рекурсия
{
    class Program

    {
        static int RecursMax(int[] array, int i = 0)
        {
            return i < array.Length 
          ? Math.Max(array[i], RecursMax(array, ++i))
          : int.MinValue; 
        }


        static void Main(string[] args)
        {

            int[] array = { 0, 1, 2, 3, 0, 1 };  
            int[] array_2 = { 6, 1, 5, 9, 7, 2 };  

            if ((RecursMax(array, 0)) < (RecursMax(array_2, 0))) 

                Console.WriteLine(RecursMax(array, 0));
            else
                Console.WriteLine(RecursMax(array_2, 0));


            Console.ReadLine();

        }
    }
}

Последний раз редактировалось 23566; 29.12.2016 в 02:55. Причина: Изменение заголовка
23566 вне форума Ответить с цитированием
Старый 28.12.2016, 18:16   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Это аксиома.
Croessmah вне форума Ответить с цитированием
Старый 28.12.2016, 20:56   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,875
По умолчанию

Если внутри подпрограммы происходит вызов этой же подпрограммы - значит есть рекурсия. Могут быть ситуации и посложнее, например, взаимная рекурсия: первая подпрограмма вызывает вторую, а вторая снова вызывает первую. То есть тут прямого вызова самого себя нет, но рекурсия есть.
Arigato вне форума Ответить с цитированием
Старый 28.12.2016, 21:10   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Могут быть ситуации и посложнее
Ага:
Код:
#include <iostream>

int foo()
{
    foo();
    return 20;
}

int main()
{
    std::cout << "value: " << foo() << std::endl;
}
http://rextester.com/FKDS75265
Цитата:
value: 20
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как доказать, что точка лежит внутри многоугольника? NikiToZz_ Паскаль, Turbo Pascal, PascalABC.NET 7 19.06.2016 12:16
как сделать чтоб писало что это первая функция и что это вторая как сделать? при компляции Uourin Общие вопросы C/C++ 3 19.05.2016 08:09
надо при компиляции чтоб писало что это первая функция и что это вторая как сделать? Uourin Помощь студентам 0 18.05.2016 20:24
Что это ? Что и как делает этот код? Dimka-novitsek Общие вопросы C/C++ 1 03.05.2015 01:57
Что это такое и как это того... Alex Cones Общие вопросы Delphi 2 11.10.2009 12:04