Ricko |
Wysłany: Pon 20:50, 03 Paź 2011 Temat postu: Struktury - Przykład (Wektory) + Omówienia + Zadania |
|
PROGRAM, KTÓRY GRUPA I OTRZYMAŁA DO PRZEROBIENIA (Dodałem opisy instrukcji)
#include <iostream>
#include <cstdio>
using namespace std; // standardowe biblioteki //
struct punkt // deklarujemy strukturę o nazwie PUNKT, posiada ona w swoim składzie dwie zmienne typu float oznaczające współrzędne punktów //
{
float wsp_x;
float wsp_y;
};
struct wektor // deklarujemy kolejną strukturę o nazwie WEKTOR, zawiera ona zagnieżdżone dwie struktury "punkt" oznaczające początek i koniec wektora //
{
punkt poczatek;
punkt koniec;
};
int main() // program główny //
{
punkt p; // deklarowanie zmiennej typu PUNKT //
wektor w; // deklarowanie zmiennej typu WEKTOR //
cout << "Podaj wspolrzedna X poczatku wektora: "; // Pobieranie współrzędnych dwóch punktów wektora //
cin >> w.poczatek.wsp_x; // pobieranie wygląda następująco: zmienna typu wektor (w) -> zagnieżdżona w strukturze WEKTOR struktura typu PUNKT (poczatek) -> zmienna w strukturze PUNKT (wsp_x) //
cout << "Podaj wspolrzedna Y poczatku wektora: ";
cin >> w.poczatek.wsp_y;
cout << "Podaj wspolrzedna X konca wektora: ";
cin >> w.koniec.wsp_x;
cout << "Podaj wspolrzedna Y konca wektora: ";
cin >> w.koniec.wsp_y;
p.wsp_x = 0.5*(w.poczatek.wsp_x+w.koniec.wsp_x); // obliczanie środka wektora - zmienna typu PUNKT (p) -> jej zmienna (wsp.x) //
p.wsp_y = 0.5*(w.poczatek.wsp_y+w.koniec.wsp_y);
cout << "Oto wspolrzedne srodka wektora: " << p.wsp_x << " , " << p.wsp_y; // wypisywanie współrzędnych środka wektora //
cin.ignore();
getchar();
return 0;
}
_____________________________________________________________
POLECENIA DO ZROBIENIA:
Zmodyfikuj powyższy program!!!
a) Wewnątrz struktury wektor zadeklaruj funkcję do wczytywania współrzędnych
b) Wewnątrz struktury wektor zadeklaruj funkcję do wypisywania współrzędnych
c) Wewnątrz struktury wektor zadeklaruj funkcję do obliczania środka wektora.
d) Wewnątrz struktury wektor zadeklaruj funkcję do obliczania długości wektora.(należy wykorzystać tw. Pitagorasa, dołączmy bibliotekę math )
e) Zastosuj wszystkie funkcje wewnątrz funkcji głównej main.
_____________________________________________________________
CZYSTY PROGRAM:
Cytat: |
#include <iostream>
#include <cstdio>
using namespace std;
struct punkt
{
float wsp_x;
float wsp_y;
};
struct wektor
{
punkt poczatek;
punkt koniec;
};
int main()
{
punkt p;
wektor w;
cout << "Podaj wspolrzedna X poczatku wektora: ";
cin >> w.poczatek.wsp_x;
cout << "Podaj wspolrzedna Y poczatku wektora: ";
cin >> w.poczatek.wsp_y;
cout << "Podaj wspolrzedna X konca wektora: ";
cin >> w.koniec.wsp_x;
cout << "Podaj wspolrzedna Y konca wektora: ";
cin >> w.koniec.wsp_y;
p.wsp_x = 0.5*(w.poczatek.wsp_x+w.koniec.wsp_x);
p.wsp_y = 0.5*(w.poczatek.wsp_y+w.koniec.wsp_y);
cout << "Oto wspolrzedne srodka wektora: " << p.wsp_x << " , " << p.wsp_y;
cin.ignore();
getchar();
return 0;
} |
_____________________________________________________________
PROGRAM PO WYKONANIU POLECEŃ
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;
struct punkt
{
float wsp_x;
float wsp_y;
};
struct wektor
{
punkt poczatek;
punkt koniec;
void podajwsp ();
void drukujwsp ();
void srodek ();
void dlugosc ();
};
void wektor::podajwsp()
{
cout << "Podaj wspolrzedna X poczatku wektora: ";
cin >> poczatek.wsp_x;
cout << "Podaj wspolrzedna Y poczatku wektora: ";
cin >> poczatek.wsp_y;
cout << "Podaj wspolrzedna X konca wektora: ";
cin >> koniec.wsp_x;
cout << "Podaj wspolrzedna Y konca wektora: ";
cin >> koniec.wsp_y;
}
void wektor::drukujwsp()
{
cout << "Poczatek: X " << poczatek.wsp_x << " Y " << poczatek.wsp_y << endl;
cout << "Koniec: X " << koniec.wsp_x << " Y " << koniec.wsp_y << endl ;
}
void wektor::srodek()
{
float x,y;
x = 0.5*(poczatek.wsp_x+koniec.wsp_x);
y = 0.5*(poczatek.wsp_y+koniec.wsp_y);
cout << "Oto wspolrzedne srodka wektora: " << x << " , " << y << endl;
}
void wektor::dlugosc()
{
float d;
d = sqrt (((koniec.wsp_x - poczatek.wsp_x)*(koniec.wsp_x - poczatek.wsp_x)) + ((koniec.wsp_y - poczatek.wsp_y)*(koniec.wsp_y - poczatek.wsp_y)) );
cout << "Dlugosc wektora wynosi: " << d << endl;
}
int main()
{
punkt p;
wektor w;
w.podajwsp();
w.drukujwsp();
w.srodek();
w.dlugosc();
cin.ignore();
getchar();
return 0;
} |
|