Как исправить ошибку в паскале ожидался оператор

Pascal. Ошибка в простой задаче: пишет ожидался оператор, а встретил else.

program MaxIn_3;

var
    x, y, z, res: real;

begin
    writeln('Введите целые числа: X, Y, Z');
    readln(x, y, z);
    res := x + y + z;
    if (res < 1) then
    begin
        if (x > y) and (x <> y) then
        begin
            y := (y + z) / 2;
            writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
        end
            else
            begin
            if (y > x) and (x <> y) then
                 begin
                    x := (y + z) / 2;
                    writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
                 end
                 else
                 begin
                 Writeln('X=Y,',x,'=',y);
                 end;
            **end;// - если убрать здесь ; то пишет MaxIn_3.pas(29) : Встречено 'else', а ожидалось ';'**

         **else** //вот здеся ошибка, видимо мне мозгов не хватает понять

            begin
            if (x>y) and (x <> y) then
             begin
             x:=x*y;
             writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
             end
                else
                 begin
                 if (y>x) and (x <> y) then
                        begin
                        y:=x*y;
                        writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
                        end
                            else
                            begin
                            Writeln('X=Y,',x,'=',y);
                            end;
                 end;
            end;
    end;

end.

Среда программирования PascalABC.NET, по моей блок-схеме все верно, разделы операторов вроде все на месте, в чем может быть ошибка? Или у меня косоглазие просто?

Dmitry37

1 / 1 / 0

Регистрация: 06.12.2011

Сообщений: 15

1

Исправить ошибку «ожидался оператор»

10.01.2012, 15:13. Показов 32618. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Program vector;

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Uses crt;
Var i,j,k:byte; x:array[1..100] of real;
    y:array[1..100,1..100] of real;
Begin
 Clrscr;
 Write('введите k='); readln(k);
 For i:=1 to k do
  begin write('x[',i:2,']=');read(x[i]);end;
 For i:=1 to k do
  For j:=1 to k do
  y[i,j]:=cos(x[i])*sin(j*x[j]);
  Writeln('элементы матрицы y')
For i:=1 to k do
  begin
  for j:=1 to k do write(' ',y[i,j]:0:4);
  writeln;
   end;
  Readln;
 End.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

10.01.2012, 15:13

Ответы с готовыми решениями:

Исправить ошибку «ожидался оператор»
Program okryjnost;
Uses crt;
Var
a,b,x,y,p1,p2,f1,f2,m1,m2,p,f,m,R: real;
n:integer;
Begin…

Ошибка «Ожидался оператор» при вычислении выражения
Program di;
var x,y,z,t:real;
Begin
writeln(‘Введите х’);
readln(x);…

Поиск суммы положительных четных чисел и ошибка «Ожидался оператор»
Выдает ошибку,где&quot;у&quot;, Встречено ‘:=’, а ожидался оператор

var q:real;
t,i,y:integer;…

Массив записей о городах: «ожидался оператор»
Помогите, пожалуйста, в 14 строчке при попытке запустить программу вылезает ошибка: &quot;ожидался…

3

Puporev

Почетный модератор

64288 / 47587 / 32739

Регистрация: 18.05.2008

Сообщений: 115,181

10.01.2012, 15:17

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Исправить очень сложно, примерно так.

Pascal
1
Writeln('элементы матрицы y');

точку с запятой поставить.



1



1852 / 1174 / 190

Регистрация: 27.03.2009

Сообщений: 4,514

10.01.2012, 15:17

3

точку с запятой поставь после Writeln(‘элементы матрицы y’)



0



1 / 1 / 0

Регистрация: 06.12.2011

Сообщений: 15

10.01.2012, 15:20

 [ТС]

4

Спасибо, согласен, тупанул))



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

10.01.2012, 15:20

4

Операторы языков программирования — это ключевые элементы любой программы. Они представляют собой инструкции, которые диктуют компьютеру, что делать в том или ином случае. Один из таких операторов — «ожидался» — вызывает много вопросов у начинающих программистов на языке Pascal.

Оператор «ожидался» срабатывает в том случае, когда компилятор Pascal ожидает определенного символа или слова, но находит другой. Это сообщение об ошибке, которое возникает во время компиляции программы.

В данной статье мы рассмотрим несколько примеров использования оператора «ожидался» на языке Pascal и объясним, какие ошибки могут возникнуть в каждом случае. Также мы рассмотрим, как можно избежать появления ошибок, связанных с этим оператором.

Содержание

  1. Что такое оператор в Pascal?
  2. Определение и общая суть
  3. Примеры использования оператора в Pascal
  4. Детальное объяснение работы оператора в Pascal
  5. Вопрос-ответ
  6. Какую роль играет оператор Pascal в программировании?
  7. Можно ли использовать оператор Pascal в других языках программирования?

Что такое оператор в Pascal?

Оператор в Pascal — это основной строительный блок программы, который позволяет выполнять действия с данными и управлять потоком исполнения. Каждая программа на Pascal состоит из набора операторов, которые выполняются последовательно или условно, в зависимости от логики программы.

Операторы в Pascal могут быть различными: арифметическими, логическими, условными, циклическими и т.д. Каждый оператор имеет свой набор правил и особенностей работы. Например, арифметический оператор позволяет производить математические операции с числами, а условный оператор позволяет выбирать между двумя вариантами действия в зависимости от значения определенной переменной.

Операторы в Pascal могут быть также объединены в блоки, что позволяет легко управлять их выполнением. Например, блок операторов может содержать несколько условных операторов, которые проверяют различные переменные и выполняют соответствующие действия.

Операторы в Pascal могут быть записаны в различных форматах: в одну строку или в несколько строк с отступами. В любом случае, основная идея оператора остается неизменной — это действие, которое выполняется над данными в программе.

Определение и общая суть

Оператор в языке программирования Pascal представляет собой конструкцию, которая используется для выполнения определенных действий или ветвления кода программы в зависимости от заданных условий.

Операторы являются основными элементами любой программы на языках программирования. Они служат для установления правил выполнения кода и гарантирования того, что программа будет работать правильно и предсказуемо.

В Pascal существует несколько типов операторов, включая условные операторы if-then-else и case, циклические операторы while и for, а также операторы присваивания и ввода-вывода.

Использование операторов является одним из основных компонентов программирования на Pascal и помогает разработчикам создавать эффективный и легко читаемый код.

Кроме того, понимание работы операторов в Pascal может быть полезно для улучшения навыков программирования и позволит создавать более сложные и мощные приложения.

Примеры использования оператора в Pascal

1. Оператор if

Оператор if используется для выполнения определенного блока кода, если условие, указанное в скобках, является true. Например:

if a > b then

    writeln(‘a is greater than b’);

end;

Этот код выполнит указанный блок, только если значение переменной a больше, чем b.

2. Оператор while

Оператор while используется для выполнения определенного блока кода, пока условие, указанное в скобках, является true. Например:

while x < 10 do

    begin

        writeln(‘x is: ‘, x);

        x := x + 1;

    end;

Этот код выполнит указанный блок, пока значение переменной x меньше, чем 10.

3. Оператор for

Оператор for используется для выполнения определенного блока кода определенное количество раз. Например:

for i := 1 to 10 do

    begin

        writeln(‘i is: ‘, i);

    end;

Этот код выполнит указанный блок 10 раз. Значение переменной i будет увеличиваться с каждой итерацией.

4. Оператор case

Оператор case используется для выполнения определенного блока кода, основываясь на значении переменной. Например:

case day of

    1: writeln(‘Monday’);

    2: writeln(‘Tuesday’);

    3: writeln(‘Wednesday’);

    4: writeln(‘Thursday’);

    5: writeln(‘Friday’);

    6: writeln(‘Saturday’);

    7: writeln(‘Sunday’);

    else writeln(‘Invalid value’);

end;

Этот код выполнит блок, основываясь на значении переменной day. Если значение day равно 1, выведется «Monday». Если равно 2 — «Tuesday», и т.д. Если значение day не равно ни одному из указанных значений, выведется «Invalid value».

Детальное объяснение работы оператора в Pascal

Оператор в Pascal – это инструкция, которая управляет выполнением операций и изменяет состояние программы. Операторы — это ключевые слова, встроенные в язык программирования, такие как if, while, for, repeat и т.д.

If – условный оператор, он проверяет, верно ли условие и выполняет определенный блок кода. Например, если условие «X равно Y» истинно, то выполнится определенный блок кода. Если условие ложно, то выполнится другой блок кода.

While – циклический оператор, он выполняет блок кода, пока верно указанное условие. Например, пока «X меньше 10» выполняется блок кода. Как только «X» достигнет значения 10, цикл прервётся.

For – циклический оператор, он используется для выполнения операций в цикле от начального до конечного значения. Например, для переменной «X» от 1 до 10, выполнится определенный блок кода в каждом цикле.

Repeat – циклический оператор, он выполняет блок кода несколько раз и по завершению проверяет условие. Если оно истинно, то цикл закончится, если ложно, цикл будет продолжаться.

  • Нужно помнить, что операторы в Pascal должны завершаться точкой с запятой (;).
  • Условия в операторах могут быть выражены с помощью логических операторов, таких как and, or, not и т.д.
  • Операторы могут быть вложены друг в друга, что позволяет более гибко управлять выполнением программы.
Оператор Пример Описание
if if X = 10 then writeln(‘X равно 10’); Условный оператор, если условие истинно, выполняется блок кода.
while while X < 10 do begin X:= X + 1; writeln(X); end; Циклический оператор, пока условие истинно, выполняется блок кода.
for for i:= 1 to 10 do writeln(i); Циклический оператор, используется для выполнения операций в цикле от начального до конечного значения.
repeat repeat writeln(‘X равно: ‘, X); X:= X + 1; until X = 10; Циклический оператор, выполняет блок кода несколько раз и по завершению проверяет условие.

Вопрос-ответ

Какую роль играет оператор Pascal в программировании?

Оператор Pascal — это условный оператор, который позволяет выполнять различные действия, в зависимости от того, выполняется ли определенное условие или нет. Он применяется в программировании для построения различных алгоритмов, решения задач и программных проектов. В основном этот оператор используется для сравнения значений переменных и выполнения различных действий в зависимости от результата этого сравнения.

Можно ли использовать оператор Pascal в других языках программирования?

Оператор Pascal — это конструкция, характерная для языка программирования Pascal. Однако, существуют и другие языки программирования, которые используют условные операторы, имеющие схожий синтаксис и предназначенные для выполнения аналогичных задач. Например, в языке С существует оператор «if», имеющий схожий синтаксис с оператором Pascal. Также есть языки, которые расширяют функционал оператора Pascal и добавляют дополнительные возможности и опции.

Pascal. Ошибка в простой задаче: пишет ожидался оператор, а встретил else.

program MaxIn_3;

var
    x, y, z, res: real;

begin
    writeln('Введите целые числа: X, Y, Z');
    readln(x, y, z);
    res := x + y + z;
    if (res < 1) then
    begin
        if (x > y) and (x <> y) then
        begin
            y := (y + z) / 2;
            writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
        end
            else
            begin
            if (y > x) and (x <> y) then
                 begin
                    x := (y + z) / 2;
                    writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
                 end
                 else
                 begin
                 Writeln('X=Y,',x,'=',y);
                 end;
            **end;// - если убрать здесь ; то пишет MaxIn_3.pas(29) : Встречено 'else', а ожидалось ';'**

         **else** //вот здеся ошибка, видимо мне мозгов не хватает понять

            begin
            if (x>y) and (x <> y) then
             begin
             x:=x*y;
             writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
             end
                else
                 begin
                 if (y>x) and (x <> y) then
                        begin
                        y:=x*y;
                        writeln('X=', x, ',', 'Y=', y, ',', 'Z=', z, '.');
                        end
                            else
                            begin
                            Writeln('X=Y,',x,'=',y);
                            end;
                 end;
            end;
    end;

end.

Среда программирования PascalABC.NET, по моей блок-схеме все верно, разделы операторов вроде все на месте, в чем может быть ошибка? Или у меня косоглазие просто?

Dmitry37

1 / 1 / 0

Регистрация: 06.12.2011

Сообщений: 15

1

Исправить ошибку «ожидался оператор»

10.01.2012, 15:13. Показов 30200. Ответов 3

Метки нет (Все метки)


Program vector;

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Uses crt;
Var i,j,k:byte; x:array[1..100] of real;
    y:array[1..100,1..100] of real;
Begin
 Clrscr;
 Write('введите k='); readln(k);
 For i:=1 to k do
  begin write('x[',i:2,']=');read(x[i]);end;
 For i:=1 to k do
  For j:=1 to k do
  y[i,j]:=cos(x[i])*sin(j*x[j]);
  Writeln('элементы матрицы y')
For i:=1 to k do
  begin
  for j:=1 to k do write(' ',y[i,j]:0:4);
  writeln;
   end;
  Readln;
 End.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

10.01.2012, 15:13

Ответы с готовыми решениями:

Исправить ошибку «ожидался оператор»
Program okryjnost;
Uses crt;
Var
a,b,x,y,p1,p2,f1,f2,m1,m2,p,f,m,R: real;
n:integer;
Begin…

Ошибка «Ожидался оператор» при вычислении выражения
Program di;
var x,y,z,t:real;
Begin
writeln(‘Введите х’);
readln(x);…

Поиск суммы положительных четных чисел и ошибка «Ожидался оператор»
Выдает ошибку,где&quot;у&quot;, Встречено ‘:=’, а ожидался оператор

var q:real;
t,i,y:integer;…

Массив записей о городах: «ожидался оператор»
Помогите, пожалуйста, в 14 строчке при попытке запустить программу вылезает ошибка: &quot;ожидался…

3

Puporev

Почетный модератор

64270 / 47569 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

10.01.2012, 15:17

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Исправить очень сложно, примерно так.

Pascal
1
Writeln('элементы матрицы y');

точку с запятой поставить.

1

1851 / 1173 / 190

Регистрация: 27.03.2009

Сообщений: 4,514

10.01.2012, 15:17

3

точку с запятой поставь после Writeln(‘элементы матрицы y’)

0

1 / 1 / 0

Регистрация: 06.12.2011

Сообщений: 15

10.01.2012, 15:20

 [ТС]

4

Спасибо, согласен, тупанул))

0

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

10.01.2012, 15:20

4

program ideal;
uses crt;
var
 k, n, m, t, p, x, y, z, s, l, q, a, b, c, e, i, TTT:real;
 d:char;
 soglasie, sogl, formuly, zzz:integer;
 
function FF(a,l:real):real;
Begin
l:=t*100;
a:=p/l;
k:=a*2;
FF:=k;
end;
 
Begin
Write('Ваше имя и фамилия: ');
readln(d);
// Приветствие
Writeln('Здравствуйте! Уважаемая ', d);
writeln('Считаю нужным заострить ваше внимание на том, что все данные, которые вы получите при использовании этой программы являются примерными.');
Writeln('Если вы хотите пройти тест введите 1, если нет, то 0.');
write('Ваш ответ: ');
readln(soglasie);
if soglasie=0 then
writeln('Тогда я вынужден попрощаться!');
if soglasie=1 then
Write('Ваш возраст: ');
readln(e);
write('Обхват бюста: ');
readln(k);
write('Обхват талии: ');
readln(n);
write('Обхват бедер: ');
readln(m);
write('Рост: ');
readln(t);
write('Вес: ');
readln(p);
write('Размер груди: ');
readln(s);
write('Длинна ног: ');
readln(l);
write('Размер ноги: ');
readln(q);
x:=k*m*t;
y:=n*n*p;
z:=x/y;
a:=s*k*p;
b:=l*q;
c:=a/b;
i:=z/c*100;
writeln('Оценка красоты: ', round(i));
write('Хотите ли узнать, какой вес и рост нормален в вашем возрасте? да = 1, нет = 0');
readln(sogl);
if sogl=0 then  writeln(' ');
if sogl=1 then writeln('Каким способом подсчета вы хотите воспользоваться?');
               writeln('"Индекс массы тела" = 1');
               writeln('"При помощи таблиц" = 2');
               writeln('"Рост+возраст" = 3');
               writeln('Все варианты последовательно = 0');
               writeln('Ваш ответ: ');
               readln(formuly);
if formuly=1 then
write('Введите данное (', k, ') число еще раз: ');
readln(TTT);
if TTT<=18 then writeln('Ваш вес является недостаточным.');
if (TTT>18) and (k<=25) then writeln('Ваш вес вполне нормальный. Это значит, что нет смысла его сбрасывать, но и набирать не нужно. Держите показатель на одном и том же <уровне>.');
if (TTT>25) and (k<35) then writeln('Пора уже поработать с фигуркой, так как возрастает риск появления ожирения. Худейте, но делайте это без особого фанатизма!');
if TTT>=35 then writeln('Очень жаль, но у вас:. Ожирение! Необходима помощь и консультация специалистов.');
//нормальный рост при данном возрасте
writeln('Нормальный рост в вашем возрасте (', e, ') составляет: ');
if e=0 then writeln('до 74 см');
if e=1 then writeln('до 86.4 см');
if e=2 then writeln('до 98 см');
if e=3 then writeln('до 101 см');
if e=4 then writeln('до 104 см');
if e=5 then writeln('до 110.5 см');
if e=6 then writeln('до 118 см');
if e=7 then writeln('до 125 см');
if e=8 then writeln('до 131.6 см');
if e=9 then writeln('до 136.5 см');
if e=10 then writeln('до 142.5 см');
if e=11 then writeln('до 148.6 см');
if e=12 then writeln('до 155 см');
if e=13 then writeln('до 160.5 см');
if e=14 then writeln('до 164 см');
if e=15 then writeln('до 167 см');
if e=16 then writeln('до 169 см');
if e=17 then writeln('до 170 см');
// Нормальный вес при данном возрасте
writeln('Нормальный вес, при вашем возрасте (', e, ') ');
if e=0 then writeln('до 7.9 кг');
if e=1 then writeln('до 10.2 кг');
if e=2 then writeln('до 12.2 кг');
if e=3 then writeln('до 14 кг');
if e=4 then writeln('до 18.2 кг');
if e=5 then writeln('до 20.2 кг');
if e=6 then writeln('до 22.4 кг');
if e=7 then writeln('до 25 кг');
if e=8 then writeln('до 28.2 кг');
if e=9 then writeln('до 31.9 кг');
if e=10 then writeln('до 34.9 кг');
if e=11 then writeln('до 38.9 кг');
if e=12 then writeln('до 45.4 кг');
if e=13 then writeln('до 52.5 кг');
if e=14 then writeln('до 58 кг');
if e=15 then writeln('до 60.4 кг');
if e=16 then writeln('до 61.3 кг');
if e=17 then writeln('до 61.9 кг');
// Прощание
writeln('На этом вынужден проститься, в следующих версиях программы вы сможете получать советы по корректировке фигуры.');
writeln('');
writeln(' ');
writeln('<br>');
writeln('Все данные не являются исключительно точными');
end.

Пишет вот «Program1.pas(21) : Встречено ‘else’, а ожидался оператор»

program test;

var
  sum: real;
  percent: real;
  period: integer;
  
  profit: real;
  result: real;
begin
  writeln('Вычисление дохода по в кладу в банке');
  writeln;
  
  write('Сумма (руб.) ->');
  readln(sum);
  write('Срок вклада (дней) ->');
  readln(period);
  
  if sum > 5000 then
         percent := 0.95;
      else
         pecent := 0.08;
  profit := sum * percent/365 * period;
  result := sum +profit;
  
  writeln('Сумма в конце срока вклады: ',
           result:6:2, руб.');
  writeln('Доход: ', profit:6:2, ' руб.');
  write('Для завершения работы нажмите <Enter>');
  readln;
end.

почему?


  • Вопрос задан

    более трёх лет назад

  • 4265 просмотров

Пригласить эксперта

Как вы определили, что не работает?

У вас не Else не работает, а грамматических ошибок полно.
Не нужно ставить точку с запятой после первого
percent := 0.95

во втором pecent := 0.08; нужно писать percent а не pecent

в строке
writeln(‘Сумма в конце срока вклады: ‘,
result:6:2, руб.’);

у вас перед руб не хватает одинарной кавычки.

Неужели так сложно внимательнее быть?

if sum > 5000 then
percent := 0.95;
else
перед ‘else’ ‘;’ не ставится


  • Показать ещё
    Загружается…

30 янв. 2023, в 21:42

10000 руб./за проект

30 янв. 2023, в 20:37

10000 руб./за проект

30 янв. 2023, в 20:30

3000 руб./за проект

Минуточку внимания

program kvadratn;
var A,B,C,x1,x2,D:integer;
begin;
Writeln(‘Дано уравнение вида Ax^2+Bx+C=0’);
Writeln(‘Задайте коэффициент A’);
Readln(A);
Writeln(‘Задайте коэффициент B’);
Readln(B);
Writeln(‘Задайте коэффициент C’);
Readln(C);
D:=B*B-4*A*C;
Write(‘Дискриминант равен: ‘);
Writeln(D);
x1:=((-B+sqrt(D))/2*A);
x2:=((-B-sqrt(D))/2*A);
Writeln(‘Корни: ‘);
if (D>=0) then writeln(x1); Writeln(x2);
else writeln(‘Корней нет’);
end.

Написал вот такую программку которая должна вычислять корни квадратного уравнения.
Но при запуске её, выдаёт ошибку и пишет что ожидался оператор и подчёркивает строчку «else writeln(‘корней нет’)
пожалуйста подскажите в чём проблема

Здесь легко и интересно общаться. Присоединяйся!

Ошибок море.
После begin и перед else точка с занятой недопустима.
Недопустимо присвоение целочисленным переменным чисел с плавающей запятой, а извлечение квадратного корня возвращает действительное значение.
Неверно написаны формулы вычисления корней x1 и x2.
Если дискриминант меньше нуля, то всё равно будет выполняться извлечение корня из этого отрицательного значения, что вызовет runtime ошибку.

program kvadratn;
var A,B,C,x1,x2,D:real;
begin
Writeln(‘Дано уравнение вида Ax^2+Bx+C=0’);
Writeln(‘Задайте коэффициент A’);
Readln(A);
Writeln(‘Задайте коэффициент B’);
Readln(B);
Writeln(‘Задайте коэффициент C’);
Readln(C);
D:=B*B-4*A*C;
Write(‘Дискриминант равен: ‘);
Writeln(D);
if D 0 then Writeln(x2);
end;
end.

1000лет и один день не программировал на паскале!
Посмотри третью строку снизу: после тhen два writeln, это допускается? Попробуй сделать один writeln или если тебе очень надо, составной оператор.

if (D>=0) then
begin
writeln(x1); Writeln(x2);
end;
else writeln(‘Корней нет’);

if D=0 then writeln(x1)
else if D>0
begin
Writeln(x1) ;
Writeln(x2) ;
end
else writeln(‘Корней нет’);

так правильнее будет . зачем тебе при D=0 выводить оба значения (они ведь одинаковые)

Пишет вот «Program1.pas(21) : Встречено ‘else’, а ожидался оператор»

  • Вопрос задан более трёх лет назад
  • 2665 просмотров

Как вы определили, что не работает?

У вас не Else не работает, а грамматических ошибок полно.
Не нужно ставить точку с запятой после первого
percent := 0.95

во втором pecent := 0.08; нужно писать percent а не pecent

в строке
writeln(‘Сумма в конце срока вклады: ‘,
result:6:2, руб.’);

у вас перед руб не хватает одинарной кавычки.

В прошлом, первом уроке о паскале мы обсудили структуру программы и самые первые операторы, а также служебные слова. Сегодня я расскажу про основные операторы, с помощью которых уже можно написать первую программу.

Первым, что мы рассмотрим — это оператор присваивания. Без этого оператора мы не сможем обойтись дальше.
Его функция — это присваивания значения переменной после каких либо действий или значения другой переменной.

X-это переменная, пусть она будет равна 2, в программе это будет выглядеть так:

Я думаю, что Вы уже заметили, что на деле она выглядит, как двоеточие со знаком равно (:=).

Операторы сложения, вычитания и умножения

На второе у нас пойдут операторы сложения, вычитания и умножения.

Сложение
С помощью данного оператора мы можем сложить два числа, в программе он пишется, как «+» без кавычек:

Тут мы переменной X присвоили 11, полученное сложением 5 и 6.

Вычитание
В этом операторе тоже ничего сложного нет, он выполняет вычитание двух чисел. В программе обозначается, как «-» без кавычек:

Выше мы x присвоили 3, полученное действием вычитания чисел 7 и 4.

Умножение
Данный оператор умножает два числа друг на друга, обозначается, как «*» также без кавычек:

В примере мы нашей переменной X присвоили число 16, полученное умножением восьми на два.

Вы уже заметили, что я написал не оператор деления, а операторы. Это связано с тем, что операторов деления — три, и все они работают по разному и выполняют разные действия.

1. Простое деление

Простое деление выполняется с помощью оператора вида /, он просто делит одно число на другое. Данный оператор работает только с типом real!

В примере мы x присвоили 9,6, посредством деления 48 на 5.

2. Целочисленное деление
Данное делит число только на цело, то есть при таком способе деления невозможно получить десятичную или периодическую дробь. В программе пишется, как «div» без кавычек. Данный оператор работает только с типом integer!

В данном примере x у нас будет равно в итоге 9, а не 9,6, как это должно получиться при нормальном обычном делении.

3. Получение остатка
Данный способ позволяет получить не само число, которое должно получится, а остаток. Допустим при делении 48 на 5 мы получим 3 при таком способе деления. В программе обозначается, как «mod» без кавычек:

Теперь давайте попробуем написать простейший калькулятор, который выполняет с нашими двумя числами все действия сразу.

Итак, сегодня мы познакомились с операторами сложения, вычитания, умножения, тремя операторами деления, а также оператором присваивания. После сегодняшнего урока вы уже можете создавать свои простейшие программы на счёт.

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

Сообщение компилятора об ошибках

Если
ошибка возникает при компиляции внутри
TP,
Турбо Паскаль активизирует окно
редактирования и помещает курсор на
место ошибки в исходной программе.

Если
ошибка возникает при использовании
командно-строчного компилятора, Турбо
Паскаль выдает сообщение об ошибке,
выводит на экран исходную строку
программы с ошибкой и ее номер; символ
^ в выдаваемой исходной строке указывает
местоположение ошибки. Ошибки
подразделяются на:

  • ошибки
    при компилировании программы;

  • ошибки
    на уровне DOS;

  • ошибки
    ввода-вывода.

Ошибки при компилировании

1
Out of memory (Выход за пределы памяти)

Данная
ошибка появляется, если компилятор
израсходовал всю доступную ему память.
Возможно, ваша программа или программный
модуль слишком велики, чтобы компилировать
их в таком объеме памяти. В этом случае
программу или программный модуль
необходимо разбить на два или более
программных модуля.

2
Identifier expected (Ожидается идентификатор)

В этом месте должен
находиться идентификатор.

3
Unknown Identifier (Неизвестный идентификатор)

Этот идентификатор
не был описан.

4
Duplicate Identifier (Повторение идентификатора)

5
Syntax error (Синтаксическая ошибка)

В исходном тексте
найден недопустимый символ. Возможно,
не заключена в кавычки строковая
константа.

6
Error in real constant (Ошибка в константе
вещественного типа)

Ошибка в синтаксисе
константы вещественного типа.

7
Error In Integer constant (
Ошибка
в
константе
целого
типа)

Ошибка
в синтаксисе константы целого типа
(Учтите, что после чисел, превышающих
диапазон представления целых чисел,
должны ставиться точка и нуль, например
12345678912.0.).

8
String constant exceeds line (Строковая константа
превышает размеры строки)

Вероятно, после
строковой константы отсутствует символ
кавычка.

9
Too many nested files (Слишком много вложенных
файлов)

Компилятор допускает
не более 15 вложенных исходных файлов и
не более 4 включаемых файлов.

10
Unexpected end of file (
Неожиданный
конец
файла)

Данное сообщение
может появиться по одной из следующих
причин:

В Вашей программе,
вероятнее всего, неодинаковое количество
операторов BEGIN и END.

Включаемый
файл заканчивается в середине раздела
операторов (Каждый раздел операторов
должен целиком помещаться в одном
файле).

В Вашем файле не
закрыты скобки комментария.

11
Line too long (Строка слишком длинная)

Максимальная длина
строки не может превышать 127 символов.

12
Type Identifier expected (Ожидается идентификатор
типа)

В определенном
месте не указан тип идентификатора.

13
Too many open files (Слишком много открытых
файлов)

В
файле CONFIG.SYS не установлен параметр
FILES = N, где N — представляет собой целое
число без знака. Установите в файле
CONFIG.SYS значение параметра FILES = N >= 30.

14
Invalid file name (Недопустимое имя файла)

Имя файла неверно
или указан несуществующий путь.

15
File not found (
Файл
не
найден)

Файл
не найден ни в одном из каталогов,
предназначенных для хранения файлов
данного типа.

16
Disk full (Диск заполнен)

Удалите
с диска ненужные Вам файлы (например
файлы с расширением .ВАК или .ТМР) или
попробуйте сохранить текст программы
на другом диске, который имеет достаточный
объем свободной памяти.

17
Invalid compiler directive (Недопустимая директива
компилятора)

Неверная
буква в директиве компилятора, один из
параметров директивы компилятора
неверный или Вы пользуетесь глобальной
директивой компилятора, когда компиляция
тела программы уже началась.

18
Too many files (Слишком много файлов)

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

19
Undefined type la pointer definition (Неопределенный
тип в описании указателя)

Вы
пытаетесь объявить типизированный
указатель, связанный с ранее необъявленным
типом данных.

20
Variable Identifier expected (Ожидается идентификатор
переменной)

В указанном курсором
месте ожидается идентификатор переменной.

21
Error in type (Ошибка в определения типа)

Определение типа
не может начинаться с этого символа.

22
Structure too large (Слишком длинная структура)

Максимально
допустимый размер любого структурированного
типа — 65520 байтов.

23
Set base type of range (Количество элементов в
множестве превышает допустимое значение)

Базовый
тип множества должен представлять собой
интервальный или перечисляемый тип
данных с не более чем 256 значениями.

24
File components may not be files or objects (
Компоненты
файла
не
могут
быть
файлами
или
объектами)

Тип
компонентов файла не может быть объектным
типом, файловым типом или любым другим
структурированным типом, содержащим
компоненты типа файла или объекта.

25Invalid
string length (Неверная длина строки)

Длина описываемой
строки должна находиться в пределах
от 1 до 255.

26
Type mismatch (Несоответствие типов)

Причины, вызвавшие
появление данного сообщения, могут быть
следующими:

Несовместимы типы
переменной и выражения в операторе
присваивания.

Несовместимые
типы фактического и формального
параметров в обращении к процедуре или
функции.

Тип выражения
несовместимый с типом индекса при
индексировании массива.

Несовместимые
типы операндов в выражении.

27
Invalid subrange base type (Неправильный базовый
тип для интервала)

28Lower
bound greater than upper bound (
Нижний
граница
превышает
верхнюю)

При
описании интервального типа данных Вы
объявили нижнюю границу диапазона
больше верхней.

29
Ordinal type expected (Ожидается перечисляемый
тип)

Вещественные,
строковые, структурные и ссылочные типы
в данном случае не допускаются.

30
Integer constant expected (Ожидается константа
целого типа)

31
Constant expected (Ожидается константа)

32
Integer or real constant expected (Ожидается константа
целого или вещественного типа)

33Pointer
type Identifier expected (Ожидается идентификатор
типа указатель)

Указанный курсором
идентификатор не является указателем.

34
Invalid function result type (Недопустимый тип
результата функция)

Правильными типами
результата функции являются все простые,
строковые и ссылочные типы.

35
Label Identifier expected (Ожидается идентификатор
метки)

Обнаружена ссылка
на метку, не описанную в разделе LABEL.

36
BEGIN expected (Ожидается оператор BEGIN)

37
END expected (Ожидается оператор END)

38
Integer expression expected (Ожидается выражение
целого типа)

39
Ordinal expression expected (Ожидается выражение
перечисляемого типа)

40
Boolean expression expected (Ожидается выражение
логического типа)

41
Operand types do not match operator (
Несоответствие
типов
операнду)

Данная
операция не может применяться к операндам
этого типа. Такое сообщение будет
вызвано, например, при попытке выполнить
следующую операцию:’ 9′ DIV ‘G’ .

42
Error in expression (
Ошибка
в
выражении)

Данный
идентификатор не может участвовать в
выражении указанным образом.

Возможно, вы забыли
указать операцию между двумя операндами.

43
Illegal assignment (Запрещенное присваивание)

Это сообщение
может появиться по следующим причинам:

  • файлам
    и нетипизированным переменным нельзя
    присваивать значения;

  • идентификатору
    функции можно присваивать значения
    только внутри раздела операторов данной
    функции.

44
Field Identifier expected (Ожидается идентификатор
поля)

Данный идентификатор
не соответствует полю предшествующей
переменной типа RECORD или OBJECT.

45
Object file too large (Объектный файл слишком
большой)

Турбо Паскаль не
может компоновать OBJ-файлы размером
больше чем 64 Кбайта.

46
Undefined external (Не определена внешняя
процедура)

Внешняя процедура
или функция не имеет соответствующего
определения PUBLIC в объектном файле.
Убедитесь, что вы указали все объектные
файлы в директивах {$L <имя ОВJ-файла>),
и проверьте написание идентификаторов
процедуры или функции в файле .ASM.

47
Invalid object file record

(Недопустимая
запись объектного файла)

Файл .OBJ содержит
неверную объектную запись. Убедитесь
в том, что данный файл является
действительно OBJ-файлом.

48
Code segment too large (Сегмент кода слишком
большой)

Максимально
допустимый размер кода программы или
программного модуля ранен 65520 байтам.
Разбейте Вашу программу или программный
модуль на несколько частей.

49
Data segment too large (Сегмент данных слишком
большой)

Максимальный
размер сегмента данных программы равен
65520 байтам, включая данные, описываемые
используемыми программными модулями.
Если нужно большее количество глобальных
данных, опишите большие структуры с
помощью указателей и выделяйте для них
память динамически с помощью процедуры
New.

50
DO expected (Ожидается оператор DO)

51
Invalid PUBLIC definition (
Недопустимое
определение
PUBLIC)

Появление этого
сообщения возможно но следующим причинам:

  • Данный
    идентификатор получил тип PUBLIC с помощью
    соответствующей директивы языка
    ассемблер, но не соответствует описанию
    EXTERNAL в программе или программном модуле.

  • Две
    или более директивы PUBLIC на языке
    ассемблера определяют один и тот же
    идентификатор.

  • OBJ-файл
    определяет идентификатор PUBLIC вне
    сегмента CODE.

52
Invalid EXTRN definition (Неправильное определение
EXTRN)

Появление этого
сообщения возможно по следующим причинам:

Из Ассемблера была
осуществлена ссылка с помощью директивы
EXTRN на идентификатор, который не был
описан в тексте Паскаль-программы.

Идентификатор
обозначает абсолютную переменную.

Идентификатор
обозначает процедуру или функцию типа
INLINE.

53
Too many EXTRN definition (Слишком много определений
типа EXTRN)

Турбо
Паскаль не может обрабатывать файлы
.OBJ при более чем 256 определениях EXTRN.

54
OF expected (
Ожидается
оператор
OF)

55
INTERFACE expected (
Ожидается
оператор
INTERFACE)

56
Invalid relocatable reference (
Недопустимая
перемещаемая
ссылка)

Появление этого
сообщения возможно по следующим причинам:

  • OBJ-файл
    содержит данные и перемещаемые ссылки
    в сегментах, отличных от CODE, например,
    при попытке описать инициализированные
    переменные в сегменте DATA.

  • ORJ-файл
    содержит ссылки с размерами в байтах
    на перемещаемые символы. Такая ошибка
    происходит в случае использования
    операторов HIGH и DOWN с перемещаемыми
    символами или, если Вы ссылаетесь в
    директивах DB на перемещаемые символы.

  • Операнд
    ссылается на перемещаемый символ,
    который не был определен в сегментах
    CODE или DATA.

  • Операнд
    ссылается на процедуру EXTRN или функцию
    EXTRN со смещением, например CALL SortProc+8.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

№ п/п Код и название ошибки Характеристика ошибки Пояснение

1

Error 1: Out of memory

Нехватка памяти

Это сообщение выводится, когда компилятору не хватает памяти

2

Error 2: Identifier expected

Ожидался идентификатор

Возможно, имя вашего идентификатора совпадает со служебным словом

3

Error 3: Unknown identifier

Неизвестный идентификатор

Этот идентификатор не был описан

4

Error 4: Duplicate identifier

Идентификатор продублирован

Этот идентификатор уже исполь-зовался в текущем блоке программы

5

Error 5: Syntax error

Синтаксическая ошибка

В тексте найден неправильный символ

6

Error 6: Error in real constant

Ошибка в константе действительного типа

Возможно, вы поставили десятичную запятую вместо десятичной точки

7

Error 7: Error in integer constant

Ошибка в константе целого типа

Константы, выходящие за пределы диапазона типа longint описы-ваются как действительные числа

8

Error 10: Unexpected end of file

Неожиданный конец файла

Количество операторов Begin и End не сбалансирована

9

Error 11: Line too long

Строка слишком длинная

Длина строки не должна превышать 127 символов

10

Error 12: Type identifier expected

Ожидается иденти-фикатор типа

Этот идентификатор не обозначает тип, как это должно быть

11

Error 15: File not found

Файл не найден

Файл не был найден ни в текущем каталоге, ни в других каталогах

12

Error 20: Variable identifier expected

Ожидается идентификатор переменной

Этот идентификатор не обозначает переменной, как должен был

13

Error 21: Error in type

Ошибка в типе

Этот символ не может начинать описание типа

№ п/п Код и название ошибки Характеристика ошибки Пояснение

14

Error 25: Invalid string length

Неправильная длина строки

Описанная максимальная длина строки должна быть в диапазоне 1…255

15

Error 26: Type mismatch

Несоответствие типов

Несовместимые типы переменной и выражения в операторе присваива-ния, несовместимые типы операн-дов в выражении, несовместимые типы формальных и фактических параметров в вызванной подпрограмме

16

Error 31: Constant expected

Ожидается константа

17

Error 32: Integer or real constant expected

Ожидается целая или действительная константа

18

Error 34: Invalid function result type

Неправильный тип результата функции

Правильными типами результата функции являются все простые типы

19

Error 36: BEGIN expected

Ожидается оператор Begin

20

Error 37: END expected

Ожидается оператор End

21

Error 38: Integer expression expected

Ожидается целое выражение

Предыдущее выражение должно быть целого типа

22

Error 41: Operand types do not match operator

Типы операндов не отвечают оператору

Оператор не может быть применён к операндам указанного типа

23

Error 42: Error in expression

Ошибка в выражении

Этот символ не может присутствовать в выражении

24

Error 50: DO expected

Ожидается служебное слово do

25

Error 54: Of expected

Ожидается служебное слово of

26

Error 57: THEN expected

Ожидается служеб-ное слово Then

№ п/п Код и название ошибки Характеристика ошибки Пояснение

27

Error 58: TO or DOWNTO expected

Ожидается служеб-ное слово to или downto

28

Error 62: Division by zero

Деление на нуль

Предыдущая операция пытается выполнить деление на нуль

29

Error 92: «[» or «(.» expected

Тут должна быть открывающая квадратная скобка

Вместо открывающей квадратной скобки можно использовать «(.»

30

Error 93: «]» or «).» expected

Квадратные скобки не закрыты

Вместо закрывающей квадратной скобки можно использовать «).»

31

Error 98: Integer variable expected

Ожидается переменная целого типа

32

Error 103: Integer or real variable expected

Ожидается пере-менная целого или вещественного типа

33

Error 108: Overflow in arithmetic operation

Переполнение в арифметической операции

Результат предыдущей операции выходит за пределы использованного типа данных.

34

Error 113: Error in statement

Ошибка в операторе

Оператор не может начинаться с этого символа

Ошибка в pascal (Встречен конец файла, а ожидался оператор) Помогите, что нужно дописать чтобы ошибка исчезла?

Функция : function sqrt1 (a, b, c : real) : real ; begin if (2 * a + b — c) < ; 0 then writeln (‘ complex number ‘) — проверка на комплексные числа else sqrt1 : = sqrt(2 * a + b — c) ; end ;

Если вам необходимо получить ответ на вопрос Ошибка в pascal (Встречен конец файла, а ожидался оператор) Помогите, что нужно дописать чтобы ошибка исчезла?, относящийся
к уровню подготовки учащихся 5 — 9 классов, вы открыли нужную страницу.
В категории Информатика вы также найдете ответы на похожие вопросы по
интересующей теме, с помощью автоматического «умного» поиска. Если после
ознакомления со всеми вариантами ответа у вас остались сомнения, или
полученная информация не полностью освещает тематику, создайте свой вопрос с
помощью кнопки, которая находится вверху страницы, или обсудите вопрос с
посетителями этой страницы.

Простые условия должны записываться в виде

if .. then
  одна строчка кода
else
  одна строчка кода

Если же вам нужно выполнить несколько строк или блоков кода по условию, то следует обернуть их в begin .. end вот так:

if .. then
begin
  ..
  несколько строк кода
  ..
end
else
begin
  ..
  несколько строк кода
  ..
end

Для вашего случая:

if (d > 0) then
begin                         <<-- тут нужно начать блок
  d:= sqrt(d);
  x1 := (-b+d)/2;
  x2 := (-b-d)/2;
  write ('x1=', x1, 'x2=', x2);
end                           <<-- тут нужно закончить блок
else
                              <<-- тут блок begin-ом начинать не нужно, т.к. if это уже блок
  if (d = 0) then
  begin                       <<-- тут нужно начать блок
    x1 := (-b-d)/2
    write ('Единственный x=', x1)
  end                         <<-- тут нужно закончить блок
  else
    write ('Корней нет');

Понравилась статья? Поделить с друзьями:
  • Как исправить ошибку в отчетности в пфр
  • Как исправить ошибку в паскале встречено var а ожидалось
  • Как исправить ошибку в отчете сзв тд в сбис
  • Как исправить ошибку в паскале writeln
  • Как исправить ошибку в отчете о движении капитала