Дана фраза
(алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи по конечное число действий, система правил выполнения дискретного процесса, достигает поставленной цели за конечное время. Для визуализации алгоритмов часто используют блок-схемы)
и подстрока (алгоритм).
Найти все вхождения подстроки в фразу, если таковых нет, выдать сообщение. Программа должна выполнять не более N-циклов. Где N - необходимо ввести.
Возможна реализация на С#, С++, Java.
Я начал делать на C#.
Код:
string s1 = "алгоритм – алгоритм набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. Для візуалізації алгоритмів часто використовують блок-схеми";
string s2 = "алгоритм";
Console.Write("Выполнить не больше: " );
int N = int.Parse(Console.ReadLine());
int i = 0;
int x = -1;
N = -1;
while (i != -1)
{
i = s1.IndexOf(s2, x + 1);
x = i;
N++;
}
Console.WriteLine("Количество вхождений слова алгоритм: " + N);
Console.ReadLine();
Не могу понять, как ограничить количество нахождений, чтобы выполнилось не более N- заданных повторений.
string s1 = "алгоритм – алгоритм набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. Для візуалізації алгоритмів часто використовують блок-схеми";
string s2 = "алгоритм";
Console.Write("Выполнить не больше: ");
int N = int.Parse(Console.ReadLine());
int iterationsCount = -1;
int nextIndex = -999;
while (nextIndex != -1 && iterationsCount < N) {
nextIndex = s1.IndexOf(s2, nextIndex == -999 ? 0 : nextIndex + 1);
iterationsCount++;
}
Console.WriteLine("Количество вхождений слова `" + s2 + "`: " + iterationsCount);
Console.ReadLine();
Пользуйтесь регулярным выражением, очень легко определить вхождения:
public class Application {
private static final Pattern REGEX = Pattern.compile("(?ui)(алгоритм)");
private static final String TEXT = "алгоритм – алгоритм набір інструкцій, які описують порядок дій виконавця, "
+ "щоб досягти результату розв'язання задачі за скінченну кількість дій; "
+ "система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. "
+ "Для візуалізації алгоритмів часто використовують блок-схеми.";
private static final int number = 2;
public static void main(String[] args) {
Matcher matcher = REGEX.matcher(TEXT);
int count = 0;
while (count != number && matcher.find()) {
count++;
System.out.println(matcher.group(1));
}
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости