Składowa równoległa i prostopadła do wektora B

0

Witam, jestem początkująca (totalnie zielona), proszę o pomoc.

Zadanie brzmi:
Napisać program, który dla dwóch wektorów z przestrzeni N-wymiarowej rozłoży pierwszy z wektorów na składową równoległą i prostopadłą do drugiego wektora.

PRZYKŁAD:
Rozłóż wektor a=[-5,10,0] na dwie składowe- równoległą i prostopadłą do wektora b= [6,8,0].

ROZWIĄZANIE:
Wprowadzamy wersor (jednostkowy) ib=b/|b|=[3/5, 4/5, 0] mający kierunek wektora b.Wówczas iloczyn skalarny **ib***a=5 jest rzutem wektora a na kierunek wyznaczony przez wektor b. Jednak sam rzut nie jest wektorem (skalar), aby wyznaczyć wektor **a||**należy nadać wspomnianemu rzutowi odpowiedni kierunek a|=(ib * a)=[3,4,0]. Ponieważ a=a|| + a_, to aprostopadle= a - a||=[-8,6,0].

Czyli zrozumiałam, że:
a=[-5,10,0]
b=-6,8,0]
to: ib=b/|b|=[3/5, 4/5, 0], |b|=pierwiastek z sumy kwadratów składowych wektora b

a||b= (ib * a)ib= [3,4,0]

a prostopadłe do b= a - a||b= [-8,6,0]

mam problem z napisaniem tych prostopadłych i równoległych...
Proszę o pomoc, a to część mojego kodu.

#include <iostream>
#include <math.h>
#include <iomanip>
#include <cstdlib>

using namespace std;
int main()
{
    int N, n;
    const int NMAX=10;
    float A [NMAX];
    float B [NMAX];
    cout << "Program rozklada pierwszy wektor na skladowa rownolegla i \nprostopadla do drugiego wektora.\n\n";
    cout << "Podaj rozmiar obszaru: ";
    cin >> N;
    
    if (N<=10)
    {
             for (n=0; n<N; n=n+1)
             {
               cout << "Podaj skladowe wektora A:  \n";
               cin >> A[n];
             }
               
             for (n=0; n<N; n=n+1)
             {
               cout << "Podaj skladowe wektora B: \n";
               cin >> B[n];
             }
     
             //a || b//
             //?!?!?!?!//
             
             //a _ b//
             //?!?!?!?!?!//
    }
    else 
    cout << "Obszar za szeroki! Maksymalny rozmiar obszaru to 10.\n\n";
    
    
system("pause");
return 0;
} 
0

Pachnie mi to lenistwem, bo coś mi się wydaje, że przedstawiony kod jest częścią treści zadania.
Zadanie jest proste jak konstrukcja cepa, nic tylko najpierw policzyć to matematycznie na kartce, a potem przepisać to do postaci kodu.

0

Nie, kod nie jest treścią zadania. Sama go napisałam metodą prób i błędów na zajęciach z programowania (zajęło mi to 2h!). Mówiłam, że jestem zielona w tych sprawach.

Policzyłam sobie wszystko matematycznie na kartce, ale nie potrafię tego przenieść na język C++.

0

Więc jak, pomoże ktoś? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1