Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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, что и выполняется в программе. Цифры, обнаруженные в строке, записываются во множество, которое затем выводится на экран.
Дата публикования: 2014-11-04; Прочитано: 229 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!