Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ работа с текстом-поиск и учёт,замена элементов

Автор: Roman 18.12.2003 22:48

здрасте,
по просьбам трудящихся решил разбить топик,
вот:
програма читает из текст фаила слово(до 256 букв)  
и:  
а)находит кол. повторов заданного 3 значного буквосочетания.  (abc)
б)сообщает чего больше- гласных или согласных букв.  
в)производит замену 2 одинаковых рядом стоящих гласных, написанных с маленкой буквы, на большие(аа=>АА)  
Выводит слово в указынное пользователем место и цветом(CRT) на экран.(буквы латинские)
всё что можно нужно запихать в процедуры и функции.


заранее благодарен

Автор: Roman 18.12.2003 23:20

вот,  самую простую часть я вроде сделал(вернее просто взятие из фаила):

Код

var fil:text;
s:string;
procedure vvod(var fil:text;var s:string);
                begin
                assign(fil, 'tekst.txt');
                reset(fil);
                    while not EOF(fil) do
                       begin
                       readln(fil,s);
                       writeln(s);
                       end;
                close(fil);
                end;
begin
vvod(fil,s);
end.


нашёл в одной книжке такую штуку, для поиска abcd, может это можно использовать?
токо у меня надо чтобы символы вводил пользователь

Код

i:=1; state:=0; {i-первая непрочитанная буква,state -состояние}
while (i<>n+1) and (state<>4) do
begin
       if state=0 then begin
          if x[i]=a then begin
            state:=1
            end else begin
            state:=0;
end;
end else if state=1 then begin
if x[i]=b then begin
state:=2;
end else if x[i]=a then begin
state:=1;end else begin
state:=0;
end;
end else if state=2 then begin
if x[i]=c then begin
state:=3;
end else if x[i]=a then begin
state:=1;
end else begin
state:=0;
end;
end else if state=3 then begin
if x[i]=d then begin
state:=4;
end else if x[i]=a then begin
state:=1;
end else begin
state:=0;
end;
end;
end;
answer:=(state=4);


???

Автор: AlaRic 18.12.2003 23:29

Очень прошу все, оформлять в

Код
код
всё, что больше 5 строк!

Автор: Roman 19.12.2003 2:43

исправил...

Автор: trminator 19.12.2003 22:25

Функция ищет число повторов заданной подстроки (substr) в строку (s). Длина substr любая.

Код

function count_substr(var in_s, substr : string): integer;
var s    : string;
   answ : integer;
begin
   answ:=0; s:=in_s;
   while pos(substr, s) > 0 do
   begin
       inc(answ);
       delete(s, pos(substr, s), length(substr))
   end;
   count_substr := answ
end;