struktury
Transkrypt
struktury
Struktury Przykładowy program 1: Napisz program, który będzie zawierał funkcję do obliczenia modułu liczby zespolonej. Liczbę zespolona napisać w postaci struktur. #include<iostream> #include<math.h> using namespace std; // struktura o nazwie liczba zespolona // kazda liczba zespolona ma dwie czesci wiec struktura będzie się składać z dwoch czesci struct liczbazespolona { float re; float im; } ; // Funkcja do obliczenia modulu liczby zespolonej float modul (float x, float y) { return sqrt(x*x + y*y); } void main() { // deklaracja zmiennej o nazwie z typu liczbazespolona liczbazespolona z; // skoro „z” jest typu liczbazespolona, to będzie miała składową re i składową im // wprowadzamy część re cout << "Podaj czesc rzeczywista: "; cin >> z.re; // wprowadzamy cześć im cout << "Podaj czesc urojona: "; cin >> z.im; // deklaracja zmiennej w której zapiszemy to co zwróci nasza funkcja float wynik; // w zmiennej wynik zapisujemy to co zwraca funkcja modul wynik = modul(z.re,z.im); // wypisujemy wynik cout << "Modul liczby zespolonej "; cout << z.re << " + "<<z.im <<"i wynosi : "<< wynik << endl; system("pause"); } Przykładowy program 1 – inny sposób: Powtórzyć to samo zadanie, tyle że tym razem zamiast wysyłać do funkcji część rzeczywistą i część urojona należy wysłać cała liczbę zespoloną. #include<iostream> #include<math.h> using namespace std; struct liczbazespolona { float re; float im; } ; float modul (liczbazespolona a) { return sqrt(a.re*a.re + a.im*a.im); } void main() { // deklaracja zmiennej o nazwie z typu liczbazespolona liczbazespolona z; // wprowadzamy część re cout << "Podaj czesc rzeczywista: "; cin >> z.re; // wprowadzamy cześć im cout << "Podaj czesc urojona: "; cin >> z.im; // deklaracja zmiennej w której zapiszemy to co zwróci nasza funkcja float wynik; // w zmiennej wynik zapisujemy to co zwraca funkcja modul wynik = modul(z); // wypisujemy wynik cout << "Modul liczby zespolonej "; cout << z.re << " + "<<z.im <<"i wynosi : "<< wynik << endl; system("pause"); } Przykładowy program 2: Dana jest tablica jednowymiarowa X zawierająca dane n-osób w postaci struktur: imię nazwisko, konto. Liczbę n zadaje użytkownik. Napisać program, w którym będzie użyta funkcja do wprowadzania danych tych osób. Napisać funkcję, która będzie liczyła średni stan kont obliczony dla wszystkich osób. Wypisać imiona i nazwiska tych osób, których stan konta przekracza średni stan kont. #include<iostream.h> #include<conio.h> struct osoba { string imie; string nazwisko; float konto; }; // Funkcja do wpisywania danych /* do tej funkcji wysylamy tablice x typu osoba, czyli kazdy element tej tablicy jest typu osoba, a ponieważ osoba(struktura) sklada się z imienia, nazwiska i konta to każdy element tej tablicy (inaczej mówiąc: każda osoba) będzie miala: imie, nazwisko i konto, dlatego dla każdego obiegu petli będziemy wprowadzali wszystkie te 3 dane konkretnej osoby (i-tej osoby). */ void wpis(osoba x[100],int n) { int i; for(i=0;i<n;i++) { cout << "Podaj dane osoby nr " << i+1 << ": " << endl; cout<<"Podaj imie: "; cin>>x[i].imie; cout<<"Podaj nazwisko: "; cin>>x[i].nazwisko; cout<<"podaj stan stan konta: "; cin>>x[i].konto; } } // Funkcja do obliczenia sredniej kont wszystkich osob /* Do tej funkcji wysylamy dane naszych osob, ale przy obliczeniu średniej stanu interesuje nasz tylko dana „konto” imiona i nazwiska osob tutaj nie są potrzebne. Funkcja coś oblicza i zwraca więc nie jest typu void tylko np. float. Na początek zerujemy sume, a następnie w pętli za każdym razem kiedy bierzemy kolejną osobę (kolejne i) to dodajemy jego pieniądze (konto) do tej sumy, znając sume i ilosc osob (ilość elementow tablicy) n, obliczamy srednia nastepnie funkcja zwraca tą srednia */ float srednia(osoba x[100], int n) { float srednia ,suma=0; int i ; for(i=0;i<n;i++) suma+= x[i].konto; srednia=suma/n; return srednia; } // Głowna funkcja czyli main void main() { int i,n; float sredni_stan_kont; osoba x[100]; cout<<"Podaj liczbe osob: "; cin>>n; wpis(x,n); //wywołanie funkcji do wprowadzenia danych sredni_stan_kont = srednia(x,n); // wywolanie fun. Do obliczenia średniej cout<<"sredni stan kont: "<< sredni_stan_kont <<endl; cout << endl << "Osoby ktorych stan konta przekracza srednia: " << endl; for(i=0;i<n;i++) { if(x[i].konto > sredni_stan_kont) cout <<x[i].imie <<" " << x[i].nazwisko << endl; } system("pause"); }