ОС1/Септембар 1 2025

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите СИ Wики тако што ћете га решити.

Одбрана пројекта 2025. године одржана је 08.10.2025.

Потребно је динамички алоцирати матрицу мат целих бројева (инт), димензија M*Н, где се M и Н учитавају са стандардног улаза и имају произвољан број цифара. Матрицу након алоцирања попунити псеудослучајним вердностима. За генерисање псеудослучајних вредности користити следећи сегмент кода:

static unsigned long int next = 1;

int custom_rand(void) {
    next = next * 1103515245 + 12345;
    return (unsigned int) (next / 65536) % 34768;
}

void custom_srand(unsigned int seed) {
    next = seed;
}

Потребно је направити хистограм Х[10] броја појављивања вредности унутар матрице по модулу 10 (мат[и][ј]%10) за све елементе. Прављење хистограма одратити креирањем M упоредних нити где свака нит рачуна локални хистограм за једну врсту, а након тога тај хистограм спаја с дељеним хистограмом у којем ће се налазизи финалне вредности за целу матрицу. Главна нит треба да ипсише коначни хистограм када све нити заврше обраду.

20 поена: Током извршавања нити, након сваких 10 ображених елемената позвати диспатцх

30 поена: Током извршавања нити, након сваких 10 ображених елемената успавати нит на 5 периода тајмера