Лекция: Program delwd;

Uses crt;

const r:set of char= [' ',';',',','<','"','''','>','?','.'];

var s,c:string;

i,ns:byte;

f:boolean;

Begin

Clrscr;

write('s='); readln(s);

i:=1; F:=TRUE;

while i<=length(s) do

Begin

if not(s[i] in r) then

Begin

ns:=i; c:=’’;

while (i<=length(s)) and

not(s[i] in r) do

Begin

if pos(s[i],c)=0 then c:=c+s[i];

Inc(i);

End;

if length(c)<=2 then

Begin

Delete (s,ns,i-ns);

f:=false;

i:=ns-1

End;

End;

i:=i+1

End;

if f then writeln('no')

Else writeln(s);

Readkey

End.

Во вспомогательную строку С выбираются различные буквы во время прохода по слову. Если длина этой строки оказывается меньше или равна 2, слово нужно удалять. После удаления необходимо скорректировать значение переменной основного цикла для выделения очередного слова.

 

В следующем примере вводится строка символов. Требуется определить, содержит ли данная строка цифры и выдать сообщение об этом. Распечатать имеющиеся в строке цифры.

Program digit;

Uses crt;

Var

cf:set of 0..9;

s:string;

i,k:byte;

Begin

Clrscr;

write('s='); readln(s);

cf:=[ ];

i:=1;

while i<=length(s) do

Begin

k:=ord(s[i])-ord('0');

if k in [0..9] then cf:=cf+[k];

i:=i+1

End;

if cf=[ ] then writeln('no')

Else

Begin

for i:=0 to 9 do

if i in cf then write(i:3);

Writeln

End;

Readkey

End.

Так как цифры имеют последовательные коды, значение самой цифры можно определить, вычитая из кода цифры код цифры 0, что и выполняется в программе. Цифры, обнаруженные в строке, записываются во множество, которое затем выводится на экран.

 

еще рефераты
Еще работы по информатике