Witam! Sprawa nie tak pilna, lecz nie mogę sobie dać z tym spokoju..
Studiuję wymienioną w temacie książkę, w celu nauki języka C++ (od zera).
Idzie mi nie najgorzej, powoli do przodu, staram się uchwycić wszystko z książki kosztem czasu, by się nie pogubić i dokładnie zrozumieć język programowania.
Do meritum, natrafiłem na poniższe zadanie jakiś czas temu i mimo kodów źródłowych zamieszczonych w internecie nie mogłem sobie poradzić z ich zrozumieniem, a co dopiero z napisaniem swojego... Prosił bym, jeśli ktoś był by tak pomocny, o wytłumaczenie poniższego zagadnienia oraz kodu do niego.
Będę naprawdę wdzięczny za tą przysługę.
Prosił bym jeszcze o używanie prostszego języka, gdyż mimo tego że wiem o komputerach zapewne dużo więcej niż przeciętny człowiek, to niestety wiele zagadnień nie jest mi jeszcze znanych.
XXIX. W układzie pomiarowym eksperymentu fizycznego dane przychodzą z 4 niezależnych kanałów o umownych nazwach FRS, GER, HEC, DGF. W trakcie pomiaru robiona jest statystyka równoczesności wystąpienia(czyli koincydencji) tych sygnałów. Polega to na tym, że jest tablica jednowymiarowa, w której kolejne elementy odpowiadając odpowiednim kombinacjom tych sygnałów. To znaczy na przykład element 3 odpowiada równoczesności sygnałów kanałach FRS i GER. Element 15 odpowiada równoczesności FRS, GER, HEC, DGF.
Oto odpowiednie kombinacje zebrane ww tabelkę
Zasada jest prosta – każdy sygnał ma jakby "swój" bit w numerze elementu. Obecność tego sygnału ustawia ten bit na 1, brak sygnału ustawia na 0. Po sprawdzeniu obecności lub nieobecności wszystkich 4 sygnałów powstaje słowo, będące numerem elementu w tablicy statystyki.
Skoro taka kombinacja właśnie wystąpiła to tenże element tablicy poddawany jest inkrementacji. (Czyli będący tam licznik takich sytuacji podwyższany jest o jeden).
To tyle tytułem wstępu.
Załóżmy, że pomiar trwa już jakiś czas i w tablicy są już jakieś liczby określające ile razy poszczególne kombinacje wystąpiły w ciągu tego czasu.
Teraz właściwe zadanie: napisz, która tę statystykę wyświetli na ekranie w taki mniej więcej sposób(wartości liczbowe są przykładowe).
Poszczegolne kombinacje wystąpiły nastepujaca ilosc razy
Kombinacja: FRS -> 346 razy
Kombinacja: GER -> 652 razy
Kombinacja: FRS + GER -> 737 razy
Kombinacja: HEC -> 277 razy
Kombinacja: FRS + HEC -> 444 razy
… itd. aż do kombinacji FRS + GER + HEC + DGF …
Jak widzisz jest to wypisanie kolejnych elementów tablicy, z tym że temu wypisowi towarzyszy opis kombinacji sygnałów. Gdyby jakaś kombinacja nie wystąpiła ani raz,(wartość = 0) wówczas oczywiście takiej linii statystyki nie wypisujemy.
Uwaga: Ten symboliczny opis kombinacji(no. "FRS + HEC + DGF") musi być konstruowany na bieżąco na podstawie analizy numeru elementu tablicy, który właśnie wypisujemy.
Opis ten nie może być więc "zaszyty" na stałe w programie. (Wyobraź sobie, że mamy nie 4 sygnały, ale 10 – musiałbyś wtedy przygotować 1024 takich gotowych tekstów).
Zatem twoje zadanie polega na tym, byś wypisując np. dwunasty element tablicy, potrafił opisać go na ekranie podając nazwy odpowiednich sygnałów. Gdy napiszesz tę funkcję i będzie działała poprawnie – pojawia się jeszcze jedno życzenie eksperymentatora.
Chciałby on mianowicie, aby wypisywane na ekranie kombinacje pojawiały się nie tak, jak są umieszczane w tablicy(po kolei), ale począwszy od najbardziej skomplikowanych kombinacji do najprostszych. Czyli by najpierw została linijka ze statystyką kombinacji 4 sygnałów, następnie linijki z różnymi kombinacjami 3 sygnałów, potem z kombinacjami 2 sygnałów, a na końcu sygnałów pojedynczych.
Czyli na przykład tak:
Poszczegolne kombinacje wystąpiły nastepujaca ilosc razy
Kombinacja: FRS + GER + HEC + DGF -> 346 razy
Kombinacja: FRS + GER + HEC - > 652 razy
Kombinacja: FRS + GER + DGF -> 737 razy
Kombinacja: FRS + HEC + DGF -> 277 razy
Kombinacja: GER + HEC + DGF -> 444 razy
… itd. aż do kombinacji FRS(pojedynczej)…
Studiuję wymienioną w temacie książkę, w celu nauki języka C++ (od zera).
Idzie mi nie najgorzej, powoli do przodu, staram się uchwycić wszystko z książki kosztem czasu, by się nie pogubić i dokładnie zrozumieć język programowania.
Do meritum, natrafiłem na poniższe zadanie jakiś czas temu i mimo kodów źródłowych zamieszczonych w internecie nie mogłem sobie poradzić z ich zrozumieniem, a co dopiero z napisaniem swojego... Prosił bym, jeśli ktoś był by tak pomocny, o wytłumaczenie poniższego zagadnienia oraz kodu do niego.
Będę naprawdę wdzięczny za tą przysługę.
Prosił bym jeszcze o używanie prostszego języka, gdyż mimo tego że wiem o komputerach zapewne dużo więcej niż przeciętny człowiek, to niestety wiele zagadnień nie jest mi jeszcze znanych.
XXIX. W układzie pomiarowym eksperymentu fizycznego dane przychodzą z 4 niezależnych kanałów o umownych nazwach FRS, GER, HEC, DGF. W trakcie pomiaru robiona jest statystyka równoczesności wystąpienia(czyli koincydencji) tych sygnałów. Polega to na tym, że jest tablica jednowymiarowa, w której kolejne elementy odpowiadając odpowiednim kombinacjom tych sygnałów. To znaczy na przykład element 3 odpowiada równoczesności sygnałów kanałach FRS i GER. Element 15 odpowiada równoczesności FRS, GER, HEC, DGF.
Oto odpowiednie kombinacje zebrane ww tabelkę
Zasada jest prosta – każdy sygnał ma jakby "swój" bit w numerze elementu. Obecność tego sygnału ustawia ten bit na 1, brak sygnału ustawia na 0. Po sprawdzeniu obecności lub nieobecności wszystkich 4 sygnałów powstaje słowo, będące numerem elementu w tablicy statystyki.
Skoro taka kombinacja właśnie wystąpiła to tenże element tablicy poddawany jest inkrementacji. (Czyli będący tam licznik takich sytuacji podwyższany jest o jeden).
To tyle tytułem wstępu.
Załóżmy, że pomiar trwa już jakiś czas i w tablicy są już jakieś liczby określające ile razy poszczególne kombinacje wystąpiły w ciągu tego czasu.
Teraz właściwe zadanie: napisz, która tę statystykę wyświetli na ekranie w taki mniej więcej sposób(wartości liczbowe są przykładowe).
Poszczegolne kombinacje wystąpiły nastepujaca ilosc razy
Kombinacja: FRS -> 346 razy
Kombinacja: GER -> 652 razy
Kombinacja: FRS + GER -> 737 razy
Kombinacja: HEC -> 277 razy
Kombinacja: FRS + HEC -> 444 razy
… itd. aż do kombinacji FRS + GER + HEC + DGF …
Jak widzisz jest to wypisanie kolejnych elementów tablicy, z tym że temu wypisowi towarzyszy opis kombinacji sygnałów. Gdyby jakaś kombinacja nie wystąpiła ani raz,(wartość = 0) wówczas oczywiście takiej linii statystyki nie wypisujemy.
Uwaga: Ten symboliczny opis kombinacji(no. "FRS + HEC + DGF") musi być konstruowany na bieżąco na podstawie analizy numeru elementu tablicy, który właśnie wypisujemy.
Opis ten nie może być więc "zaszyty" na stałe w programie. (Wyobraź sobie, że mamy nie 4 sygnały, ale 10 – musiałbyś wtedy przygotować 1024 takich gotowych tekstów).
Zatem twoje zadanie polega na tym, byś wypisując np. dwunasty element tablicy, potrafił opisać go na ekranie podając nazwy odpowiednich sygnałów. Gdy napiszesz tę funkcję i będzie działała poprawnie – pojawia się jeszcze jedno życzenie eksperymentatora.
Chciałby on mianowicie, aby wypisywane na ekranie kombinacje pojawiały się nie tak, jak są umieszczane w tablicy(po kolei), ale począwszy od najbardziej skomplikowanych kombinacji do najprostszych. Czyli by najpierw została linijka ze statystyką kombinacji 4 sygnałów, następnie linijki z różnymi kombinacjami 3 sygnałów, potem z kombinacjami 2 sygnałów, a na końcu sygnałów pojedynczych.
Czyli na przykład tak:
Poszczegolne kombinacje wystąpiły nastepujaca ilosc razy
Kombinacja: FRS + GER + HEC + DGF -> 346 razy
Kombinacja: FRS + GER + HEC - > 652 razy
Kombinacja: FRS + GER + DGF -> 737 razy
Kombinacja: FRS + HEC + DGF -> 277 razy
Kombinacja: GER + HEC + DGF -> 444 razy
… itd. aż do kombinacji FRS(pojedynczej)…