Показать сообщение отдельно
Старый 26.12.2008, 11:21   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Если еще не поздно, то вот. Отлажено.

VAR
i,j,k,j0,Lng,Lng1,Lng2,M:BYTE;
S,S1,S2:STRING;
BEGIN
Write('Input string = '); ReadLn(S);
Lng:=Length(S);
j:=0;
FOR i:=1 TO Lng DO
IF (ORD(S[i])>=65) AND (ORD(S[i])<=90) THEN
BEGIN
INC(j);
S1[j]:=S[i];
END ELSE
IF (ORD(S[i])>=97) AND (ORD(S[i])<=122) THEN
BEGIN
INC(j);
S1[j]:=CHR(ORD(S[i])-32);
END;
Lng1:=j;
FOR j:=1 TO Lng1 DO
WRITE(S1[j]);
WRITELN;
M:=255;
Lng2:=Lng1;
FOR i:=1 TO Lng1 DO
BEGIN
FOR j:=1 TO Lng2 DO
IF ORD(S1[j])<=M THEN
BEGIN
M:=ORD(S1[j]);
j0:=j;
END;
S2[i]:=S1[j0];
IF j0<Lng2 THEN
FOR k:=j0+1 TO Lng2 DO
S1[k-1]:=S1[k];
DEC(Lng2);
M:=255;
END;
FOR i:=1 TO Lng1 DO
Write(S2[i]);
READLN;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070