Instrukcja laboratorium nr 3
Transkrypt
Instrukcja laboratorium nr 3
Politechnika Rzeszowska, Wojciech Szydełko Programowanie komputerów, Ćwiczenie 3 Informacje wstępne Generator liczb pseudolosowych Generator liczb pseudolosowych pozwala na generowane liczb lodowych z pewnego zakresu. Generator jest wstępnie zainicjowany przy pomocy metody srand(), następnie jest uruchamiany generator przy pomocy funkcji rand(). Przykładowy przykład generatora liczb pseudolosowych: #include <stdlib.h> #include <stdio.h> #include <time.h> int main(void){ int i; time_t t; srand((unsigned) time(&t)); //srand(time(0)); printf("Random od 0 do 99\n"); for(i=0; i<10; i++) printf("%d\n", rand() % 100); printf("Nowy random od 0 do 99\n %d\n", (int)(rand() / (RAND_MAX + 1.0) * 100.0)); return 0; } Przedstawiony program generuje liczby z zakresu od 0 do 100. Inicjacja generatora liczbą zwróconą przez funkcję time(&t) pozwala na uzyskanie unikalnych wartości przy kaŜdym uruchomieniu generatora. Deklaracja tablicy dwuwymiarowej Deklaracja tablicy dwuwymiarowej oznacza rezerwacje pamięci na zbiór elementów jednego typu, np. int, float, double, do elementów której moŜemy uzyskać dostęp przy pomocy pary indeksów [wiersz][kolumna]. kolumna 0 1 1 1 1 1 1 1 1 1 wiersz 1 1 1 1 1 1 1 1 1 1 Deklaracja tablicy dwuwymiarowej składającej się z dwu wierszy i 10 kolumn typu int. int tab[2][10]; Dostęp do elementów tablicy dwuwymiarowej MoŜemy się odwołać do elementów tablicy dwuwymiarowej przy pomocy zagnieŜdŜonej pętli for. WS_ver0.1_2008-04-1509 1 Politechnika Rzeszowska, Wojciech Szydełko //Tablica tab 10x10 typu int int wiersz, kolumna; for(wiersz=0;wiersz<10;wiersz++){ for(kolumna=0;kolumna<10;kolumna){ printf(” %d”,tab[wiersz][kolumna]); } } PowyŜszy program wypisuje zawartość tablicy tab o rozmiarach 10x10. Zadania do realizacji na zajęciach 1. Generator Przygotować program, który zadeklarowaną dwuwymiarową tablicę typu int zainicjuje wartościami pseudolosowymi z zakresu od 0 do 255. Tablica ta symuluje obraz w odcieniach szarości. 2. Binaryzacja Na zainicjowanej wcześniej tablicy wykonać operację „binaryzacji”, czyli zamiany wartości wpisanych w komórkach tablicy w zaleŜności od przyjętego progu. JeŜeli wartość w komórce jest mniejsza od progu to wpisujemy w niej 0 gdy jest większa lub równa to 255. NaleŜy: a). Zainicjować tablice wartościami lodowymi z zakresu od 0 do 255 b). Wypisać zainicjowaną tablicę c). Dokonać operacji binaryzacji: int p= 100; //Próg binaryzacji ...//pętla for if (obraz[i][j] <= p) obraz [i][j] = 0; else obraz[i][j] =255; ... d). Wypisać przetworzoną tablicę WS_ver0.1_2008-04-1509 2