int validar_menu() { int eleccion; char a=0; do { if(a) printf("ERROR, el numero ingresado no corresponde a una de las acciones \nIntente nuevamente:\n\n\n"); mostrar_menu(); fflush(stdin); scanf("%d", &eleccion); system("cls"); a=1; } while(eleccion>size_menu || eleccion<1); return eleccion; }
/* *muestra un menu en ppantalla y recibe un valor correspondiente a una de las acciones del menu. *valida que el numero ingresado sea uno de los valores correspondientes al menu *devuelve un entero que es la opcion del menu ya validada */ int mostrar_y_validar_menu() { int a=0; int opcion; do { if(a) printf("ERROR,el numero ingresado no pertenece a una opcion valida para el menu\nIntente nuevamente\n\n"); mostrar_menu(); fflush(stdin); scanf("%d", &opcion); system("cls"); a=1; } while(opcion<1||opcion>4); return opcion; }
int main() { Imagem* img; int opcao = 1; int i=0,j=0; int limiar=-1; char nome[255]; int grau=0; while (opcao != 0) { opcao = mostrar_menu(); if (opcao == 1) { printf("Nome do arquivo: "); scanf("%s", nome); img = ler_imagem(nome); } else if (opcao == 2) { img = blur(img); } else if (opcao == 3) { img = sharpen(img); } else if(opcao == 4){ img = borda(img); }else if(opcao == 5){ printf("Digite o limiar: "); scanf("%i", &limiar); img = binarizacao_imagem(img, limiar); }else if(opcao == 6){ printf("Grau de rotacao (90, 180 ou 270º): "); scanf("%i", &grau); if(grau == 90){ img = rotacionar90(img); }else if(grau == 180){ img = rotacionar180(img); }else if(grau == 270){ img = rotacionar270(img); }else{ printf("O grau informado nao e permitido."); } }else if(opcao == 7){ img = zoom2x(img); }else if(opcao == 8){ img = reduzir2x(img); }else if(opcao == 9){ img = gaussianblur(img); }else if (opcao == 10){ printf("Nome do arquivo: "); scanf("%s", nome); salvar_imagem(img, nome); }else{ printf("Opção inválida."); } } return 0; }
int main() { float valor; /* el valor de la pantalla */ int opcion; /* opcion elegida */ valor = 0; /* valor inicial al enchufar la calculadora */ do { opcion = mostrar_menu(valor); switch (opcion) { case SUMAR: fprintf(stdout,"Valor a sumar: "); fscanf(stdin,"%f",&operando); valor = valor + operando; break; /* importante no olvidar el break!!! */ case RESTAR: fprintf(stdout,"Valor a restar: "); fscanf(stdin,"%f",&operando); valor = valor - operando; break; /* importante no olvidar el break!!! */ case MULTIPLICAR: fprintf(stdout,"Valor a multiplicar: "); fscanf(stdin,"%f",&operando); valor = valor * operando; break; /* importante no olvidar el break!!! */ case DIVIDIR: fprintf(stdout,"Valor con el que dividir: "); fscanf(stdin,"%f",&operando); if (operando == 0) { fprintf(stdout,"ERROR! no se puede dividir entre 0\nPulse una tecla\n"); getch(); } else { valor = valor / operando; } break; /* importante no olvidar el break!!! */ case SALIR: /* en este caso no hacemos nada, pero ponemos la opcion para que no se vaya al default break; /* importante no olvidar el break!!! */ default: fprintf(stdout,"ERROR! opcion incorrecta\nPulse una tecla\n"); getch(); } /* cierra el switch */ } while (opcion != SALIR); return 0; }
int main(int argc, char **argv) { FILE *pf = NULL; int opcion; opcion = mostrar_menu(); if(opcion > 3 || opcion < 0) { fprintf(stderr, "Error: el número no está asociado a ningún programa.\n"); } else { printf("\nSe ha arrancado %s, guarde el archivo como file.txt \n\n", programa[opcion]); system(programa[opcion]); } fclose(pf); return EXIT_SUCCESS; }
int main(void) { int array[SIZE]; int posicion; int elemento; int opcion; // La cantidad de elementos que voy a almacenar. // Es el tamaño menos el "Búfer". int cantidad_elementos = 0; do { opcion = mostrar_menu(); switch (opcion) { case CARGAR_VALORES: // Decido inicializar el array con pares para hacer el testeo // más fácil. cantidad_elementos = CANTIDAD_ELEMENTOS_AUTOMATICA; inicializar_con_pares(array, cantidad_elementos); break; case INSERTAR: printf("Ingrese la posición para el elemento\n?: "); scanf("%d", &posicion); printf("Ingrese el elemento que tiene que insertar\n?: "); scanf("%d", &elemento); insertar(array, SIZE, &cantidad_elementos, posicion, elemento); break; case VER_VECTOR: printf("Cantidad de elementos en el vector: %d\n", cantidad_elementos); imprimir(array, cantidad_elementos); break; case LEER_DEL_TECLADO: leer_del_teclado(array, &cantidad_elementos, SIZE); break; case SALIR: break; default: printf("La opción no es válida"); break; } } while (opcion != SALIR); }
int main() { int opcion; primero = (struct Agenda *) NULL; ultimo = (struct Agenda *) NULL; do { mostrar_menu(); scanf("%d", &opcion); switch (opcion) { case 1: anadir_elemento(); break; case 2: borrar_elemento(); break; case 3: mostrar_lista(); break; case 4: exit(0); break; default: printf("Opcion no valida\n"); break; } } while (opcion!='4'); return 0; }
int mostrar_y_validar_menu() { long int opcion; char a=0; do { if(a) printf("ERROR, la opcion ingresada no corresponde a una del menu\nIntente nuevamente"); mostrar_menu(); fflush(stdin); scanf("%d", &opcion); system("cls"); a=1; } while(opcion>6||opcion<1); return opcion; }
int main(int argc, char **argv) { int opcion, salir = 0; char fich[100], namein[100], comando[100], resp[5]; FILE *f; printf("Introduzca el nombre del fichero fuente Pascual con el que desea trabajar (sin extension .pc): "); scanf("%s", &fich); strcpy (namein, fich); strcat (namein, ".pc"); f = fopen (namein, "r"); if (f == NULL) { fprintf (stderr, "Fichero %s no existe\n", namein); exit (-1); } while ( !salir ) { opcion = mostrar_menu(); switch (opcion) { case 0: salir = 1; break; case 1: printf("Desea compilar el programa paso a paso (S/N)?: "); scanf("%s", resp); if (strcmp(resp, "S") == 0) sprintf(comando, "pascual1 %s -w", fich); else if (strcmp(resp, "N") == 0) sprintf(comando, "pascual1 %s", fich); else { printf("Error en la respuesta, no se mostraran warnings\n"); sprintf(comando, "pascual1 %s", fich); } printf("Compilando el fichero...\n"); system(comando); break; case 2: printf("Generando codigo intermedio...\n"); sprintf(comando, "pascual %s", fich); system(comando); break; case 3: printf("Ensamblando codigo intermedio...\n"); sprintf(comando, "ensamblador %s", fich); system(comando); break; case 4: printf("Desea interpretar el programa paso a paso (S/N)?: "); scanf("%s", resp); if (strcmp(resp, "S") == 0) sprintf(comando, "maquinap %s -t", fich); else if (strcmp(resp, "N") == 0) sprintf(comando, "maquinap %s", fich); else printf("Error en la respuesta, se interpretara el programa de una vez\n"); printf("Interpretando el fichero...\n"); system(comando); break; case 5: fclose(f); printf("Introduzca el nombre del fichero fuente Pascual con el que desea trabajar (sin extension .pc): "); scanf("%s", &fich); strcpy (namein, fich); strcat (namein, ".pc"); f = fopen (namein, "r"); break; } } fclose(f); }
int main(int argc, char **argv) { int opcion, resultado = -1, salir = 0; char fich[100], namein[100], comando[100], resp[5]; FILE *f; if (argc == 1) /* Modo menu interactivo modo texto */ { printf("Introduzca el nombre del fichero fuente Pascual con el que desea trabajar (sin extension .pc): "); scanf("%s", &fich); strcpy (namein, fich); strcat (namein, ".pc"); f = fopen (namein, "r"); if (f == NULL) { fprintf (stderr, "Fichero %s no existe\n", namein); exit (-1); } while ( !salir ) { opcion = mostrar_menu(); switch (opcion) { case 0: salir = 1; break; case 1: printf("Desea compilar el programa paso a paso (S/N)?: "); scanf("%s", resp); if (strcmp(resp, "S") == 0) sprintf(comando, "pascual1 %s -w", fich); else if (strcmp(resp, "N") == 0) sprintf(comando, "pascual1 %s", fich); else { printf("Error en la respuesta, no se mostraran warnings\n"); sprintf(comando, "pascual1 %s", fich); } printf("Compilando el fichero...\n"); system(comando); break; case 2: printf("Generando codigo intermedio...\n"); sprintf(comando, "pascual %s", fich); system(comando); break; case 3: printf("Ensamblando codigo intermedio...\n"); sprintf(comando, "ensamblador %s", fich); system(comando); break; case 4: printf("Desea interpretar el programa paso a paso (S/N)?: "); scanf("%s", resp); if (strcmp(resp, "S") == 0) sprintf(comando, "maquinap %s -t", fich); else if (strcmp(resp, "N") == 0) sprintf(comando, "maquinap %s", fich); else printf("Error en la respuesta, se interpretara el programa de una vez\n"); printf("Interpretando el fichero...\n"); system(comando); break; case 5: fclose(f); printf("Introduzca el nombre del fichero fuente Pascual con el que desea trabajar (sin extension .pc): "); scanf("%s", &fich); strcpy (namein, fich); strcat (namein, ".pc"); f = fopen (namein, "r"); break; case 6: sprintf(comando, "pascual %s", fich); resultado = system(comando); if (resultado == 0) { printf("\n"); sprintf(comando, "ensamblador %s", fich); system(comando); printf("\n"); if (resultado == 0) { printf("Interpretando el programa...\n"); sprintf(comando, "maquinap %s", fich); system(comando); } else fprintf(stderr, "Ha habido errores al ensamblar el codigo intermedio, abortando el proceso\n"); } else { fprintf(stderr, "Ha habido errores al compilar el fuente, abortando el proceso\n"); } break; } } fclose(f); } else if (argc == 2) { strcpy (namein, argv[1]); strcpy (fich, namein); strcat (fich, ".pc"); f = fopen (fich, "r"); if (f == NULL) { fprintf (stderr, "El fichero %s no existe\n", fich); exit (-1); } sprintf(comando, "pascual %s", namein); system(comando); if (resultado == 0) { printf("\n"); sprintf(comando, "ensamblador %s", namein); system(comando); printf("\n"); if (resultado == 0) { printf("Interpretando el programa...\n"); sprintf(comando, "maquinap %s", namein); system(comando); } else fprintf(stderr, "Ha habido errores al ensamblar el codigo intermedio, abortando el proceso\n"); } else { fprintf(stderr, "Ha habido errores al compilar el fuente, abortando el proceso\n"); } fclose(f); } else { fprintf(stderr, "Numero de argumentos incorrecto\n"); fprintf(stderr, "Uso 1: app fuente (sin extension .pc)\n"); fprintf(stderr, "Uso 2: app\n"); exit (-1); } }