Ошибка ожидался идентификатор но readln обнаружено

Виды ошибок в программах

Я учусь на своих ошибках. Ругаю себя за это, но продолжаю ошибаться. С другой стороны — это всё-таки лучше, чем не учиться совсем, и наступать на одни и те же грабли бесконечно.

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

Итак, основных вида всего три:

  • Синтаксические ошибки
  • Логические ошибки
  • Ошибки выполнения программы

Синтаксические ошибки в программах

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

Синтаксические ошибки — это ошибки синтаксиса (а то бы вы не догадались))). То есть ошибки правил языка. Например, для Паскаля это будет синтаксической ошибкой:

WriteLn('Hello, World !!!')
ReadLn;

Потому что после первой строки нет точки с запятой.

Подобные ошибки очень часто совершают новички. И это вгоняет их в ступор — они пугаются и не могут понять, что же не так с их кодом. Хотя если бы они внимательно его посмотрели и прочитали сообщение об ошибке, то легко могли бы исправить её:

Синтаксические ошибки в программах

Потому что в сообщении чётко сказано:

Syntax error, ";" expected but "identifier READLN" found

что можно перевести как

синтаксическая ошибка, ";" ожидалось, но "READLN" найден

То есть компилятор говорит нам: я ожидал увидеть точку с запятой, а нашёл идентификатор READLN.

Логические ошибки в программах

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

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

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

Пример логической ошибки:

for i := 1 to 10 do
  if i = 15 then WriteLn('i = 15');

Здесь мы сравниваем значение i с числом 15, и выводим сообщение, если i = 15.
Но фишка в том, что в данном цикле i не будет равно 15 НИКОГДА, потому что в цикле переменной i присваиваются значения от 1 до 10.

Эта ошибка довольно безобидная. Здесь мы имеем просто бессмысленный код, который не причинит никакого вреда.
Однако представьте, что программа должна выдавать какой-то сигнал тревоги, если i = 15. Тогда получится, что никакого сигнала пользователь никогда не услышит, даже если случилось что-то страшное. А всё потому, что программист немного ошибся. Вот так вот и падают ракеты и самолёты…

Распространённые логические ошибки в С++ вы можете посмотреть здесь.

Ошибки времени выполнения программы

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

Одна из самых рапространённых ошибок времени выполнения — это неожиданное деление на ноль. Пример:

Write('y = ');
ReadLn(y);
x := 100 / y;
WriteLn('100 / ', y, ' = ', x);

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

Но представьте, что пользователь введёт ноль. Что тогда будет? Правильно — попытка деления на ноль. А на ноль делить нельзя. Поэтому во время выполнения этой программы произойдёт ошибка, которая очень расстроит пользователя. Потому что в случае, например, с консольным приложением программа просто закроется, и пользователь не поймёт, что это было. Но зато поймёт, что программа — говно, и программы от этого разработчика лучше больше никогда не использовать.

В данном случае, если вы не уверены на 100%, что y будет отличаться от нуля, надо всегда делать проверку на ноль. И хороший код должен быть хотя бы таким:

Write('y = ');
ReadLn(y);
if y = 0 then WriteLn('ERROR: y = 0')
else
  begin
    x := 100 / y;
    WriteLn('100 / ', y, ' = ', x);
  end;

Ну что же. На этом с видами ошибок пока всё. Изучайте программирование и поменьше ошибайтесь.

Основы программирования

Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать.
Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь.
Подробнее…

Виды ошибок в программах

Я учусь на своих ошибках. Ругаю себя за это, но продолжаю ошибаться. С другой стороны — это всё-таки лучше, чем не учиться совсем, и наступать на одни и те же грабли бесконечно.

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

Итак, основных вида всего три:

  • Синтаксические ошибки
  • Логические ошибки
  • Ошибки выполнения программы

Синтаксические ошибки в программах

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

Синтаксические ошибки — это ошибки синтаксиса (а то бы вы не догадались))). То есть ошибки правил языка. Например, для Паскаля это будет синтаксической ошибкой:

WriteLn('Hello, World !!!')
ReadLn;

Потому что после первой строки нет точки с запятой.

Подобные ошибки очень часто совершают новички. И это вгоняет их в ступор — они пугаются и не могут понять, что же не так с их кодом. Хотя если бы они внимательно его посмотрели и прочитали сообщение об ошибке, то легко могли бы исправить её:

Синтаксические ошибки в программах

Потому что в сообщении чётко сказано:

Syntax error, ";" expected but "identifier READLN" found

что можно перевести как

синтаксическая ошибка, ";" ожидалось, но "READLN" найден

То есть компилятор говорит нам: я ожидал увидеть точку с запятой, а нашёл идентификатор READLN.

Логические ошибки в программах

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

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

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

Пример логической ошибки:

for i := 1 to 10 do
  if i = 15 then WriteLn('i = 15');

Здесь мы сравниваем значение i с числом 15, и выводим сообщение, если i = 15.
Но фишка в том, что в данном цикле i не будет равно 15 НИКОГДА, потому что в цикле переменной i присваиваются значения от 1 до 10.

Эта ошибка довольно безобидная. Здесь мы имеем просто бессмысленный код, который не причинит никакого вреда.
Однако представьте, что программа должна выдавать какой-то сигнал тревоги, если i = 15. Тогда получится, что никакого сигнала пользователь никогда не услышит, даже если случилось что-то страшное. А всё потому, что программист немного ошибся. Вот так вот и падают ракеты и самолёты…

Распространённые логические ошибки в С++ вы можете посмотреть здесь.

Ошибки времени выполнения программы

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

Одна из самых рапространённых ошибок времени выполнения — это неожиданное деление на ноль. Пример:

Write('y = ');
ReadLn(y);
x := 100 / y;
WriteLn('100 / ', y, ' = ', x);

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

Но представьте, что пользователь введёт ноль. Что тогда будет? Правильно — попытка деления на ноль. А на ноль делить нельзя. Поэтому во время выполнения этой программы произойдёт ошибка, которая очень расстроит пользователя. Потому что в случае, например, с консольным приложением программа просто закроется, и пользователь не поймёт, что это было. Но зато поймёт, что программа — говно, и программы от этого разработчика лучше больше никогда не использовать.

В данном случае, если вы не уверены на 100%, что y будет отличаться от нуля, надо всегда делать проверку на ноль. И хороший код должен быть хотя бы таким:

Write('y = ');
ReadLn(y);
if y = 0 then WriteLn('ERROR: y = 0')
else
  begin
    x := 100 / y;
    WriteLn('100 / ', y, ' = ', x);
  end;

Ну что же. На этом с видами ошибок пока всё. Изучайте программирование и поменьше ошибайтесь.

Основы программирования

Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать.
Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь.
Подробнее…

Содержание

  1. помогите новичку pliiiz
  2. 14 ответов
  3. Syntax error expected but identifier readln found
  4. Виды ошибок в программах
  5. Подпишись на новости, чтобы ничего не пропустить
  6. Синтаксические ошибки в программах
  7. Логические ошибки в программах
  8. Ошибки времени выполнения программы
  9. Syntax error expected but identifier readln found
  10. Re: Ошибка в коде программы!
  11. Re: Ошибка в коде программы!
  12. Re: Ошибка в коде программы!
  13. Re: Ошибка в коде программы!
  14. Re: Ошибка в коде программы!
  15. Re: Ошибка в коде программы!
  16. Re: Ошибка в коде программы!
  17. Syntax error expected but identifier readln found

помогите новичку pliiiz

14 ответов

Не уверен, что Read без параметров прокатит. А ставить Паскаль влом. Вроде, надо или переменную типа char описывать, или использовать ReadLn.

Я Паскаль уже тоже не помню, но ReadLn b ввод Enter катит точно.

Так ReadLn означает ввод целой строки «в никуда». Можно вводить, что угодно, только Enter не забыть нажать. 😉

спасибо за ответы , да с ReadLn все работает по плану, но например ..такая прогр-ма >>>>

program koren;
var n,max:integer;
begin
writeln(‘число max ? ‘);
readln(max);
n:=2;
while n >16 . после нажатия на ввод , вместо етого она закривается

Originally posted by solinoid
спасибо за ответы , да с ReadLn все работает по плану, но например ..такая прогр-ма >>>>

program koren;
var n,max:integer;
begin
writeln(‘число max ? ‘);
readln(max);
n:=2;
while n >16 . после нажатия на ввод , вместо етого она закривается

Ну ты всегда в конце программы перед end. ставь ReadLn;

Ну ты всегда в конце программы перед end. ставь ReadLn; [/QUOTE]

Fatal:Syntax error,;expected but identifier READLN found

Еще один способ хороший есть:[COLOR=blue]
Program proga;
uses Crt;
var —-;
begin



Repeat until readkey=#27;
end.[/COLOR]
Программа не закроется пока не нажмешь на кнопку Esc.

Источник

Кто может сказать как сделать теперь так.
Существует 3 edit(а)
1-Ввод х
2-Ввод n
3-Вывод S
Существует кнопка которая обрабатывает всю процедуру.

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Ed_x: TEdit;
ed_n: TEdit;
Lb_sum: TLabel;
Label1: TLabel;
Btn_sum: TButton;
Lb_x: TLabel;
Lb_n: TLabel;
procedure Btn_sumClick(Sender: TObject);
procedure Ed_xKeyPress(Sender: TObject; var Key: Char);
procedure ed_nKeyPress(Sender: TObject; var Key: Char);
private
< Private declarations >
public
< Public declarations >
end;

var
Form1: TForm1;

function vstep(z:real;k:integer):real; // функция возведения в степень
begin
vstep:=exp(ln(z)*k);
end;
procedure TForm1.Btn_sumClick(Sender: TObject);
var eps:real;
i:integer;
s,x:real;
n:integer;
begin
x:=strtofloat(ed_x.Text);
if (x 0) then
begin
n:=0;
s:=1;
eps:=0.001;
i:=1;
while eps> 0.0001 do
begin
eps:=(i+1)*vstep(x,i);
s:=s+eps;
i:=i+1;
end;
end
else begin
if ed_n.Text=» then ed_n.Text=’0′;
n:=strtoint(ed_n.Text);
if (n 0) and (vrLength — vrPos > I) and (vrSelStart >= vrPos) then
Key := #0; //»погасить» клавишу
end;
‘,’, ‘.’:
begin
//если запятая уже есть или запятую пытаются поставить перед
//числом или никаких цифр в поле ввода еще нет
if (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0) then
Key := #0 //»погасить» клавишу
else
Key := #44; //всегда заменять точку на запятую
end;
#8: ; //позволить удаление знаков клавишей ‘Back Space’
else
Key := #0; //»погасить» все остальные клавиши
end;
end;
<запрет на ввод не целых чисел и букв>
procedure TForm1.ed_nKeyPress(Sender: TObject; var Key: Char);
var //цифровая маска
vrPos, vrLength, vrSelStart: byte;
const
I: byte = 1;
//I+1 = количество знаков после запятой (в данном случае — 2 знака)
begin

with Sender as TEdit do
begin
vrLength := Length(Text); //определяем длину текста
vrPos := Pos(‘,’, Text); //проверяем наличие запятой
vrSelStart := SelStart; //определяем положение курсора
end;

‘0’..’9′:
begin
//проверяем положение курсора и количество знаков после запятой
if (vrPos > 0) and (vrLength — vrPos > I) and (vrSelStart >= vrPos) then
Key := #0; //»погасить» клавишу
end;

#8: ; //позволить удаление знаков клавишей ‘Back Space’
else
Key := #0; //»погасить» все остальные клавиши
end;
end;

Источник

Виды ошибок в программах

Подпишись на новости, чтобы ничего не пропустить

Я учусь на своих ошибках. Ругаю себя за это, но продолжаю ошибаться. С другой стороны — это всё-таки лучше, чем не учиться совсем, и наступать на одни и те же грабли бесконечно.

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

Итак, основных вида всего три:

Синтаксические ошибки в программах

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

Синтаксические ошибки — это ошибки синтаксиса (а то бы вы не догадались))). То есть ошибки правил языка. Например, для Паскаля это будет синтаксической ошибкой:

Потому что после первой строки нет точки с запятой.

Подобные ошибки очень часто совершают новички. И это вгоняет их в ступор — они пугаются и не могут понять, что же не так с их кодом. Хотя если бы они внимательно его посмотрели и прочитали сообщение об ошибке, то легко могли бы исправить её:

Потому что в сообщении чётко сказано:

что можно перевести как

То есть компилятор говорит нам: я ожидал увидеть точку с запятой, а нашёл идентификатор READLN .

Логические ошибки в программах

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

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

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

Пример логической ошибки:

Здесь мы сравниваем значение i с числом 15, и выводим сообщение, если i = 15 . Но фишка в том, что в данном цикле i не будет равно 15 НИКОГДА, потому что в цикле переменной i присваиваются значения от 1 до 10.

Эта ошибка довольно безобидная. Здесь мы имеем просто бессмысленный код, который не причинит никакого вреда. Однако представьте, что программа должна выдавать какой-то сигнал тревоги, если i = 15 . Тогда получится, что никакого сигнала пользователь никогда не услышит, даже если случилось что-то страшное. А всё потому, что программист немного ошибся. Вот так вот и падают ракеты и самолёты…

Распространённые логические ошибки в С++ вы можете посмотреть здесь.

Ошибки времени выполнения программы

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

Одна из самых рапространённых ошибок времени выполнения — это неожиданное деление на ноль. Пример:

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

Но представьте, что пользователь введёт ноль. Что тогда будет? Правильно — попытка деления на ноль. А на ноль делить нельзя. Поэтому во время выполнения этой программы произойдёт ошибка, которая очень расстроит пользователя. Потому что в случае, например, с консольным приложением программа просто закроется, и пользователь не поймёт, что это было. Но зато поймёт, что программа — говно, и программы от этого разработчика лучше больше никогда не использовать.

В данном случае, если вы не уверены на 100%, что y будет отличаться от нуля, надо всегда делать проверку на ноль. И хороший код должен быть хотя бы таким:

Ну что же. На этом с видами ошибок пока всё. Изучайте программирование и поменьше ошибайтесь.

Источник

Syntax error expected but identifier readln found

Анна Бак » 27.10.2014 17:40:51

Re: Ошибка в коде программы!

Дож » 27.10.2014 18:07:56

Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.

Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.

Re: Ошибка в коде программы!

Анна Бак » 27.10.2014 20:02:42

Дож писал(а): Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.

Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.

Я отсканировала текст только для того, чтобы задать вопрос.
А в Free Pascal вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.

Re: Ошибка в коде программы!

Little_Roo » 27.10.2014 20:40:10

Re: Ошибка в коде программы!

Анна Бак » 27.10.2014 21:35:18

Re: Ошибка в коде программы!

Little_Roo » 27.10.2014 21:38:27

Re: Ошибка в коде программы!

Анна Бак » 27.10.2014 22:11:59

Re: Ошибка в коде программы!

Дож » 27.10.2014 23:28:21

Дож писал(а): Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.

Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.

Я отсканировала текст только для того, чтобы задать вопрос.
А в Free Pascal вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.

Источник

Syntax error expected but identifier readln found

Есть код. Говорит ошибка
строка 69 (предпоследняя строка)Ожидалось ‘;’

А действительно, что ты хотел сказать этим оператором?

Добавлено 17.04.11, 18:46
После строки

P.S. пиши код с отступами.

Код был написан с отступами. Только, чтобы это увидеть, надо использовать тэги подсветки, а не цитаты.

yana33311, кнопка «CODE=pas», а не QUOTE.

Этого недостаточно. Тут вся структура программы порушена. Что за переменная e в 25-ой строке, где она описана? Есть функция exp, переменной e готовой нет. Как может компилироваться строка №39 (Case K Of), когда K описана как Real? Что за описание переменных внутри Case-а (49 строка)?

Ошибок гораздо больше на самом деле (лень проверять в TP, проверил в FPC):

Источник

Adblock
detector

ilyashis

2 / 0 / 0

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

Сообщений: 137

1

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

13.12.2011, 20:11. Показов 45576. Ответов 16

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


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

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
var
  a:array of array of Integer;
  n,x,i,j:integer;
begin
   Write('N='); Readln(n);
   SetLength(a,n,n);
   x:=n;
 
   for i:=0 to n-1 do
    begin
      for j:=0 to n do
        begin
          if (x>n) then a[i,j]:=0
          else
           begin
            a[i,j]:=x;
            x:=x+1;
           end;
        end;
      x:=n-i-1;
    end;
   for i:=0 to n-1 do
   begin
     for j:=0 to n-1 do
     begin
       write(a[i,j],' ');
     end;
   Writeln;
   end;
Readln;
end.



0



Programming

Эксперт

94731 / 64177 / 26122

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

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

13.12.2011, 20:11

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

Ошибка:Ожидался идентификатор
type
PTClient = ^TClient;
TClient = object;

constructor create(value: integer);

Ошибка «ожидался идентификатор»
Шифр состоит из двух частей: зашифрованного сообщения и ключа к нему. Зашифрованное сообщение и…

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

Ожидался идентификатор, но C не обнаружено
Program M;
Type
product=(milk,sugar,tea,salt,butter,eggs,marmalade,bacon);
mnprod=set of…

16

Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:16

2

a:array of array of Integer;

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

Pascal
1
a:array[1..100,1..100] of integer;

а ваша запись является неверной, также неверна запись

Pascal
1
2
3
for i:=0 to n-1 do
    begin
      for j:=0 to n do

должно быть так, я думаю

Pascal
1
2
3
for i:=1 to n-1 do
    begin
      for j:=1 to n do



1



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:20

 [ТС]

3

да
но появилась ошиька — неверное количество фактических параметров (вот здесь) — SetLength(a,n,n);



0



13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:23

4

попробуйте удалить эту строчку



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:25

 [ТС]

5

»*Ошибка: 0 — выход за границы диапазона изменения индекса 1..1000 (p.pas, строка 27)



0



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

7966 / 3937 / 2464

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

Сообщений: 5,377

13.12.2011, 20:27

6

Steacher, отсчет элементов массива может быть и от 0, и даже от отрицательного числа, главное, чтобы индексы были целыми, хотя, конечно, традиционным считается отсчет от 1

Добавлено через 1 минуту
ilyashis, было бы легче, если бы выложили задание…



0



Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:31

7

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
var
  a:array[1..100,1..100] of Integer;
  n,x,i,j:integer;
begin
   Write('N='); Readln(n);
 
   x:=n;
 
   for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          if (x>n) then a[i,j]:=0
          else
           begin
            a[i,j]:=x;
            x:=x+1;
           end;
        end;
      x:=n-i-1;
    end;
   for i:=1 to n do
   begin
     for j:=1 to n do
     begin
       write(a[i,j],' ');
     end;
   Writeln;
   end;
end.

вам вот так нужно?

Добавлено через 1 минуту
КонецСвета, не знал, т.е если я буду задавать массив a:array[-10..10] of integer; он будет работать?



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:34

 [ТС]

8

сформировать квадратную матрицу n по заданному образцу

Изображения

 



0



13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:35

9

добавил решение в последнее сообщение.



0



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

7966 / 3937 / 2464

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

Сообщений: 5,377

13.12.2011, 20:35

10

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

КонецСвета, не знал, т.е если я буду задавать массив a:array[-10..10] of integer; он будет работать?

легко, это одно из типичных заданий, но не здесь, еще встретишь…



0



Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:35

11

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

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
var
  a:array[1..100,1..100] of Integer;
  n,x,i,j:integer;
begin
   Write('N='); Readln(n);
 
   x:=n;
 
   for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          if (x>n) then a[i,j]:=0
          else
           begin
            a[i,j]:=x;
            x:=x+1;
           end;
        end;
      x:=n-i;
    end;
   for i:=1 to n do
   begin
     for j:=1 to n do
     begin
       write(a[i,j],' ');
     end;
   Writeln;
   end;
end.



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:42

 [ТС]

12

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

ну тогда решение, 2 сообщениями выше.

там же с 0 начинается

Добавлено через 3 минуты
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT.
Написать программу, которая:
1)выводит текст на экран дисплея;
2)определяет количество предложений текста и количество слов в каждом предложении;
3)по нажатию произвольной клавиши поочередно выделяет предложение текста, а в выделенном предложении — поочередно все слова.

Добавлено через 19 секунд
помогите вот с этим



0



КонецСвета

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

7966 / 3937 / 2464

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

Сообщений: 5,377

13.12.2011, 20:42

13

ilyashis, разреши предложить тебе другое решение первой задачи (а вот со второй не помогу…)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
var a: array [1..100,1..100] of integer;
   n,i,j: integer;
begin
write('n=');
readln(n);
a[1,1]:=n;
for i:=1 to n do
    begin
    for j:=1 to n do
        begin
        if i=j then a[i,j]:=n else
           if (i>1) and (i>j) then a[i,j]:=a[i-1,j]-1 else
              a[i,j]:=0;
        write(a[i,j]:3);
        end;
    writeln;
    end;
end.



1



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:44

 [ТС]

14

спасибо
почему со второй не поможешь?



0



КонецСвета

13.12.2011, 20:48

Не по теме:

файлы, как и прочая «высшая математика» пока за пределами моей компетенции…



0



Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:51

16

Имя файла должно иметь расширение DAT.
Написать программу, которая:
1)выводит текст на экран дисплея;
2)определяет количество предложений текста и количество слов в каждом предложении;
3)по нажатию произвольной клавиши поочередно выделяет предложение текста, а в выделенном предложении — поочередно все слова.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt;
var f1:text; S:string;  i,c:integer;
begin
assign(f1,'D:Documents and SettingsAdminРабочий столТекстовый документ (2).txt'); // тут свой пусть к файлу
reset(f1);
readln(f1,s);
writeln(s);
writeln;
for i:=1 to length(s) do
  if s[i]='.' then c:=c+1;
close(f1);
write('В тексте ',c,' предложений');
 
end.

последний пункт что то не получается сделать.



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 21:03

 [ТС]

17

спасибо

Добавлено через 4 минуты
было б круто если 3-й пункт была



0



Исправить ошибку в написании программы. В Паскале пишет ожидался идентификатор ,но » » обнаружено
var
  i, s, n: integer;
begin
  readln(n);
  s := 0;
  i := 0;
  while i < n do
  begin
    i := i + 1;
    s := s + i;
  end;
  writeln(‘Цикл с предусловием: ‘, s);
  s := 0;
  i := 1;
  repeat
    s := s + i;
    i := i + 1;
  until i > n;
  writeln(‘Цикл с постусловием: ‘, s);
  s := 0;
  for i := 1 to n do
    s := s + i;
  writeln(‘Цикл с переменной: ‘, s);
end.

На этот вопрос еще никто не ответил. Напишите свой ответ или воспользуйтесь поиском:

Новые вопросы

I am just trying to learn something new, so I am trying Pascal, but just simple hello world is not working with errors —

Novy1.pas(12,3) Fatal: Syntax error, «;» expected but «identifier WRITELN» found

Error: C:FPC3.0.2bini386-win32ppc386.exe returned an error exitcode

My code

program Hello;

begin
  
writeln('test');
  
readln();
 
 end      

Please help.

  • pascal

Community's user avatar

asked Feb 22, 2017 at 18:10

Nico Budík's user avatar

8

  • Don’t know if this is the error, but you lack the «.» after «end». Should be «end.»

    Feb 22, 2017 at 18:17

  • Well, I’d be surprised if this fixes your problem, but you need a full-stop after the «end». Btw, which Pascal compiler are you using?

    Feb 22, 2017 at 18:17

  • @MartynA, from the error message you can see that it is FPC 3.0.2 32 bit windows compiler. Perhaps there is a lack of declarations like {$mode objfpc}{$H+} or {$APPTYPE CONSOLE} or Uses Classes;'

    Feb 22, 2017 at 19:13

  • @LURD: Thanks, I obviously missed that

    Feb 22, 2017 at 19:33

  • In addition to the . after the end, if you’re not going to be reading into any variables then you don’t need the () after the readln.

    Feb 23, 2017 at 20:35

Load 7 more related questions

Show fewer related questions

uses
  sysutils; 
var
  code, key : string;
  n : byte;
procedure Init;
var
  fin : text; tmp : string;
  y:integer;
begin
  Assign(fin, 'input3.txt'); reset(fin);
  readln(fin, n);
  for y := 1 to n do
    begin
      readln(fin, tmp);
      code := code + tmp;
    end;
  for y := 1 to n do
    begin
      readln(fin, tmp);
      key := key + tmp;
    end;
  close(fin);
end;
 
procedure Solve;
var
  res: string; fout: text;
  i:integer;
begin
  Setlength(res, n*n);
  for i := 1 to n*n do
    begin
      if key[i] in ['0'..'9'] then
        res[StrToInt(key[i])+1] := code[i];
      if key[i] in ['A'..'Z'] then
        res[ord(key[i])-ord('A')+11] := code[i];
    end;
  assign(fout, 'otput3.txt');ReWrite(fout);
  writeln(fout, res); Close(fout);
end;
 
BEGIN
  Init;Solve;
END.

Начало. Возможные ошибки

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

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

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

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

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

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

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

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

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

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

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

Ошибка ввода

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

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

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

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

Деление на 0

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

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

Оператор в качестве своего операнда требует идентификатор какого-либо элемента (класса, интерфейса, переменной и т.п.).

Способ устранения

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

Пример

При компиляции указанного кода на строке «i := Integer.;» будет сгенерирована ошибка «Ожидается идентификатор». Для разрешения ошибки необходимо дописать допустимый идентификатор метода, например «Parse».

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

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск

Страница 1 из 3 1 2 3 Следующая >
psycho-coder
Посмотреть профиль
Найти ещё сообщения от psycho-coder

ЛЮДИ решите, плиз, а то я не совсем это понимаю

80. Дано действительное число x. Вычислить
3 5 7 9 11 13
x-x /3!+x /5!-x /7!+x /9!-x /11!+x /13!

Жека-старший
Посмотреть профиль
Найти ещё сообщения от Жека-старший

80. Дано действительное число x. Вычислить
3 5 7 9 11 13
x-x /3!+x /5!-x /7!+x /9!-x /11!+x /13!

Жека-старший
Посмотреть профиль
Найти ещё сообщения от Жека-старший

ещё 2
200. Даны целые числа a, n, x1. xn (n>0). Определить, каким
по счету идет в последовательности x1. xn член равный а. Если
такого члена нет, то ответом должно быть число 0.

201а. Даны натуральное число n, действительные числа а1. аn.
Получить max(a1. an).

паскаль выдаёт ошибку «ожидался идентификатор»…

program
var x1,y1,x2,y2,x3,y3,a,b,c,p,h,m,s:real;
begin
a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
b:=sqrt(sqr(x1-x3)+sqr(y1-y3));
c:=sqrt(sqr(x2-x3)+sqr(y2-y3));
p:=(a+b+c)/2;
h:=2*sqrt(p*(p-a)*(p-b)*p-c))/2;
m:=sqrt(2*sqr(b)+2*sqr(c)-sqr(a))/2;
s:=sqrt(p*(p-a)*(p-d)*(p-c));
end.

  • ошибка
  • паскаль

Паскаль пишет «ожидался идентификатор», не могу понять почему.

Паскаль пишет "ожидался идентификатор", не могу понять почему?

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

Понравилась статья? Поделить с друзьями:
  • Ошибка ожидался идентификатор pascal
  • Ошибка ожидалось присваивание
  • Ошибка ожидалось имя процедуры или функции
  • Ошибка ожидается именованный объект
  • Ошибка ожидается eof dynamo