Pascal ABC кто разбирается, задание очень сложное.Дана строчка содержащая любые символы
Pascal ABC кто разбирается, задание очень сложное.
Дана строчка содержащая любые знаки не считая российских букв.
Под "словом" будем понимать последовательность знаков, ограниченную пробелами или стоящую в конце или начале строчки. Меж словами может быть несколько пробелов. Так же пробелы могут быть в конце или начале строки.
Написать функцию, которая в данной строке находит количество cлов - палиндромов.
Использовать заголовок:
function CalcWord(Stroka: string): integer;
1 ответ
Таисия Горпенко
Не такое оно и трудное.
Основная проблема - то, что меж словами может быть несколько пробелов.
Устраним её, написав функцию, которая оставляла бы меж словами по 1 пробелу:
function RemoveSpaces(str : string) : string;
begin
//Здесь цикл for, переписанный через while
var iter := 1;
//Проходим по строке
while (iter lt; str.Length) do
begin
//Если лицезреем 2 пробела попорядку, устраняем 1 и откатывает итератор.
if (str[iter] = ' ') and (str[iter + 1] = ' ') then
begin
str := str.Remove(iter, 1);
iter -= 1;
end;
iter += 1;
end;
RemoveSpaces := str;
end;
Теперь мы можем получить кол-во слов очень просто:
function CalcWords(str : string) : integer;
begin
CalcWords := RemoveSpaces(str).Split(' ').Count();
end;
Т.е. мы разделяем строку на массив через пробелы, и считаем кол-во элементов массива.
полный код: https://pastebin.com/A63ggdWm
Основная проблема - то, что меж словами может быть несколько пробелов.
Устраним её, написав функцию, которая оставляла бы меж словами по 1 пробелу:
function RemoveSpaces(str : string) : string;
begin
//Здесь цикл for, переписанный через while
var iter := 1;
//Проходим по строке
while (iter lt; str.Length) do
begin
//Если лицезреем 2 пробела попорядку, устраняем 1 и откатывает итератор.
if (str[iter] = ' ') and (str[iter + 1] = ' ') then
begin
str := str.Remove(iter, 1);
iter -= 1;
end;
iter += 1;
end;
RemoveSpaces := str;
end;
Теперь мы можем получить кол-во слов очень просто:
function CalcWords(str : string) : integer;
begin
CalcWords := RemoveSpaces(str).Split(' ').Count();
end;
Т.е. мы разделяем строку на массив через пробелы, и считаем кол-во элементов массива.
полный код: https://pastebin.com/A63ggdWm
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
задание экономиоти
Рассмотри ситуацию: человек живёт на Крайнем Се-вере. С помощью каких
Экономика.
Человек живет на Крайнем Севере. С помощью каких благ удовлетворяются потребности
Экономика.
там лежат три яйца.у дома рос клен.Это гнездо сойки.на клёне гнездо
Русский язык.
Тыныштық күйіндегі карусель 35 с-та 3,0 рад/с бұрыштық жылдамдықпен үдей қозғалады.
Разные вопросы.
Сочинение на тему "Русский язык не сможет умереть!"
Математика.
Приветствую!
Меня зовут Станислав, я представляю компанию under.site.
Хотел бы предложить интересное решение
Разные вопросы.
Масса трёх одинаковых пакетов чая 180г чему равна масса
Математика.
Газообразный аммиак объёмом 2.24 л (н.у.) был полностью поглощён 14.68 мл
Химия.
Упражнение 2 Выпишите глаголы и вставьте пропущенные буквы
Русский язык.
Радиус окружности, описанной около равностороннего треугольника, равен 6. Найдите сторону треугольника
Геометрия.
Облако тегов