Вывести в алфавитном порядке все латинские буквы
Задана строка символов. Вывести в алфавитном порядке все латинские буквы, встречающиеся в строке. Все выводимые буквы преобразовать в прописные. Например, задана строка: «Я учусь программировать на turbo pascal». Результат работы программы: AABCLOPRSTU
|
надо написать в ПАСКАЛЕ!!
|
А в чем проблема-то?
Алгоритм решения: Строковой переменной присвойте строку из всех латинских символов В цикле анализируйте каждый символ из этой строки и выстраивайте по порядку (можно заменой символов, можно введением новой строковой переменной, можно через массив) Каждому элементу строки присвойте значение его символа в верхнем регистре Выводите результат на экран. |
:-D :D :D Эх, Алексей.... А решение - то где?
Пост #2 - в ПАСКАЛЕ!! ;-) |
Если еще не поздно, то вот. Отлажено.
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. |
Часовой пояс GMT +4, время: 04:27. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.