pi sciaga

1. Każdą liczbę naturalną można przedstawić jako sumę jej cyfr plus wielokrotność liczby 9. Napisz program,

który dla wprowadzonej liczby policzy i wypisze na ekranie tą wielokrotność.

int main()

{

int n,m;

cout<<"Podaj liczbe\n";

cin>>n;

m=n;

while(n>0)

{

m=m-n%10;

n=n/10;

}

cout<<"Szukana wielokrotnosc wynosi "<<m/9<<endl;

return 0;

}

2. Liczba naturalna dzieli się bez reszty przez 3 jeżeli suma jej cyfr dzieli się przez 3. Napisz program, który

sprawdzi i wypisze na ekranie czy wprowadzona liczba dzieli się przez 3 korzystając z podanej zasady.

int main()

{

int n,suma;

cout<<"Podaj liczbe\n";

cin>>n;

do

{

suma=0;

while(n>0)

{

suma=suma+n%10;

n=n/10;

}

n=suma;

}while(suma>10);

if(suma==3 || suma==6 || suma==9)

cout<<"Liczba jest podzielna przez 3\n";

else

cout<<"Liczba nie jest podzielna przez 3\n";

return 0;

}

3. Napisz program, który sprawdzi i wypisze na ekranie, czy podana liczba (typu int) składa się w większości z

cyfr parzystych czy nieparzystych.

int main()

{

int n,r,il_parz=0,il_nparz=0;

cout<<"Podaj liczbe\n";

cin>>n;

while(n>0)

{

r=n%10;

if(r%2==0)

il_parz++;

else

il_nparz++;

n=n/10;

}

if(il_parz>il_nparz)

cout<<"W liczbie jest wiecej liczb parzystych\n";

else if(il_parz<il_nparz)

cout<<"W liczbie jest wiecej liczb nieparzystych\n";

else

cout<<"W liczbie jest tyle samo liczb parzystych co nieparzystych\n";

return 0;

}

4. Napisz program, który policzy i wypisze na ekranie oddzielnie sumę cyfr stojących na miejscach parzystych i

nieparzystych we wprowadzonej liczbie (typu int).

int main()

{

int n,sum1=0,sum2=0,i=0;

cout<<"Podaj liczbe\n";

cin>>n;

while(n>0)

{

if(i%2==0)

sum1=sum1+n%10;

else

sum2=sum2+n%10;

i++;

n=n/10;

}

if(i%2==0)

{

cout<<"Suma liczb stojacych na miejscach parzystych wynosi "<<sum1<<endl;

cout<<"Suma liczb stojacych na miejscach nieparzystych wynosi

"<<sum2<<endl;

}

else

{

cout<<"Suma liczb stojacych na miejscach parzystych wynosi "<<sum2<<endl;

cout<<"Suma liczb stojacych na miejscach nieparzystych wynosi

"<<sum1<<endl;

}

return 0;

}

5. Napisz program, który policzy i wypisze na ekranie średnią wszystkich liczb trzycyfrowych, których suma cyfr

jest równa wprowadzonej liczbie.

int main()

{

int n,suma=0,ilosc=0;

double srednia;

cout<<"Podaj liczbe\n";

cin>>n;

for (int i=100; i<=999; i++)

{

if(i%10+i/10%10+i/100==n)

{

suma=suma+i;

ilosc++;

}

}

srednia=double(suma)/ilosc;

cout<<"Srednia wynosi "<<srednia<<endl;

return 0;

}

1. Dana jest n elementowa tablica liczb całkowitych:

const int n=…;

int tab[n]={…};

Napisz funkcję, która nic nie zwraca, a jako argumenty przyjmuje tablicę oraz jej długość. Funkcja ma usunąć z

tablicy wszystkie liczby parzyste przesuwając pozostałe liczby w lewo, np.: {1,2,3,4,5,6} -> {1,3,5,0,0,0}.

void fun(int tab[], int n)

{

int k=n;

for (int i=0; i<k; i++)

{

if (tab[i]%2==0)

{

for (int j=i; j<n-1; j++)

tab[j]=tab[j+1];

tab[n-1]=0;

i--;

k--;

}

}

}

int main()

{

const int n=10;

int tab[n]={1,2,3,4,5,6,7,8,9,10};

fun(tab,n);

for (int i=0; i<n; i++)

cout<<tab[i]<<endl;

return 0;

}

2. Utwórz tablicę nxn (n – stała znana na etapie kompilacji) liczb całkowitych i wypełnij ją w następujący

sposób:

1 3

2 4

5 7

6 8

9 11

10 12

13 15

14 16

int main()

{

const int n=4;

int tab[n][n];

int k;

for (int i=0; i<n; i++)

{

k=(i-i%2)*n+i%2+1;

for (int j=0; j<n; j++)

{

tab[i][j]=k;

k+=2;

}

}

for (int i=0; i<n; i++)

{

for (int j=0; j<n; j++)

cout<<tab[i][j]<<"\t";

cout<<endl;

}

return 0;

}

3. Dana jest tablica liczb całkowitych o długości n zawierająca wyłącznie wartości zero lub jeden. Napisz funkcję,

która otrzymuje tablicę oraz jej rozmiar. Funkcja ma zwrócić wartość prawda lub fałsz w zależności czy wszystkie

jedynki w tablicy znajdują się koło siebie (np.: {0,1,1,1,0,0} – prawda, {0,1,0,1,1} – fałsz, {0,0} – fałsz). Napisz

przykładowy program wywołujący tą funkcję (tablicę zainicjalizuj wartościami {…}).

bool fun(int tab[], int n)

{

int zmiany=0;

for (int i=0; i<n-1; i++)

if (tab[i]!=tab[i+1])

zmiany++;

zmiany+=tab[0];

if (zmiany==1 || zmiany==2)

return true;

return false;

}

int main()

{

const int n=5;

int tab[n]={0,0,1,1,0};

cout<<boolalpha<<fun(tab,n)<<endl;

return 0;

}

4. Utwórz tablicę nxn (n – stała znana na etapie kompilacji) liczb całkowitych i wypełnij ją w następujący

sposób:

1 5

0 2

8 10

6 9

0 0

0 0

3 7

0 4

int main()

{

const int n=4;

int tab[n][n]={0};

int k=1;

for (int i=0; i<n; i++)

{

for (int j=0; j+i<n; j++)

{

tab[j][j+i]=k;

k++;

}

}

for (int i=0; i<n; i++)

{

for (int j=0; j<n; j++)

cout<<tab[i][j]<<"\t";

cout<<endl;

}

return 0;

}

5. Dana jest tablica 2D liczb całkowitych o rozmiarze nxn zawierająca n zer. Napisz program, który sprawdzi i

wypisze na ekranie informację, czy wszystkie zera w tablicy to zera niezależne (w żadnej kolumnie ani wierszu nie ma

dwóch zer).

int main()

{

const int n=3;

int tab[n][n]={0,1,2,3,0,4,5,6,0};

int il_w, il_k, il=0;

for (int i=0; i<n; i++)

{

il_w=0; il_k=0;

for (int j=0; j<n; j++)

{

if (tab[i][j]==0)

il_w++;

if (tab[j][i]==0)

il_k++;

}

if (il_w!=1 || il_k!=1)

break;

il++;

}

if (il==n)

cout<<"Macierz zawiera zera niezalezne\n";

else

cout<<"Macierz zawiera zera zalezne\n";

return 0;

}

6. Dana jest n elementowa tablica zawierająca n liczb całkowitych, np.:

const int n=10; int tab[n]={1,2,3,4,5,6,7,8,9,10};

Napisz funkcję, która jako argumenty przyjmuje tablicę oraz jej długość. Funkcja ma tak zamienić kolejność liczb w

tablicy, żeby na początku były liczby parzyste a potem liczby nieparzyste: {2,4,6,8,10,1,3,5,7,9}.

void fun(int tab[],int n)

{

int pom, k=n;

for (int i=0; i<k; i++)

{

if (tab[i]%2==1)

{

pom=tab[i];

for (int j=i; j<n-1; j++)

tab[j]=tab[j+1];

tab[n-1]=pom;

i--;

k--;

}

}

}

int main()

{

const int n=10;

int tab[n]={1,2,3,4,5,6,7,8,9,10};

fun(tab,n);

for (int i=0; i<n; i++)

cout<<tab[i]<<endl;

return 0;

}

7. Napisz program, który dla stałego i znanego na etapie kompilacji n utworzy n elementową tablicę i wypełni ją

wg schematu:

_0_ _ 1 _1_ _

1

1 _ 1

_2_ _

1

1 _

1

1 _ 1

_3_ _

1

1 _

1

1 _

1

1 _ 1

int main()

{

const int n=10;

double tab[n]={1};

for (int i=1; i<n; i++)

tab[i]=1/(tab[i-1]+1);

for (int i=0; i<n; i++)

cout<<tab[i]<<endl;

return 0;

}

8. Utwórz tablicę 2nx2n (n – stała znana na etapie kompilacji) liczb całkowitych i wypełnij ją w następujący

sposób (przykład dla n=2):

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

int main()

{

const int n=2;

int tab[2*n][2*n];

int m=1;

for (int i=0; i<2; i++)

for (int j=0; j<2; j++)

for (int k=0; k<n; k++)

for (int l=0; l<n; l++)

{

tab[i*n+k][j*n+l]=m;

m++;

}

for (int i=0; i<2*n; i++)

{

for (int j=0; j<2*n; j++)

cout<<tab[i][j]<<"\t";

cout<<endl;

}

return 0;

}

1. Utwórz strukturę ułamek zawierającą trzy pola typu int: licznik, mianownik i całkowita. Napisz pięć funkcji: -

dodaj, odejmij, pomnóż, podziel, właściwy. Cztery pierwsze funkcję jako parametr przyjmują dwa obiekty

typu ułamek, wykonują odpowiednie działanie i zwracają wynik, funkcja właściwy przyjmuje jeden argument

i zamienia ułamek niewłaściwy na właściwy.

struct ulamek

{

int l,m,c;

};

ulamek dodaj(ulamek A, ulamek B)

{

ulamek C;

C.c=A.c+B.c;

C.l=A.l*B.m+B.l*A.m;

C.m=A.m*B.m;

return C;

}

ulamek odejmij(ulamek A, ulamek B)

{

ulamek C;

C.c=A.c-B.c;

C.l=A.l*B.m-B.l*A.m;

C.m=A.m*B.m;

return C;

}

ulamek pomnoz(ulamek A, ulamek B)

{

ulamek C;

A.l+=A.c*A.m;

B.l+=B.c*B.m;

C.c=0;

C.l=A.l*B.l;

C.m=A.m*B.m;

return C;

}

ulamek podziel(ulamek A, ulamek B)

{

ulamek C;

A.l+=A.c*A.m;

B.l+=B.c*B.m;

C.c=0;

C.l=A.l*B.m;

C.m=A.m*B.l;

return C;

}

ulamek wlasciwy(ulamek A)

{

A.c+=A.l/A.m;

A.l=A.l%A.m;

return A;

}

int main()

{

ulamek A={1,2,3},B={1,2,3},C,D,E,F,G;

C=dodaj(A,B);

D=odejmij(A,B);

E=pomnoz(A,B);

F=podziel(A,B);

G=wlasciwy(E);

return 0;

}

2. Napisz program, który mając tablicę liczb całkowitych o dowolnej długości utworzy drugą tablicę, zawierającą

liczby znajdujące się w pierwszej, ale bez powtórzeń.

int main()

{

const int n=10;

int tab[n]={1,2,3,1,4,5,5,4,2,1};

bool temp[n]={};

int ile=0;

for (int i=0; i<n; i++)

for (int j=0; j<i; j++)

if (tab[i]==tab[j])

{

temp[i]=true;

ile++;

break;

}

int *tab1=new int[n-ile];

ile=0;

for (int i=0; i<n; i++)

if(!temp[i])

tab1[ile++]=tab[i];

delete [] temp;

for (int i=0; i<ile; i++)

cout<<tab1[i]<<endl;

return 0;

}

3. Utwórz strukturę punkt zawierającą dwie współrzędne. Utwórz strukturę wielokąt w skład której wchodzi:

liczba całkowita (liczba wierzchołków), wskaźnik do struktury punkt (współrzędne wierzchołków). Napisz

dwie funkcje: wprowadź (zwracająca obiekt typu wielokąt) oraz obwód (zwraca obwód wielokąta). W funkcji

main zdefiniuj obiekt wielokąt i wywołaj napisane funkcję.

struct punkt

{

double x,y;

};

struct wielokat

{

int n;

punkt *W;

};

wielokat wprowadz()

{

wielokat F;

cin>>F.n;

F.W=new punkt[F.n];

for (int i=0; i<F.n; i++)

cin>>F.W[i].x>>F.W[i].y;

return F;

}

double odl(punkt A, punkt B)

{

return sqrt(pow(A.x-B.x,2)+pow(A.y-B.y,2));

}

double obwod(wielokat F)

{

double ob=0;

for (int i=0; i<F.n-1; i++)

ob+=odl(F.W[i],F.W[i+1]);

ob+=odl(F.W[F.n-1],F.W[0]);

return ob;

}

int main()

{

wielokat F=wprowadz();

cout<<obwod(F)<<endl;

return 0;

}

4. Napisz program, który z jednej tablicy typu zawierającej liczby całkowite o długości n zrobi dwie tablice do

jednej wpisując liczby parzyste, do drugiej liczby nieparzyste (tablice powinny być odpowiedniej długości):

int main()

{

const int n=10;

int tab[n]={1,2,3,4,5,6,7,8,9,10};

int il_parz=0;

for (int i=0; i<n; i++)

if (tab[i]%2==0)

il_parz++;

int *t_parz=new int[il_parz];

int *t_nparz=new int[n-il_parz];

int j=0,k=0;

for (int i=0; i<n; i++)

if (tab[i]%2==0)

t_parz[j++]=tab[i];

else

t_nparz[k++]=tab[i];

for (int i=0; i<il_parz; i++)

cout<<t_parz[i]<<endl;

cout<<endl;

for (int i=0; i<n-il_parz; i++)

cout << t_nparz[i]<<endl;

return 0;

}

5. Utwórz strukturę okrąg zawierającą trzy pola: x, y oraz r (x, y to współrzędne środka okręgu, r to jego

promień). Napisz dwie funkcje: wprowadź – funkcja umożliwiająca wprowadzenie liczb x, y oraz r, , punkty-

_wsp – funkcja przyjmująca jako argumenty dwa obiekty typu okrąg i zwracająca liczbę punktów wspólnych

(w przypadku nieskończonej liczby punktów wspólnych funkcja zwraca -1).

struct okrag

{

double x,y,r;

};

okrag wprowadx()

{

okrag O;

cin>>O.x>>O.y>>O.r;

return O;

}

int pkt_wsp(okrag A, okrag B)

{

double odl_s=sqrt(pow(A.x-B.x,2)+pow(A.y-B.y,2));

if (odl_s==0 && A.r==B.r) return -1;

if (odl_s==A.r+B.r || odl_s==abs(A.r-B.r)) return 1;

if (odl_s>A.r && odl_s>B.r && odl_s<A.r+B.r) return 2;

if ((odl_s<A.r || odl_s<B.r) && odl_s>abs(A.r-B.r)) return 2;

return 0;

}

int main()

{

okrag A={0,0,1},B={2,0,1};

cout<<pkt_wsp(A,B)<<endl;

return 0;

}

6. Napisz program, który mając dwie tablice liczb całkowitych o dowolnych długościach utworzy trzecią

zawierającą tylko te liczby, które występują w obu tablicach.

int main()

{

const int n=7, m=5;

int t1[n]={1,2,3,1,4,5,6};

int t2[m]={1,2,3,2,6};

bool temp[n]={};

int ile=0;

for (int i=0; i<n; i++)

{

for (int j=0; j<m && !temp[i]; j++)

if (t1[i]==t2[j])

{

temp[i]=true;

ile++;

}

for (int j=0; j<i && temp[i]; j++)

if (t1[i]==t1[j])

{

temp[i]=false;

ile--;

}

}

int *t3=new int[ile];

ile=0;

for (int i=0; i<n; i++)

if (temp[i])

{

t3[ile++]=t1[i];

}

delete [] temp;

for (int i=0; i<ile; i++)

cout<<t3[i]<<endl;

return 0;

}

/*Utwórz strukturę o nazwie fun_lin z dwoma polami a oraz b (parametry funkcji liniowej y=ax+b). Napisz trzy

funkcje: wpr – funkcja służąca do wprowadzenia a i b zwracająca strukturę; zero – funkcja jako argument

przyjmuje strukturę i zwraca miejsce zerowe funkcji (zakładamy że a!=0); wart – funkcja zwracająca wartość

funkcji w punkcie przesłanym do funkcji jako drugi argument. W funkcji main utwórz stworzoną strukturę i

napisz wywołania funkcji.*/

 

#include <iostream>

using namespace std; 

struct fun_lin

{

        double a, b;

};

fun_lin wpr()

{

        fun_lin temp;

        cout << "Podaj a: ";

        cin >> temp.a;

        cout << "Podaj b: ";

        cin >> temp.b;

 

        return temp;

}

double zero(fun_lin funkcja)

{

        return -(funkcja.b/funkcja.a);

}

double wart(fun_lin funkcja, double x)

{

        return funkcja.a*x+funkcja.b;

}

int main()

{

        fun_lin namba;

        namba = wpr(); // przypisanie odpowiednich pól

        cout << "Podaj argument dla ktorego policzyc wartosco funkcji: ";

        double mZerowe, value, x;

        cin >> x;

        mZerowe = zero(namba);

        value = wart(namba, x);

        cout << "Funkcja postaci: y = " << namba.a << "x + " << namba.b << endl;

        cout << "m.zerowe x = " << mZerowe << endl;

        cout << "wartosc w x = " << x << " wynosi: " << value << endl;

}

/*Zdefiniuj strukturę ciąg geometryczny zawierającą dwa pola: a0 oraz q (pierwszy wyraz ciągu oraz iloraz

ciągu). Napisz trzy funkcje: wprowadź, wypisz oraz suma. Funkcja suma ma zwrócić sumę n pierwszych

wyrazów ciągu (jako argumenty przyjmuje strukturę oraz n). W funkcji main stwórz strukturę i wywołaj

napisane funkcje.*/

 

#include <iostream>

#include <cmath>

using namespace std;

 

struct ciag_geometryczny

{

        double a0, q;

};

ciag_geometryczny wpr();

void print(ciag_geometryczny ciag, int n);

double suma(ciag_geometryczny ciag, int n);

int main()

{

        ciag_geometryczny ciag;

        int n;

        cout << "podaj liczbe elementow ciagu: ";

        cin >> n;

        double zlicz = 0;

 

        ciag = wpr();

        print(ciag, n);

        zlicz = suma(ciag, n);

 

        cout << "suma elementow ciagu wynosi: " << zlicz << endl;

        system ("pause");

        return 0;

}

ciag_geometryczny wpr()

{

        ciag_geometryczny temp;

 

        cout << "podaj pierwszy wyraz ciagu: ";

        cin >> temp.a0;

        cout << "podaj iloraz ciagu: ";

        cin >> temp.q;

 

        return temp;

}

void print(ciag_geometryczny ciag, int n)

{

        for( int i = 1; i <= n; i++ )

                cout << ciag.a0*pow(ciag.q, (i-1)) << " ";

        cout << endl;

}

double suma(ciag_geometryczny ciag, int n)

{

        double sumuj = 0;

        for(int i = 1; i <= n; i++)

                sumuj += ciag.a0*pow(ciag.q, (i-1));  

        return sumuj;

}

/*Utwórz strukturę okrąg zawierającą trzy pola: x, y oraz r (x, y to współrzędne środka okręgu, r to jego

promień). Napisz dwie funkcje: wprowadź – funkcja umożliwiająca wprowadzenie liczb x, y oraz r, , punkty-

_wsp – funkcja przyjmująca jako argumenty dwa obiekty typu okrąg i zwracająca liczbę punktów wspólnych

(w przypadku nieskończonej liczby punktów wspólnych funkcja zwraca -1).*/

#include <iostream>

#include <cmath>

using namespace std;

 

struct okrag

{

        double x, y, r;

}

okrag wpr()

{

        okrag temp;

        cout << "podaj wsp x srodka okregu: ";

        cin >> temp.x;

        cout << "podaj wsp y srodka okregu: ";

        cin >> temp.y;

        cout << "podaj dlugosc r okregu: ";

        cin >> temp.r;

        return temp;

}

int punkty_wsp(okrag first, okrag second)

{       okrag temp;

        temp.r = sqrt(pow((first.x-second.x),2)+pow((first.y+second.y),2)); //odleglosc miedzy srodkami okregow

        if( temp.r == abs(first.r-second.r) || temp.r == (first.r+second.r) )//styczne wew/zew

                return 1;

        if( temp.r < abs(first.r-second.r) || temp.r > (first.r+second.r) )//rozlaczne

                return 0;

        if( temp.r > abs(first.r-second.r) && temp.r < (first.r+second.r) )//przecinajace sie

                return 2;

        if( first.r == second.r && first.x == second.x && first.y == second.y )//nakladajace sie na siebie

                return -1;

}

int main()

{

        okrag raz, dwa;

        raz = wpr();

        dwa = wpr();

        int punkty;

    punkty = punkty_wsp(raz, dwa);

        cout << punkty << endl;

}

/*Napisz program, który mając dwie tablice liczb całkowitych o dowolnych długościach utworzy trzecią

zawierającą tylko te liczby, które występują w obu tablicach.*/

#include <iostream>

using namespace std;

 

int main()

{

        int* tab;

        int* tab2;

        int* tab3;

        int k = 0, l = 0, size1, size2;

        cout << "podaj rozmiar 1 tablicy: ";

        cin >> size1;

        tab = new int[size1];

        cout << "podaj rozmiar 2 tablicy: ";

        cin >> size2;

        tab2 = new int[size2];

 

        for(int i = 0; i < size1; i++)

        {

                cout << "podaj liczbe: ";

                cin >> tab[i];

        }

 

        for(int i = 0; i < size2; i++)

        {

                cout << "podaj liczbe: ";

                cin >> tab2[i];

        }

 

        //to nizej tylko wypisuje na jakich pozycjach sa te same liczby

        for(int i = 0; i < size1; i++)

                for(int j = 0; j < size2; j++)

                        if( tab[i]==tab2[j] )

                                cout << i << " - " << j << endl;

 

        //to sprawdza ile elementow jest identycznych w porownywanych tablicach

        for(int i =0; i < size1; i++)

                for(int j = 0; j < size1; j++)

                        if(tab[i]==tab2[j])

                                k++;

       

       

        tab3 = new int[k];

        //tu caly wichajster co przepisuje elementy, zakladam ze dana liczba wystepuje tylko raz w tablicy

        for(int i = 0; i < size1; i++)

                for(int j = 0; j < size2; j++)

                {

                        if(tab[i]==tab2[j])

                        {

                                tab3[l]=tab[i];

                                l++;

                        }

                }

       

        //wyswietlenie zawartosci nowej tablicy

        for(int i =0; i < k; i++)

                cout << tab3[i] << " ";

 

        //tu dopisac system pause itd mi w VS nie chce sie ;)

}

/*Napisz program, który z jednej tablicy typu zawierającej liczby całkowite o długości n zrobi dwie tablice do

jednej wpisując liczby parzyste, do drugiej liczby nieparzyste.*/

#include <iostream>

using namespace std;

 

int main()

{

        int* tab;

        int* even; //parzyste

        int* odd; //nieparzyste

        int n, l=0;

 

        cout << "podaj rozmiar tablicy: ";

        cin >> n;

        tab = new int[n];

 

        for(int i=0; i<n; i++)

        {

                cout << "podaj wartosc liczbe: ";

                cin >> tab[i];

                if(tab[i]%2==0)

                        l++;

        }

 

        //tablica parzystych

        int temp=0;

        even = new int[l];

        for(int i=0; i<n; i++)

                if(tab[i]%2==0)

                {

                        even[temp]=tab[i];

                        temp++;

                }

 

        //tablica nieparzystych

        temp=0;

        odd = new int[n-l];

        for(int i=0; i<n; i++)

                if(tab[i]%2!=0)

                {

                        odd[temp]=tab[i];

                        temp++;

                }

 

        //print

 

        for(int i=0; i<l; i++)

                cout << even[i] << " ";

        cout << endl;

 

        for(int i=0; i<n-l; i++)

                cout << odd[i] << " ";

        cout << endl;

}

/*Napisz funkcję, która jako argumenty przyjmuje tablicę liczb rzeczywistych oraz jej długość. Funkcja ma

zwrócić tablicę zawierającą wartość minimalną, średnią oraz maksymalną z wszystkich liczb z tablicy. W

funkcji main napisz wywołanie funkcji.*/

#include <iostream>

using namespace std;

 

struct value

{

        double min, max, med;

};

 

value find(double* tab, int size)

{

        value temp;

 

        temp.max = tab[0];

        temp.min = tab[0];

        temp.med = tab[0]; //na wypadek gdyby tablica byla 1 elementowa

 

        for(int i=1; i<size; i++)

        {

                if(tab[i] > temp.max)

                        temp.max = tab[i];

                if(tab[i] < temp.min)

                        temp.min = tab[i];

                temp.med += tab[i];

        }

 

        temp.med /= size;

        return temp;

}

 

int main()

{

        double* tab;

        int size;

 

        cout << "podaj rozmiar tablicy: ";

        cin >> size;

        tab = new double[size];

 

        for(int i=0; i<size; i++)

        {

                cout << "podaj liczbe: ";

                cin >> tab[i];

        }

 

        value result;

        result = find(tab, size);

        cout << "max: " << result.max << " min: " << result.min << " med: " << result.med << endl;

}

/*Stwórz strukturę punkt reprezentującą punkt w n wymiarowej przestrzeni. Napisz funkcje następujące:

funkcja umożliwiająca wprowadzenie współrzędnych, funkcja wypisująca współrzędne na ekranie, funkcja

wykonująca translację (przesunięcie) o podany wektor, funkcja wykonująca symetrię środkową względem

zadanego punktu. W funkcji main zdefiniuj obiekt strukturalny w wywołaj napisane funkcje.*/

 

#include <iostream>

using namespace std;

 

struct punkt

{

        double x, y;

};

 

punkt wpr()

{

        punkt temp;

       

        cout << "podaj x: ";

        cin >> temp.x;

        cout << "podaj y: ";

        cin >> temp.y;

        /*cout << "podaj z: ";

        cin >> temp.z;

        */

        return temp;

}

 

void print(punkt pkt)

{

        cout << "wsp x: " << pkt.x << endl;

        cout << "wsp y: " << pkt.y << endl;

        //cout << "wsp z: " << pkt.z << endl;

}

 

punkt trans(punkt pkt, punkt wektor)

{

        pkt.x += wektor.x;

        pkt.y += wektor.y;

        //pkt.z += wektor.z;

 

        return pkt;

}

 

punkt symetria(punkt pkt, punkt O)

{

        punkt temp;

 

        temp.x = O.x - pkt.x;

        temp.y = O.y - pkt.y;

        /*to wyzej to wektor o jaki trzeba bedzie przesunac punkt*/

        O.x += temp.x;

        O.y += temp.y;

 

        return O;

}

 

int main()

{

        punkt jeden, wek, O;

        jeden = wpr();

       

        cout << "podaj wsp x wektora: ";

        cin >> wek.x;

        cout << "podaj wsp y wektora: ";

        cin >> wek.y;

       

        cout << "podaj wsp x punktu symetrii: ";

        cin >> O.x;

        cout << "podaj wsp y punktu symetrii: ";

        cin >> O.y;

 

        O = symetria(jeden, O);

 

        cout << "wsp punktu po symetrii x = " << O.x << " y = " << O.y << endl;

 

        jeden = trans(jeden, wek);

       

        cout << "wsp punktu po przesunieciu o wketor x = " << jeden.x << " y = " << jeden.y << endl;

    system ("pause");

    return 0;

}

/*Utwórz strukturę punkt zawierającą dwie współrzędne. Utwórz strukturę wielokąt w skład której wchodzi:

liczba całkowita (liczba wierzchołków), wskaźnik do struktury punkt (współrzędne wierzchołków). Napisz

dwie funkcje: wprowadź (zwracająca obiekt typu wielokąt) oraz obwód (zwraca obwód wielokąta). W funkcji

main zdefiniuj obiekt wielokąt i wywołaj napisane funkcję.*/

 

#include <iostream>

#include <cmath>

using namespace std;

 

struct punkt

{

        double x, y;

};

 

struct wielokat

{

        int wierz;

        punkt *wsp;

};

 

wielokat wpr()

{

        wielokat temp;

 

        cout << "podaj liczbe wierzcholkow: ";

        cin >> temp.wierz;

       

        temp.wsp = new punkt[temp.wierz];

       

        for(int i = 0; i < temp.wierz; i++)

        {

                cout << "podaj wsp x " << i+1 << " wierzcholka: ";

                cin >> temp.wsp[i].x;

                cout << "podaj wsp y " << i+1 << " wierzcholka: ";

                cin >> temp.wsp[i].y;

        }

 

        return temp;

}

 

double obwod(wielokat dowolny)

{

        double sumuj = 0;

 

        sumuj += sqrt(pow((dowolny.wsp[dowolny.wierz-1].x-dowolny.wsp[0].x), 2)+pow((dowolny.wsp[dowolny.wierz-1].y-dowolny.wsp[0].y), 2));

        for(int i = 0; i < dowolny.wierz-1; i++ )

                sumuj += sqrt(pow((dowolny.wsp[i+1].x - dowolny.wsp[i].x), 2)+pow((dowolny.wsp[i+1].y - dowolny.wsp[i].y), 2));

       

        return sumuj;

}

 

int main()

{

        wielokat trojkat;

        trojkat = wpr();

 

        for(int i = 0; i < trojkat.wierz; i++)

                cout << trojkat.wsp[i].x << " " << trojkat.wsp[i].y << endl;

 

        double suma;

 

        suma = obwod(trojkat);

        cout << suma << endl;

    system ("pause");

        return 0;

}


Wyszukiwarka

Podobne podstrony:
Biochemia - sciaga, ATP + H2O ŕATPazyŕ ADP + Pi
1 sciaga ppt
Chemia wyklad I i II (konfiguracja wiÄ…zania Pauling hybrydyzacja wiazania pi i sigma)
metro sciaga id 296943 Nieznany
ŚCIĄGA HYDROLOGIA
AM2(sciaga) kolos1 id 58845 Nieznany
Narodziny nowożytnego świata ściąga
finanse sciaga
instrukcja bhp przy obsludze pi Nieznany (7)
Jak ściągać na maturze
Ściaga Jackowski
Aparatura sciaga mini
OKB SCIAGA id 334551 Nieznany
Przedstaw dylematy moralne władcy i władzy w literaturze wybranych epok Sciaga pl
fizyczna sciąga(1)
Finanse mala sciaga
Podział węży tłocznych ze względu na średnicę ściąga

więcej podobnych podstron