Witam,
mam takie zadanie:
- 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. - 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, 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");
}
}
};
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;
}