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

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

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

 
 Ответить  Открыть новую тему 
> задача на замену
Новичок
сообщение 2.04.2010 7:34
Сообщение #1


Новичок
*

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

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


Здравствуйте!
Помогите решить задачу на замену.Вроде бы сделал все правильно, но замены по условию не происходит

Заменить в ведённом слове «римский» слово «рим» на «мир»
Выдаёт ошибку при компиляции программы и три буквы не заменяет

program f351;							
var x:string[10];
i:integer;
begin
x:='римский';
for i:=1 to length(x)-2 do begin
if copy(x,1,3)='рим' then copy(x,1,3)='мир';
end;
for i:=1 to length(x) do
write (x[i]);
end.


М
Тэги! Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 2.04.2010 10:01
Сообщение #2


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

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

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


Цитата(Новичок @ 2.04.2010 8:34) *
Выдаёт ошибку при компиляции программы и три буквы не заменяет
Гм. А как ьы ты хотел, чтоб оно работало?.. blink.gif Ты посмотрел описание процедуры copy? И что вообще ты подразумевал под
copy(x,1,3)='мир'
- это присваивание или что?.. blink.gif
Да и баланс begin/end у тебя не соблюден.. Ладно, вот, короче, смотри.
var
x: string;
p:integer;
begin
x:='Папа римский пошел погулять';
p:=Pos('римский',x);
if p>0 then begin
Delete(x,p,3);
Insert('мир',x,p)
end;
WriteLn (x);
end.


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


Новичок
*

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

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


Спасибо, я совсем забыл про тот способ который вы указали в решении.
Просто когда проводишь замену одного символа или подсячёт мой вариант решения задачи проходит.
Ещё раз большое спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 2.04.2010 11:21
Сообщение #4


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

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

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


Цитата(Новичок @ 2.04.2010 12:03) *
Просто когда проводишь замену одного символа или подсячёт мой вариант решения задачи проходит.
Ещё раз большое спасибо.
Пожалуйста! smile.gif

Новичок, я не вполне понял, что ты имеешь в виду. Что именно проходит? Присваивание значения функции? Я совсем не понимаю тебя. Может, сделаешь вариант с заменой одного символа?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Новичок
сообщение 3.04.2010 5:55
Сообщение #5


Новичок
*

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

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


Я имел ввиду,вот если необходимо заменить допустим в слове "барабан" букву "б" на "а" то пользовался
if copy(x,1,1)='а' then copy(x,1,1)='б';
и всё прекрасно получалось, но а если приходилось осуществить замену нескольких букв то этот способ уже не проходил.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.04.2010 7:46
Сообщение #6


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

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

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


Цитата(Новичок @ 3.04.2010 6:55) *
Я имел ввиду,вот если необходимо заменить допустим в слове "барабан" букву "б" на "а" то пользовался
if copy(x,1,1)='а' then copy(x,1,1)='б';
и всё прекрасно получалось, но а если приходилось осуществить замену нескольких букв то этот способ уже не проходил.
Новичок, ты сильно заблуждаешься. Попробуй скомпилировать эту строку. Так нельзя делать. По крайней мере, в Паскале.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Новичок
сообщение 5.04.2010 5:32
Сообщение #7


Новичок
*

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

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


Спасибо за совет, буду иметь ввиду
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archon
сообщение 7.04.2010 17:25
Сообщение #8


Профи
****

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

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


Если замены такие простые, почему бы не сделать так:
var
x: string[10];
begin
x := 'римский';
x[1] := 'м';
x[3] := 'р';
Write(x);
end.
и соответственно
var
x: string[10];
begin
x := 'барабан';
x[1] := 'а';
Write(x);
end.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 8.04.2010 5:40
Сообщение #9


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

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

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


Цитата(Archon @ 7.04.2010 18:25) *
Если замены такие простые, почему бы не сделать так:

Тогда уж так:
const
x: string= 'мирский';
begin
Write(x)
end.

или так:
begin
Write('мирский')
end.

Эти программы будут вести себя точно так же smile.gif.

На самом же деле, я полагаю, в условии неточность. Вводится (причем, с клавы или из файла) не одно слово "римский", а текст, содержащий его (или не содержащий).


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


Новичок
*

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

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


Действительно Archon
способ предложенный тобой проще и рациональнее ( простая замена символов)Как я не догадался
Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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