Informatyka II, kier
Transkrypt
Informatyka II, kier
Informatyka II, kier. E-a, sem.III, 2015/2016 Wskaźniki w języku C – cz. I Ćwiczenie laboratoryjne nr 5 W ramach przygotowania teoretycznego należy zapoznać sie z następującymi opisami wskaźników: wykład nr 3 i materiał dydaktyczny Wskazniki_i_dynamiczna_alokacja_s3.pdf ( strony 1-15) . I. Opisać następujące pojęcia a) wskaźnik b) operator adresowy c) operator dereferencji II. Uruchomić następujące instrukcje i opisać w komentarzach działanie poszczególnych konstrukcji programowych związanych ze wskaźnikami. 1. int a[8]={0, -1, 2, -3, 4, 5, 6, 7, 8},x=5,y=10;; 2. int *px,*py,*pa, 3. double *pd; 4. px=&x; 5. py=&y; 6. y=*px; printf("\n y=%d", *px); 7. x=*py; printf("\n x=%d", x); 8. py=px; printf("\n py=%p", py); 9. *px=20; 10.*px=*py+5; Opisać w komentarzach działanie następujących instrukcji (tablice, wskaźniki i arytmetyka wskaźnikowa) 10. pa=a; 11.*(pa+1)=10; 12. pa[2]=15; 13. pa++; 14. pa=pa-1; 15 *pa++=30; 16. *++pa=35; III. Część programowa 1. Zdefiniować zmienne x typu int oraz y typu double i zmienne wskaźnikowe px typu wskaźnik do int oraz py typu wskaźnik do double. Wczytać z klawiatury zmienne x i y przy użyciu wskaźników, następnie wydrukować je bezpośrednio i przy użyciu wskaźników. 2. Zdefiniować tablicę tab typu double oraz wskaźnik pa do typu double. Wczytać i wydrukować tablicę tab z użyciem pa. 3. Napisać funkcję zamien zamieniającą swoje argumenty typu int i wywołać ją w funkcji main() dla dwóch par argumentów. 4. Napisać funkcję wczytTab wczytującą tablicę liczb typu int oraz funkcję minMax wyszukującą w w tablicy liczb typu int wartość min przy użyciu wskaźnika. Funkcję minMax wywołać w main() i wydrukować wynik. Zadanie domowe 1. Napisać funkcje sortujące sortTabAsc i sortTabDsc sortujące tablicę liczb typu double przy użyciu wskaźników a) niemalejąco przy zastosowaniu algorytmu sortowania bąbelkowego (sortTabAsc) b) nierosnąco stosując algorytm prostego wybierania (sortTabDsc) Obie funkcje wywołać w main() dla wczytanych tablic tab1[6] i tab2[6] typu double. Wydrukować obydwie tablice przed sortowaniem i po sortowaniu.