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");
}