Консультация № 181132
06.12.2010, 22:31
0.00 руб.
0 5 1
Уважаемые эксперты нужна помощь с программой, вот задание:
Используя для представления векторов и матриц, соответствтвенно, одномерные и двумерныевые массивы выполнить следующие действия:
сложить два вектора (вектор - одномерный массив)
вот я написал, не знаю правильно или нет, но вот где написано формула скал произв - я не знаю как на языке паскаль её записать( помогите пожалуйста
program fz;
uses crt;
type tvector:array[1..3] of real;
vect1:tvector;
Vect2:tvector;
vect3:tvector;
function scalyar(v1;v2:tvector):tvector;
begin
result:=формула скал произв;
end;
begin
clrscr;
Writeln('Enter vector1:')
Readln(vect1[1],vect1[2],vect1[3]);
Writeln('Enter vector2:')
Readln(vect2[1],vect2[2],vect2[3]);
vect3:scalyar(vect1,vect2);
Writeln('scalyar= ')
Write(vect3[1],vect3[2],vect3[3]);
Readln;
end.

Обсуждение

Неизвестный
06.12.2010, 22:56
общий
это ответ
Здравствуйте, Ивановский Иван Валерьевич!

Предлагаю свой вариант решения задачи нахождения скалярного произведения векторов:

program fz;
type tvector=array[1..3] of real;
var rez:real;
vect1:tvector;
Vect2:tvector;
vect3:tvector;
function scalyar(const v1,v2:tvector):real;
var i:byte;
j:real;
begin
j:=0;
for i:=1 to 3 do
j:=j+vect1[i]*vect2[i];
scalyar:=j;
end;
begin
Writeln('Enter vector1:');
Read(vect1[1],vect1[2],vect1[3]);
Writeln('Enter vector2:');
Read(vect2[1],vect2[2],vect2[3]);
rez:=scalyar(vect1,vect2);
Writeln('scalyar=',rez);
Readln;
end.

Удачи!
Неизвестный
06.12.2010, 22:59
общий
Тестировал на ABC паскале.
Неизвестный
06.12.2010, 23:19
общий
Если захотите модернизировать для n-мерного пространства то добавте в раздел констант N и в цикле подсчета скалярного произведения укажите N

Примерно вот так(не компилировал):
Код:
program fz;
const n=6; { число измерений вашего пространства}
type tvector=array[1..n] of real;
var rez:real;
i:integer;
vect1:tvector;
Vect2:tvector;
vect3:tvector;
function scalyar(const v1,v2:tvector):real;
var i:byte;
j:real;
begin
j:=0;
for i:=1 to n do
j:=j+vect1[i]*vect2[i];
scalyar:=j;
end;
begin
Writeln('Enter vector1:');
for i:=1 to n do
Readln(vect1[i]);
Writeln('Enter vector2:');
for i:=1 to n do
Readln(vect2[i]);
rez:=scalyar(vect1,vect2);
writeln('Ваши векторы:');
writeln('Первый вектор:');
for i:=1 to n do
write('{',vect1[i],'}');
writeln;
writeln('Второй вектор:');
for i:=1 to n do
write('{',vect2[i],'}');
writeln;
Writeln('scalyar=',rez);
Readln;
end.
Неизвестный
06.12.2010, 23:37
общий
спасибо! завтра посмотрю, что к чему, а то сегодня убит)
Неизвестный
06.12.2010, 23:39
общий
Если что пишите чтото исправим или доделаем! Удачи!
Форма ответа