1 Programowanie strukturalne i obiektowe C++Robert Nowak Programowanie strukturalne i obiektowe C++ Zastosowanie wskaźników w strukturach
2 Operator -> Jeżeli w programie mamy zdefiniowaną jakąkolwiek strukturę, a następnie zadeklarowaną zmienną strukturalną to do poszczególnych pól tej zmiennej odwoływaliśmy się za pomocą operatora . (kropki). Jeżeli w programie zdefiniujemy zmienną wskaźnikową i powiążemy ją ze zmienną strukturalną to do poszczególnych pól struktury za pomocą tej zmiennej odwołujemy się stosując operator ->.
3 Przykład programu #include
4 Ciąg dalszy programu cout <<"Podaj wiek ucznia: ";cin >>uczen[ i ].wiek; cin.ignore(); cout <<"Podaj plec ucznia (kobieta/mezczyzna): "; cin >>uczen[ i ].plec; } cout <<"\nInformacje o uczniach: \n"; for (int i=0;i<3;i++) { cout < cout <<" "<
5 Przykład programu 1 #include
6 Ciąg dalszy programu 1 cout <<"Podaj wiek ucznia: ";cin >>wsk->wiek; cin.ignore(); cout <<"Podaj plec ucznia (kobieta/mezczyzna): "; cin >>wsk->plec; wsk++; } wsk=uczen; cout <<"\nInformacje o uczniach: \n"; for (int i=0;i<3;i++) { cout <imie<<" "<< wsk->nazwisko; cout <<" "<< wsk->wiek<<" "<< wsk->plec<<"\n"; cout <<"\n\nNacisnij ENTER aby zakonczyc...\n"; getchar(); return 0;
7 Przykład programu 2 #include
8 Ciąg dalszy programu 2 for (int i=0;i<3;i++) {cout <<"Podaj wspolrzedna x punktu "< cin>>wsk->wsp_x; cin.ignore(); cout <<"Podaj wspolrzedna y punktu "< cin>>wsk->wsp_y; wsk++; } cout <<"Podane przez ciebie punkty to:\n "; wsk=trojkat; cout <<"("<
9 Ciąg dalszy programu 2 cout<<'\n'<<"Sprawdze czy nie leza one na jednej prostej\n"; cout<<"Nacisnij ENTER\n"; getchar(); w=trojkat[0].wsp_x*trojkat[1].wsp_y+trojkat[1].wsp_x*trojkat[2].wsp_y+ trojkat[2].wsp_x*trojkat[0].wsp_y-trojkat[2].wsp_x*trojkat[1].wsp_y- trojkat[1].wsp_x*trojkat[0].wsp_y-trojkat[0].wsp_x*trojkat[2].wsp_y; if (w==0) cout<<"Punkty sa wspoliniowe i nie da sie zbudowac trojkata\n"; else cout<<"Punkty nie sa wspoliniowe\n";
10 Ciąg dalszy programu 2 if (w!=0) {cout<<"Oblicze dlugosci odcinkow\n"; cout<<"Nacisnij ENTER\n"; getchar(); a=sqrt(pow(trojkat[1].wsp_x-trojkat[0].wsp_x,2)+pow(trojkat[1].wsp_y-trojkat[0].wsp_y,2)); b=sqrt(pow(trojkat[2].wsp_x-trojkat[1].wsp_x,2)+pow(trojkat[2].wsp_y-trojkat[1].wsp_y,2)); c=sqrt(pow(trojkat[2].wsp_x-trojkat[0].wsp_x,2)+pow(trojkat[2].wsp_y-trojkat[0].wsp_y,2)); cout<<"a="< cout<<"Sprawdze czy mozna zbudowac trojkat\n"; if((a+b>c && a+c>b) && c+b>a) cout<<"Da sie zbudowac trojkat\n"; else cout<<"Nie da sie zbudowac trojkata\n"; } cout <<"\n\nNacisnij ENTER aby zakonczyc...\n"; return 0;
11 Przykład programu 3 #include
12 Ciąg dalszy programu 3 cout << "Podaj licznik drugiego ulamka: "; cin>> u2->licznik; cin.ignore(); do { cout << "Podaj mianownik drugiego ulamka: "; cin>> u2->mianownik; if (u2->mianownik==0) cout << "Mianownik nie moze byc zerem\n"; } while (u2->mianownik==0); cout << "Oto ulamki ktore podales:\n"; cout << "Ulamek 1: "<
13 Przykład programu 4 #include
14 Ciąg dalszy programu 4 do {cout << "Podaj mianownik pierwszego ulamka: "; cin>> u1->mianownik; cin.ignore(); if (u1->mianownik==0) cout << "Mianownik nie moze byc zerem\n"; } while (u1->mianownik==0); cout << "Podaj licznik drugiego ulamka: "; cin>> u2->licznik; cout << "Podaj mianownik drugiego ulamka: "; cin>> u2->mianownik; if (u2->mianownik==0) while (u2->mianownik==0);
15 Ciąg dalszy programu 4 cout << "Oto ulamki ktore podales:\n";cout << "Ulamek 1: "<
16 Ciąg dalszy programu 4 cout << "Jak podzielimy drugi przez pierwszy to otrzymamy:\n"; u5->licznik=u2->licznik*u1->mianownik; u5->mianownik=u2->mianownik*u1->licznik; cout << "Ulamek 5: "<
17 Przykład programu 5 #include
18 Ciąg dalszy programu 5 void wypisz (ulamek *u) {cout<
19 Ciąg dalszy programu 5 int main () { ulamek ul1,ul2,ul3,ul4,ul5;ulamek *u1=&ul1; ulamek *u2=&ul2; ulamek *u3=&ul3; ulamek *u4=&ul4; ulamek *u5=&ul5; cout << "Wcztanie danych pierwszego ulamka\n "; wczytaj(u1); cout << "Wczytanie danych drugiego ulamka\n "; wczytaj(u2); cout << "Oto ulamki ktore podales:\n"; cout << "Ulamek 1: "; wypisz (u1); cout << "Ulamek 2: "; wypisz (u2); cout << "\n\nNacisnij ENTER aby kontynuowac...\n"; getchar();
20 Ciąg dalszy programu 5 cout << "Jak je pomnozymy to otrzymamy:\n"; pomnoz (u1,u2,u3); cout << "Ulamek 3: "; wypisz (u3); cout << "\n\nNacisnij ENTER aby kontynuowac...\n"; getchar(); cout << "Jak podzielimy pierwszy przez drugi to otrzymamy:\n"; podziel (u1,u2,u4); cout << "Ulamek 4: "; wypisz (u4); cout << "Jak podzielimy drugi przez pierwszy to otrzymamy:\n"; podziel (u2,u1,u5); cout << "Ulamek 5: "; wypisz (u5); cout << "\n\nNacisnij ENTER aby zakonczyc...\n"; return 0; }