Zadanie 1.

Transkrypt

Zadanie 1.
Zadanie 1.
Dana jest tablica dwuwymiarowa liczb całkowitych o wymiarach M na N. Napisać algorytm, który
sprawdzi, w którym wierszu średnia elementów jest najwyższa.
1.
int najwyzszaSrednia(int [][] tab, int M, int N)
2.
{
3.
int [M] srednie; // M wierszy, N kolumn
4.
for (int i=0;i<M;i++) //liczymy srednie
5.
{
6.
for (int j=0;j<N;j++)
7.
{
8.
srednie[i] = srednie[i] + tab[i][j];
9.
}
10.
srednie[i] = srednie[i] / M;
11.
}
12.
int maxIndex = 0;
13.
for (int i=1;i<M;i++)
14.
{
15.
if (srednie[i] > srednie[maxIndex])
16.
{
17.
maxIndex = i;
18.
}
19.
}
20.
return maxIndex;
21. }
Zadanie 2.
Dana jest tablica dwuwymiarowa liczb całkowitych. Wewnątrz tablicy zamienić wartości według
następującego schematu: jeśli liczba znajdująca się z lewej strony aktualnie badanej liczby była
parzysta, należy pomnożyć aktualną liczbę przez 2.
1.
int M;
2.
int N;
3.
int tab[M][N];
4.
int wynik[M][N];
5.
for (int i=0;i<M;i++)
6.
{
7.
for (int j=0;j<N;j++)
8.
{
9.
//wazne, zeby nie wyjsc poza tablice
10.
if (j==0)
11.
{
12.
tab[i][j] = wynik[i][j];
13.
}
14.
else
15.
{
16.
if (tab[i][j-1] % 2 == 0)
17.
{
18.
wynik[i][j] = 2 * tab[i][j];
19.
}
20.
else
21.
{
22.
wynik[i][j] = tab[i][j];
23.
}
24.
}
25.
26. }
}
Zadanie 3.
Dana jest tablica dwuwymiarowa o wymiarach N x N, której część nad główną przekątną jest
wypełniona liczbami dodatnimi, zaś część pod główną przekątną zerami. Napisać algorytm, który
wykona „odbicie lustrzane” części tablicy nad główną przekątną.
1.
int N;
2.
int tab[N][N];
3.
for (int i=1;i<N;i++)
4.
{
5.
for (int j=0;j<i;j++)
6.
{
7.
tab[N-j][N-i] = tab[i][j];
8.
9.
}
}
Zadanie 4.
Dana jest tablica dwuwymiarowa o wymiarach N x N. Napisać algorytm, który zamieni wiersz
pierwszy z ostatnim, drugi z przedostatnim itd...
1.
int N;
2.
int tab[N][N];
3.
int bufor;
4.
for (int i=0;i<N/2;i++)
5.
{
6.
for (int j=0;j<N;j++)
7.
{
8.
bufor = tab[i][j];
9.
tab[i][j] = tab[N-i][j];
10.
tab[N-i][j] = bufor;
11.
12. }
}
Zadanie 5.
Dana jest tablica dwuwymiarowa liczba dodatnich o wymiarach M x N. Napisać algorytm, który
sprawdzi ile jest wierszy, w których elementów większych niż x jest więcej niż y.
1.
int Zadanie5(int [][] tab, int M, int N, int x, int y)
2.
{
3.
int wiekszeWWierszu;
4.
int wynik = 0;
5.
for (int i=0;i<M;i++) //M wierszy
6.
{
7.
wiekszeWWierszu = 0;
8.
for (int j=0;j<N;j++) // petla po elementach wiersza
9.
{
10.
if (tab[i][j] > x)
11.
{
12.
wiekszeWWierszu++;
13.
}
14.
}
15.
if (wiekszeWWierszu > y)
16.
{
17.
wynik++;
18.
}
19.
}
20.
return wynik;
21. }