Instrukcja laboratorium nr 5
Transkrypt
Instrukcja laboratorium nr 5
Politechnika Rzeszowska, Wojciech Szydełko Zadania do realizacji na zajęciach nr 5. 1. Struktury Przetestować działanie następujących struktur: 1. Deklaracja struktur struct walec{ int numer; double promien; double wysokosc; char nazwa[20]; }; struct test{ int numer; char *nazwa; }; typedef struct{ int rozmiar_x; int rozmiar_y; int rozmiar_z; char * nazwa; }OBUDOWA; 2. Delkaracje zmiennych i przypisanie wartości Zadeklarować zmienne a, b, c ,d dla struktury walec i przypisać przy pomocy operatora „kropka” wartości dla poszczególnych pól struktury. Pole „nazwa” zapisać przy pomocy funkcji strcpy(docelowy, źródłowy). Następnie przypisane wartości wypisz przy pomocy funkcji printf(). Zadeklaruj zmienne a1, b1 dla struktury „test”, zainicjuj strukturę podobnie jak tablicę: struct test a1= {1,"Walec1"}; Podobnie jak poprzednio przypisz wartości dla pól, dla pola „nazwa” wykonaj operacje a1.nazwa=”test”; Zadeklaruj zmienne a2, b2 dla struktury OBUDOWA w następujący sposób: OBUDOWA a2, b2; Przypisz wartości dla pól i przy pomocy metody printf() wypisz testowo wprowadzone dane. 2. Struktury i wskaźniki 1. Deklaracja wskaźników do struktur Zadeklaruj wskaźnik „p” do struktury „walec”, wskaŜ zmienną „a” w tym wskaźniku i odwołaj się do wszystkich pól struktury przy pomocy operatora „(*p).numer” i „->” z poziomu wskaźnika do zmiennej a, wypisując wartości pól w metodzie printf(). struct walec *p;//Deklaracja wskaźnika do struktury 2008-05-20 1 Politechnika Rzeszowska, Wojciech Szydełko p=&a; //Przypisanie adresu zmiennej a MoŜliwe jest równieŜ deklaracja zmiennej wskaźnikowej przy i deklaracji struktury. struct walec{ int numer; double promien; double wysokosc; char nazwa[20]; }a, *p; Proszę przetestować to rozwiązanie równieŜ. 2. Struktury zagnieŜdŜone Zmodyfikuj deklaracje struktury „walec1” tak, aby zawierała odwołanie do struktury OBUDOWA. Przetestuj działanie nowej struktury w oparciu o zmienną „a”, przypisz jej nowe wartości uwzględniając zagnieŜdŜoną strukturę OBUDOWA. Wypisz nowe wartości zmiennej a w funkcji printf(). struct walec1{ int numer; double promien; double wysokosc; char nazwa[20]; OBUDOWA k; }; Odwołanie do struktury zagnieŜdŜonej odbędzie się przy pomocy dodatkowego operatora „kropka”. MoŜe to być tak: a.k.rozmiar_x = 10; 3. Struktury i funkcje Napisać funkcje, które jako parametr otrzymają wskaŜnik do struktury typu WALEC. Struktura WALEC zdefiniowana jest następująco: typedef struct{ int numer; float promien; float wysokosc; char *nazwa; }WALEC; NaleŜy przygotować funkcję objetosc(WALEC *p) obliczającą objętość walca, którego parametry są podane w strukturze i funkcję wypisz(WALEC *p) wypisującą wszystkie pola struktury. Objętość walca naleŜy policzyć ze wzory pi*promien*promien*wysokosc , pi=3.1415926. Rozpatrywane walce naleŜy zadeklarować i zainicjować wstępnie tak jak tablice, np.: WALEC w1 ={1,10.2,10.0, „Test1”}, w2={2,1.2,1.0, „Test2”}; 2008-05-20 2 Politechnika Rzeszowska, Wojciech Szydełko 4. Struktury i tablice 1. Tablica elementem struktury Mając następującą strukturę struct tablica{ char uwagi[5]; int obraz[20][20]; }; wypełnij pole „uwagi” kilkoma napisami (a.uwagi[0]=”tekst1”; a.uwagi[1]=”tekst2”;), pole „obraz” wypełnij wartościami pseudolosowymi z zakresu od 0 do 255. Wypisz zawartość pól rekordów przy pomocy metody printf(). 2. Tablica jako zbiór struktur Mamy zdefiniowaną strukturę WALEC : typedef struct{ int numer; float promien; float wysokosc; char nazwa[100]; }WALEC; Tworzymy tablicę zawierającą struktury typu WALEC i przypisujemy elementom tej tablicy wartości początkowymi: WALEC tab[4]={{1, 20.4, 10.0, „Walec pierwszy”}, {2, ....}} NaleŜy przygotować funkcję int max(WALEC p[], int wielkosc_tablicy) , która przeszuka tablicę walców i zwróci nr walca, który ma największą objętość. 2008-05-20 3