4 zmienne punkty

Odpowiedz Nowy wątek
2016-02-03 19:30
0

Witam. Potrzebuję napisać funkcję, której zadaniem bd :

  1. Po wprowadzeniu 4 punktów na układzie współrzędnych wyznaczenie - która współrzędna to A,B,C,D
    np. 1- (1,4), 2- (2,6), 3- (5,4), 4- (4,6) - i teraz program sam musi ustalic która współrzędna to, który punkt :)
    Nie liczę na gotowy KOD ;) Za nabijanie postów też dziękuję ^^ Oczekuję pomocy jak się za to zabrać, od której strony to ugryźć ;)
Te punkty to są wprowadzane dowolnie czy może są to wierzchołki jakiejś figury? - szweszwe 2016-02-03 19:42

Pozostało 580 znaków

2016-02-03 19:41
3

Ten który nazwiesz A ten i będzie A, to samo z pozostałymi literami.
Nie podana żadna reguła - jak chcesz tak i nazywaj.
Jak nie chcesz nabijania postów, to przemyśl pytanie.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2016-02-03 20:04
0

Przeczytaj jeszcze raz :) Nie może być zdefioniowane A. Czyli przy wprowadzaniu danych nie określam czy to jest A czy B czy C czy D. Program sam ma wiedzieć, która współrzędna to który punkt.

1 to A, 2 to B, 3 to C, 4 to D - może wyjaśnij czemu to ci się nie podoba. - _13th_Dragon 2016-02-03 20:26

Pozostało 580 znaków

2016-02-03 20:07
1

Przeczytaj jeszcze raz pytanie @_13th_Dragon i moje z komentarza. Na jakiej podstawie program ma wiedzieć który punkt jest który?

Gdybym wiedział na jakiej podstawie ma wiedzieć, to nie pisał bym zapytania tylko napisał kod ;) - DoktorBLN 2016-02-03 20:48

Pozostało 580 znaków

2016-02-03 20:42
0

Kolega mi podesłał kawałek kodu


#include <iostream>

int main(int argc, char** argv) {

    // wypisywanie punktów przed sortowaniem
    cout<<"Punkty przed sortowaniem"<<endl;

    cout<<"A = ("<<ax<<", "<<ay<<")"<<endl;
    cout<<"B = ("<<bx<<", "<<by<<")"<<endl;
    cout<<"C = ("<<cx<<", "<<cy<<")"<<endl;
    cout<<"D = ("<<dx<<", "<<dy<<")"<<endl;

    double p1x,p1y,p2x,p2y,p3x,p3y,p4x,p4y; // definiuje dodatkowe zmienne (pomocnicze)

    double i1 = Wyznacznik(ax,ay,bx,by,cx,cy); // liczenie wyznaczników
    double i2 = Wyznacznik(ax,ay,bx,by,dx,dy);
    // =======================================
    double i3 = Wyznacznik(ax,ay,cx,cy,bx,by);
    double i4 = Wyznacznik(ax,ay,cx,cy,dx,dy);
    // =======================================
    double i5 = Wyznacznik(ax,ay,dx,dy,bx,by);
    double i6 = Wyznacznik(ax,ay,dx,dy,cx,cy);

    if ((i1 > 0 && i2 < 0) || (i1 < 0 && i2 > 0))
    {
        p1x = ax;
        p1y = ay; 
        p2x = cx;
        p2y = cy;
        p3x = bx;
        p3y = by;
        p4x = dx;
        p4y = dy;

        ax = p1x;
        ay = p1y; 
        bx = p2x;
        by = p2y;
        cx = p3x;
        cy = p3y;
        dx = p4x;
        dy = p4y;
    }
    else
    if ((i3 > 0 && i4 < 0) || (i3 < 0 && i4 > 0))
    {
        p1x = ax;
        p1y = ay;
        p2x = bx;
        p2y = by;
        p3x = cx;
        p3y = cy;
        p4x = dx;
        p4y = dy;

        ax = p1x;
        ay = p1y; 
        bx = p2x;
        by = p2y;
        cx = p3x;
        cy = p3y;
        dx = p4x;
        dy = p4y;
    }
    else
    if ((i5 > 0 && i6 < 0) || (i5 < 0 && i6 > 0))
    {
        p1x = ax;
        p1y = ay;
        p2x = bx;
        p2y = by;
        p3x = dx;
        p3y = dy;
        p4x = cx;
        p4y = cy;

        ax = p1x;
        ay = p1y; 
        bx = p2x;
        by = p2y;
        cx = p3x;
        cy = p3y;
        dx = p4x;
        dy = p4y;
    }

    cout<<endl;
    cout<<"Punkty po posortowaniu"<<endl;
    cout<<"A = ("<<ax<<", "<<ay<<")"<<endl;
    cout<<"B = ("<<bx<<", "<<by<<")"<<endl;
    cout<<"C = ("<<cx<<", "<<cy<<")"<<endl;
    cout<<"D = ("<<dx<<", "<<dy<<")"<<endl;

    return 0;
}

Co myślicie zda egzamin ?:)

edytowany 2x, ostatnio: DoktorBLN, 2016-02-03 20:44
Podobno was jest bardzo mało, ale jesteście tak sprytnie rozstawieni że spotyka się was na każdym kroku ... - _13th_Dragon 2016-02-03 20:57
Nikt Ci nie powie czy to jest dobrze, bo nikt nie rozumie na czym polega problem. - bogdans 2016-02-03 22:04
To jest chyba pierwszy wątek od kiedy tu jestem, którego nie rozumieją ani studenci ani programiści :D - Craith 2016-02-04 10:26
"jaka jest różnica między kaczką" - spartanPAGE 2016-02-04 10:29

Pozostało 580 znaków

2016-02-04 11:59
0

Podejrzewam że chodzi o coś takiego:

#include <iostream>
#include <algorithm>
using namespace std;

struct Point
  {
   double y,x;
   Point():y(0),x(0) {}
   Point(double y,double x):y(y),x(x) {}
   friend ostream &operator<<(ostream &s,const Point &p) { return s<<'('<<y<<','<<x<<')'; }
   friend istream &operator>>(istream &s,Point &p) { return s>>y>>x; }
   Point operator-(const Point &p)const { return Point(y-p.y,x-p.x); }
   double operator*(const Point &p)const { return x*p.y-y*p.x; }
  };

int main()
  {
   Point a,b,c,d;
   cin>>a>>b>>c>>d;
   if(((a-c)*(b-c)>0)!=((b-d)*(c-d)>0)) swap(c,d);
   cout<<"A:"<<a<<endl<<"B:"<<b<<endl<<"C:"<<c<<endl<<"D:"<<d<<endl;
   return 0;
  }

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2016-02-04 18:25
0
  1. Po wprowadzeniu 4 punktów na układzie współrzędnych wyznaczenie - która współrzędna to A,B,C,D

@_13th_Dragon przecież takie wypociny spełniają jego oczekiwania według tego co "wiemy".

#include <iostream>
using namespace std;

struct POINT{
    int x;
    int y;
}
int main()
{
    POINT p[4];
    for(int n=0; n<4; ++n)
     cin >> p[n].x >> p[n].y;
    cout << "A: (" << p[0].x <<","<< p[0].y <<")" << endl; 
    cout << "B: (" << p[1].x <<","<< p[1].y <<")" << endl;
    cout << "C: (" << p[2].x <<","<< p[2].y <<")" << endl;
    cout << "D: (" << p[3].x <<","<< p[3].y <<")" << endl;
} 
Jego - tak, ale jak widać jego kolega nieco więcej zrozumiał z treści zadania tylko że jest kiepski z matmy i programowania. - _13th_Dragon 2016-02-04 19:03

Pozostało 580 znaków

2016-02-05 17:43
0

Przyznam szczerzę, że fakt wybitny z matematyki nie jestem.
Po przeanalizowaniu jeszcze raz tego, co mi powiedział profesor, postaram się wytłumaczyć o co chodzi.
Gdy w pliku zapiszę 4 punkty z układu współrzędnego, bez określenia który punkt to A,B,C,D. Program ma ustawić wszystkie punkty tak, aby współrzędna x, która jest najbliżej środka układu była uznana za A, z drugiej współrzędnej x został rozpoznany w którym miejscu ma być itd. Nastepnie gdy x zostaną rozpoznane w którym miejscu są, przy użyciu "y" został rozpoznany czy dany punkt leży prawidłowo i czy np A nie trzeba zamienić z B itd.
Profesor na zajęciach ostro leci z materiałem, więc wiele rzeczy opuszcza, a następnie sam muszę dochodzić o co mu dokładnie chodziło ;)
Sorki za nie ścisłości :)

Domyślam się, że dla was jest to banalnie proste :) - DoktorBLN 2016-02-05 17:45

Pozostało 580 znaków

2016-02-05 18:25
0
DoktorBLN napisał(a):

... aby współrzędna x, która jest najbliżej środka układu była uznana za A, z drugiej współrzędnej x został rozpoznany w którym miejscu ma być itd. Nastepnie gdy x zostaną rozpoznane w którym miejscu są, przy użyciu "y" został rozpoznany czy dany punkt leży prawidłowo i czy np A nie trzeba zamienić z B itd. ...
W którym języku to napisałeś? Sądząc po tym twoim wątku to tłumaczenie samego if'a przez rok już będzie dla ciebie:

DoktorBLN napisał(a):

... ostro leci z materiałem ...


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2016-02-06 18:36
0

Chciałbym pomóc, ale dalej nie rozumiem na jakiej podstawie mam określać po Y które punkty gdzie mają leżeć. Punkty należą to jakiejś funkcji liniowej?

Pozostało 580 znaków

2016-02-06 18:46
0

Z kodu kolegi: http://4programmers.net/Forum/1222473 wynika że w przypadku połączenia linią w wynikowej kolejności ABCDA linie mają się nie krzyżować. Tu http://4programmers.net/Forum/1222651 masz sensowny kod robiący to samo.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Boże, to wystarczyło zadać pytanie: "jak posortować 4 współrzędne aby tworzyły czworokąt?" - gswidwa 2016-02-06 18:48
OMG, jeszcze jeden mistrz precyzyjnych wypowiedzi. Kto mi zabroni podania współrzędnych czworokąta jako: (Left,Top),(Right,Top),(Left,Bottom),(Right,Bottom) ? - _13th_Dragon 2016-02-06 19:02
Eh, zapomniałem dodać i nie przecinały się ;P Jestem mistrzem udzielania precyzyjnych wypowiedzi ale na raty ;P - gswidwa 2016-02-06 19:06

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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