Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2012, 23:56   #1
olegass
 
Регистрация: 24.10.2012
Сообщений: 5
Стрелка Используя стек, проверить правильность вложений циклов

Подскажите что-нибудь по написанию програмки.Ваш вечный должник, olegass.
Переписать файл с исходным текстом так, чтобы операторы
цикла каждого последующего уровня вложения были сдвинуты на
две позиции вправо по сравнению с предыдущим уровнем

В файле находится текст программы на basic. Используя стек, проверить правильность вложений циклов в программе.
# FOR ID=
...............
...............
# NEXT ID ,
Думаю использовать старый форматер, но с изменением на нужные циклы.
Код:
PROCEDURE Form;
  BEGIN
    A1 := A2;
    A2 := A3;
    A3 := A4;
    A4 := A5;
  END;
BEGIN
  A1 := ' ';
  A2 := ' ';
  A3 := ' ';
  A4 := ' ';
  A5 := ' ';
  WHILE NOT EOF
  DO
    BEGIN
      FORM;
      READ(A5);
      IF A5 <> ' '
      THEN
        BEGIN
          IF A5 = 'E'
          THEN
            BEGIN
              FORM;
              READ(A5);
              IF A5 = 'N'
              THEN
                BEGIN
                  FORM;
                  READ(A5);
                  IF  A5 = 'D'
                  THEN
                    BEGIN
                      WRITE;
                      WRITE(A3, A4, A5)
                    END
                  ELSE
                    WRITE(A3, A4, A5);
                END
              ELSE
                WRITE(A4, A5);
            END
          ELSE
            WRITE(A5);
                IF A1 = 'B'
                THEN
                  IF A2 = 'E'
                  THEN
                    IF A3 = 'G'
                    THEN
                      IF A4 = 'I'
                      THEN
                        IF A5 = 'N'
                        THEN
                          BEGIN
                            WRITE;
                            WRITE('  ')
                          END;
          IF A5 = ';'
          THEN
            BEGIN
              WRITE;
              WRITELN('  ')
            END;
          IF (A5 = ',') or (A5 = '=')
          THEN
            WRITE(' ');
          IF A5 = '{'
          THEN
            BEGIN
              C := A5;
              WHILE C <> '}'
              DO
                BEGIN
                  READ(C);
                  WRITE(C)
                END;
              WRITELN('  ');
              A5 := C;
            END;
          IF A5 = '}'
          THEN
            BEGIN
              WRITE;
              WRITELN('  ')
            END
        END
    END
END.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 25.10.2012 в 10:32.
olegass вне форума Ответить с цитированием
Старый 31.10.2012, 00:39   #2
olegass
 
Регистрация: 24.10.2012
Сообщений: 5
По умолчанию

Неужели никто не разбирается с массивами и стеками.
На языках DELPHI или Pascal?
olegass вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить правильность скобок (С++) Cheat Помощь студентам 24 03.02.2013 19:34
Проверить правильность решения(ассемблер) Нина93 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 26.12.2010 17:42
Проверить на правильность задачу sam5213 Паскаль, Turbo Pascal, PascalABC.NET 0 23.12.2010 18:28
TObjectList. Проверить правильность использования Roof Общие вопросы Delphi 0 05.07.2010 17:04
Нужно проверить на правильность программу Killdgedan Помощь студентам 3 26.05.2009 00:45