Professional Documents
Culture Documents
delete [ ] D;
return 0;
}
Zadanie 1. WLzW.
a) Przenalizować kod powyższego programu i sprawdzić jego działanie z użyciem funkcji
b) Zakomentować wywołanie funkcji oraz odkomentować instrukcje wyszukiwania liniowego w programie
głównym. Przeanalizować działanie programu.
c) Zmodyfikować program, tak aby wyświetlał elementy tablicy (wiersz lub kolumnie) oraz oznaczył
wartość klucza za pomocą gwizdki „*”.
d) Zmodyfikować program, tak aby zwracał wszystkie pozycje klucza z pomocą tablicy logicznej.
1
Zliczanie wg kryterium
Algorytm zliczania (ang. counting) bazuje na algorytmie wyszukiwania. Tworzymy licznik elementów,
który zerowej wartości początkowej. Następnie przeglądamy kolejne elementy zbioru w poszukiwaniu
tych, które spełniają zadane kryterium (tj.. klucz). Gdy znajdziemy odpowiedni element, zwiększamy
stan licznika i wyszukiwanie kontynuujemy od następnego elementu. Wynikiem jest zawartość licznika,
czyli liczba elementów w zbiorze spełniających podane kryterium.
Algorytm występuje w dwóch wariantach – z wyszukiwaniem liniowym oraz z wyszukiwaniem liniowym
z wartownikiem. W tym drugim przypadku zawsze zliczamy o jeden element za dużo (zliczamy
wartownika, który jest tymczasowo wstawiony do zbioru ). Dlatego zwracamy zawartość licznika
pomniejszoną o 1.
Zadani 2. ZLzW
a) Zmodyfikować program z zadania 1 , tak aby zliczał ilość wystąpienia klucza w tablicy.
b) Zmodyfikować program, tak aby zwracał pierwsze wystąpienie (pierwszą pozycję) klucza w pierwszej
połowie tablicy.
c) Zmodyfikować program, tak aby zwracał pierwsze wystąpienie (pierwszą pozycję) klucza w drugiej
połowie tablicy
int main() {
int Z[N];
int i, maxZ, minZ, p=-1;
srand(time(NULL));
for(i = 0; i < N; i++)
Z[i] = rand() % 1000;
2
maxZ =
//minZ =
for(i = 1; i < N; i++) {
if(Z[i] > maxZ) maxZ = Z[i];
// if(Z[i] < minZ) minZ = Z[i];
}
for(i = 0; i < N; i++)
cout << Z[i] << endl;
//cout << " Min= " << minZ << endl;
cout << " Max= " << maxZ << endl;
// cout << "Szukany element jest na pozycji: " << p << endl << endl;
return 0;
}
3
Sprawozdanie