Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 12

Напечатать все предложения, которые получаются путем перестановки слов

23.09.2017, 13:52. Показов 4635. Ответов 3

Студворк — интернет-сервис помощи студентам
С клавиатуры вводится предложение, слова в котором разделены символом ‘_’. Напечатать все предложения, которые получаются путем перестановки слов исходного текста.
Честно говоря, в методичке, данной преподом, нету ничего, кроме "как разделить слова и запихнуть их в массив". Очень здорово, конечно, но как сделать остальное - не знаю. Много чего пробовала, логически понимаю, как сделать, а на практике - туго. Помогите, пожалуйста, вот код, который есть:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleLab2Yana
{
    class Program
    {
        static void Main(string[] args)
        {
            char razdelitel = '_';
            string text = Console.ReadLine();
            Console.WriteLine("Исходный текст: '{0}'", text);
            string[] words = text.Split(razdelitel);
            Console.WriteLine("{0} слов(а) в тексте", words.Length);
            Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2017, 13:52
Ответы с готовыми решениями:

Напечатать все предложения, которые получаются путем перестановки слов исходного текста
Доброго времени суток! Необходимо "Напечатать все предложения, которые получаются путем перестановки слов исходного текста." Кроме...

Напечатать предложения, которые получаются путем перестановки слов исходного текста
Доброе время суток! Вот такое задание просто поставило в тупик: "С клавиатуры вводится предложение, слова в котором разделены символом ‘_’....

Напечатать все слова предложения, которые являются частью других слов предложения
Доброго времени суток! Суть вопроса в следующем: дан массив строк, в нём нужно найти слова, которые являются подсловами других слов....

3
97 / 98 / 58
Регистрация: 29.09.2016
Сообщений: 410
23.09.2017, 16:04
Лучший ответ Сообщение было отмечено Obya как решение

Решение

allcombinations() ,тут на форуме нашел

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 public class Program
    {
 
        public static void Main()
        {
            Console.WriteLine("Введите предложение\n");
            string str = Console.ReadLine();
            List<string> arr = str.Split(new Char[] { ' ', '_' }).ToList<string>();
            var combinations = allcombinations(arr, new List<string>());
            Console.WriteLine("\nРезультат : \n");
            foreach(var i in combinations)
            {
                output(i);
            }
            Console.ReadLine();
        }
 
        private static IEnumerable<List<string>> allcombinations(List<string> arg, List<string> awithout)
        {
            if (arg.Count == 1)
            {
                var result = new List<List<string>>();
                result.Add(new List<string>());
                result[0].Add(arg[0]);
                return result;
            }
            else
            {
                var result = new List<List<string>>();
 
                foreach (var first in arg)
                {
                    var others0 = new List<string>(arg.Except(new string[1] { first }));
                    awithout.Add(first);
                    var others = new List<string>(others0.Except(awithout));
 
                    var combinations = allcombinations(others, awithout);
                    awithout.Remove(first);
 
                    foreach (var tail in combinations)
                    {
                        tail.Insert(0, first);
                        result.Add(tail);
                    }
                }
                return result;
            }
        }
        private static void output(IEnumerable<string> arg)
        {
            string st = "";
            foreach (var str in arg)
                st += str + '_';
            st=st.TrimEnd('_');
            Console.WriteLine(st);
        }
    }
1
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 12
23.09.2017, 16:10  [ТС]
Спасибо, ahtik95
0
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 12
27.09.2017, 17:05  [ТС]
Я тут конечно пытаюсь сама разобраться в этом коде... Просто от незнания языка на таком уровне, так как по программе 3-го курса мы еще не изучали такую углубленную работу со списками. Например, я без понятия, что означает эта строка
private static IEnumerable<List<string>> allcombinations(List<string> arg, List<string> awithout)
Так что, если кому то не трудно, если можно, прокомментируйте пожалуйста строки, начиная где-то с 8-9( Я бы очень хотела разобраться и понять, а в интернете не всегда понятно изъясняются.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2017, 17:05
Помогаю со студенческими работами здесь

Написать все предложения, которые можно составить из данных слов путем перестановок (Прокомментируйте)
Добавьте комментарии к задачке пожалуйста. Задание было следующее: Написать все предложения, которые можно составить из слов: “ваши...

Напечатать все возможные перестановки слов
Задано предложение без предлогов, слова в котором разделены одним или несколькими пробелами. Напечатать все возможные перестановки слов в...

Напечатать все возможные перестановки слов в предложении, разделив их одним пробелом
Задано предложение без предлогов, слова в котором разделены одним или несколькими пробелами. Напечатать все возможные перестановки слов в...

Напечатать все возможные перестановки слов в этом предложении, разделив их пробелом
Задано предложение без предлогов. Слова в нем разделены пробелом или несколькими пробелами. Напечатать все возможные перестановки слов в...

Напечатать все слова предложения которые встречаются ровно один раз
Дано предложение, состоящее из слов, разделенных пробелами. Напечатать все слова, которые встречаются в нем ровно один раз. Я могу описать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru