Created
April 19, 2021 18:38
-
-
Save erseco/66b75160e409685300edb77ce0f06904 to your computer and use it in GitHub Desktop.
Ejercicio de las oposiciones informatica andalucía 2018
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
/* Función para sumar, acepta dos valores de entrada y devolverá el resultado de la operación */ | |
int sumar(int, int); | |
/* Función para restar, acepta dos valores de entrada y devolverá el resultado de la operación */ | |
int restar(int, int); | |
/* Función para multiplicar, acepta dos valores de entrada y devolverá el resultado de la operación */ | |
int multiplicar(int, int); | |
/* Función para dividir, acepta dos valores de entrada y devolverá el resultado de la operación */ | |
int dividir(int, int); | |
/* Función que pinta el mensaje de menú de opciones */ | |
void pintaMensaje(void); | |
/* Función que pide un número al usuario */ | |
int pideNumero(void); | |
/* Función de entrada */ | |
int main(void) { | |
/* Declaración de variables */ | |
int valor1, valor2, resultado, opcion; | |
/* Bucle de preguntas */ | |
do { | |
pintaMensaje(); | |
/* Leemos la opción seleccionada por el usuario */ | |
scanf("%d", &opcion); | |
if (opcion == 5) { | |
printf("Saliendo\n"); | |
} else { | |
/* Pedimos los numeros al usuario */ | |
valor1 = pideNumero(); | |
valor2 = pideNumero(); | |
switch(opcion){ | |
case 1: | |
resultado = sumar(valor1, valor2); | |
break; | |
case 2: | |
resultado = restar(valor1, valor2); | |
break; | |
case 3: | |
resultado = multiplicar(valor1, valor2); | |
break; | |
case 4: | |
resultado = dividir(valor1, valor2); | |
break; | |
default: | |
printf("Opcion no valida.\n"); | |
} | |
/* Mostramos el resultado */ | |
printf("Resultado: %d\n", resultado); | |
} | |
} while(opcion!=5); | |
/* Salida del programa */ | |
return 0; | |
} | |
int pideNumero(void){ | |
int numero; | |
printf("Introduzca un numero: \n"); | |
scanf("%d", &numero); | |
return numero; | |
} | |
void pintaMensaje(void){ | |
printf("Elige una opción\n"); | |
printf("\t1: Sumar\n"); | |
printf("\t2: Restar\n"); | |
printf("\t3: Multiplicar\n"); | |
printf("\t4: Dividr\n"); | |
printf("\t5: Salir\n"); | |
} | |
int sumar(int valor1, int valor2){ | |
return valor1 + valor2; | |
} | |
int restar(int valor1, int valor2){ | |
return valor1 - valor2; | |
} | |
int multiplicar(int valor1, int valor2){ | |
int resultado = 0; | |
/* Iteramos n veces incrementando el valor x, siendo n valor2 y x valor1 */ | |
for (int i=0; i < valor2; i++) | |
resultado += valor1; | |
return resultado; | |
} | |
int dividir(int valor1, int valor2){ | |
int i=0; | |
/* Vamos restando valor2 a valor1 hasta llegar a 0 y devolvemos el numero de restas */ | |
while(valor1>=0 ){ | |
valor1 = valor1 - valor2; | |
i++; | |
} | |
return i; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment