Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Задачка по Паскалю (http://www.tehnari.ru/f41/t94960/)

Раджаб bro 02.03.2014 23:19

Задачка по Паскалю
 
Вложений: 1
Короче дали мне задачку написать Вложение 177834
Она выдает ошибку думаю детскую но не могу исправить(((



Program A1;
Type Mas=array[1..3] of real;
Const x: Mas=(-2.2,5,1);
y: Mas=(-1,0,2);
a:array[1..9] of real=(1.3,5,1,2,3.2,1,6,7,8);
Var c,d,sum1:real;


Procedure B(x,y,a:Mas);
begin
c:=x[1]*a[1];
d:=y[1]*a[1];
end;
Begin

sum1:=c+d;
Writeln('Сумма',sum1);
end.

Раджаб bro 02.03.2014 23:20

c:=x[1]*a[1];
d:=y[1]*a[1];

Думаю что основная моя тупость заключается здесь.

Vladimir_S 03.03.2014 08:43

Цитата:

Сообщение от Раджаб bro (Сообщение 1011108)
Думаю что основная моя тупость заключается здесь.

Не тупость. Просто лень и полное нежелание учиться.
Прежде, чем браться за написание программы, соблаговолите постичь азы матричной алгебры, в частности, разобраться, что такое произведение матриц, как умножать вектор на матрицу и т.д. Вот, для начала ознакомьтесь.
А программа может выглядеть, например, так:
Код:

Type
 Vect=array[1..3] of real;
 Matr=Array[1..3,1..3] of real;

Const
 x:Vect=(-2.2,5,1);
 y:Vect=(-1,0,2);
 a:Matr=((1.3,5,1),(2,3.2,1),(6,7,8));

Function Prod(PV:Vect;PM:Matr):Vect;
var
 j,k:Byte;
 M:Vect;
begin
 for j:=1 to 3 do M[j]:=0;
 for j:=1 to 3 do
  for k:=1 to 3 do
  M[j]:=M[j]+PV[k]*PM[k,j];
 Prod:=M;
end;

Function Sums(V1,V2:Vect):Vect;
var
 i:Byte;
begin
 for i:=1 to 3 do Sums[i]:=V1[i]+V2[i];
end;

Var
 q:Byte;
 R:Vect;

Begin
 R:=Sums(Prod(x,a),Prod(y,a));
 for q:=1 to 3 do write(R[q]:0:3,'    ');
 Readln
End.



Часовой пояс GMT +4, время: 17:58.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.