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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2015, 22:19   #1
orandzheviyman
Пользователь
 
Регистрация: 11.11.2013
Сообщений: 74
По умолчанию Некорректная работа

Здравствуйте, программа должна проверять на соответствие открывающихся и закрывающихся скобок с помощью стека.
Код:
PROCEDURE FromStek ();
BEGIN
    New (pAddt);
    if PHead <> NIL then begin
        PHead := PHead^.Next;
        dispose (pAddt);
                         end
            else
                writeln ('Error! Stek pust, lishnyaya zakrivayushaya skobka');
END;

BEGIN
    assign (t, 'stroka.txt');
    reset (t);
    writeln ('You check the string:  '); writeln ();
    while not EOF (t) do begin
        read (t, ch);
        write (ch);
                         end;
    close (t);
    reset (t);
    writeln ();
    
    while not EOF (t) do begin
        read (t, ch);
        if (ch = '(') or (ch = '{') or (ch = '[') then
            In_Stek (ch)
                else begin
        case ch of
            ')' : begin
                      if (PHead <> NIL) and (PHead^.Data = '(') then
                          FromStek () else begin
                                writeln ();
                                writeln ('Error! Oshibka v ()');
                                exit
                                           end;
                  end;
            '}' : begin
                      if (PHead <> NIL) and (PHead^.Data = '{') then
                          FromStek () else begin
                                writeln ();
                                writeln ('Error! Oshibka v {}');
                                exit
                                           end;
                  end;
            ']' : begin
                      if (PHead <> NIL) and (PHead^.Data = '[') then
                          FromStek () else begin
                                writeln ();
                                writeln ('Error! Oshibka v []');
                                exit
                                           end;
                  end;
            end;
        end;
                        end;
    writeln ();
    if PHead <> NIL then begin
        writeln ('Error! Stek ne pust, gde-to est nezakritaya skobka');
            while pAddt <> NIL do begin
                pHead := pAddt^.Next;
                dispose (pAddt);
                pAddt:=pHead;
                                  end;
                         end
            else
                writeln ('Complete! All is ok!');   
    close (t);
END.
Помогите, пожалуйста.
orandzheviyman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректная работа браузеров Vekster Софт 9 17.04.2013 14:04
Си. Структуры - некорректная работа. Vitany Помощь студентам 1 20.01.2013 18:25
Некорректная работа класса InKo1 Общие вопросы C/C++ 7 23.12.2012 02:31
Некорректная работа сайта. t1umxo PHP 5 09.10.2012 13:17
Некорректная работа в DLL Shouldercannon Общие вопросы Delphi 5 04.01.2012 19:29