Usando contadores binários módulo 16 com entradas paralelas, implemente:

a. Um contador 4-até-11;

b. Um contador módulo 24;


Resolução:

#include <stdio.h>

// Função para simular um contador binário módulo 16 com entradas paralelas
int contadorMod16(int *entrada_paralela, int reset) {
    static int contador = 0;

    // Verifica se a entrada de reset é acionada
    if (reset) {
        contador = 0;
    } else {
        // Incrementa o contador se a entrada de reset não for acionada
        contador++;
        contador %= 16;
    }

    // Atualiza o contador com base nas entradas paralelas
    if (entrada_paralela) {
        contador = *entrada_paralela;
    }

    return contador;
}

int main() {
    // Contador 4-até-11
    printf("Contador 4-até-11:\n");
    int contador_4_até_11;
    for (int i = 0; i <= 11; i++) {
        contador_4_até_11 = contadorMod16(NULL, 0); // Atualiza o contador sem entradas paralelas
        printf("%d\n", contador_4_até_11);
    }
    
    // Contador módulo 24
    printf("\nContador módulo 24:\n");
    int contador_mod_24;
    for (int i = 0; i < 24; i++) {
        contador_mod_24 = contadorMod16(NULL, 0); // Atualiza o contador sem entradas paralelas
        printf("%d\n", contador_mod_24);
    }

    return 0;
}