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

В языке программирования Pascal при написании кода, может возникнуть ошибка “Pascal встречено ‘writeln’, а ожидалось ‘;'”. Эта ошибка означает, что в коде не хватает ; и поэтому компилятор ожидает его. Итак, рассмотрим 5 причин, почему возникает эта ошибка и как ее избежать.

1. Отсутствие ‘;’ в конце оператора

Одна из наиболее распространенных причин ошибки – это отсутствие “;” в конце оператора. В Pascal каждый оператор должен заканчиваться точкой с запятой “;”. Если вы забудете добавить точку с запятой в конце оператора, компилятор не сможет продолжить работу, т.к. это является обязательным правилом языка.

writeln('Hello World')

Для исправления такой ошибки убедитесь, что добавили ; в конце оператора.

writeln('Hello World');

2. Неправильный порядок использования операторов

Если вы используете связку операторов в не правильном порядке, можете получить ошибку “Pascal встречено ‘writeln’, а ожидалось ‘;'”. Например, если вы используете символы переноса строки между операторами, при этом забывая ставить “;”, то в результате создается такая ошибка.

writeln('Hello');
writeln('World')

Для корректного исполнения, используйте точку с запятой между операторами.

writeln('Hello');
writeln('World');

3. Отсутствие директивы uses

Если в вашей программе отсутствует директива “uses”, то вы можете столкнуться с ошибкой “Pascal встречено ‘writeln’, а ожидалось ‘;'”. Это происходит потому, что компилятор не знает, какие модули должны быть загружены.

program Hello;
begin
  writeln('Hello World');
end.

Для корректировки ошибки нужно добавить директиву “uses”, указав на необходимый модуль.

program Hello;
uses crt;  
begin
  writeln('Hello World');
  readln;
end.

4. Неправильный порядок использования условий

Если вы используете условия в своем коде, но неправильно структурировали операторы, то вы получите ошибку “Pascal встречено ‘writeln’, а ожидалось ‘;'”. Это происходит, когда вы забываете использовать оператор “end” в блоке операторов.

if 2 > 1 then
  writeln('2 больше, чем 1');
writeln('Hello, World!');

Чтобы исправить ошибку, просто добавьте “end” после каждого блока операторов.

if 2 > 1 then
  writeln('2 больше, чем 1');
end;
writeln('Hello, World!');

5. Отсутствие перпендикуляра в конце

Еще одна причина ошибки “Pascal встречено ‘writeln’, а ожидалось ‘;'” – это отсутствие правильного символа перпендикуляра в конце оператора. В Pascal каждый оператор должен заканчиваться символом перпендикуляра (^). Если символ не указан, компилятор не сможет продолжить работу.

writeln('Hello, World!')

Для исправления, добавьте символ перпендикуляра после ;

writeln('Hello, World!')^

Вот и все пять причин ошибки “Pascal встречено ‘writeln’, а ожидалось ‘;'” и способы их устранения. Убедитесь, что вы следуете этим рекомендациям, при написании программ на Pascal и избегайте этой ошибки.

Vanokos9

0 / 0 / 0

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

Сообщений: 11

1

19.10.2015, 22:54. Показов 11319. Ответов 3

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


Pascal
1
2
3
4
5
6
7
8
9
10
11
PROGRAM LVP;
VAR A:INTEGER;
B,x,y:READ;
BEGIN
WRITE('A= ');
READLN(A);
WRITE('B= ');READLN(B);
WRITE('x= ');READLN(x);
y:=ln(ABS(exp(3*ln(x-B))))*exp((1/3*ln(1+cos(exp(3*ln(x)))))*exp((5*SQR(A))*ln(2)))/5.5+(tan(SQR(B))*exp(3*ln(sin(x)))*SQRT(B)
WRITELN('y';y:6:2);
END.

Пишет что встречено ‘WRITELN’, а ожидалось ‘)’

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

0

Programming

Эксперт

94731 / 64177 / 26122

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

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

19.10.2015, 22:54

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

Встречено ‘Writeln’, а ожидалось ‘;’
Program Primer2;
Uses CRT;
var a,d,x:Real;
begin
Clrscr;
Writeln(‘Введите a:’);
Readln(a);…

Встречено ‘else’, а ожидалось ‘;’
type
matrix= array of integer;
var
a,x: matrix;
i,j,k,l: integer;
begin
for…

Ошибка: Встречено ‘;’, а ожидалось ‘)’
const
M = 10;
N = 20;
L = 1;
T1 = 1000;
D = 10;
Ro = 100;
nu = 1e-6;
deltat…

Ошибка- Встречено ‘zap’, а ожидалось begin
Помогите, пожалуйста, исправить.Должно появляться окно exe для записи данных о работниках-фамилия,…

3

volvo

Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32444 / 20939 / 8104

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

Сообщений: 36,202

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

19.10.2015, 22:58

2

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

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
PROGRAM LVP;
VAR A:INTEGER;
B,x,y:REAL;
BEGIN
WRITE('A= ');
READLN(A);
WRITE('B= ');READLN(B);
WRITE('x= ');READLN(x);
y:=ln(ABS(exp(3*ln(x-B))))*exp((1/3*ln(1+cos(exp(3*ln(x)))))*exp((5*SQR(A))*ln(2)))/5.5+(tan(SQR(B))*exp(3*ln(sin(x)))*SQRT(B));
WRITELN('y ',y:6:2);
END.

Это компилируется, работоспособность не проверял

0

33 / 33 / 23

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

Сообщений: 212

19.10.2015, 22:59

3

Скобки правильно расставлены и на 9 строке не хватает ;

1

0 / 0 / 0

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

Сообщений: 11

21.10.2015, 22:14

 [ТС]

4

Спасибо огромное)

0

IT_Exp

Эксперт

87844 / 49110 / 22898

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

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

21.10.2015, 22:14

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

Робота с файлами. Что за ошибка «Встречено ‘end’, а ожидалось ‘;’»?
program file_1;
uses crt;
var
f,fl:file of integer;
x,x_l,s,i:integer;
r:byte;
c:char;…

Встречено ‘until’, а ожидалось ‘;’
var x,y,u:real;
k,c:string;
code: integer;
begin
write(‘Введите x=’);
readln(k);…

Встречено ‘:’, а ожидалось ‘)’ а ожидался оператор
Встречено ‘:’, а ожидалось ‘)’ а ожидался оператор. Девятая строка.

var b,a,x,y:real;
begin…

Program1.pas(63) : Встречено ‘else’, а ожидалось ‘;’
var
a:array of integer;
st:array of integer;
rez:array of integer;
sum,i,j,k,x,s,n:integer;…

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

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

4

  1. Ты написал вместо «begin» bedin. И за константу Pi брать не надо. В системе Pi уже есть, поэтому начальные значения ей давать не нужно. У тебя программа должна выглядеть вот так:

    program n_2;

    var r, c, s: real;

    begin

    writeln (‘Вычисление длины окружности и площади круга’) ;

    write (‘Введите r>>’) ;

    readln (r) ;

    c: = 2*pi*r;

    s:=pi*r*r;

    writeln (‘c=’, c:6:4) ;

    writeln (‘s=’, s:6:4)

    end.

    • Комментировать
    • Жалоба
    • Ссылка

Найдите правильный ответ на вопрос ✅ «Почему паскаль abc выдает ошибку Встречено ‘writeln’, а ожидалось ‘:’ program n_2; const pi=3.14; var r, c, s: real; bedin writeln …» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.

Смотреть другие ответы

Новые вопросы по информатике

Главная » ⭐️ Информатика » Почему паскаль abc выдает ошибку Встречено ‘writeln’, а ожидалось ‘:’ program n_2; const pi=3.14; var r, c, s: real; bedin writeln (‘Вычисление длины окружности и площади круга’) ; write (‘Введите r>>’) ; readln (r) ; c: = 2*pi*r; s:=pi*r*r;

logo

    • Предмет:

      Информатика

    • Автор:

      aydancarney250

    • Создано:

      3 года назад

    Ответы

    Знаешь ответ? Добавь его сюда!

  • Математика

    15 минут назад

    Петя посчитал вслух от 1 до 1000000 один два три миллион сколько раз он сказал слово двенадцать. Помогите решить пожалу

  • Обществознание

    25 минут назад

    Помогите пж! — РЕАЛИЗАЦИЯ ПРАВА НА ОБРАЗОВАНИЕ В РОССИИ.

  • Каково влияние воздушной циркуляции на температурный режим и сезонность выпадения осадков?

  • Помогите с географией СРОЧНО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • Два примера стран в Европе, занимающих глубинное положение

Информация

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

Вы не можете общаться в чате, вы забанены.

Чтобы общаться в чате подтвердите вашу почту
Отправить письмо повторно

Вопросы без ответа

  • Помогите пожалуйста Английский язык 🙏🏼🙏🏼🙏🏼

  • Помогите с физикой -https://n.fcd.su/Luv

Топ пользователей

  • avatar

    Fedoseewa27

    22808

  • avatar

    Sofka

    7419

  • avatar

    zlatikaziatik

    5659

  • avatar

    vov4ik329

    5111

  • avatar

    DobriyChelovek

    4625

  • avatar

    olpopovich

    3461

  • avatar

    TheDenty

    3258

  • avatar

    dobriykaban

    2540

  • avatar

    Udachnick

    1867

  • avatar

    ViktoriaBell0

    1740

Войти через Google

или

Запомнить меня

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

Выберите язык и регион

Русский

Россия

English

United States

zoom

How much to ban the user?

1 hour
1 day

program PR3;
const a=1.5; p=3.14;
var a,x,y: real;
begin
  writeln('Введите x: ');
  read(x);
    if x<1.3 then
    begin
     y=p*sqr(x)-7/sqr(x); {Здесь ошибка}
     writeln('y= ', y);
      if x=1.3 then 
      begin
       y=a*exp(ln(X)*3)+7sqrt(x); {здесь так же пишет ошибку}
       writeln('y= ');
        if x>1.3 then 
        begin
         y=log(x+7*sqrt(x); {здесь так же если убрать предыдущие}
         writeln('y= ');
      end;
    end;
  end;
end.

Выдаёт ошибку Встречено ‘=’, а ожидалось ‘;’ при каждом «=»

задан 26 мая 2021 в 17:59

Элендер's user avatar

2

if SameValue(x, 1.3) then 
begin
  ...
end
else if x < 1.3 then
begin
  y := p * sqr(x) - 7 / sqr(x);
  writeln('y= ', y);
end
else if x > 1.3 then
begin
  ...
end;

ответ дан 26 мая 2021 в 19:43

Формулировка задачи:

Встречено ‘Writeln’, а ожидалось ‘;’ Нужен вот такой вариант Х={a*b+1 если a>b, 25 ecли a=b, (a-5)/b если a




0


Код к задаче: «Встречено ‘Writeln’, а ожидалось ‘;’»

textual

x:=(a-5)/b;//поставьте точку с запятой
Writeln('x');

Полезно ли:

14   голосов , оценка 4.071 из 5

  1. Ты написал вместо “begin” bedin. И за константу Pi брать не надо. В системе Pi уже есть, поэтому начальные значения ей давать не нужно. У тебя программа должна выглядеть вот так:

    program n_2;

    var r, c, s: real;

    begin

    writeln (‘Вычисление длины окружности и площади круга’) ;

    write (‘Введите r>>’) ;

    readln (r) ;

    c: = 2*pi*r;

    s:=pi*r*r;

    writeln (‘c=’, c:6:4) ;

    writeln (‘s=’, s:6:4)

    end.

    • Комментировать
    • Жалоба
    • Ссылка

Найдите правильный ответ на вопрос ✅ «Почему паскаль abc выдает ошибку Встречено ‘writeln’, а ожидалось ‘:’ program n_2; const pi=3.14; var r, c, s: real; bedin writeln …» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.

Смотреть другие ответы

Новые вопросы по информатике

Главная » Информатика » Почему паскаль abc выдает ошибку Встречено ‘writeln’, а ожидалось ‘:’ program n_2; const pi=3.14; var r, c, s: real; bedin writeln (‘Вычисление длины окружности и площади круга’) ; write (‘Введите r>>’) ; readln (r) ; c: = 2*pi*r; s:=pi*r*r;

Неописанная переменная

begin
  S := 1; // Неизвестное имя S
end.

Все используемые переменные должны быть предварительно описаны с помощью ключевого слова var (внутри блока begin/end или, что обычно хуже, в разделе описаний вначале программы).

Отсутствующая ;

begin
  var S: integer 
  S := 1;         // Компилятор здесь скажет: Ожидалась ; — имеется ввиду предыдущая строка!
end.
begin
  var S := 1 
  S := S + 1  // Аналогично: проблема на предыдущей строке, а на текущей нет, потому что после неё идёт end.
end.

Очень частая ошибка у начинающих. Курсор, как правило, позиционируется в начале следующей строки.

Несовместимость типов при присваивании

begin
  var S: integer := 1.3; // Нельзя преобразовать тип real к integer
end.

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

Чтобы не ошибаться в подобных простых случаях в Паскале есть следующая краткая форма объявления и инициализации переменной:

begin
  var S := 1.3; // Тип real будет выведен компилятором автоматически
end.

Отсутствие закрывающего апострофа литеральной строки

begin
  var x := 2;   // x получает тип integer
  var y := 3;   // y получает тип integer
  writeln('Результат сложения равен =, x + y); // Не хватает закрывающего апострофа
end.

Закрыть апостроф надо на той же строке, где расположен открывающий апостроф

Ошибки расстановки запятых и апострофов при выводе строк и выражений

begin
  var x := 2;   // x получает тип integer
  var y := 3;   // y получает тип integer
  writeln(x, '+,' y, '=', x+y); // Неверная расстановка запятых и апострофов
end.

Слишком много запятых и апострофов рядом, потому начинающие часто путаются 🙂
Надо уяснить правила:

  • запятые разделяют разные элементы вывода
  • все, что находится в апострофах, будет выведено на экран без изменений

Ошибка ввода

begin
  var x: integer;
  read(x); // введите блаблабла и посмотрите, что получится
end.

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

Аналогичный фрагмент в более современном и предпочтительном синтаксисе:

begin
  var x := ReadInteger;
end.

Ошибка неинициализированной переменной

begin
  var x: integer;
  // Забыли инициализировать или ввести x
  var r := x * x;  // r получает тип integer
  writeln('Квадрат числа ', x, ' = ', r);
end.

Перед использованием любую переменную надо ввести или присвоить ей начальное значение. Это действие называется инициализацией переменной.

Деление на 0

begin
  var x := 0;
  var c := 666 div x; // Здесь происходит деление на 0
end.

Если во время выполнения программа выполнит деление на 0, то она завершится с ошибкой.

Корень из отрицательного числа

begin
  writeln(sqrt(-1)); // Корень из отрицательного числа 
end.

В обычном Паскале возникает ошибка времени выполнения.
В PascalABC.NET выводится NaN – Not a Number

Ссылки

  • Программы для начинающих
  • Сайт PascalABC.NET: Программы и алгоритмы для начинающих

Добавить комментарий