IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на строки, ужасс
DieZel
сообщение 14.05.2008 17:41
Сообщение #1


Гость






Вобщем такая задачка :
В заданном предложении заменить все строчные латинские буквы прописными.
Определить ,сколько раз в преобразованном предложении встречается
сочетание символов "А+В" Напечатать исходный и преобразованный тексты,
а также число встретившихся сочетаний.

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

Помогите пожалуйста кто силён?... я в тупике
 К началу страницы 
+ Ответить 
klem4
сообщение 14.05.2008 17:46
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Как перевести строчные в прописные


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

for i := 1 to length(s) do
s[i] := UpCase(s[i]);


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DieZel
сообщение 14.05.2008 18:00
Сообщение #3


Гость






Благодарю!!! Работает!!))) Ну а как же всётаки быть со вторым вопросом?
 К началу страницы 
+ Ответить 
Айра
сообщение 14.05.2008 18:14
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Вот через таблицу, но для латинского алфавита:

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).. ищем, если нашли, то увеличили счетчик, а найденное сочетание удалили, и так пока не получится, что подстроки нет.. Правда это не самый лучший вариант.. придется исходную строку копировать в другую переменную, иначе потеряем..

Сообщение отредактировано: Айра - 14.05.2008 18:24
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 14.05.2008 18:27
Сообщение #5


Гость






Вот и именно что с плюсом
 К началу страницы 
+ Ответить 
Айра
сообщение 14.05.2008 18:29
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Ну это в целом ничего не меняет.. просто будешь искать pos('A+B',s) и все))
а можно еще так:
if (s[i]='A') and (s[i+1]='+') and (s[i+2]='B') then inc(kol);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DieZel
сообщение 14.05.2008 18:37
Сообщение #7


Гость






Ну а что принять в качестве А и В ? любые 2 буквы чтоли?
 К началу страницы 
+ Ответить 
Айра
сообщение 14.05.2008 18:56
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Хм.. знаешь, вот я это "А+B" поняла как сочетание трех конкретных символов.. если тебе непонятно задание, то лучше спросить у препода..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DieZel
сообщение 14.05.2008 19:00
Сообщение #9


Гость






А! ,всё, допёрло!!))) Айра спасибо! как всё оказывается просто было!)))
 К началу страницы 
+ Ответить 
volvo
сообщение 14.05.2008 23:30
Сообщение #10


Гость






Цитата
Вообще можно через pos('AB",s).. ищем, если нашли, то увеличили счетчик, а найденное сочетание удалили, и так пока не получится, что подстроки нет..

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


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 15.05.2008 5:33
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
Внимательней с такими вещами...

ой.. не заметила.. wink.gif
Тогда придется все через индексы делать..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 15.05.2008 8:08
Сообщение #13


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(мисс_граффити @ 15.05.2008 1:33) *

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

Проще забить найденный кусок "левыми" символами.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 18:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"