Неизвестное имя в паскале как исправить
Перейти к содержимому

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

  • автор:

Pascal ABC выдает ошибку «Неизвестное имя ‘n'»

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

Pascal ABC выдает ошибку где её быть по сути не должно
Проблему выдает в 3 строчке кода:

1.pas(7) : Неизвестное имя ‘n’

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Program A1; uses Crt; var A: Array [1..n] of integer; C: Array [1..x] of integer; n,x:integer; i:byte; Begin x:=0; writeln('Введіть n'); readln(n); Writeln ('Генерируються рандомные значения. '); randomize; for i:=1 to n do Begin A[i]:=random(21)-10; write(A[i],' '); End; readln end.

На второй массив не обращайте внимание. Он мне нужен будет позже.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Pascal ABC работает, а Lazarus выдает ошибку
Помогите, пожалуйста, разобраться, почему Lazarus ругается. Вылетает на 63 строке и пишет.

Программа работает на pascal abc но выдает неверный ответ на lazarus
function count(s, s1: string): longint; begin if length(s) >= length(s1) then begin if.

Комбинаторика (исправить ошибку) / Pascal ABC
У продавца и покупателя имеется неограниченное кол-во монет достоинством.

Программа написана на Pascal ABC, но нужно её открыть в Pascal ABC NET
program pr; uses crt, graphABC; var i:integer; begin setwindowwidth(700); .

Выводит ошибку неизвестное имя типа «Text» как испрвить?
program Crypt; var key, text, longkey, result : string; i : integer; toto, c : char; F : .

Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181

Естественно, в строках 3 и 4 программа не знает что такое n, x

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

var A,C: Array [1..100] of integer;

Добавлено через 1 минуту
А вообще в .net есть динамические массивы

var a,c:array of integer;

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

пишет теперь ошибку : Program1.pas(11) : Неизвестное имя ‘i’ описываю в цикла i: real и пробовала integer все равно этаже ошибка

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 20:57 .
Регистрация: 09.01.2008
Сообщений: 26,229

ужас!
Извините, но, похоже, программирование это не ваше!

смотрите.
что у Вас в программе обозначают идентификаторы a и b (или A и B — Паскаль регистр букв не различает)

Var A,L,Lt: array[1..n,1..n] of real; B,X,y: array[1..n] of real;

тут Вы их объявляете как массивы (это правильно!)

и тут, неожиданно:

procedure b;

Как прикажете Паскалю Вас понять? B — это массив или процедура?!

вызов процедур a и b
процедуры с именем a нет (вы её переименовали в p).
насчёт b я уже выше писал..

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

UPDATED
А! Извините, я увидел пример кода от Stilet. Это его фокусы с процедурами a и b, которые имеют те же имена, что и массивы.
Но он код писал прямо тут на форуме, в браузере, ещё и особо не разбираясь, что за задачу Вы, собственно, решаете.
Поэтому ему простительно ошибаться.

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 21:07 .

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

Форумчанин
Регистрация: 12.03.2014
Сообщений: 217
Сообщение от Serge_Bliznykov

ужас!
Извините, но, похоже, программирование это не ваше!

смотрите.
что у Вас в программе обозначают идентификаторы a и b (или A и B — Паскаль регистр букв не различает)

тут Вы их объявляете как массивы (это правильно!)

и тут, неожиданно:

Как прикажете Паскалю Вас понять? B — это массив или процедура?!

дальше:
вызов процедур a и b
процедуры с именем a нет (вы её переименовали в p).
насчёт b я уже выше писал..

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

UPDATED
А! Извините, я увидел пример кода от Stilet. Это его фокусы с процедурами a и b, которые имеют те же имена, что и массивы.
Но он код писал прямо тут на форуме, в браузере, ещё и особо не разбираясь, что за задачу Вы, собственно, решаете.
Поэтому ему простительно ошибаться.

уважаемый , Мегамодератор !не могли бы Вы исправить программу ?
Регистрация: 09.01.2008
Сообщений: 26,229
Сообщение от now2
уважаемый , Мегамодератор !не могли бы Вы исправить программу ?

Вы предлагаете мне написать решение системы алгебраических уравнений разложением Холецкого?!
Или Вам только заполнение матриц A и B нужно сделать.
Если только заполнение — то помогу, это очень просто.

А вот если нужно найти решение X через метод Холецкого. то тут всё гораздо хуже!
Вы вот сюда ходили?
http://www.exponenta.ru/educat/class. e_5/theory.asp
там есть разобранный пример решения матрицы разложением
http://www.exponenta.ru/educat/class. xample.asp#ex2

Попробуйте заполнить массивы A и B заданными в данном примере числами.
Выведите полученные матрицы LL и LLt
сравните с теми, что получены в статье.
Дальше найдите массив Y
сравните его с тем, что получен в статье.
ну и дальше уже проще — найдите собственно массив решений X

p.s. простите, но пары часов на подобные «развлечения» у меня нет.

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

Форумчанин
Регистрация: 12.03.2014
Сообщений: 217
Сообщение от Serge_Bliznykov

Вы предлагаете мне написать решение системы алгебраических уравнений разложением Холецкого?!
Или Вам только заполнение матриц A и B нужно сделать.
Если только заполнение — то помогу, это очень просто.

А вот если нужно найти решение X через метод Холецкого. то тут всё гораздо хуже!
Вы вот сюда ходили?
http://www.exponenta.ru/educat/class. e_5/theory.asp
там есть разобранный пример решения матрицы разложением
http://www.exponenta.ru/educat/class. xample.asp#ex2

Попробуйте заполнить массивы A и B заданными в данном примере числами.
Выведите полученные матрицы LL и LLt
сравните с теми, что получены в статье.
Дальше найдите массив Y
сравните его с тем, что получен в статье.
ну и дальше уже проще — найдите собственно массив решений X

p.s. простите, но пары часов на подобные «развлечения» у меня нет.

давайте заполение A и В хоть
Форумчанин
Регистрация: 12.03.2014
Сообщений: 217
как для этой проги описание a и b cделать?

program kursovaya; uses crt; const p=10; type mattype=array[1..p,1..p] of double; mattype1=array[1..p] of double; procedure writemat (var a:mattype; n,m:byte); var i,j:byte; begin writeln; for i:=1 to n do begin for j:=1 to m do write(a[i,j]:7:3,' '); writeln end; end; procedure inputmat (var a:mattype;var d:mattype1; var n:byte); var i,j:byte; begin writeln; write ('Введите размер матрицы = '); readln(n); writeln; writeln('Введите матрицу:'); writeln; for i:=1 to n do for j:=1 to n do read (a[i,j]); writeln; writeln('Введите свободные коэффициенты:'); writeln; for i:=1 to n do readln(d[i]); writeln; end; procedure getBnC(var a,b,c:mattype; n:byte); var k,i,a1,j:byte; begin for k:=1 to n do for i:=1 to n do begin if k=i then c[k,i]:=1 else c[k,i]:=0; b[k,i]:=0; end; for a1:=1 to n do begin if a1=1 then begin for i:=1 to n do b[i,1]:=a[i,1]; for i:=2 to n do c[1,i]:=a[1,i]/b[1,1]; end else begin k:=a1; for i:=a1 to n do begin b[i,k]:=a[i,k]; for j:=1 to k-1 do b[i,k]:=b[i,k]-b[i,j]*c[j,k]; end; i:=a1; for k:=i+1 to n do begin c[i,k]:=a[i,k]; for j:=1 to i-1 do c[i,k]:=c[i,k]-b[i,j]*c[j,k]; c[i,k]:=c[i,k]/b[i,i]; end; end; end; end; procedure otvet(var b,c:mattype; d:mattype1; n:byte); var x,y,s:mattype1; i,j,k:byte; w,q:double; y1,x1:mattype; begin for i:=1 to n do if i=1 then y[i]:=d[i]/b[i,i] else begin w:=0; for k:=1 to i-1 do begin y1[i,k]:=w+b[i,k]*y[k]; w:=y1[i,k]; end; y[i]:=(d[i]-w)/b[i,i]; end; for i:=n downto 1 do if i=n then x[i]:=y[i] else begin q:=0; for k:=i+1 to n do begin x1[i,k]:=q+c[i,k]*x[k]; q:=x1[i,k]; end; x[i]:=y[i]-q; end; writeln; writeln('Ответ X:'); writeln; for i:=1 to n do writeln('x[',i,']= ',x[i]:1:4); writeln; end; var a,a1,c,b:mattype; d:mattype1; n:byte; begin clrscr; writeln ('метод Холецкого '); InputMat(a,d,n); getBnC(a,b,c,n); < Получение треугольных матриц B u C>Writeln('Матрица B: '); writemat(b,n,n); readln; Writeln('Матрица C: '); writemat(c,n,n); otvet(b,c,d,n); readln; end.

________
ВЫ ЧТО, НЕ ПОНИМАЕТЕ, ЧТО КОД НА ФОРУМЕ НУЖНО ОФОРМЛЯТЬ.

Исходный код программы нужно ОБЯЗАТЕЛЬНО оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)

Не забывайте об этом.

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 22:56 .

Почему в Паскале выдаёт ошибку «Неизвестное имя (n)»

Хочу написать мини прогу которая создавала бы рандомные примеры и пользователь решал бы их, но не могу понять почему выдаёт ошибку.
Вот код.
Program Igra;
Uses CRT;
var a,b,c,d:integer;
begin
clrscr;
TextColor(white);
TextBackground(Black);
GotoXY(512,512);
begin
clrscr;
TextColor(white);
TextBackground(Black);
GotoXY(512,512);
write(‘Сколько будет’ ,a,’+’,b,’?’);readln(n);
randomize;
a:=random(100);
b:=random(100);
c:=a+b;
if n=c then writeln(‘Правильно!’)
else writeln(‘Неправильно, подумай ещё. ‘)

Голосование за лучший ответ
Переменная «n» не объявлена
В var n добавь и ее тип, если не integer

Не говоря уже о том, что ты сначала печатаешь значения а и b, а потом их задаешь.

Program Igra;
var a,b,c:integer;
begin
randomize; a:=random(100); b:=random(100);
writeln(‘Сколько будет’ ,a,’+’,b,’?’); readln(c);
if c=a+b then writeln(‘Правильно!’) else writeln(‘Неправильно’);
end.

Мало того, что эта переменная не объявлена, там еще вообще написан какой-то бред. Все это вообще не должно работать.

ты не написал переменную n опиши её в Var;)
Бера БерезинПрофи (923) 5 лет назад

Бро, ну чо это за хрень, a?

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

Пользователь

AHiLLA

Сейчас: Offline
Имя: Али
Откуда: Махачкала
Регистрация: 19.01.2010
bogdan-g, вот

Прикрепленные файлы:
ball.gif (2.05 кб.) Скачано 488 раз

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

Вот нашел исходник проги Pascal ABC постоянно выбивает ошибки. Не скажете в чеем дело, как по мне исходник рабочий:незнаю:

Открыть спойлер
Закрыть спойлер
program NLO ;
uses crt , graph ;
const k = 20 ;

var gd , gm , xmin , xm , ymin , ym , x , y , tx , ty , rx , ry , size , i , dx , dy , width , height : integer ;

sauser : Pointer ;
gd : = detect ;
initgraph ( gd , gm , ‘путь к драйверу’ ) ;
SetTextStyle ( 0 , 0 , 2 ) ;
OutTextXY ( 50 , 10 , ‘Демонстрация движения НЛО’ ) ;
xm : = GetmaxX — 5 ;
ym : = GetmaxY — 25 ;
Ellipse ( x , y , 0 , 360 , R , R div 3 + 2 ) ;
Ellipse ( x , y — 4 , 190 , 357 , R , R div 3 ) ;
Line ( x + 7 , y — 6 , x + 10 , y — 12 ) ;
Line ( x — 7 , y — 6 , x + 10 , y — 12 ) ;
Circle ( x + 10 , y — 10 , 2 ) ;
Circle ( x — 10 , y — 10 , 2 ) ;
FloodFill ( x + 1 , y + 4 , White ) ;
Ty : = y — 14 ;
Ry : = y + Rdiv3 + 3 ;
Width : = Rx — Tx + 1 ;
Size : = ImageSize ( Tx , Ty , Rx , Ry ) ;
GetMem ( sauser , Size ) ;
GetImage ( Tx , Ty , Rx , Ry , sauser ^ ) ;
PutImage ( Tx , Ty , sauser ^ , XorPut ) ;
SetStyle ( 1 , blue ) ;
SetColor ( White ) ;
Rectangle ( xmin , ymin , GetmaxX , GetmaxY ) ;
SetViewPort ( xmin , ymin , GetmaxX , GetmaxY , ClipOn ) ;
FloodFill ( xmin + 1 , ymin + 1 , White ) ;
For i : = 1 to 500 do
PutPixel ( Random ( GetmaxX ) ,
Random ( GetmaxY — ymin ) , 15 ) ;
x : = xm div 3 — xmin ;
y : = ym div 3 — ymin ;
PutImage ( x , y , sauser ^ , XorPut ) ;
Delay ( Pause ) ;
PutImage ( x , y , sauser ^ , XorPut ) ;
If ( x xm ) Or ( y + Height + 1 > ym ) Then
If ( x — Dx< xmin ) then x : = xmin else x : = x - Dx ; If ( y - Dy< ymin ) then y : = ymin else y : = y - Dy ; Dx : = GetmaxX div 10 - Random ( GetmaxX div 4 ) ; Dy : = GetmaxY div 10 - Random ( GetmaxY div 4 ) ; If ( x + Dx< xm ) then x : = x + Dx else x : = Random ( GetmaxX ) - Random ( GetmaxX div 4 ) ; If ( y + Dy< ym ) then y : = y + Dy else y : = Random ( GetmaxY ) - Random ( GetmaxY div 3 ) ; until KeyPressed ; FreeMem ( sauser , Size ) ; Closegraph ;

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

DEn_325O

Сейчас: Offline
Имя: DEn
Регистрация: 18.04.2010
Az@, Это ж исходники для турбо паскаля.

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

Вроде язык один и тот же ведь

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

Тогда следует логичный вопрос: как реализовать графику в PascalABC.NET?

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

DEn_325O

Сейчас: Offline
Имя: DEn
Регистрация: 18.04.2010

Az@, Весь исходник не смотрел, он попробуй для начала переименовать graph на graphABC и убрать initgraph, gd:=detect

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

Не прет. Пишет неизвестное имя ‘detect’

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

Ща неизвестное имя ‘SetTextStyle’ тут походу затачивать всё конкрето нада

  • Скопировать ссылку
  • Скопировать как BB-код
  • Перейти к посту

Пользователь

DEn_325O

Сейчас: Offline
Имя: DEn
Регистрация: 18.04.2010

Az@, Вообще советую посмотреть, там наверху где-то на панельке есть раздел «примеры» и там достаточно много этих самых примеров, связанных с графиной,

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *