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

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

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

 
 Ответить  Открыть новую тему 
> Задачи на обработку текстовой информации, контрольная, по обработке текстовой инфармиции
sarmat
сообщение 8.10.2010 21:45
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Дмитрий

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


1.Дано натуральное число N (N>9). Определите сумму цифр в первой половине числа.(старшие разряды). пример N=12345678. Сумма =1+2+3+4=10


2. Дана строка символов. Удалить из строки все символы "(" и ")" - круглые скобки


3. Дан текст из N символов. Группы символов, расположенные между пробелами и не содержащие пробелов внутри себя, называем словами. Подсчитать кол-во слов, у которых первый и последний символ совпадают.


ЗАРАНЕЕ СПАСИБО! give_rose.gif give_rose.gif give_rose.gif
ПС конкретно мне надо как это будет записано в паскале/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 8.10.2010 22:13
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

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


Cделать конкретно? Не вопрос.

А желание попробовать что-то сделать самому есть??? Давай труды сюды.

Сообщение отредактировано: sheka - 8.10.2010 22:16
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 9.10.2010 4:25
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Просьба не нарушать правила раздела Задачи (п.6, см. выше на этой странице)

Цитата(sarmat @ 8.10.2010 22:45) *
ПС конкретно мне надо как это будет записано в паскале/
В Паскале это будет конкретно записано, когда ты конкретно запишешь.. За тебя делать никто не станет. Есть конкретные вопросы - конкретно давай..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sarmat
сообщение 9.10.2010 11:03
Сообщение #4





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Дмитрий

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


2. после того как я запсал "дано" и определил строку символов. какой командой удалить скобки?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 9.10.2010 11:15
Сообщение #5


mea culpa
*****

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

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


Ну, если ты о второй задаче - для этого есть оператор delete(строка,позиция_начала_удаления,сколько_символов_удалять). И чтобы ею воспользоваться, бежишь в цикле по строке (типа for i:=1 to length(s) do ) и сравниваешь каждый символ со скобками, если попалась скобка - delete её..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.10.2010 11:29
Сообщение #6


Гость






Цитата
сравниваешь каждый символ со скобками, если попалась скобка - delete её..
и в какой-то момент осознаешь, что когда скобку удалил, длина строки уменьшилась, а Length(s) уже выполнился в самом начале цикла, и ты, оказывается, уже бежишь снаружи от строки, и что-то там удаляешь... Поэтому надо сделать... Что?
 К началу страницы 
+ Ответить 
Unconnected
сообщение 9.10.2010 11:31
Сообщение #7


mea culpa
*****

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

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


Точняк, извиняюсь.. сам когда-то долго вылавливал такую фигню) Перед циклом надо длину строки в переменную занести, и её использовать конечным параметром в цикле.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.10.2010 11:41
Сообщение #8


Гость






Цитата
Перед циклом надо длину строки в переменную занести, и её использовать конечным параметром в цикле.
Вот как раз этого делать не надо, это за тебя делает Паскаль. И именно в этом случае происходит то, что я описал (ну, вот так устроен цикл For в Паскале, что начальное и конечное значение вычисляются один раз, а не на каждой итерации. В отличии от С, скажем). И если ты сам вынесешь длину строки в новую переменную, то ничего нового не произойдет. Так что надо сделать, чтоб не бегать за границей строки?
 К началу страницы 
+ Ответить 
Unconnected
сообщение 9.10.2010 11:48
Сообщение #9


mea culpa
*****

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

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


Цитата
ну, вот так устроен цикл For в Паскале, что начальное и конечное значение вычисляются один раз, а не на каждой итерации


Ой.. *полез в свои программы, которые живут с этим..*

Ну, тогда ввести переменную, скажем L, цикл такой: for i:=1 to length(s)-l, а в теле цикла при каждом удалении inc(l);..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 9.10.2010 12:09
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

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


smile.gif
ну что все for да for smile.gif while/repeat тут гораздо проще использовать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.10.2010 12:17
Сообщение #11


Гость






Ребята, а подумать не пробовали? For бывает не только вперед, а и назад тоже.
Цитата
while/repeat тут гораздо проще использовать
Так что тут проще использовать, правильный For или While/Repeat?
 К началу страницы 
+ Ответить 
Client
сообщение 9.10.2010 12:23
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

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


for назад - хорошая идея smile.gif перебирая с конца, если нашел скобку, то просто удалил и все, не надо волноваться о длине строки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sarmat
сообщение 9.10.2010 12:33
Сообщение #13





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Дмитрий

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


блин, я не понимаю ка кмне определить из этой строки скобки wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 9.10.2010 13:59
Сообщение #14


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

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


> блин, я не понимаю ка кмне определить из этой строки скобки

if (S[i] = '(') or (S[i] = ')') then ...

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

const
chrBrackets = ['(', ')'];

...

if S[i] in chrBrackets then ...


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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