Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak
Transkrypt
Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak
A Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane. 1. (6 pkt.) Zaprojektować funkcję, która inicjalizuje zaznaczoną część tablicy typu tabl ściami z kolejnych elementów listy. Jeżeli lista okaże się X00 X01 X02 #define N 6 X10 X11 X12 typedef int tabl [N][N]; struct Ele { X20 X21 X22 struct Ele * nn; X30 X31 X32 int aa; X40 X41 X42 }; X50 X51 X52 (wierszami) wartoX03 X04 X05 X13 X14 X15 X23 X24 X25 X33 X34 X35 X43 X44 X45 X53 X54 X55 za krótka — rozpoczynamy na nowo od jej początku. W przypadku listy pustej zaznaczone elementy tablicy otrzymują wartość przekazaną przez dodatkowy parametr, który służy również do inicjalizacji nie zaznaczonych elementów tablicy. Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji. 2. (9 pkt.) Zaprojektować wg. podanych prototypów: struct Box * NewBox(double); void CopyNo1 (struct Box *, struct Box **); 1)funkcję NewBox tworzącą element listy i inicjalizującą go odpowiednio; 2) funkcję CopyNo1 która tworzy kopię listy wzorcowej z pominięciem pierwszego elementu listy. Funkcja musi korzystać z NewBox . Pamiętać o przypadkach szczególnych (np. lista pusta, jedno-elementowa). Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona). B Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane. 1. (6 pkt.) Zaprojektować funkcję wg. podanego prototypu, która znajduje wartość najmniejszą w zaznaczonej części tablicy typu tabl . X00 X01 X02 X03 X04 X05 #define NN 6 X10 X11 X12 X13 X14 X15 typedef int tabl [N][N]; struct Ele { X20 X21 X22 X23 X24 X25 struct Ele * nn; X30 X31 X32 X33 X34 X35 int aa; X40 X41 X42 X43 X44 X45 }; X50 X51 X52 X53 X54 X55 int zlicz (tabl); Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji. 2. (9 pkt.) Zaprojektować wg. podanego prototypu: void CopyList (struct Box *, struct Box **); funkcję CopyList, która kopiuje co drugi element listy, zaczynając od pierwszego. Pamiętać o przypadkach szczególnych (np. lista pusta, jedno-elementowa). Proszę również spróbować rozwiązanie rekurencyjne. Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona). 1 C Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane. 1. (6 pkt.) Zaprojektować funkcję wg. podanego prototypu, która szuka w zaznaczonej części tablicy typu tabl (wierszami, kolejne pary elementów) wzorca występującego w którymś z elementów listy. W przypadku znalezienia zwraca położenie (pierwszego wystąpienia) początku wzorca (numer wiersza i kolumny). Warto wprowadzić pomocniczą funkcję przeglądającą listę. X00 X01 X02 X03 X04 X05 #define NN 6 X X X X X X15 10 11 12 13 14 typedef int tabl [N][N]; X20 X21 X22 X23 X24 X25 struct Ele { struct Ele * nn; X30 X31 X32 X33 X34 X35 int aa, bb; X40 X41 X42 X43 X44 X45 }; X50 X51 X52 X53 X54 X55 void znajdz (tabl , struct Ele *, int*, int*); Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji. 2. (9 pkt.) Zaprojektować wg. podanego prototypu: void UsunCo2 (struct Box **); funkcję UsunCo2 , która usuwa co drugi element listy (zwalniając pamięć) poczynając od pierwszego (tzn. 1,3,5, ldots). Pamiętać o przypadkach szczególnych (np. lista pusta, jedno-elementowa). Uwaga! Warto zacząć od rozwiązania rekurencyjnego! Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona). D Uwaga! Modyfikacje podanych deklaracji będą traktowane jako brak właściwego rozwiązania. Istotne fragmenty algorytmu (m.in. rola parametrów) muszą być opatrzone krótkimi komentarzami. Rysunki mile widziane. 1. (6 pkt.) Zaprojektować funkcję wg. podanego prototypu, która zlicza liczbę wystąpień wartości z wskazanego elementu listy w zaznaczonej części tablicy typu tabl . X00 X01 X02 X03 X04 X05 #define NN 6 X10 X11 X12 X13 X14 X15 typedef int tabl [N][N]; struct Ele { X20 X21 X22 X23 X24 X25 struct Ele * nn; X30 X31 X32 X33 X34 X35 int aa; X40 X41 X42 X43 X44 X45 }; X50 X51 X52 X53 X54 X55 int zlicz (tabl , struct Ele *); Zadeklarować potrzebne zmienne i podać przykładowe wywołanie funkcji. 2. (9 pkt.) Zaprojektować wg. podanego prototypu: void OdwrList (struct Box *, struct Box **); funkcję OdwrList, która odwraca listę (niszcząc jej pierwotną postać). Pamiętać o przypadkach szczególnych (np. lista pusta, jedno-elementowa). Proszę również spróbować rozwiązanie rekurencyjne — proponuję wprowadzić dodatkowy parametr. Przy pierwszym wywołaniu jego wartość jest obojętna, przy wyjściu wskazuje na koniec listy. Podać przykładowe wywołanie funkcji (zakładając, że lista została uprzednio utworzona). 2