Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przestrzeń n wymiarowa

Ostatnio zmodyfikowano 2015-01-12 22:31
Autor Wiadomość
Dalir
Temat założony przez niniejszego użytkownika
Przestrzeń n wymiarowa
» 2015-01-12 14:37:30
Witam,
Uczę się programowania od początku na 1 roku studiów informatyki stosowanej. Do tej pory z pomocą ćwiczeniowca dawałem sobie radę aż w pewnym momencie zaciąłem się na jednym programie.

C/C++
/* wczytuje wspolrzedne 2 wektorow w przestrzeni n wymiarowej (zakladamy ze n < 10) i wyswietla odleglosc euklidesowa oraz
iloczyn skalarny dla tych wektorow. program powinien miec funkcje do wprowadzania danych, ich przetwarzania
i drukowania wyniku
*/

#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
#include <math.h>
#define _CRT_SECURE_NO_WARNINGS

struct wspwek
{
    float x1, y1, x2, y2;
};

struct wspwek wczytaj()
{
    struct wspwek w;
    printf( "Podaj wspolrzedne x,y wektora1: \n" );
    scanf( "%f %f", & w.x1, & w.y1 );
    printf( "Podaj wspolrzedne x,y wektora2: \n" );
    scanf( "%f %f", & w.x2, & w.y2 );
    return w;
};
/* struct wynik euk(float wsp[])
{
    double x,y;
    int n;
    float d;

    d = sqrt();

}; */
void wypisz( struct wspwek w )
{
    printf( "w1\n x=%f\n y=%f\n", w.x1, w.y1 );
    printf( "w2\n x=%f\n y=%f\n", w.x2, w.y2 );
}
int main()
{
    struct wspwek w;
    w = wczytaj();
    wypisz( w );
    system( "PAUSE" );
    return 0;
}

Otóż mam problem jak w ogóle ugryźć problem wielowymiarowości i wzory Euklidesa. Nie wiem też czy wszystkie struktury mam dobrze bo nie rozumiem ich aż tak dobrze. Prosiłbym o jakieś porady.
P-124719
darko202
» 2015-01-12 15:04:18
A. wielowymiarowość
To co zrobiłeś dotyczyło 2 wymiarów czyli gdybyś
1.
utworzył strukturę
C/C++
strukt punkt {
    float x, y;
};

2.
wykorzystał jakiś kontener dynamiczny
np. vector<punkt> dane;
http://cpp0x.pl/dokumentacja​/standard-C++/vector/819

3
tu przydałaby się klasa której dodałbyś ww kontener + potrzebne funkcje wypisz...
wczytajDane (choć możes to pominąć)


4.
na początek przerobić zaprezentowany program dla 2 wymiarów przy użyciu ww klasy 
a potem dla dowolnej już ilości wymiarów n
to miałbyś wielowymiarowość


B wzór Euklidesa
nie wiem jaki ma mieć związek przestrzeń wielowymiarowa z tym wzorem
http://www.algorytm.edu.pl​/algorytmy-maturalne​/algorytm-eulkidesa.html
musisz to doprecyzować.
P-124722
Dalir
Temat założony przez niniejszego użytkownika
» 2015-01-12 16:18:57
B.
Chodziło mi dokładnie o to http://pl.wikipedia.org/wiki/Odleg%C5%82o%C5%9B%C4%87 ,
czyli długość wektora.
P-124731
darko202
» 2015-01-12 22:31:24
Sorry, rozpędziłem się
dla jednego wymiaru, mamy oczywiście
C/C++
strukt punkt {
    float x;
};

dla dwóch
vector<punkt> dane;
dane[0].x - pierwszy wymiar
dane[1].x - drugi wymiar 
itd.  do n wymiaru

czyli gdy mamy dwa punkty N wymiarowe

vector<punkt> A, B;
float odległość = sqr( ( (A[0].x-B[0].x)^2+ (A[1].x-B[1].x)^2+ .... +(A[n-1].x-B[n-1].x)^2 ));


no tak, znowu się rozpędziłem
oczywiście może być prościej bez stuktury gdy
 
vector<float> dane;
dane[0] - pierwszy wymiar
dane[1] - drugi wymiar 
itd.  do n wymiaru

czyli gdy mamy dwa punkty N wymiarowe

vector<float> A, B;
float odległość = sqr( ( (A[0]-B[0])^2+ (A[1]-B[1])^2+ .... +(A[n-1]-B[n-1])^2 ));

P-124777
« 1 »
  Strona 1 z 1