Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 13:04   #1
Стёпыш
 
Регистрация: 05.12.2009
Сообщений: 8
По умолчанию нужно найти ошибку

Код:
program z;
var a,a1,a2:string;
  b:array[1..10] of string;
  n, i,j,k:integer;
begin
 writeln('Введите предложение');
 readln(a);
 writeln('искомое слово');
 readln(a1);
 writeln('слово замена');
 readln(a2);
  n:=length(a);  k:=0;
  for i:=1 to n do
   if copy(a,i,1)=' ' then j:=j+1
else
 b[j]:=b[j]+copy(a,i,1);
for i:=1 to k do
   if b[i]=a1 then b[i]:=a2;
for i:=1 to k do
writeln(b[i]); readln
end.
нужно в предложении найти слово и заменить на другое. все вводиться с клавиатуры.

Последний раз редактировалось Стёпыш; 06.12.2009 в 14:09.
Стёпыш вне форума Ответить с цитированием
Старый 06.12.2009, 15:23   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

А не проще удалять и вставлять???
Код:
var a,a1,a2:string;
  n:integer;
begin
 writeln('Введите предложение');
 readln(a);
 writeln('искомое слово');
 readln(a1);
 writeln('слово замена');
 readln(a2);

a:=' '+a+' ';
 n := pos(' '+a1+' ', a);//предполагается что пробелы разделяют слова
 while n<>0 do begin
 delete(a, n, length(a1)+2);
 insert(' '+a2+' ', a, n);
 n := pos(' '+a1+' ', a);
 end;
 delete(a,1,1);
 delete(a,length(a),1);
 writeln(a);
 readln
end.

Последний раз редактировалось eoln; 06.12.2009 в 15:25.
eoln вне форума Ответить с цитированием
Старый 08.12.2009, 15:06   #3
Стёпыш
 
Регистрация: 05.12.2009
Сообщений: 8
По умолчанию

а если мою исправит. то что там именно не правильно сделано?
Стёпыш вне форума Ответить с цитированием
Старый 08.12.2009, 15:19   #4
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Насчет первого поста, там в коде k=0 (а после не изменяется). Если k-это количество слов, то его надо каждый раз увеличивать. Потому что там цикл для k есть.
Было бы кстати удобнее, если названия переменных имели более осмысленные названия. Например: Предложение - predl; Искомое слово- FindWord и так далее.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 08.12.2009, 15:37   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от ArtInt Посмотреть сообщение
Насчет первого поста, там в коде k=0 (а после не изменяется). Если k-это количество слов, то его надо каждый раз увеличивать. Потому что там цикл для k есть.
Было бы кстати удобнее, если названия переменных имели более осмысленные названия. Например: Предложение - predl; Искомое слово- FindWord и так далее.
Верно, по этой причине два последних цикла никогда не выполняются. И не только осмысленные названия переменных, но и нужны комментарии. Основная ошибка всех начинающих - полное отсутствие комментариев. Когда расписываете свой код, Вы лучше понимаете его работу и половина ошибок не возникает в принципе.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 08.12.2009, 18:13   #6
Стёпыш
 
Регистрация: 05.12.2009
Сообщений: 8
По умолчанию

спасибо за совет про коментарии, буду знать.
а вот в моей программе такая проблемма. на примере выглядит так
в предложении: МАМА МЫЛА РАМУ
надо заменить слово МЫЛА на слово КРАСИЛА.
и программа выводила:
МАМА
КРАСИЛА
точно также с новой строки а слово РАМУ не выводила.
Стёпыш вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно найти ошибку в коде Вован111 Помощь студентам 15 08.11.2009 14:33
найти ошибку rUs_LAN Общие вопросы C/C++ 8 14.05.2009 12:02
Очень нужна помощь! Нужно найти ошибку в очень простой программе. Lex55555777 Помощь студентам 3 07.12.2008 20:32
нужно исправить ошибку TheVenny Помощь студентам 17 06.11.2008 16:26