![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
PALADIN |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Условие:
Написать программу, заменяющую все подсловия abc на def. Удалить все пробелы и точки. Процедуры НЕ использовать. После значительной мозговой атаки получилось у меня вот что :
помогите привести задачку к окончательному варианту, а то скоро сдавать |
![]() ![]() |
S!n |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
Мне нечто подобное на экзамене попалось. Подожди-ка немного...
Добавлено через 13 мин. Что-то я рано начал тебе приводить задачку к окончательному варианту... Код неправильный вообще. Вы изучали стандартные процедуры и функции для строк? -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
PALADIN |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
да изучать изучали только так что ... слов нет.
факт в том что процедуры использовать нельзя, следовательно надо либо с помощью функций либо ... |
S!n |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
Значит так, предложенная тобой программа не будет работать, так как str[i] - это номер символа. Ты пытаешься найти номер символа, равный А, B или C и заменить его на другой символ. Т.е. в твоем цикле ты обрабатываешь ТОЛЬКО НОМЕР символа (или его индекс по другому), но ни в коем-случае не сам символ. Надеюсь, это ясно. Идем дальше. Если нельзя использовать процедуры, значит используй функции. Например с помощью функции POS ты можешь найти подстроку в своей строке и заменить её. Вот тебе часть моего конспекта по строкам: "Функция POS(str1,str2) определяет позицию подстроки в строке. Результат - целое число, определяющее номер элемента с которого начинается ПЕРВОЕ вхождение подстроки str1 в строку в строку str2. Если str1 не входит в str2, то значение функции равно нулю. Пример:
k1=Pos('ша','Наша Раша');;" Дальше - проще. С помощью этой функции ищи символы пробела и точки в строке и меняй их на любой другой, например запятую. Затем, с помощью этой же функции ищи символы а,b,c и меняй их на d,e,f. Вопросы есть? -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
PALADIN |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
В целом, кроме вопроса как выглядит теперь программа,вопросов нет.
|
S!n |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
Вот тебе начало:
Полностью исходник предоставить тебе не могу, т.к. писать его нет времени, да и получится не честно. Ты должен сам разобраться. Символы вводишь с клавиатуры. Главное, не забудь, что бы в вводимых тобой символах были нужные тебе abc. Дальше следуй по примеру. Удачи. -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата кроме вопроса как выглядит теперь программа,вопросов нет. Очень просто:p := 1;(закончишь самостоятельно, осталось совсем чуть-чуть)... Я надеюсь, что Цитата Процедуры НЕ использовать. относилось НЕ к процедурам работы со строками, присутствующим в языке? |
S!n |
![]()
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
Целых два исходника ) И, кстати, правильный вопрос, о каких именно процедурах идет речь? Delete и insert?
2volvo, а если символы abc разделены между собой другими символами? Сообщение отредактировано: S!n - 3.12.2008 19:13 -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата Вот тебе начало: ![]() |
S!n |
![]()
Сообщение
#10
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
2volvo, я ответил на твой вопрос заранее =)
Цитата а если символы abc разделены между собой другими символами? К примеру, строка будет выглядеть вот так: 'a..htds btf gh. fgch' -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
PALADIN |
![]()
Сообщение
#11
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Как я понял из условия задачи конструкция abc должна быть единой, а вот точка и пробел могут находиться где угодно.
|
S!n |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
У меня есть ошибка в коде, причем довольно глупая. Забыл поставить оператор условия, следовательно вся прога неработоспособна. Вот исправленный код с единой конструкцией:
var У себя не проверял, но работать должно. -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
Kascader |
![]()
Сообщение
#13
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: ![]() ![]() ![]() |
Program lab1;
uses crt; var stroka: string; i:integer; bukvi: set of char; begin randomize; for i:=1 to 50 do stroka:=stroka+char(97+random(26)); writeln(stroka); for i:=1 to length(stroka)-2 do if ((stroka[i]='a')and (stroka[i+1]='b')and (stroka[i+2]='c')) then begin stroka[i]:='d'; stroka[i+1]:='e'; stroka[i+2]:='f'; end; writeln(stroka); readln; end. СПС за замечание но ,Вместо того чтобы кричать исправил бы... Сообщение отредактировано: Kascader - 3.12.2008 22:13 |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
S!n
Цитата У себя не проверял, но работать должно. Что именно? Присвоение строки в переменную типа Integer? Каким компилятором, если не секрет, пользуешься, что там ТАКОЕ должно работать?Kascader-у: за намеренное введение в заблуждение в следующий раз получишь минус, предупреждаю сразу... Вот за это в частности: Цитата for i:=1 to 50 do { <--- Запомни, цикл по i } Напоминаю, вверху написано: Цитата(Правила Раздела) 7. Проверяйте программы перед тем, как разместить их на форуме!!! Это написано далеко не просто так... |
S!n |
![]()
Сообщение
#15
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Стас Репутация: ![]() ![]() ![]() |
i:='def'; Сорри, здесь моя ошибка. Давно не работал со строками... -------------------- "...Пропитанный злостью и никотином
Я навсегда останусь teen'ом. Всегда семнадцать, всегда война И вечный дождь с двух сторон окна..." |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:01 |