Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 2
1

Задача на работу со строками

10.01.2018, 16:11. Показов 2630. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго дня!
Имеется следующая задача:
Задан текст, состоящий из слов, записанных через пробелы или запятые. Длина текста не больше 255 символов. В тексте могут быть использованы любые символы. Словом считать последовательность символов, не содержащую пробел. Необходимо введенный текст вывести на экран до и после его преобразования. Сформировать новую строку, в которую включить слова, состоящие только из латинских букв и не содержащие q, r и u. Найти два первых цифровых слова и найти разность их кубов.

Я сделал следующий код
Исходник
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
using System;
using System.Collections.Generic; //для использования списков
 
namespace stroki
{
    class Program
    {
        static void Main(string[] args)
        {
            //определеяем нужные переменные
            string stroka;
            string stroka2 = null;//строка после обработки
            int c1 = 0, c2 = 0;//первые два цифровых числа
            int q1, q2;  //кубы первого и второго цифровых слов
            int[] digitWordsM = new int[127];//будущий массив цифровых слов
            List<int> digitWords = new List<int>() { };//список для цифровых слов
 
            Console.WriteLine("Введите строку");
            stroka = Console.ReadLine();//ввод строки
            /*определяем символы, которые не будут использованы в допустимых словах:
            русские заглавные, строчные буквы, цифры и латинские q,r,u(для начала только q,r,u) */
 
            string[] words = stroka.Split(new char[] { ' ',','});//разделяем слова пробелами и запятыми
            foreach (string w in words) {
                if (!w.Contains("q") || !w.Contains("r") || !w.Contains("u"))
                {
                    stroka2 += " " + w;
                } 
            }
 
            foreach (string w in words)
            {
                int ret;
                bool isInt = Int32.TryParse(w, out ret);
                digitWords.Add(ret);
            }
            digitWords.CopyTo(digitWordsM);
            c1 = digitWordsM[0];
            c2 = digitWordsM[1];
 
            Console.WriteLine("Полученная строка = '" +stroka2 + "'");
            Console.WriteLine("Полученные цифровые слова: "+ digitWords);
 
            q1 = Kub(c1);//задаем значение
            q2 = Kub(c2);//задаем значение
            int razn = (q1 - q2);
            Console.WriteLine("Разница первых двух цифровых слов = " + razn);
 
            Console.WriteLine("Для выхода нажмите Esc");
            while (Console.ReadKey().Key != ConsoleKey.Escape); //ставим заглушку, чтобы окно не закрывалось до нажатия Escape
        }
        public static int Kub(int x)
        {
            Math.Pow(x, 3);
            return x;
        }
    }
}

Но при запуске возникают явные проблемы - не убираются слова, которые должны быть исключены из итоговой строки, а разность кубов вообще не считается как положено:
Bash
1
2
3
4
5
6
Введите строку
3 of 2 qqru or kru of tpio
Полученная строка = ' 3 of 2 or kru of tpio'
Полученные цифровые слова: System.Collections.Generic.List`1[System.Int32]
Разница первых двух цифровых слов = 3
Для выхода нажмите Esc
Подскажите, пожалуйста, где кроме кода ДНК у меня ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2018, 16:11
Ответы с готовыми решениями:

Задача на работу со строками
Два целых числа и четыре арифметических действия. Пользователь вводит команду на вычисление из...

Задача на работу со строками
привет, снова обращаюсь за помощью надеюсь на ваши умения! Даны слова а$ и b$. Если их длина...

Задача на работу со строками
Товарищи, помогите с задачей: Сосчитать сумму кодов символов заданной строки (напр.,...

Задание на работу со строками
Люди добрые помогите написать небольшую программу.Задание такое: 1.Создать html-документ,...

3
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
10.01.2018, 16:45 2
Для обработки строк лучше всего использовать StringBuilder
0
16 / 16 / 9
Регистрация: 13.12.2011
Сообщений: 64
10.01.2018, 16:53 3
Вот так будет работать
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
static void Main(string[] args)
        {
            //определеяем нужные переменные
            string stroka;
            string stroka2 = null;//строка после обработки
            int c1 = 0, c2 = 0;//первые два цифровых числа
            int q1, q2;  //кубы первого и второго цифровых слов
            int[] digitWordsM = new int[127];//будущий массив цифровых слов
            List<int> digitWords = new List<int>() { };//список для цифровых слов
 
            Console.WriteLine("Введите строку");
            stroka = Console.ReadLine();//ввод строки
                                        /*определяем символы, которые не будут использованы в допустимых словах:
                                        русские заглавные, строчные буквы, цифры и латинские q,r,u(для начала только q,r,u) */
 
            string[] words = stroka.Split(new char[] { ' ', ',' });//разделяем слова пробелами и запятыми
            foreach (string w in words)
            {
                if (!w.Contains("q") && !w.Contains("r") && !w.Contains("u"))
                {
                    stroka2 =stroka2+w+" ";
                }
            }
 
            foreach (string w in words)
            {
                int ret;
                bool isInt = Int32.TryParse(w, out ret);
                if(isInt)
                    digitWords.Add(ret);
            }
            digitWords.CopyTo(digitWordsM);
            c1 = digitWordsM[0];
            c2 = digitWordsM[1];
 
            Console.WriteLine("Полученная строка = '" + stroka2 + "'");
            Console.WriteLine("Полученные цифровые слова: ");
            foreach (int word in digitWords)
                Console.Write(word + " ");
            Console.WriteLine();
 
            q1 = Kub(c1);//задаем значение
            q2 = Kub(c2);//задаем значение
            int razn = (q1 - q2);
            Console.WriteLine("Разница первых двух цифровых слов = " + razn);
 
            Console.WriteLine("Для выхода нажмите Esc");
            while (Console.ReadKey().Key != ConsoleKey.Escape) ; //ставим заглушку, чтобы окно не закрывалось до нажатия Escape
        }
        public static int Kub(int x)
        {
            Math.Pow(x, 3);
            return x;
        }
Поработайте с отладчиком. Пошаговое отслеживание хода работы программы позволит самому в будущем избавляться от подобных ошибок.
1
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 2
10.01.2018, 17:18  [ТС] 4
Просто смешно даже... парсить цифровое значение начал, а условие, что если цифра, то добавлять - не поставил. Спасибо В Visual Studio Code не знаю как отладчик настроить. даже не знаю как в нем компилятор настроить Компилю батником используя стандартный компилятор windows - на нормальную IDE места не хватает.
0
10.01.2018, 17:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2018, 17:18
Помогаю со студенческими работами здесь

Зaдача на работу со строками.
Есть строка в которой есть хотя бы одна точка. Преобразовать так: удалив все запятые предшествующие...

Задания на работу с текстом и строками
1. Определить длину строки &quot; Урок информатики &quot;. 2. Удалить все буквосочетания В из строки . 3....

Насколько кортеж со строками замедляет работу
Привет Суть вопроса: есть функции, которые реализуют техническую документацию - получают...

Написать программу работу с динамическими строками
Написать программу работу с динамическими строками. Строка является объектом класса. Память под...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru