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