редактирование в программе

Ответить
Annetkaz
Сообщения: 2
Зарегистрирован: 23 янв 2014, 18:58

23 янв 2014, 19:06

Здравствуйте!помогите пожалуйста решить задачу:

Код: Выделить всё

program a;
uses crt;
type str=string;mass=array[1..20] of str;
var s,s1,s2,s3:string;i,j,k,l,n:integer;x:mass;

function quantity(s1,s2:str):integer;
var i,k:integer;
begin
k:=0;
for i:=1 to length(s2)-length(s1)+1 do 
if copy(s2,i,length(s1))=s1 then k:=k+1;
quantity:=k; end;

function poisk(s1,s2:str):str;
var i:integer;k:str;
begin
k:='нет';
for i:=1 to length(s2)-length(s1)+1 do 
if copy(s2,i,length(s1))=s1 then k:='да';
poisk:=k; end;

procedure inverse(var s1:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
k:=copy(s1,i,1)+k;
s1:=k; end;

procedure double(var s1:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
k:=k+copy(s1,i,1)+copy(s1,i,1);
s1:=k; end;

procedure zamena(var s1:str;s2,s3:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do 
if copy(s1,i,length(s2))=s2 then begin k:=k+s3;i:=i+length(s2)-1 end
else k:=k+copy(s1,i,1);
s1:=k; end;

procedure del(var s1:str;s2:str);
begin
zamena(s1,s2,'');
end;

procedure  slova(s1:str;var k:integer;var x:mass);
var i,l:integer;
begin
l:=pos('  ',s1);
while l>0 do begin
zamena(s1,'  ',' ');
l:=pos('  ',s1);end;
k:=1;l:=pos(' ',s1);
while l>0 do begin
x[k]:=copy(s1,1,l-1);
k:=k+1;
delete(s1,1,l);
l:=pos(' ',s1);
end;
x[k]:=copy(s1,1,length(s1));
end;

procedure printmass(k:integer;x:mass);
var i:integer;
begin
for i:=1 to k do Writeln(x[i]);
end;
end;

begin
writeln('введите предложение');
readln(s);
slova(s,n,x);
printmass(n,x);
end.
Данную вышу задачу исправить так, чтобы:
1) внести изменения в программу, чтобы дополнительно печатались слова, у которых первый и последний символы совпадают
2) для каждого из слов указывалось, сколько раз оно встречается;
3) составить процедуру, которая удаляет в данном слове букву "а"

на выходе должно получиться 3 программы в соответствии с пунктами!
Заранее спасибо! буду ооооочень благодарна!
Ответить