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

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, по моей блок-схеме все верно, разделы операторов вроде все на месте, в чем может быть ошибка? Или у меня косоглазие просто?

FunduxYura

1 / 1 / 0

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

Сообщений: 32

1

14.09.2012, 09:10. Показов 10677. Ответов 11

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


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

Помогите! Не могу завершить прогу на Pascal ABC (да-да, тот самый). Делаю что-то вроде клавиатурного тренажёра…

Код Паскаля АВС

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
uses Timers,Events;
var tickers: real;
 
function GiveErrorBad(lolikon:Boolean):boolean;
begin
writeLn('-----------------');
writeLn('Íåñîâïàäåíèå ñ òåêñòîì! Âîçìîæíûå ïðè÷èíû:');
writeLn(' - Åñòü ãðàììàòè÷åñêèå, ïóíêòóàöèîííûå îøèáêè (òîãäà âàø IQ íå âûøå êàìíÿ, èáî òåêñò áûë ïîä ãëàçàìè...)');
writeLn(' - Åñòü ëèøíèå ïðîáåëû (ñ êåì íå áûâàåò...)');
writeLn(' - Áûëà ïîïûòêà ïîñòàâèòü àáçàö. Ýòî íå àâòîð íåãðàìîòíûé, ýòî îñîáåííîñòü Pascal ABC...');
writeLn(' - Âû íå ââîäèëè íè÷åãî, èëè ââîäèëè, íî ñîâñåì íå òî');
writeLn('Çàêðîéòå ïðîãðàììó è íà÷èíàéòå ñíà÷àëà... :(');
readLn();
end;
 
procedure f;
begin
tickers:=tickers+0.5
end;
 
var t: Timer;
 
const
  tekst='не волнует';
var
 whaticrar:Text;
 
begin
  writeLn('Ââåäè òåêñò áåç îøèáîê!');
  writeLn('Òåêñò íàõîäèòñÿ â ðàñïå÷àòàííîì âèäå ïîä âàøèì íîñîì...');
  writeLn('Ïîåõàëè? Íàæìè Enter');
  readLn();
  writeLn('Âðåìÿ ïîøëî!');
  writeLn('--------------');
  t:=Timer.Create(500,f);
  readLn(whaticrar);
  t.Stop();
  
if whaticrar=tekst then
  writeLn('-----------------');
  writeLn('Âû ïðîøëè òåñò!');
  writeLn('------------------');
  writeLn('Âðåìÿ ïðîõîæäåíèÿ:');
  writeLn(tickers + ' ñåêóíä');
else GiveErrorBad();
end.

Те символы-кракозябры — результат копирования Win1251 в UTF-8 форму, которые пропали на предварительном просмотре
Компилятор PABC.NET(решил прогнать код через него) ругается:

Код

Program1.pas(46,1): Ожидался оператор

Помогите, пожалуйста!



0



4 / 4 / 2

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

Сообщений: 59

14.09.2012, 09:20

2

Поставь ; после закрытой скобки.



0



1 / 1 / 0

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

Сообщений: 32

14.09.2012, 10:09

 [ТС]

3

Цитата
Сообщение от vi fail
Посмотреть сообщение

Поставь ; после закрытой скобки.

Строчку в исправленном виде покажи, а то я тебя не понял



0



vi fail

4 / 4 / 2

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

Сообщений: 59

14.09.2012, 10:44

4

Pascal
1
Program1.pas(46,1);



0



Фрилансер

3417 / 2814 / 3000

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

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 13:03

5

FunduxYura, до else убери ;



0



FunduxYura

1 / 1 / 0

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

Сообщений: 32

14.09.2012, 15:19

 [ТС]

6

Цитата
Сообщение от Artem7
Посмотреть сообщение

FunduxYura, до else убери ;

Убрал, теперь этот кусок выглядит так:

Pascal
1
2
3
4
5
6
7
8
if whaticrar=tekst then
  writeLn('-----------------');
  writeLn('Вы прошли тест!');
  writeLn('------------------');
  writeLn('Время прохождения:');
  writeLn(tickers + ' секунд')
else GiveErrorBad()
end.

Ошибка та же — 1 символ, строка 45, ожидается ;

Добавлено через 5 минут

Цитата
Сообщение от vi fail
Посмотреть сообщение

Pascal
1
Program1.pas(46,1);

Это сама ошибка, так что — nice joke



0



CodeR

Фрилансер

3417 / 2814 / 3000

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

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 15:19

7

FunduxYura, Да потому что если вы хотите использовать в условие больше одного оператора то надо использовать операторные скобки Begin End

Pascal
1
2
3
4
5
6
7
8
9
10
if whaticrar=tekst then
 Begin
  writeLn('-----------------');
  writeLn('Вы прошли тест!');
  writeLn('------------------');
  writeLn('Время прохождения:');
  writeLn(tickers + ' секунд');
 End
else GiveErrorBad()
end.



0



FunduxYura

1 / 1 / 0

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

Сообщений: 32

14.09.2012, 15:27

 [ТС]

8

Цитата
Сообщение от Artem7
Посмотреть сообщение

FunduxYura, Да потому что если вы хотите использовать в условие больше одного оператора то надо использовать операторные скобки Begin End

Ой, совсем забыл про них, я просто раньше кодил на AS, JS, VB .NET, а с паскалем впервые встретился, вот и тупанул…

Но теперь ругается на

Pascal
1
2
3
4
5
6
7
8
9
10
if whaticrar=tekst then
begin
  writeLn('-----------------');
  writeLn('Вы прошли тест!');
  writeLn('------------------');
  writeLn('Время прохождения:');
  writeLn(tickers + ' секунд');
end;
else GiveErrorBad();
end.

Говорит, что ожидался оператор, но ругань идёт в самое начало строчки с else…

Код функции, которая не должна ничего возвращать, и нужна для удобства

Pascal
1
2
3
4
5
6
7
8
9
10
11
function GiveErrorBad(lolikon:Boolean):boolean;
begin
writeLn('-----------------');
writeLn('Несовпадение с текстом! Возможные причины:');
writeLn(' - Есть грамматические, пунктуационные ошибки (тогда ваш IQ не выше камня, ибо текст был под глазами...)');
writeLn(' - Есть лишние пробелы (с кем не бывает...)');
writeLn(' - Была попытка поставить абзац. Это не автор неграмотный, это особенность Pascal ABC...');
writeLn(' - Вы не вводили ничего, или вводили, но совсем не то');
writeLn('Закройте программу и начинайте сначала... :(');
readLn();
end;



0



Фрилансер

3417 / 2814 / 3000

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

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 15:29

9

FunduxYura, ты посмотри на мой код а теперь на свой…



0



FunduxYura

1 / 1 / 0

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

Сообщений: 32

14.09.2012, 15:42

 [ТС]

10

Цитата
Сообщение от Artem7
Посмотреть сообщение

FunduxYura, ты посмотри на мой код а теперь на свой…

Спасибо, просто я уже жестоко туплю, теперь у меня ещё одна проблема…

Не по теме:

Я безнадёжен, да?

Pascal
1
2
3
if whaticrar=tekst then
 Begin
  writeLn('-----------------');

говорит, что = нельзя юзать с Text и string, но как мне ещё сравнивать?



0



Фрилансер

3417 / 2814 / 3000

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

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 16:03

11

FunduxYura, так потому что ты пытаешься переменную типа текстовый файл сравнить с типом string а чтобы понять как сравнивать надо понимать что ты хочешь сделать в проге…



0



1 / 1 / 0

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

Сообщений: 32

21.09.2012, 17:47

 [ТС]

12

Хм… Я решил проблему, но почему-то код работает ПОЛНОСТЬЮ только на PascalABC не .NET… В NET версии таймер не считает ничего…



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

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

21.09.2012, 17:47

Помогаю со студенческими работами здесь

Ошибка в строке 97: «incompatible types», а в 99 ошибка: «identifier expected but ‘^’ found», как исправить?
var
tmp,tmp1,tmp2:point;
begin
tmp:=head;
while tmp &lt;&gt; nil do
begin
tmp1:=…

Вывести нечётные числа. Ошибка: оператор «%» невозможно применить к операнду типа «string» и «int»
Я новичок в программировании, поэтому не судите строго если тут всё говно. Нужно сделать, чтобы код…

Поиск в массиве. Ошибка «Оператор «&&» не может применяться к операндам типа «bool» и «double»»
Найти номер последнего минимального элемента среди положительных четных элементов, лежащих правее…

Ошибка в коде «Ожидался оператор»
Program gKKMMf;
var b,s,x,h:real;
begin
repeat
Write(‘Vvedite konez otrezka b’);
Read(b);…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

Пишет вот «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’ ‘;’ не ставится


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

13 июн. 2023, в 19:27

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

13 июн. 2023, в 19:10

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

13 июн. 2023, в 19:04

2500 руб./в час

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

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 классов, вы открыли нужную страницу.
В категории Информатика вы также найдете ответы на похожие вопросы по
интересующей теме, с помощью автоматического «умного» поиска. Если после
ознакомления со всеми вариантами ответа у вас остались сомнения, или
полученная информация не полностью освещает тематику, создайте свой вопрос с
помощью кнопки, которая находится вверху страницы, или обсудите вопрос с
посетителями этой страницы.

Содержание

  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 или если тебе очень надо, составной оператор.

Источник

Понравилась статья? Поделить с друзьями:
  • Ошибка в отчете пфр код 30
  • Ошибка в отчестве в авиабилете азимут
  • Ошибка в паскале при запуске
  • Ошибка в отчете о финансовом результате
  • Ошибка в отчестве в авиабилете utair что делать