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

5

7

2

4

6

8

9

11

13

15

10

12

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

8

10

0

2

6

9

0

0

3

7

0

0

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:

1

1

1

0 1 1

2

3

1 1

1

1

1

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

5

6

3

4

7

8

9

10

13

14

11

12

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;

}