Вопрос задан 29.04.2019 в 12:29. Предмет Информатика. Спрашивает Рякишев Никита.

Помогите перевести код с Pascal на c# program glas; uses crt; type T_str=array[1..10] of

string[80]; T_set=set of char; var s,new: T_str; alf,gls,sogl: T_set; kol,i,j,kolg,kolsg,schet:byte; prom: string; begin clrscr; textcolor(green); schet:=1; kolg:=0; kolsg:=0; alf:=['A'..'Z']; gls:=['A','E','I','O','U','Y']; sogl:=['B','C','D','F','G','H','J','K', 'L','M','N','P','Q','R','S','T','V','W','X']; writeln; writeln(' Vvedite kol-vo slov(ne > 10 !):'); readln(kol); writeln; textcolor(red); writeln(' VVODIM TOLKO ZAGLAVNIMI !!!'); textcolor(green); writeln; for i:=1 to kol do begin writeln(' vvod ',i,'-go slova:'); readln(s[i]); prom:=s[i]; kolg:=0; kolsg:=0; for j:=1 to length(prom) do begin if (prom[j] in gls) then kolg:=kolg+1 else kolsg:=kolsg+1; end; if kolg>kolsg then begin new[schet]:=prom; schet:=schet+1; end; end; clrscr; writeln; writeln(' IsHodnii massiv slov:'); writeln; for i:=1 to kol do begin write(' ',s[i]); end; readkey; writeln;writeln; writeln(' Slova gde > glas.'); writeln; for i:=1 to schet do begin write(' ',new[i]); end; readkey; end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Хлудеева Таня.
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;
    }
}


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Приведенный вами код на языке Pascal выполняет следующие действия: 1. Создает массив строк T_str из 10 элементов, каждый из которых имеет длину 80 символов. 2. Создает множества символов alf, gls и sogl. 3. Запрашивает у пользователя количество слов (не более 10) и сами слова в верхнем регистре. 4. Для каждого введенного слова подсчитывает количество гласных и согласных букв. 5. Затем добавляет слова, в которых больше гласных, чем согласных, в новый массив new. 6. Выводит исходный массив слов и массив новых слов, где гласных больше.

Перепишем этот код на C#:

```csharp using System; using System.Collections.Generic;

class Program { static void Main() { List s = new List(); List newWords = new List(); HashSet alf = new HashSet("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); HashSet gls = new HashSet("AEIOUY"); HashSet sogl = new HashSet("BCDFGHJKLMNPQRSTVWX"); int kol, kolg, kolsg, schet = 1;

Console.WriteLine("Введите количество слов (не более 10):"); kol = int.Parse(Console.ReadLine());

Console.WriteLine("Введите слова в верхнем регистре:"); for (int i = 0; i < kol; i++) { Console.Write($"Введите {i + 1}-е слово: "); string word = Console.ReadLine(); s.Add(word); kolg = 0; kolsg = 0;

foreach (char letter in word) { if (gls.Contains(letter)) { kolg++; } else { kolsg++; } }

if (kolg > kolsg) { newWords.Add(word); schet++; } }

Console.WriteLine("\nИсходный массив слов:"); foreach (string word in s) { Console.Write($"{word} "); }

Console.WriteLine("\n\nСлова, где больше гласных:"); foreach (string word in newWords) { Console.Write($"{word} "); } } } ```

Этот код выполняет аналогичные действия на языке C#.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос