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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 22:59   #1
Лесная Эльфийка
Пользователь
 
Аватар для Лесная Эльфийка
 
Регистрация: 03.12.2010
Сообщений: 35
По умолчанию Замена слов

Составить программу, с помощью которой можно в заданном тексте все слова "один", "два" и т.д. заменить на соответствующие цифры "1","2" и т.д.

Код:
Program Slova;
uses crt;
   const mst: array [1..9] of string = ('один',два,'три,'четыре',
                                        'пять','шесть','семь','восемь','девять');

   var s,ss: string;
       i,p,k: integer;
       Procedure Zamena;
        begin  delete(s,p,length(mst[i]));
                    str(k,ss);
                    insert(ss,s,p)
        end;
BEGIN
   writeln('Введите строку:');
   readln(s);
   for i:=1 to length(s) do
   begin
     k:=k+1;
     p:=pos(mst[k],s);
     if p<>0 then Zamena;

     if k=9 then k:=0;
   end;
   writeln(s);
   readln;


END.
Можно ли переделать эту программу, чтобы она заменяла слова не только один раз?

Последний раз редактировалось Stilet; 24.12.2010 в 15:13.
Лесная Эльфийка вне форума Ответить с цитированием
Старый 24.12.2010, 00:09   #2
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Для начало поправь массив..
Все слова должны быть в кавычках...
goto ∞ вне форума Ответить с цитированием
Старый 24.12.2010, 00:12   #3
Лесная Эльфийка
Пользователь
 
Аватар для Лесная Эльфийка
 
Регистрация: 03.12.2010
Сообщений: 35
По умолчанию

Все равно программа не выполняет нужное.. Мне нужен путь к решению, чтобы заменялись именно все слова.. и не должны в кавычках

Последний раз редактировалось Лесная Эльфийка; 24.12.2010 в 00:17.
Лесная Эльфийка вне форума Ответить с цитированием
Старый 24.12.2010, 00:30   #4
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Проверил и вот результат..

Еще раз говорю, поправьте все в разделе описания переменных ..

Последний раз редактировалось goto ∞; 24.12.2010 в 00:33.
goto ∞ вне форума Ответить с цитированием
Старый 24.12.2010, 00:31   #5
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Код:
program tt2;
const words:array[1..9] of string=(
'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять');
var s:string;
i,j:integer;
begin
writeln('Введите строку: ');
readln(s);
for i:=1 to 9 do begin
j:=pos(words[i], s);
while j>0 do begin
delete(s, j, length(words[i]));
insert(chr(i+48), s, j);
j:=pos(words[i], s);
end;
end;
writeln('Результат: ', s);
readln;
end.
Только компилятора нет под рукой, так что проверяй, могут быть ошибки )
Son Of Pain вне форума Ответить с цитированием
Старый 24.12.2010, 00:32   #6
Лесная Эльфийка
Пользователь
 
Аватар для Лесная Эльфийка
 
Регистрация: 03.12.2010
Сообщений: 35
По умолчанию

Введи: два два два два

Son Of Pain, спасибо, работает. =^_^=

Последний раз редактировалось Stilet; 24.12.2010 в 15:14.
Лесная Эльфийка вне форума Ответить с цитированием
Старый 24.12.2010, 00:34   #7
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Вот сам код(отличие в вводе/выводе)
Код:
Вот сам код(отличие в вводе/выводе только)

var s,ss : string; i,p,k : integer;
    const mst: array [1..9] of string = ('один','два','три','четыре',
'пять','шесть','семь','восемь','девять');
procedure Zamena;
begin
delete(s,p,length(mst[i]));
str(k,ss);
insert(ss,s,p);
end;

begin
 s := edit1.Text;
 k := 0;
 for i:=1 to length(s) do
  begin
   inc(k);
   p:=pos(mst[k],s);
   if p<>0 then Zamena;
   if k=9 then k:=0;
 end;
  label1.Caption := s;
 end;
goto ∞ вне форума Ответить с цитированием
Старый 24.12.2010, 00:35   #8
Лесная Эльфийка
Пользователь
 
Аватар для Лесная Эльфийка
 
Регистрация: 03.12.2010
Сообщений: 35
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Проверил и вот результат..

Еще раз говорю, поправьте все в разделе описания переменных ..
не только один раз

insert(chr(i+48), s, j); - эт кстати что значит? ОО

Последний раз редактировалось Stilet; 24.12.2010 в 15:17.
Лесная Эльфийка вне форума Ответить с цитированием
Старый 24.12.2010, 00:40   #9
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

У тебя в переменной i сейчас номер слова. Если его перевести в строку, это всегда будет один символ (ибо цифры от 1 до 9). Коды цифр в таблице ascii начинаются с 48, следовательно, прибавляя 48 к одноцифровому числу ты получаешь его символьное представление. Короче говоря, это чтобы лишний раз не вызывать str :D
Son Of Pain вне форума Ответить с цитированием
Старый 24.12.2010, 00:40   #10
Лесная Эльфийка
Пользователь
 
Аватар для Лесная Эльфийка
 
Регистрация: 03.12.2010
Сообщений: 35
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Вот сам код(отличие в вводе/выводе)
Код:
Вот сам код(отличие в вводе/выводе только)

var s,ss : string; i,p,k : integer;
    const mst: array [1..9] of string = ('один','два','три','четыре',
'пять','шесть','семь','восемь','девять');
procedure Zamena;
begin
delete(s,p,length(mst[i]));
str(k,ss);
insert(ss,s,p);
end;

begin
 s := edit1.Text;
 k := 0;
 for i:=1 to length(s) do
  begin
   inc(k);
   p:=pos(mst[k],s);
   if p<>0 then Zamena;
   if k=9 then k:=0;
 end;
  label1.Caption := s;
 end;
текстовый файл то зачем? Смысле усложнение только

Последний раз редактировалось Лесная Эльфийка; 24.12.2010 в 00:44.
Лесная Эльфийка вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена слов на синонимы C++ LaDark Visual C++ 2 08.11.2010 19:01
замена слов в цыкле sergeiqwe PHP 3 08.06.2010 00:18
замена слов sergeiqwe PHP 2 05.05.2010 19:29
замена слов в MS Word polov Общие вопросы Delphi 4 09.10.2009 18:29
замена слов lekom Общие вопросы Delphi 7 27.09.2009 23:46