![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Провинциалка |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Прошу помочь в написании программы для задачи:
"В заданном предложении в каждом слове удалить все последующие вхождения первой буквы предложения. Новый текст вывести на печать". Альтруисты, откликнитесь! ![]() |
Unconnected |
![]()
Сообщение
#2
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
![]() Какие мысли по поводу задачи? ![]() -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Провинциалка |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Мыслей много всяких. Одна из них - понять смысл задачи
|
Unconnected |
![]()
Сообщение
#4
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Тебе нужно взять первую букву, а потом идти по строке и удалять остальные такие. Интересное уточнение "в каждом слове" - будто буквы могут быть не в слове)
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> а потом идти по строке и удалять остальные такие
Неправильно. Правильно так: > а потом идти по строке-источнику и писать в строку-приёмник всё, кроме остальных таких. А то, что ты сказал, будет работать за O(n^2). Хотя хоть как-то работать будет. -------------------- |
Unconnected |
![]()
Сообщение
#6
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Разве? По-моему, в первом варианте будет меньше действий, и тоже один проход по строке..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
TarasBer |
![]()
Сообщение
#7
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Удаление элемента из строки - за сколько, по-твоему, работает?
Оно, между прочим, весь хвост сдвигает. -------------------- |
Archon |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Удаление элемента из строки - за сколько, по-твоему, работает? Оно, между прочим, весь хвост сдвигает. А добавление в строку - создает новую. Тогда уж на первом проходе посчитать удаляемые символы, создать строку нужного размера и только потом копировать в нее символы. Но новичка оптимизации только запутают. -------------------- Close the World...txeN eht nepO
|
TarasBer |
![]()
Сообщение
#9
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> А добавление в строку - создает новую.
Реаллокации весьма редки, у дельфей менеджер памяти хороший, можно наращивать по единице, и не париться. > Тогда уж на первом проходе посчитать удаляемые символы, создать строку нужного размера и только потом копировать в нее символы. Ну вообще да, лучше заранее создать буфер нужной длины. -------------------- |
Гость |
![]()
Сообщение
#10
|
Гость ![]() |
Спасибо всем кто откликнулся на мою мольбу. Попробую написать программу, хотя очень сомневаюсь что мне - первокурснице, это по зубам! (Слишком бестолковый у нас преподаватель по программированию языка высокого уровня). А надо бы к среде.
|
Archon |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Покажи, что написала, а мы подскажем что не так.
-------------------- Close the World...txeN eht nepO
|
sheka |
![]()
Сообщение
#12
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
а почему нельзя просто:
k:=0; осуществлять проход по строке и при встрече нужного символа увеличивать значение k на 1, а иначе а[i-k]:=a[i]; Обрезать строку. |
TarasBer |
![]()
Сообщение
#13
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> а почему нельзя просто:
Ну на самом деле это в глубине души и есть добавление в новую строку только того, что надо, просто новая строка собирается прямо на месте старой. Это правильный алгоритм, вообще я уже предлагал запостить его в FAQ в виде удаления из массива нескольких элементов по некоторому признаку без использования допмассивов. -------------------- |
Провинциалка |
![]()
Сообщение
#14
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Вроде так, но программа не работает! (Или это ахинея?)
Program stroka1; ![]() Сообщение отредактировано: Lapp - 2.11.2010 0:05 |
Archon |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты выделяешь в предложении слова и удаляешь из каждого слова повторы первой буквы этого слова, а надо первой буквы предложения. Вообще, для решения задачи выделять слова не нужно. Достаточно, как сказали выше, взять первую букву предложения и удалить её из всей оставшейся части строки. Одного цикла достаточно.
PS Добавь тег [code] вокруг текста программы, а то его сложно читать. -------------------- Close the World...txeN eht nepO
|
Провинциалка |
![]()
Сообщение
#16
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Уважаемый Archon! Позвольте задать вам глупый вопрос: Что означает "Добавь тег [code] вокруг текста программы"?
|
Lapp |
![]()
Сообщение
#17
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Что означает "Добавь тег [code] вокруг текста программы"? 1. пометь программный код блоком; 2. кликни меню CODE над формой ввода; 3. выбери нужный пункт (Pascal/Delphi); 4. увидишь, что вставились теги перед и после кода; 5. то же самое можно делать "вручную" (просто набрать с клавы); 6. читай Правила! Там все есть. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Провинциалка |
![]()
Сообщение
#18
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Видимо я должна была писать программу на Pascal в среде Delphi. Если так, то к сожалению у меня установлен только Turbo Pascal.
|
sheka |
![]()
Сообщение
#19
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Нет, Б**! Надо написать вот так:
Цитата [.code=pas]вот здесь твой код[./code] Только БЕЗ точек! БЕЗ! Похфиг на чем ты писала! это на форуме, когда вводишь сообщение написать надо. А в данный момент нажми "изменить" свое уже написаное сообщение, и вставь туда теги [code]Добавлено через 10 мин. Хотя Lapp это уже сделал ![]() Сообщение отредактировано: sheka - 2.11.2010 0:48 |
Провинциалка |
![]()
Сообщение
#20
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
А программу подредактировать поможешь?
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:28 |