profile
Размещено 5 лет назад по предмету Информатика от monetkayahoo

Помогите написать программу на c#
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только заглавные латинские буквы. Найти и вывести все слова, у которых число гласных букв превышает число согласных

  1. Ответ на вопрос
    Ответ на вопрос дан archery
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;

    internal static class Program
    {
        private const string glasnye_ = "aeiouy";
        private const string soglasnye_ = "bcdfghjklmnpqrstvwxz";

        private static void Main()
        {
            try
            {
                Console.WriteLine("Введите строку слов (любые символы будут считаться разделителями)");
                var s = Console.ReadLine();
                Console.WriteLine($"Гласных больше чем согласных:n {Task1(s).Aggregate("", (current, t) => current + t.ToUpper() + " ")}");
                Console.WriteLine();
                Console.WriteLine($"Гласных больше чем согласных:n {Task1Regex(s).Aggregate("", (current, t) => current + t.ToUpper() + " ")}");
                Console.ReadLine();
            }
            catch(Exception e)
            {
                Console.WriteLine(e);
                Console.ReadLine();
            }
        }

        private static IEnumerable<string> Task1(string s)
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Без помощи регулярных выражений");

            var words = s.Split(new[] {' ', '-', ',', '.', '*', ':', ';', '_'}, StringSplitOptions.RemoveEmptyEntries).ToList();

            var sb = new StringBuilder();
            for (var i = 0; i < words.Count; i++)
                sb.AppendLine($"Слово[{i}] = {words[i].ToUpper()}");

            Console.Write(sb.ToString());

            var result = new List<string>();

            foreach (var word in words)
            {
                var k = 0;
                foreach (var c in word.ToLower().ToCharArray())
                {
                    k += glasnye_.Contains(c) ? 1 : 0;
                    k -= soglasnye_.Contains(c) ? 1 : 0;
                }

                if (k > 0)
                    result.Add(word);
            }

            return result;
        }

        private static IEnumerable<string> Task1Regex(string s)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("С регулярными выражениями");

            var ms = Regex.Matches(s, @"[A-z]+", RegexOptions.IgnoreCase);

            var sb = new StringBuilder();
            for (var i = 0; i < ms.Count; i++)
                sb.AppendLine($"Слово[{i}] = {ms[i].Value.ToUpper()}");

            Console.Write(sb.ToString());

            var result = new List<string>();
            for (var i = 0; i < ms.Count; i++)
            {
                var v = ms[i].Value;
                var k = Regex.Matches(v, $"[{glasnye_}]", RegexOptions.IgnoreCase).Count;
                k -= Regex.Matches(v, $"[{soglasnye_}]", RegexOptions.IgnoreCase).Count;
                if (k > 0)
                    result.Add(v);
            }

            return result;
        }
    }


Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.