Как исправить ошибку
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.9] |
|
|
Как исправить ошибку
|
Сообщ.
#1
,
|
|
|
|
Есть код. Говорит ошибка
строка 69 (предпоследняя строка)Ожидалось ';' ![]() ![]() 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. |
|
Сообщ.
#2
,
|
|
|
|
> UNTIL FALSE;
А действительно, что ты хотел сказать этим оператором? |
|
Сообщ.
#3
,
|
|
|
|
Цитата andriano @ А действительно, что ты хотел сказать этим оператором? Бесконечный цикл. Добавлено После строки ![]() ![]() end; { КОНЕЦ ТРЕТЬЕЙ ЗАДАЧИ } не хватает end, который закроет ![]() ![]() 3: BEGIN { ТРЕТЬЯ ЗАДАЧА } P.S. пиши код с отступами. |
|
Сообщ.
#4
,
|
|
|
|
Код был написан с отступами. Только, чтобы это увидеть, надо использовать тэги подсветки, а не цитаты...
yana33311, кнопка "CODE=pas", а не QUOTE. Цитата Polinom2686 @ Этого недостаточно. Тут вся структура программы порушена. Что за переменная e в 25-ой строке, где она описана? Есть функция exp, переменной e готовой нет. Как может компилироваться строка №39 (Case K Of), когда K описана как Real? Что за описание переменных внутри Case-а (49 строка)?не хватает end, который закроет Ошибок гораздо больше на самом деле (лень проверять в TP, проверил в FPC): ![]() ![]() 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 (предпоследняя строка)Ожидалось ';' |
|
Сообщ.
#5
,
|
|
|
|
Цитата Polinom2686 @ Бесконечный цикл. Что это именно бесконечный цикл - понятно. Непонятно - зачем. |
|
Сообщ.
#6
,
|
|
|
|
Цитата andriano @ Что это именно бесконечный цикл - понятно. Непонятно - зачем. Все, что между Repeat и Until, должно повторятся до тех по пока пользователь сам не захочет выйти из программы. |
|
Сообщ.
#7
,
|
|
|
|
Цитата Polinom2686 @ Все, что между Repeat и Until, должно повторятся до тех по пока пользователь сам не захочет выйти из программы. Разве это называется "бесконечный цикл"? Это называется "цикл по условию". ![]() ![]() repeat ... until пользователь_захотел_выйти_из_программы; |
|
Сообщ.
#8
,
|
|
|
|
Цитата andriano @ Разве это называется "бесконечный цикл"? Это называется "цикл по условию". Да, это цикл ![]() ![]() Repeat ... Until <Условие> с постусловием. А это ![]() ![]() Repeat ... Until FALSE бесконечный цикл с постусловием. |
|
Сообщ.
#9
,
|
|
|
|
Цитата Polinom2686 @ здесь использовать глупо. Гораздо корректнее было бы написатьбесконечный цикл с постусловием. ![]() ![]() repeat // ... readln (Selector); case Selector of // ... end; until Selector = 4; Все-таки, может дождемся автора, узнаем, что у него за компилятор, что уже исправлено, интересует ли его вообще эта программа до сих пор, а не будем углубляться в словоблудие и терминологию? andriano, в первую очередь это касается тебя... |