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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.12.2010, 12:44   #1
<Tyz>
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию Рекурсия [Pascal]

1.Напечатать все возрастающие последовательности длины k, элементами которых являются натуральные числа от 1 до n. (Предполагается, что k не превосходит n – иначе таких последовательностей не существует.)

2.Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова (разделенные одним пробелом), но расположенные в алфавитном порядке.

3.Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.

Последний раз редактировалось <Tyz>; 18.12.2010 в 13:21.
<Tyz> вне форума
Старый 18.12.2010, 13:41   #2
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
По умолчанию

Цитата:
Сообщение от <Tyz> Посмотреть сообщение
1.Напечатать все возрастающие последовательности длины k, элементами которых являются натуральные числа от 1 до n. (Предполагается, что k не превосходит n – иначе таких последовательностей не существует.)


Код:
Console.WriteLine(" n= ");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(" k= ");
            int k = int.Parse(Console.ReadLine());
            int[] x = new int[k];
            for (int i = 0; i < k; i++)
            {
                x[i] = i + 1;
                Console.Write(x[i] + "");
            }
            Console.WriteLine();

            int s = 0;
            while (true)
            {
                s = k - 1;
                while (!(x[s] < n - k + s + 1))
                {
                    s--;
                    if (s == -1)
                        break;
                }
                if (s == -1)
                    break;
                x[s] = x[s] + 1;
                for (int i = s + 1; i < k; i++)
                {
                    x[i] = x[i - 1] + 1;
                }
                for (int i = 0; i < k; i++)
                {
                    Console.Write(x[i]);
                }
                Console.WriteLine();
            }
           
            Console.ReadKey();
pro100saniok вне форума
Старый 18.12.2010, 13:50   #3
<Tyz>
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию

Это паскаль?
<Tyz> вне форума
Старый 18.12.2010, 13:57   #4
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
По умолчанию

Цитата:
Сообщение от <Tyz> Посмотреть сообщение
Это паскаль?
C#. а на каком языке надо то ?
pro100saniok вне форума
Старый 18.12.2010, 14:31   #5
<Tyz>
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию

На паскале
<Tyz> вне форума
Старый 18.12.2010, 16:03   #6
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от pro100saniok Посмотреть сообщение
Код:
Console.WriteLine(" n= ");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(" k= ");
            int k = int.Parse(Console.ReadLine());
            int[] x = new int[k];
            for (int i = 0; i < k; i++)
            {
                x[i] = i + 1;
                Console.Write(x[i] + "");
            }
            Console.WriteLine();

            int s = 0;
            while (true)
            {
                s = k - 1;
                while (!(x[s] < n - k + s + 1))
                {
                    s--;
                    if (s == -1)
                        break;
                }
                if (s == -1)
                    break;
                x[s] = x[s] + 1;
                for (int i = s + 1; i < k; i++)
                {
                    x[i] = x[i - 1] + 1;
                }
                for (int i = 0; i < k; i++)
                {
                    Console.Write(x[i]);
                }
                Console.WriteLine();
            }
           
            Console.ReadKey();
А где у тебя тут рекурсия
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal - рекурсия darsinella Помощь студентам 4 22.12.2009 21:39
Pascal Рекурсия! Korun Помощь студентам 3 16.12.2009 16:50
Рекурсия Pascal HoLToFF Помощь студентам 3 31.03.2009 22:25
Pascal: Рекурсия MaGWaY_minsk Помощь студентам 2 19.02.2009 09:46
Pascal. рекурсия. TOSAgrk Помощь студентам 2 04.02.2009 12:05