![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
marwell |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
Создать приложение по разделу аналитической геометрии «Вектора и действия над векторами». Приложение должно содержать :
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.
|
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 23:15 |