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.

Podobne dokumenty