IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> «Вектора и действия над векторами»
marwell
сообщение 18.02.2010 15:14
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

Репутация: -  1  +


Создать приложение по разделу аналитической геометрии «Вектора и действия над векторами». Приложение должно содержать :
1)подпрограммы, реализующие:

а) вычисление скалярного произведения 2-х заданных векторов размерности n (компоненты вектора и n – задаются пользователем);
б) вычисление векторного произведения 2-х заданных векторов размерности n=3 (компоненты векторов задаются пользователем), здесь же находится площадь параллелограмма, построенного на этих векторах;
с)вычисление смешанного произведения трех заданных векторов размерности n (компоненты векторов задаются пользователем);
д) проверку компланарности векторов;

написал, вроде правильно, но на всякий случай прошу проверить
 type myarray=array [1..100] of real;
var i,n:integer;
a,b,c:myarray;
p,s,vek_pr,sm_pr,cosinus,sinus:real;
function sk_pr(n:integer):real;
begin
p:=0;
for i:=1 to n do
begin
p:=p+a[i]*b[i];
end;
sk_pr:=p;
end;
begin
write('введите n= ');
readln(n);
for i:=1 to n do
begin
writeln ('введите a(',i,')');
readln (a[i]);
end;
for i:=1 to n do
begin
writeln ('введите b(',i,')');
readln (b[i]);
end;
cosinus:=sk_pr(n)/((sqrt(sqr(a[1])+sqr(a[2])+sqr(a[3])))*(sqrt(sqr(b[1])+sqr(b[2])+sqr(a[3]))));
sinus:=sqrt(1-(sqr(cosinus)));
 p:=(sqrt(sqr(a[1])+sqr(a[2])+sqr(a[3])))*(sqrt(sqr(b[1])+sqr(b[2])+sqr(a[3])))*s
inus;
vek_pr:=abs(p);
writeln ('------------------------------------------------------------');
writeln ('скалярное произведение =',sk_pr(n):2 :2);
writeln ('-------------------------------------------------------------');
writeln ('координаты векторного произведения (',
  a[2]*b[3]-a[3]*b[2]:2 :0,',',a[1]*b[3]-a[3]*b[1]:2 :0,',',a[1]*b[2]-a[2]*b[1]:2 :0,')');
writeln ('------------------------------------------------------------');
writeln ('площадь параллелограмма ',vek_pr:2:2);
writeln ('------------------------------------------------------------');
for i:=1 to 3 do
begin
writeln ('введите c(',i,')');
readln (c[i]);
end;
sm_pr:=abs((a[1]*b[2]*c[3])+(c[1]*a[2]*b[3])+(a[3]*b[1]*c[2])-(a[3]*b[2]*c[1])-(c[3]*b[1]*a[2])-(a[1]*c[2]*b[3]));
if sm_pr=0 then writeln ('введенные векторы компланарны')
           else writeln ('введенные векторы некомпланарны');
writeln ('------------------------------------------------------------');
writeln ('смешанное произведение ',sm_pr:2 :2);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 25.07.2025 23:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"