Дан текст из слов, разделенных пробелами. Определить, где расположено самое длинное слово фразы - PascalABC.NET
Формулировка задачи:
Дан текст из слов, разделенных пробелами. Определить, где расположено самое
длинное слово фразы: в первой половине, во второй или посередине.
У меня программа некорректно работает. Нужно, чтобы программа определяла количество символов самого длинного слова фразы.
Решение задачи: «Дан текст из слов, разделенных пробелами. Определить, где расположено самое длинное слово фразы»
textual
Листинг программы
begin var stringEntered := ReadLnString('Введите строку:'); var wordsArray := stringEntered.ToWords(' ,.;?!'.toArray); var longestWord := wordsArray.OrderBy(word->word.Length).Last; WriteLn('Самое длинное слово: ' + longestWord + ' (' + longestWord.Length + ')'); WriteLn('Находится ' + arr('в начале','в середине','в конце')[wordsArray.IndexOf(longestWord)div 3] + ' строки'); end.
Объяснение кода листинга программы
- Вводится строка с помощью функции ReadLnString.
- Введенная строка преобразуется в массив слов с помощью метода ToWords и передается в качестве аргумента в функцию, которая разделяет строку на слова, используя пробел в качестве разделителя.
- Создается переменная longestWord, которая будет хранить самое длинное слово.
- Метод OrderBy используется для сортировки массива слов по длине в порядке убывания, а затем используется метод Last, чтобы получить самое длинное слово.
- Самое длинное слово выводится на экран с помощью функции WriteLn, а также выводится его длина.
- Используется функция arr для создания массива с тремя элементами:
в начале
,в середине
,в конце
. - Используется метод IndexOf для определения позиции самого длинного слова в массиве слов, а затем используется оператор div для получения целой части результата деления этой позиции на 3.
- Результат операции записывается в переменную, а затем выводится на экран с помощью функции WriteLn.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д