Двумерный массив в паскале
Здравствуйте.
Подскажите, пожалуйста, можно ли в паскале при объявлении инициализировать двумерный массив 3x3.
Например, как одномерный:
A: array[1..5] of integer=(1,2,3,4,5)
Заранее спасибо.
Подскажите, пожалуйста, можно ли в паскале при объявлении инициализировать двумерный массив 3x3.
Например, как одномерный:
A: array[1..5] of integer=(1,2,3,4,5)
Заранее спасибо.
Компилятор говорит ошибка. Хочет ; после integer
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Так можно объявлять переменные в разделе Const, а Вы наверное пытаетесть в Var.
type mas=array[1..3,1..3] of integer;
const a: mas=((1,2,3),(1,2,3),(1,2,3));
И так не получается.
const a: mas=((1,2,3),(1,2,3),(1,2,3));
И так не получается.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Хм... У меня это компилируется.
Какая версия Pascal?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Я проверил в Borland Pascal 7 и в Pascal ABC
Какая версия Pascal?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Я проверил в Borland Pascal 7 и в Pascal ABC
А у меня ругается на type. Версия 7.1, но я ее качала с нета, она очень мало "весит", может какая-нибудь "облегченная версия".
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Настолько облегченных верси не бывает! 
Ищите опечатку.
Сделайте в конце концов просто "копи-паст" вашего исходного кода сюда, если ничего не получится. Посмотрим.

Ищите опечатку.
Сделайте в конце концов просто "копи-паст" вашего исходного кода сюда, если ничего не получится. Посмотрим.
Вот. Может, если будет желание, Вы и мат часть посмотрите. Строго не судите, паскаль знаю плохо, да и алгоритмы кривоваты)))
Программа считает коэффициенты характеристического уравнения, находит локализационные промежутки и корни с точностью Е.
Если вводить матрицу вручную, то все работает.
Программа считает коэффициенты характеристического уравнения, находит локализационные промежутки и корни с точностью Е.
Если вводить матрицу вручную, то все работает.
Код: Выделить всё
program matrix;
uses Crt;
var
type mas=array[1..3,1..3]of integer;
const A: mas=((-1,-3,0),
(2,4,1),
(-1,3,5)); }
i,j,x1,k,x2,x3,x4: integer;
e,l,b1,b2,c,x: real;
A2: array[1..11] of integer;
A1: array[1..301] of integer;
A3: array[1..301] of integer;
begin
clrscr;
writeln;
Writeln('Vvedite znachenia matricy :');
writeln;
for i:=1 to 3 do
begin for j:=1 to 3 do
read (A[i,j]);
write (' ');
end;
writeln;
x1:=0;
x2:=0;
x3:=0;
x4:=0;
writeln('Matrica viglydit sledyushim obrazom :');
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write (' ', A[i,j]);
end;
writeln;
end;
x1:=-1;
x2:=A[1,1]+A[3,3]+A[2,2];
x3:=-A[1,1]*A[3,3]-A[1,1]*a[2,2]+A[3,2]*A[2,3]+A[1,2]*A[2,1]+A[1,3]*A[3,1]-A[2,2]*A[3,3];
x4:=A[1,1]*(A[2,2]*A[3,3]-A[3,2]*A[2,3])-A[1,2]*(A[2,1]*A[3,3]-A[3,1]*A[2,3])+A[1,3]*(A[2,1]*A[3,2] - A[3,1]*A[2,2]);
writeln('Koefficienty harakteristicheskogo yravneniy : x1=',x1,' x2=',x2,' x3=',x3,' x4=',x4);
{Nahozhdenie promezhytkov}
j:=1;
for i:=-20 to 20 do
begin
A1[j]:=x1*i*i*i+x2*i*i+x3*i+x4;
A3[j]:=i;
j:=j+1;
end;
k:=0;
i:=1;
for j:=1 to 41 do
begin
if ((A1[j]>0)and(A1[j+1]<0))or((A1[j]<0)and(A1[j+1]>0))
then
begin
A2[i]:=A3[j];
A2[i+1]:=A3[j+1];
i:=i+1;
k:=k+2;
end;
end;
writeln;
writeln;
writeln('Localizacionnie promezhytki :');
for i:=1 to k do
begin
write ('[',A2[i],';',A2[i+1],'], ');
i:=i+1;
end;
{Metod polovinnogo deleniy}
writeln;
writeln ('Vvedite tochnost, s kotoroi neobhodimo vichislit :');
readln(e);
for i:=1 to k do
begin
b1:=A2[i];
b2:=A2[i+1];
c:=(b1+b2)/2;
while abs(b2-b1)>e do
begin
if (x1*b1*b1*b1+x2*b1*b1+x3*b1+x4)*(x1*c*c*c+x2*c*c+x3*c+x4)=0 then
b2:=c else
b1:=c;
c:=(b1+b2)/2;
end;
x:=(b1+b2)/2;
writeln('x=',x,' ');
i:=i+1;
end;
readln (i);
end.
-
- Сообщения: 6
- Зарегистрирован: 20 апр 2009, 12:33
- Откуда: Алтайский край
- Контактная информация:
он случайно не ругается на скобочку в конце?
Код: Выделить всё
const A: mas=((-1,-3,0),
(2,4,1),
(-1,3,5)); }