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