В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История

Cроки поджимают на С++ написать программу: Бот не должен наносить урон убитому игроку.
Бот не должен наносить атаку убитым игроком.
Игрок не должен наносить урон убитому игроку.
Игрок не должен наносить атаку убитым игроком.

Показать ответ
Ответ:
Relig1d
Relig1d
06.05.2023 11:45

using System;

using System.Text.RegularExpressions;


internal class Program

{

private static void Main()

{

var test_lines = new[]

{

"Я сегодня съела 2 булочки, 7 сосисок и выпила 3 чашки кофе.",

"Старший брат родился в 1990 году, а младший - в 2000г.",

"Мне нравится книга '100 лет одиночества'"

};


foreach (var test_line in test_lines)

{

Console.WriteLine(test_line);

Console.WriteLine("Самое большое число в строке {0} или {1}", FindMaxNumber(test_line), FindMaxNumberWithRegex(test_line));

}


Console.WriteLine();


Console.WriteLine("Введите строку");

var line = Console.ReadLine();

Console.WriteLine("Самое большое число в строке {0} или {1}", FindMaxNumber(line), FindMaxNumberWithRegex(line));

Console.ReadKey();

}


private static int FindMaxNumberWithRegex(string line)

{

var matches = Regex.Matches(line, @"[0-9]+"); //находим все вхождения цифр в строку, не зависимо от того часть это слова или нет

if (matches.Count < 1) return -1;


var max = -1; //предполагаем что ищем лишь положительные числа


foreach (Match match in matches)

{

var num = int.Parse(match.Value); //переводим строку в число, то что это число мы уже знаем

max = Math.Max(max, num);

}

return max;

}


private static int FindMaxNumber(string line)

{

var words = line.Split(new[] { ' ', ',', '.', '-', ':' }, StringSplitOptions.RemoveEmptyEntries);//разбивает строку на массив строк

var max = -1; //предполагаем что ищем лишь положительные числа


foreach (var word in words)

{

if (int.TryParse(word, out var num) && num > max) //если слово есть число и оно больше максимума

{

max = num;

}

}

return max;

}

}

0,0(0 оценок)
Ответ:
хВика
хВика
06.05.2023 11:45
Const
  n=50; { максимальное число различных слов в строке }
  del=[' ','.',',',':',';','-','!','?','/'];
var
  mw:array[1..n] of string; { найденные слова }
  mk:array[1..n] of integer; { количество повторений слов }
  s,w:string;
  i,j,k,l,m:integer;
  skip,new_word:boolean;
begin
  Write('Введите текст: ');
  Readln(s);
  s:=s+' ';
  Write('Укажите предельное число повторений слова: ');
  Read(k);
  l:=Length(s);
  m:=0;
  skip:=(s[1] in del);
  if skip then w:='' else w:=s[1];
  for i:=2 to l do
    if s[i] in del then begin
      if not skip then begin
        { w содержит очередное найденное слово }
        j:=1; new_word:=true;
        while (j<=m) and new_word do begin
          if w=mw[j] then begin Inc(mk[j]); new_word:=false end;
          Inc(j)
        end;
        if new_word then begin Inc(m); mw[m]:=w; mk[m]:=1 end;
        w:=''; skip:=true
      end
    end
    else
      if skip then begin w:=s[i]; skip:=false end
      else w:=w+s[i];
  { фраза разобрана и проанализирована }
  j:=0; i:=1;
  while (i<=m) and (j=0) do begin
    if mk[i]>k then j:=i;
    Inc(i)
  end;
  if j>0 then begin
    Writeln('Слова, которые встретились больше, чем ',k,' раз:');
    Writeln(mw[j]);
    for i:=j+1 to m do
      if mk[i]>k then Writeln(mw[i]);
  end
  else  Writeln('Нет слов, которые встретились больше, чем ',k,' раз.')
end.

Тестовое решение:
Введите текст: еду, еду в чистом поле; колокольчик дин-дин-дин... страшно, страшно поневоле средь неведомых равнин!
Укажите предельное число повторений слова: 1
Слова, которые встретились больше, чем 1 раз:
еду
дин
страшно
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота