На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Как исправить ошибку
    Есть код. Говорит ошибка
    строка 69 (предпоследняя строка)Ожидалось ';'

    ExpandedWrap disabled
      PROGRAM EXAMPLE;
      USES CRT;
      VAR X1,A1,Y1:REAL;             {  ОПИСАНИЕ  ПЕРВОЙ ЗАДАЧИ  }
          K:REAL;   {  ОПИСАНИЕ  ВТОРОЙ ЗАДАЧИ  }
          X3,Y3,Z:REAL;             {  ОПИСАНИЕ  ТРЕТЬЕЙ ЗАДАЧИ  }
          SELECTOR:BYTE;
      BEGIN
         REPEAT
            CLRSCR;                  {  ОЧИСТКА   ЭКРАНА       }
            WRITELN('   ВВЕДИТЕ  НОМЕР  ЗАДАЧИ  СОГЛАСНО  МЕНЮ : ');
            WRITELN;
            WRITELN(' 1.........ЗАДАЧА 1            ');
            WRITELN(' 2.........ЗАДАЧА 2            ');
            WRITELN(' 3.........ЗАДАЧА 3            ');
            WRITELN(' 4.........ВЫХОД ИЗ ПРОГРАММЫ  ');
            READLN(SELECTOR);
       
            CASE  SELECTOR  OF
       
      1:  BEGIN      {  ПЕРВАЯ  ЗАДАЧА   }
                      CLRSCR;
                      WRITELN('ВВЕДИТЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА  X  И  A ');
                      READLN(X1,A1);
                      IF  X1<2*A1  THEN  Y1:=-sqrt(sqr(a1)-sqr(x1-a1))
                                 ELSE  Y1:=a1*(1-exp((a1-x1)*ln(e)));
                      WRITELN('A=',A1:5:3,' X=',X1:5:3,' Y=',Y1:5:3);
                      WRITELN;WRITELN;
       WRITELN('НАЖМИТЕ ENTER ДЛЯ ПРОДОЛЖЕНИЯ');
      READLN;
      END;       {  КОНЕЦ  ПЕРВОЙ  ЗАДАЧИ  }
                       2:  BEGIN      {  ВТОРАЯ   ЗАДАЧА         }
                      CLRSCR;
                      WRITELN('ВВЕДИТЕ  ВЕЩЕСТВЕННЫЕ ЧИСЛА А  И  Х  ');
                      READLN(K);
                      CASE  K  OF
                      'a'..'z','A'..'Z':write('Латинский');
      'а'..'я', 'ё','А'..'Я':write('Русский');
      '0'..'9':write('Цифра');
                                       END;  { CASE }
                                     WRITELN;WRITELN;
       WRITELN('НАЖМИТЕ ENTER ДЛЯ ПРОДОЛЖЕНИЯ');
                      READLN;
                   END;       {  КОНЕЦ ВТОРОЙ  ЗАДАЧИ   }
       
       
       
               3:  BEGIN      {  ТРЕТЬЯ   ЗАДАЧА         }
                      CLRSCR;
                                var x,y:integer;
      begin
        Write('ВВЕДИТЕ КООРДИНАТЫ ТОЧКИ  X: ');
        ReadLn(x);
        Write('ВВЕДИТЕ КООРДИНАТЫ ТОЧКИ  Y: ');
        ReadLn(y);
        
        if ( (x > 3) or (x < -3) ) then WriteLn('ТОЧКА НЕ ПРИНАДЛЕЖИТ ОБЛАСТИ')
        else if ( (y > 1 ) or (y < -2) ) then WriteLn('ТОЧКА НЕ ПРИНАДЛЕЖИТ ОБЛАСТИ')
        else if ( (x < -1) and (y < 0) ) then WriteLn('ТОЧКА НЕ ПРИНАДЛЕЖИТ ОБЛАСТИ')
        else if ( (x > 1)  and (y < 0) ) then WriteLn('ТОЧКА НЕ ПРИНАДЛЕЖИТ ОБЛАСТИ')
        else WriteLn('ТОЧКА ПРИНАДЛЕЖИТ ОБЛАСТИ');
        WRITELN;WRITELN;
                WRITELN('НАЖМИТЕ ENTER ДЛЯ ПРОДОЛЖЕНИЯ');
        Readln;
      end; {  КОНЕЦ  ТРЕТЬЕЙ  ЗАДАЧИ  }
       
       
              4:  EXIT;      {  ВЫХОД  ИЗ  ПРОГРАММЫ }
            END;   {  CASE  }
         UNTIL  FALSE;
      END.
    Сообщение отредактировано: volvo877 -
      > UNTIL FALSE;

      А действительно, что ты хотел сказать этим оператором?
        Цитата andriano @

        А действительно, что ты хотел сказать этим оператором?


        Бесконечный цикл.

        Добавлено
        После строки
        ExpandedWrap disabled
          end; { КОНЕЦ ТРЕТЬЕЙ ЗАДАЧИ }

        не хватает end, который закроет
        ExpandedWrap disabled
          3: BEGIN { ТРЕТЬЯ ЗАДАЧА }


        P.S. пиши код с отступами.
        Сообщение отредактировано: Polinom2686 -
          Код был написан с отступами. Только, чтобы это увидеть, надо использовать тэги подсветки, а не цитаты...

          yana33311, кнопка "CODE=pas", а не QUOTE.

          Цитата Polinom2686 @
          не хватает end, который закроет
          Этого недостаточно. Тут вся структура программы порушена. Что за переменная e в 25-ой строке, где она описана? Есть функция exp, переменной e готовой нет. Как может компилироваться строка №39 (Case K Of), когда K описана как Real? Что за описание переменных внутри Case-а (49 строка)?

          Ошибок гораздо больше на самом деле (лень проверять в TP, проверил в FPC):
          ExpandedWrap disabled
            test.pp(25,66) Error: Identifier not found "e"
            test.pp(35,32) Error: Ordinal expression expected
            test.pp(36,31) Error: Constant and CASE types do not match
            test.pp(36,40) Error: Constant and CASE types do not match
            test.pp(36,40) Error: duplicate case label
            test.pp(37,15) Error: Constant and CASE types do not match
            test.pp(37,15) Error: duplicate case label
            test.pp(37,20) Error: Constant and CASE types do not match
            test.pp(37,29) Error: Constant and CASE types do not match
            test.pp(37,29) Error: duplicate case label
            test.pp(38,15) Error: Constant and CASE types do not match
            test.pp(38,15) Error: duplicate case label
            test.pp(49,33) Error: Illegal expression
            test.pp(49,37) Fatal: Syntax error, ";" expected but "identifier X" found
            test.pp(0) Fatal: Compilation aborted

          Я не думаю, что какой-то компилятор Паскаля проглотит все это, и оставит только
          Цитата yana33311 @
          строка 69 (предпоследняя строка)Ожидалось ';'
            Цитата Polinom2686 @
            Бесконечный цикл.

            Что это именно бесконечный цикл - понятно. Непонятно - зачем.
              Цитата andriano @

              Что это именно бесконечный цикл - понятно. Непонятно - зачем.

              Все, что между Repeat и Until, должно повторятся до тех по пока пользователь сам не захочет выйти из программы.
                Цитата Polinom2686 @
                Все, что между Repeat и Until, должно повторятся до тех по пока пользователь сам не захочет выйти из программы.

                Разве это называется "бесконечный цикл"?
                Это называется "цикл по условию".
                ExpandedWrap disabled
                  repeat
                  ...
                  until пользователь_захотел_выйти_из_программы;
                  Цитата andriano @

                  Разве это называется "бесконечный цикл"?
                  Это называется "цикл по условию".


                  Да, это цикл
                  ExpandedWrap disabled
                    Repeat
                    ...
                    Until <Условие>

                  с постусловием.

                  А это
                  ExpandedWrap disabled
                    Repeat
                    ...
                    Until FALSE

                  бесконечный цикл с постусловием. :)
                    Цитата Polinom2686 @
                    бесконечный цикл с постусловием.
                    здесь использовать глупо. Гораздо корректнее было бы написать
                    ExpandedWrap disabled
                      repeat
                         // ...
                         readln (Selector);
                         case Selector of
                         // ...
                         end;
                      until Selector = 4;
                    Да эту программу вообще проще с нуля переписать, чем править ошибки...

                    Все-таки, может дождемся автора, узнаем, что у него за компилятор, что уже исправлено, интересует ли его вообще эта программа до сих пор, а не будем углубляться в словоблудие и терминологию? andriano, в первую очередь это касается тебя...
                    Сообщение отредактировано: volvo877 -
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0673 ]   [ 15 queries used ]   [ Generated: 13.11.25, 15:20 GMT ]