Struktury Punkty i Wektory, C++

Odpowiedz Nowy wątek
2014-04-02 13:28
ArturH
0

Witam,
mam takie zadanie:
1) Wykorzystując bibliotekę stdio.h napisz program w języku C++, w którym
zdefiniowane będą dwie struktury reprezentujące odpowiednio punkty i wektory w 2D za pomocą
współrzędnych typu double. Zdefiniuj dwa nowe typy danych na podstawie stworzonych struktur.
Dla obu struktur zdefiniuj konstruktory bezparametrowe (ustawiają wartości na 0.0) oraz
parametrowe przyjmujące argumenty z linii poleceń (int argc, char *argv[]) i parsujące argumenty
argv[] na liczby typu double za pomocą funkcji strtod. W konstruktorach sprawdź czy ilość
przekazanych parametrów jest poprawna. Zdefiniuj również funkcje wypisujące na ekran
współrzędne punktów oraz wektorów.
Stwórz kod testujący. Niech utworzy zmienną typu punkt i typu wektor za pomocą konstruktorów
parametrowych oraz wypisze ich parametry.
2) Stwórz funkcje transformujące:

  • punkt, punkt -> wektor (wektor między punktami)
  • wektor, wektor -> wektor (dodawanie oraz odejmowanie)
  • wektor, wektor -> liczba (iloczyn skalarny)
  • punkt, punkt, double -> punkt (punkt między danymi, w odległości danej współczynnikiem)
  • wektor -> liczba (długość wektora)

Jestem bardzo początkujący i przyznaje, że dla mnie to trudne zadanie. Podjąłem jakąś próbę, ale nie wiem, czy idę w ogóle w dobrym kierunku.

#include <iostream>
#include<stdio.h>
#include<stdlib.h>

struct Punkty
{
double x;
double y;
Punkty()
{
x=0;
y=0;
}
Punkty(int argc, charargv[])
{
char
endptr;
double tab;
int i;
for(i=0; i<(argc-1); i++)
{
tab[i]= strtod(argv[i+1], &endptr);
if(
endptr!='\0')
printf("blad\n");
}
}

};

struct Wektory
{

double x=0;
double y=0;

Wektory()
{
    x=0;
    y=0;
}
Wektory(int argc, char*argv[])
{
    char *endptr;
    double* tab;
int i;
for(i=0; i<(argc-1); i++)
{
    tab[i]= strtod(argv[i+1], &endptr);
    if(*endptr!='\0')
        printf("blad\n");   
}
}

};

Wektory Transformacja1(struct Punkty a, struct Punkty b, struct Wektory c)
{

 c.x=a.x-b.x;
 c.y=a.y-b.y;
 return c;

}

int main(int argc, char** argv) {
//Punkty(argc,argv);
Punkty a();
Punkty b();
Wektory c();

Transformacja1(a,b,c);

return 0;

}

Pozostało 580 znaków

2014-04-02 15:15
1

Punkty(int argc, char*argv[]) oraz Wektory(int argc, char*argv[]) jednoznacznie wskazuje na jedno, weź przeczytaj jakiś kurs z podstawami.
Kurdyban!!!
Dopiero zauważyłem że to takie popieprzone czarnym pieprzem zadanie!

Wg mnie chodzi o taki knot:

Punkty(int argc,char *argv[]):x(0),y(0)
  {
   if(argc<2) return;
   char *endptr;
   x=strtod(argv[0],&endptr);
   y=strtod(argv[1],&endptr);
  }

Przy wywołaniach:

int main(int argc, char** argv)
  {
   Punkty a(--argc,++argv);
   Wektory b(argc-=2,argv+=2);
   ...
   return 0;
  }

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 2x, ostatnio: _13th_Dragon, 2014-04-02 16:01

Pozostało 580 znaków

2014-04-02 15:56
ArturH
0

Czytam, mam też książki, ale nie mam pojęcia jak naprawić ten program.

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