Помогите с корректировкой

Тема в разделе "Pascal and Delphi", создана пользователем Alerq, 14 ноя 2010.

  1. Alerq

    Alerq Гость

    Текст проги
    Код (Delphi):
    PROGRAM p1;
    uses crt;
    var
    A:array['A'..'Z'] OF INTEGER;
    C,I,D:CHAR;
    Z:INTEGER;
    BEGIN
    RANDOMIZE;
    CLRSCR;
    REPEAT
    C:=READKEY;
    IF C IN ['A'..'Z'] THEN
    BEGIN
    WRITE(С);
    A[C]:=A[C]+1;
    END;
    UNTIL (C=#13);
    WRITELN;
    FOR I:='A' TO 'Z' DO
    BEGIN
    Z:=RANDOM(15)+1;
    TEXTCOLOR(Z);
    FOR I:='A' TO 'Z' DO
    BEGIN
    IF A[ORD(I)+1]>A[ORD(I)] THEN
    BEGIN
    D:=A[I];
    A[I]:=A[I+1];
    A[I+1]:=D;
    END;
    END;
    WRITELN('a[',I,']=',A[I]);
    END;
    READLN;
    END.
    Должна считывать набранные с клавы буквы считать их и выводить результате в порядке убывания, но выбивает ошибку в цикле сортировки. Помогите исправить пожалуйста.
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    зачем 2й цикл по i внутри 1-го?

    с индексами что-то напутали в иф и смене значений? ORD лишнее?
    PS: Если массив до 'Z' и вы берете последующий элемент, то цикл надо не до 'Z', а до предыдущего.
    Если надо получить символ, то что-то типа Chr(Ord(i) + 1).
    Но вообще-то Succ, Pred вроде работали с перечислимыми типами - так будет красивей:
    Код (Text):
    FOR I:='A' TO Pred('Z') DO
    IF A[Succ(I)]>A[I] THEN
    и т.д. аналогично поправить дальше...
     
Загрузка...
Похожие Темы - Помогите корректировкой
  1. limbra
    Ответов:
    3
    Просмотров:
    44
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    98
  3. Ruska132
    Ответов:
    34
    Просмотров:
    264
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    147
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    62

Поделиться этой страницей