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

Поэтапно разобрать работу программы

12.12.2015, 22:23. Показов 1321. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите поэтапно разобрать работу программы
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
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication56
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "";
            int count = 0, sumbols = 0, check = 0;
            do
            {
                try
                {
                    str = Console.ReadLine();
                    if (str == "q") break;
                    else if (!string.IsNullOrWhiteSpace(str))
                    {
 
                        while (str.Contains("\t"))
                            str = str.Replace("\t", " ");
                        while (str.Contains(" "))
                            str = str.Replace(" ", " ");
                        if (str[str.Length - 1] == ' ')
                            str = str.Remove(str.Length - 1);
                        if (str[0] == ' ') str = str.Remove(0, 1);
                        if (str == "q") break;
 
                        str = str.ToLower();
 
                        string[] Arr = str.Split(' ');
                        for (int i = 0; i < Arr.Length; i++)
                        {
                            if ((Arr[i] != " ") & !string.IsNullOrWhiteSpace(Arr[i]))
                                count++;
                        }
                        char[] ch = str.ToCharArray();
 
                        for (int i = 0; i < ch.Length; i++)
                        {
                            for (int a = i - 1; a >= 0; a--)
                                if (ch[i] == ch[a]) check++;
                            if (ch[i] != ' ' & check == 0)
                                for (int j = 0; j < ch.Length; j++)
                                    if (ch[i] == ch[j]) sumbols++;
                            Array.Sort(ch);
                            if (check == 0 & ch[i] != ' ')
                                Console.WriteLine(ch[i] + " : " + sumbols); sumbols = 0;
                            check = 0;
                        }
                        Console.WriteLine(count + " слов");
                        count = 0;
                    }
                }
                catch { }
            } while (str != "q");
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2015, 22:23
Ответы с готовыми решениями:

Помогите поэтапно разобрать работу программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Разобрать работу цикла for
Доброго всем времени, изучаю по Шилдту , вот , что интересует using System; class forDemo { static void Main () { int...

Разобрать и прокомментировать работу цикла
Доброго времени суток. Начал изучать C# и столкнулся с такой трудностью: Задание: &quot;Попрактикуйтесь в проверке условий циклов&quot; и...

7
2 / 2 / 2
Регистрация: 29.10.2013
Сообщений: 80
13.12.2015, 01:02
C#
1
2
while (str.Contains(" "))
str = str.Replace(" ", " ");
Очень странная часть программы, Вам не кажется)) Тут бесконечный цикл будет.
А что этот код должен делать по замыслу автора?
0
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
13.12.2015, 01:15
А что тут разбирать? Смотрите строчку за строчкой, если будет непонятно что-то конкретное - спрашивайте, а так никто не сможет засунуть понимание в вашу голову. И вот еще, код работает неверно.
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 15
13.12.2015, 18:14  [ТС]
Код работает верно, и я просто просил обьяснить принцип его работы
0
7 / 7 / 7
Регистрация: 10.09.2014
Сообщений: 16
13.12.2015, 19:49
Лучший ответ Сообщение было отмечено Lucky_Loser как решение

Решение

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
58
59
60
61
62
63
64
65
66
using System;
 
namespace ConsoleApplication7
{
    class Program
    {
        ////////////////
        /// Гавнокод ///
        ////////////////
        static void Main(string[] args)
        {
            string str = "";//Змінна яка збирігає введений текст з клави
            int count = 0, //Кількість слів
                sumbols = 0, 
                check = 0;
            do//Початок циклу. Він буде повторюватись поки умова у блоці while не буде істинна
            {
                try//Якщо в блоці try відбудеться помилка, спрацює блок сatch
                {
                    str = Console.ReadLine();//Отримуємо зтроку з консолі
                    if (str == "q") break;//Якщо строка дорівнює q, то виходимо з циклу
                    else if (!string.IsNullOrWhiteSpace(str))//Якщо строка не порожня то виконуємо наступні дії
                    {
 
                        while (str.Contains("\t"))//Змінюємо всі табуляції на пробіли
                            str = str.Replace("\t", " ");
                        //while (str.Contains(" "))//Брєд
                        //    str = str.Replace(" ", " ");
                        if (str[str.Length - 1] == ' ')//Якщо останній символ є пробілом то видаляємо його , краще використати Trim()
                            str = str.Remove(str.Length - 1);
                        if (str[0] == ' ') str = str.Remove(0, 1);//Якщо перший символ є пробілом то видаляємо його , краще використати Trim()
                        if (str == "q") break;//Знову перевіряємо чи строка не дорівнює q, то виходимо з циклу
 
                        str = str.ToLower();//переводимо строку в нихній регістр
 
                        string[] Arr = str.Split(' ');//Ділимо строку на масим слів, розділених пробілом
                        for (int i = 0; i < Arr.Length; i++)
                        {
                            if ((Arr[i] != " ") & !string.IsNullOrWhiteSpace(Arr[i]))//Якщо буде стояти більше двох пробілів то створяться порожні осередки. Ця строчка зашкоджує цьому
                                count++;
                        }
                        char[] ch = str.ToCharArray();//Конвертуємо строку в масив char//Абсолютно не потрібна дія
 
                        for (int i = 0; i < ch.Length; i++)//Перебираємо кожен символ
                        {
                            for (int a = i - 1; a >= 0; a--)//Знову перебираємо кожен символ
                                if (ch[i] == ch[a]) check++;//Якщо цей символ зустрічається, то збільшуємо змінну 
                            if (ch[i] != ' ' & check == 0)
                                for (int j = 0; j < ch.Length; j++)//Брэд, як і весь код
                                    if (ch[i] == ch[j]) sumbols++;
                            Array.Sort(ch);//Сортуємо масив, в циклі. В циклі Карл. 
                            if (check == 0 & ch[i] != ' ')//Якщо кількість повторів символу не == 0 і не є пробілом
                                Console.WriteLine(ch[i] + " : " + sumbols); sumbols = 0;//то виводимо символ та кількість повторів. Обнуляємо змінні
                            check = 0;
                        }
                        Console.WriteLine(count + " слов");//Виводимо кількість слів
                        count = 0;
                    }
                }
                catch {//Якщо відбудеться помилка. То... А ніфіга!!!
                    
                }
            } while (str != "q");//І ще одна превірка на q
        }
    }
}
3
15.12.2015, 11:23
SashaFast, украинский язык не является официальным языком форума, за сим просьба придерживаться Правил
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 15
15.12.2015, 22:43  [ТС]
Я лишь написал,что удобнее было бы на русском ибо все тут gien на русском
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.12.2015, 22:56
olichka86, очевидно удалять повторяющиеся пробелы, но почему-то вместо двух пробелов автор по ошибке поставил 1 и получил ошибку. У меня тоже такой деятель в универе был. По-моему о существовании регулярок он до сих пор не догадывается...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2015, 22:56
Помогаю со студенческими работами здесь

Как приведенный код выводит ближайшую степень двойки? Разобрать работу программы
unsigned k ; cin&gt;&gt;k; for (--k;k&amp;(k+1);k|=k+1); cout&lt;&lt;++k; вот есть программа?что она делает - я знаю(выводит ближайшую степень...

Разобрать работу кода
p указывает на начало масива не пойму, как в последних двух вычисляется значение 10 20 30 40 50 ...

Разобрать работу приведенного кода
помогите написать что делают строки в программе #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cmath&gt; using namespace...

Разобрать работу кодека g.771
Здравствуйте! Недавно возникла надобность разобрать работу кодека g.771. В инете материала море, но весь однотипный и содержит в себе...

Многопоточность - разобрать работу кода
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru