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

Podobne dokumenty