- Proszę napisać funkcję
int wypisz( char [] [] tab ) { ... }
, której zadaniem jest wypisanie do strumienia wyjściowego programu zawartości dwuwymiarowej tablicy przekazanej parametremtab
. Format wyprowadzanych danych powinien odpowiadać zawartości tablicy – w kolejnych wyprowadzanych wierszach powinny pojawiać się znaki zapisane w kolejnych wierszach tablicy. Rezultatem funkcji powinna być liczba znaków w tablicy tab, nie będących spacją. - Zakładamy, że rozpatrujemy dwuwymiarową, kwadratową tablicę znaków (liczba wierszy jest równa liczbie kolumn). Proszę napisać funkcje (otrzymujące taką kwadratową tablicę jako parametr):
-
void backSlash( char [][] tab ) { … }
— funkcja wpisuje znaki ‘*’ na głównej przekątnej (diagonalnej) tablicytab
, pozostałe elementy tablicy są wypełnione znakami spacji.5×5
* * * * *
-
void slash( char [][] tab ) { … }
— funkcja wpisuje znaki ‘*’ na przekątnej niediagonalnej tablicytab
, pozostałe elementy tablicy są wypełnione znakami spacji.5×5
* * * * *
-
void x( char [][] tab ) { … }
— funkcja wpisuje znaki ‘*’ na obu przekątnych tablicytab
, pozostałe elementy tablicy są wypełnione znakami spacji.5×5
* * * * * * * * *
-
void kwadrat( char [][] tab ) { … }
— funkcja wpisuje znaki ‘*’ do wszystkich elementów pierwszego i ostatniego wiersza oraz pierwszej i ostatniej kolumny tablicytab
, pozostałe elementy tablicy są wypełnione znakami spacji.5×5
***** * * * * * * *****
Do testowania funkcji proszę wykorzystać napisaną wcześniej funkcję
wypisz
. -
- Proszę napisać funkcję
void literaA( char [][] znak ) { ... }
, której zadaniem jest zapisanie w tablicy znaków o nazwieznak
wizerunku litery A zbudowanej ze znaków ‘*’. Funkcja powinna przeanalizować wymiary tablicyznak
rozmieścić w niej znaki ‘*’ maksymalnie wykorzystując obszar tablicy. Do testowania funkcji proszę wykorzystać napisaną wcześniej funkcjęwypisz
. Można założyć, że dla tablic o rozmiarze mniejszym niż 3×3 funkcja nie będzie działać. Przykładowe rozmieszczeni znaków w tablicach o różnych wymiarach:
4×4
** * * **** * *
4×7
***** * * ******* * *
4×3
* * * *** * * * *
3×3
* *** * *
Proszę napisać analogiczne funkcje dla liter E, F, H, L, O, U. Można się pokusić o napisanie funkcji dla wszystkich dużych liter alfabetu angielskiego.
- Załóżmy, że w pewnych zawodach triathlonowych, dla każdego zawodnika osobno wyznacza się czas pływania, jazdy na rowerze i biegu. Uzyskane czasy są zapisywane w papierowej tabeli mającej tyle wierszy ilu jest zawodników oraz tyle kolumn ile konkurencji (czyli dla triathlonu 3). Proszę napisać funkcję
double podsumowanieWynikow( double [][] wyniki ) { … }
. Funkcja otrzymuje dwuwymiarową tablicę zawierająca wyniki przepisane z tabeli papierowej, tablica ma tyle wierszy ilu jest zawodników oraz ma kolumn o jeden więcej niż liczba konkurencji (zatem dla triathlonu cztery kolumny). Dodatkowa kolumna zawiera nieistotne wartości początkowe, zadaniem funkcji jest wstawienie do każdego elementu dodatkowej kolumny sumy zawartości wcześniejszych kolumn — dotyczy to każdego wiersza. A więc w przypadku triathlonu, dla każdego zawodnika (wiersza) ostatnia kolumna będzie zawierała sumę czasów uzyskanych w każdej z trzech konkurencji. Przykład dla dwóch zawodników:10 23 15 48 11 25 18 54 . . . . . .
Rezultatem funkcji ma być najlepszy (a więc najkrótszy) czas sumaryczny.
double [] macierzNaWektor( double [][] wektor ) { … } która otrzymuje w parametrze dwuwymiarową tablicę wartości typu double
, rozmiary tablicy nie są z góry znane. Funkcja ma utworzyć jednowymiarową tablicę zdolną do pomieszczenia wszystkich elementów tablicywektor
, wszystkie wartości z tablicywektor
powinny zostać przepisane do nowej tablicy jednowymiarowej (wiersz po wierszu), tablica powinna zostać posortowana rosnąco, rezultatem funkcji ma być referencja to utworzonej tablicy jednowymiarowej.