int main() { char prop[LMAX]; char *vars; char *resp; bool *vals; printf("Este programa construye la tabla de verdad de una exprecion logica.\n"); printf("Los operadores logicos validos son:\n\n"); printf("\"!\"\tNEGACION\n"); printf("\"&\"\tCONJUNCION\n"); printf("\"|\"\tDISYUNCION\n"); printf("\":\"\tIMPLICACION\n"); printf("\"=\"\tBICONDICIONAL\n\n"); printf("Puede usar expreciones anidadas con parentesis.\n\n"); printf("EXPRECION> "); int n = leer_entrada(prop); resp = new char[n]; vars = new char[n]; vals = new bool[n]; for(int i=0; i<n; i++) { resp[i] = ' '; vars[i] = '\0'; vals[i] = false; } resp[n-1] = '\0'; if(validar_sintaxis(prop, 0, n)) { int nvars = buscar_variables(prop, vars); int reps = (int)pow(2, nvars); printf("\n"); for(int i=0; i<nvars; i++) printf("%c ", vars[i]); printf("| "); for(int i=0; i<n; i++) printf("%c ", prop[i]); printf("\n\n"); for(int i=0; i<reps; i++) { for(int j=0; j<nvars; j++) { if(i%(int)pow(2, nvars-j-1) == 0) { vals[j] = !vals[j]; } if(vals[j]) printf("V "); else printf("F "); } printf("| "); evaluar_proposicion(prop, vals, vars, resp, 0, n); for(int j=0; j<n; j++) printf("%c ", resp[j]); printf("\n"); } } else { printf("ERROR LA SINTAXIS DE LA EXPRECION ES INCORRECTA.\n"); } system("pause>nul"); return 0; }
/* Crear maquina de votacion con respectivos TDAs Procesar comandos de entrada. */ int main() { maquina_votacion_t* maquina = malloc(sizeof(maquina_votacion_t)); if(!maquina) return 1; cola_t* cola = cola_crear(); if(!cola) { free(maquina); return 2; } maquina->estado = CERRADA; maquina->cola = cola; maquina->ciclo = NULL; maquina->listas = NULL; maquina->padron = NULL; maquina->votando_cargo = 0; COMANDOS_FUNCIONES[CMD_ABRIR] = comando_abrir; COMANDOS_FUNCIONES[CMD_INGRESAR] = comando_ingresar; COMANDOS_FUNCIONES[CMD_CERRAR] = comando_cerrar; COMANDOS_FUNCIONES[CMD_VOTAR] = comando_votar; leer_entrada(maquina); cerrar_maquina(maquina); free(maquina); return 0; }