PI!!!!

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) liczb całkowitych i wypełnij ją w następujący

sposób:

1 5

0 2

8 10

6 90 0

0 03 70 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;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_ _

11 _ 1_2_ _11 _11 _ 1_3_ _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 89 10

11 12

13 1415 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;

}

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 (liczba wierzchołków), wskaźnik do struktury punkt (współrzędne wierzchołków

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;ret0}

1. Utwórz strukturę ułamek zawierającą trzy

.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;}

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 oraz ilorazcią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łajnapisane 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)) << " ";out << 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 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; //nieparzysteint 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;

 

/*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:
Chemia wyklad I i II (konfiguracja wiÄ…zania Pauling hybrydyzacja wiazania pi i sigma)
instrukcja bhp przy obsludze pi Nieznany (7)
instrukcja bhp przy obsludze pi Nieznany (24)
Kon. - siata - zbicie pi, AWF, Konspekty, Siatkówka
PI 23.11.2011, Notatki UTP - Zarządzanie, Semestr III, Procesy informacyjne
PI Laboratorium 3
PI Laboratorium 1
7 Czwórnik typu PI
PI 1
PI w04
pi cw04
instrukcja bhp przy obsludze pi Nieznany (23)
instrukcja bhp przy obsludze pi Nieznany (12)
Pi.gov klastry aktualnosci, Uniwersytet Ekonomiczny JG, Praca magisterska
PI wyk1
Moralne przeslanie JP II dla pi Nieznany
PI 12.10.2011, Notatki UTP - Zarządzanie, Semestr III, Procesy informacyjne

więcej podobnych podstron