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

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. Показов 32631. Ответов 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

Содержание

  1. Встречено ‘function’, а ожидался оператор. Что не так?
  2. Что значит ожидался оператор в паскале
  3. Здесь легко и интересно общаться. Присоединяйся!
  4. Встречено := а ожидался оператор
  5. Встречено Else а ожидался оператор
  6. Ожидался оператор PASCAL

Встречено ‘function’, а ожидался оператор. Что не так?

Встречено ‘procedure’, а ожидался оператор
При попытке компиляции выдаёт: Встречено ‘procedure’, а ожидался оператор. Вроде все проверил.

Встречено array, а ожидался оператор
В 26 строке выдает ошибку. Program lab8_Smirnov_var10_2; uses crt; const n=3; m=4; var.

Встречено ‘procedure’, а ожидался оператор
Встречено ‘procedure’, а ожидался оператор uses graphABC; var i: integer; KeyPressed.

Встречено Procedure а ожидался оператор
var a: Array of longint; b, i, n, g: longint; begin Read(b, n, g); begin .

Встречено ‘procedure’, а ожидался оператор
program lab5; type arr=array of integer; const n=3; var a:arr; i1,j1,k1,sum:integer; .

Program1.pas(12) : Встречено ‘else’, а ожидался оператор
Program jg; Label 1; Var y,x:integer; Begin y:=6; Write(‘Введите число ‘); 1:Readln(x);.

«Встречено ‘Else’, а ожидалось ‘;’» и «Встречено ‘Else’, а ожидался оператор»
В общем нужно написать программу, выводящую все «счастливые» номера билетов, то бишь номера, где 3.

Встречено «type», а ожидался оператор
Где ошибка в описании типа? uses crt; begin type card=(шестерка, семерка, восьмерка.

Источник

Что значит ожидался оператор в паскале

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» без кавычек:

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

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

Источник

Встречено := а ожидался оператор

Встречено := а ожидался оператор:
Условие:

Дан массив заполненный по формуле cos(x/3), определить количество его положительных
элементов кратных 3
Программа

Встречено ‘uses’, а ожидался оператор
Unit Unit1; interface uses System, System.Drawing, System.Windows.Forms; type Form1 =.

Встречено Procedure а ожидался оператор
var a: Array of longint; b, i, n, g: longint; begin Read(b, n, g); begin .

Встречено ‘procedure’, а ожидался оператор
Встречено ‘procedure’, а ожидался оператор uses graphABC; var i: integer; KeyPressed.

Встречено ‘procedure’, а ожидался оператор
program lab5; type arr=array of integer; const n=3; var a:arr; i1,j1,k1,sum:integer; .

Вы пытетесь решить неразрешимую задачу, у которой неполное условие или ее Вам дал какой-то придурок.
Числа вида cos(x/3) не могут быть кратными чему либо, их диапазон [-1..1].

Добавлено через 5 минут
Кстати Ваш код вообще не соответствует заданию.

Встречено ‘procedure’, а ожидался оператор
При попытке компиляции выдаёт: Встречено ‘procedure’, а ожидался оператор. Вроде все проверил.

Встречено array, а ожидался оператор
В 26 строке выдает ошибку. Program lab8_Smirnov_var10_2; uses crt; const n=3; m=4; var.

Ошибка: встречено procedure, а ожидался оператор
uses GraphABC,System; var Q: array of String = (‘Запуск’, ‘О программе’, ‘Выход’); .

Program1.pas(12) : Встречено ‘else’, а ожидался оператор
Program jg; Label 1; Var y,x:integer; Begin y:=6; Write(‘Введите число ‘); 1:Readln(x);.

Источник

Встречено Else а ожидался оператор

Встречено ‘else’, а ожидался оператор
В 44 строчки ошибка: Встречено ‘else’, а ожидался оператор. Помогите разобраться что не так.

Встречено array, а ожидался оператор
ошибка в 26 строке Program lab8_Smirnov_var10_2; uses crt; const n=3; m=4; var.

Встречено ‘array’, а ожидался оператор
Выдает ошибку в строчке c:array of integer; Как её исправить? uses crt; var k.

Ошибка «встречено else, а ожидался оператор»
Пишет в откладке yes но всеровно неправильно

Встречено ‘for’, а ожидался идентификатор
Помогите пожалуйста найти и исправить ошибки в приведенном коде. Написанный от руки код мне дали.

Встречено ‘case’, а ожидался идентификатор
При компиляции пишет: «Встречено ‘case’, а ожидался идентификатор.» В чем может быть ошибка? Const.

Program1.pas(34) : Встречено ‘begin’, а ожидался идентификатор
34 строка uses GraphABC, events; var a,i: integer; B:array of string; // B — это массив для.

Ожидался оператор
У меня такая проблема: пишет на последней строке «ожидался оператор» Вот код: program kBaDPaT;.

Источник

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

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.

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

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

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

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

Источник

Пишет вот «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.

почему?


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

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

  • 4422 просмотра

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

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

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

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

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

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

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

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


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

14 июн. 2023, в 01:02

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

13 июн. 2023, в 23:37

1000 руб./в час

13 июн. 2023, в 23:22

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

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

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

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.

Всеволод

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

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

Cutie

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

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

Что значит ожидался оператор в паскале

Помогите пожалуйста не могу разобраться почему когда я добавила procedure r15(xa,xb,xc,xd,ya,yb,yc,yd:real);x 1,x2,x3,y1,y2,y3,pt1,pt2,pt3,s:real ;
unit Lib15;
interface
программа пишет «ожидался оператор»

var
xa,xb,xc,xd,ya,yb,yc,yd:real;
x1,x2,x3,y1,y2,y3:real;
pt1,pt2,pt3,s:real;

begin
write(‘Введите координаты точки А: ‘);
Readln(xa,ya);
write(‘Введите координаты точки B ‘);
Readln(xb,yb);
write(‘Введите координаты точки C ‘);
Readln(xc,yc);
write(‘Введите координаты точки D ‘);
Readln(xd,yd);

procedure r15(xa,xb,xc,xd,ya,yb,yc,yd:real);x 1,x2,x3,y1,y2,y3,pt1,pt2,pt3,s:real ;
unit Lib15;
interface

begin
x1:=xa;
if x1>xb then x1:=xb;
if x1>xc then x1:=xc;
if x1>xd then x1:=xd;
end;
begin
y2:=ya;
if y2<yb then y2:=yb;
if y2<yc then y2:=yc;
if y2<yd then y2:=yd;
end;
begin
x3:=xa;
if x3<xb then x3:=xb;
if x3<xc then x3:=xc;
if x3<xd then x3:=xd;
end;
begin
if x1=xa then y1:=ya;
if x1=xb then y1:=yb;
if x1=xc then y1:=yc;
if x1=xd then y1:=yd;
end;
begin
if y2=ya then x2:=xa;
if y2=yb then x2:=xb;
if y2=yc then x2:=xc;
if y2=yd then x2:=xd;
end;
begin
if x3=xa then y3:=ya;
if x3=xb then y3:=yb;
if x3=xc then y3:=yc;
if x3=xd then y3:=yd;
end;
pt1 := ((y2+(x2*((y3-y1)/(x3-x1))))-(y1+(x1*((y3-y1)/(x3-x1)))));
pt2 := ((x3+(y3*((y3-y1)/(x3-x1))))-(x1+(y1*((y3-y1)/(x3-x1)))));
pt3 := (sqr(x1-x3))/((sqr(y1-y3))+(sqr(x1-x3)));
s := pt1*pt2*pt3;
end;
writeln(‘Площать равна = ‘, s)
end.

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

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

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

user avatar

Перед ЭТИМ else, еще 1 end должен быть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками pascal pascalabc.net или задайте свой вопрос.

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345

Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

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