Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DieZel
Вобщем такая задачка :
В заданном предложении заменить все строчные латинские буквы прописными.
Определить ,сколько раз в преобразованном предложении встречается
сочетание символов "А+В" Напечатать исходный и преобразованный тексты,
а также число встретившихся сочетаний.

Возникает сразу 2 вопроса:
-Как перевести строчные в прописные (говорят что както при помощи таблицы ASCII)
и -Как вообще понимать второе предложение?)))

Помогите пожалуйста кто силён?... я в тупике
klem4
Цитата
Как перевести строчные в прописные


если особых указаний нет, пользуемся стандартными средствами языка:

for i := 1 to length(s) do
s[i] := UpCase(s[i]);
DieZel
Благодарю!!! Работает!!))) Ну а как же всётаки быть со вторым вопросом?
Айра
Вот через таблицу, но для латинского алфавита:

for i:=1 to length(s) do if (ord(s[i])>=97) and (ord(s[i])<=122) then s[i]:=chr(ord(s[i])-32);
end.


Цитата
Определить ,сколько раз в преобразованном предложении встречается сочетание символов "А+В"

Во-первых, сочетание AB или именно А+B..
Вообще можно через pos('AB",s).. ищем, если нашли, то увеличили счетчик, а найденное сочетание удалили, и так пока не получится, что подстроки нет.. Правда это не самый лучший вариант.. придется исходную строку копировать в другую переменную, иначе потеряем..
Гость
Вот и именно что с плюсом
Айра
Ну это в целом ничего не меняет.. просто будешь искать pos('A+B',s) и все))
а можно еще так:
if (s[i]='A') and (s[i+1]='+') and (s[i+2]='B') then inc(kol);
DieZel
Ну а что принять в качестве А и В ? любые 2 буквы чтоли?
Айра
Хм.. знаешь, вот я это "А+B" поняла как сочетание трех конкретных символов.. если тебе непонятно задание, то лучше спросить у препода..
DieZel
А! ,всё, допёрло!!))) Айра спасибо! как всё оказывается просто было!)))
volvo
Цитата
Вообще можно через pos('AB",s).. ищем, если нашли, то увеличили счетчик, а найденное сочетание удалили, и так пока не получится, что подстроки нет..

Ай-яй-яй smile.gif Оля, если будем удалять можем нарваться на неприятности... К примеру:
s := 'hello A+B world AA+B+B !!!';
Что получим? Сколько раз 'A+B' встречается в строке? Внимательней с такими вещами...
мисс_граффити
а если удалять не А+В, а весь кусок строки, который заканчивается этим сочетанием?
ну или наоборот - копировать "хвост"...
Айра
Цитата
Внимательней с такими вещами...

ой.. не заметила.. wink.gif
Тогда придется все через индексы делать..
andriano
Цитата(мисс_граффити @ 15.05.2008 1:33) *

а если удалять не А+В, а весь кусок строки, который заканчивается этим сочетанием?
ну или наоборот - копировать "хвост"...

Проще забить найденный кусок "левыми" символами.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.