• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Вывести в алфавитном порядке все латинские буквы

  • Автор темы Автор темы Bingooo
  • Дата начала Дата начала

Bingooo

Ученик
Регистрация
20 Дек 2008
Сообщения
3
Реакции
0
Баллы
0
Вывести в алфавитном порядке все латинские буквы

Задана строка символов. Вывести в алфавитном порядке все латинские буквы, встречающиеся в строке. Все выводимые буквы преобразовать в прописные. Например, задана строка: «Я учусь программировать на 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)>=65) AND (ORD(S)<=90) THEN
BEGIN
INC(j);
S1[j]:=S;
END ELSE
IF (ORD(S)>=97) AND (ORD(S)<=122) THEN
BEGIN
INC(j);
S1[j]:=CHR(ORD(S)-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:=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);
READLN;
END.
 
Назад
Сверху