![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
PORTUGAL |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте! Сейчас решаю задачи по паскалю и застрял вот на чем: во введенной строке нужно подсчитать количество слов которые одинаково начинаются и заканчиваются, как это реализовать?
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Здесь: Разбиение на слова. Все способы найдешь алгоритм выделения слов из строки...
Дальше - просто пройдешь по массиву, и проверишь каждое слово на то, подходит оно под условие, или нет... (Кстати, уточни, сколько символов должны совпадать в начале и конце слова, чтобы считалось, что оно начинается и заканчивается одинаково?) |
PORTUGAL |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот как я решил:
Код var st,sl:string; i,n,beg,kol:byte; BEGIN write('Vvedite stroku: '); readln(st); beg:=1; for i:= 1 to length(st) do begin if (st[i]=' ') or ((st[i]='.')) then begin sl:=copy(st,beg,i-beg); if sl[1]=sl[length(sl)] then inc(kol); beg:=i+1; end; end; writeln('Kolichestvo slov: ' ,kol); readln; end. Нормально? |
PORTUGAL |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Тут возникла у меян проблема с этим кодом, суть ее вот в чем – программа работает нормально, если ввести два слова с одинаковыми буквами в начале и конце то выдает что их два, но если не поставить в конце предложения точку то пишет что слово только одно! Т.е. если не ввести точку то она подсчитывает все слова с одинаковым началом и концом кроме последнего слова в строке! Не могу понять в чем проблема!?
|
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
uses crt; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Не могу понять в чем проблема!? Ну, как же, у тебя слово ограничивается ТОЛЬКО пробелом или завершающей точкой, если последним символом строки точки не будет, то последнее слово просто не анализируется, т.к.if (st[i]=' ') or ((st[i]='.')) then begin измени цикл вот так, все должно работать: for i:= 1 to length(st) do begin или еще проще: write('Vvedite stroku: '); readln(st); |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 17:11 |