PI!!!!.docx

(31 KB) Pobierz

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++)...

Zgłoś jeśli naruszono regulamin