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

Извор: SI Wiki
< ОС1
Датум измене: 19. март 2026. у 02:08; аутор: Wikitten.66 (разговор | доприноси) (next = n)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите СИ 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 периода тајмера