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;
}
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;
const int n=5;
int tab[n]={0,0,1,1,0};
cout<<boolalpha<<fun(tab,n)<<endl;
4. Utwórz tablicę nxn) liczb całkowitych i wypełnij ją w następujący
1 5
0 2
8 10
6 90 0
0 03 70 4
{const int n=4;
int tab[n][n]={0};
int k=1;
{for (int j=0; j+i<n; j++)
{tab[j][j+i]=k;
k++;}}
cout<<tab[i][j]<<"\t;endl;}
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).
const int n=3;
int tab[n][n]={0,1,2,3,0,4,5,6,0};
int il_w, il_k, il=0;
il_w=0; il_k=0;
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";
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--;
const int n=10;
int tab[n]={1,2,3,4,5,6,7,8,9,10};
fun(tab,n);
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
{const int n=10;
double tab[n]={1};
for (int i=1; i<n; i++)
tab[i]=1/(tab[i-1]+1);
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
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++)
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 tab[n]={1,2,3,1,4,5,5,4,2,1};
bool temp[n]={};
int ile=0;
for (int j=0; j<i; j++)
if (tab[i]==tab[j])
temp[i]=true;
ile++;
int *tab1=new int[n-ile];
ile=0;
if(!temp[i])
tab1[ile++]=tab[i];
delete [] temp;
for (int i=0; i<ile; i++)
cout<<tab1[i]<<endl;
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;
C.c=0;C.l=A.l*B.m;
C.m=A.m*B.l;
}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);
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 il_parz=0;
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;
t_parz[j++]=tab[i];
t_nparz[k++]=tab[i];
for (int i=0; i<il_parz; i++)...
KaSSSxxx