1. Ecuación cuadrada. Temas Operadores, estructura de control if-else

ELAI-EUITI-UPM Fundamentos de Informática 1. Ecuación cuadrada Temas Operadores, estructura de control if-else Enunciado Realizar un programa en C que resuelva una ecuación de segundo grado del tipo ax2+bx+c=0 siendo los parámetros a, b, y c introducidos por el usuario. Realizar la comprobación de que realmente la ecuación es cuadrada y gestionar adecuadamente soluciones dobles e imaginarias Salida Introduzca los coeficientes a,b y c de ax2+bx+c=0, separados por espacios 2 3 -4 Ecuacion 2.000000x2+3.000000x+-4.000000=0 Soluciones 3.403124 -9.403124 Press any key to continue O Introduzca los coeficientes a,b y c de ax2+bx+c=0, separados por espacios 2 3 4 Ecuacion 2.000000x2+3.000000x+4.000000=0 Raices complejas: -3.000000 +/- i 4.795832 Press any key to continue O Introduzca los coeficientes a,b y c de ax2+bx+c=0, separados por espacios 0 2 4 Ecuacion 0.000000x2+2.000000x+4.000000=0 Ecuacion lineal, raiz: -2.000000 Press any key to continue Etc. Ejercicios resueltos de C. Diego Rodríguez-Losada 1 ELAI-EUITI-UPM Fundamentos de Informática Solucion /* fichero:raices.c descripcion: raices de una ecuacion de segundo grado */ #include #include //para la funcion raiz cuadrada sqrt void main(void) { float a,b,c;//coeficientes float r1,r2;//raices, soluciones printf("Introduzca los coeficientes a,b y c\n"); pr

2 downloads 62 Views 93KB Size

Recommend Stories


Oscilador de onda cuadrada
Circuitos. Amplificador operacional. Generador de frecuencia. Resistencias. Diodo Zener. Capacitor. Amplitud y frecuencia. Periodo de onda

POTENCIAS Y RAÍZ CUADRADA
POTENCIAS Y RAÍZ CUADRADA 1.- Indica la base y el exponente de las siguientes potencias y calcula su valor: 4 a) 34 c) 33 e) 25 g)  10  b)  3

1. Prólogo Temas del Lazarillo de Tormes Temas principales Temas secundarios... 75
´Indice 1. Prologo ´ 3 2. La picaresca y las maqamas 2.1. Las maqamas: Las sesiones del Zaragoc´ı, (S.Z) . . . . . . . . . . . . 2.2. Ra´ıces de la

Prueba de control (4). Derecho de la Seguridad Social. Temas 1 a 11
Prueba de control (4). Derecho de la Seguridad Social. Temas 1 a 11. APELLIDOS: NOMBRE: 1.- Las prestaciones de muerte y supervivencia derivadas de

Story Transcript

ELAI-EUITI-UPM

Fundamentos de Informática

1. Ecuación cuadrada Temas Operadores, estructura de control if-else

Enunciado Realizar un programa en C que resuelva una ecuación de segundo grado del tipo ax2+bx+c=0 siendo los parámetros a, b, y c introducidos por el usuario. Realizar la comprobación de que realmente la ecuación es cuadrada y gestionar adecuadamente soluciones dobles e imaginarias

Salida Introduzca los coeficientes a,b y c de ax2+bx+c=0, separados por espacios 2 3 -4 Ecuacion 2.000000x2+3.000000x+-4.000000=0 Soluciones 3.403124 -9.403124 Press any key to continue

O Introduzca los coeficientes a,b y c de ax2+bx+c=0, separados por espacios 2 3 4 Ecuacion 2.000000x2+3.000000x+4.000000=0 Raices complejas: -3.000000 +/- i 4.795832 Press any key to continue

O Introduzca los coeficientes a,b y c de ax2+bx+c=0, separados por espacios 0 2 4 Ecuacion 0.000000x2+2.000000x+4.000000=0 Ecuacion lineal, raiz: -2.000000 Press any key to continue

Etc.

Ejercicios resueltos de C. Diego Rodríguez-Losada

1

ELAI-EUITI-UPM

Fundamentos de Informática

Solucion /* fichero:raices.c descripcion: raices de una ecuacion de segundo grado */ #include #include //para la funcion raiz cuadrada sqrt void main(void) { float a,b,c;//coeficientes float r1,r2;//raices, soluciones printf("Introduzca los coeficientes a,b y c\n"); printf("de ax2+bx+c=0, separados por espacios\n"); scanf("%f %f %f",&a,&b,&c); printf("Ecuacion %fx2+%fx+%f=0\n",a,b,c); if(a!=0.0f) //ecuacion cuadrada { float disc;//discriminante disc=b*b-4*a*c; if(disc>0)//dos soluciones reales { r1=(-b+(float)sqrt(disc))/2*a; r2=(-b-(float)sqrt(disc))/2*a; printf("Soluciones %f %f\n",r1,r2); } else if(disc==0)//raiz doble { r1=r2=-b/2*a; printf("Raiz doble: %f\n",r1); } else//soluciones complejas { r1=-b/2*a; r2=(float)sqrt(-disc)/2*a; printf("Raices complejas: %f +/- i %f\n",r1,r2); } } else //ecuacion no cuadrada { if(b!=0.0f) { r1=-c/b; printf("Ecuacion lineal, raiz: %f\n",r1); } else printf("Error parametros\n"); } }

Ejercicios resueltos de C. Diego Rodríguez-Losada

2

ELAI-EUITI-UPM

Fundamentos de Informática

2. Calculadora Temas Control de flujo de programa

Enunciado Se desea programar una aplicación (modo consola) que funcione como calculadora capaz de realizar las cuatro operaciones básicas sobre números reales: suma, resta, multiplicación y división. El usuario introduce por orden el primer operando, el signo correspondiente a la operación y el segundo operando en una sola línea, sin espacios. El programa se ejecuta indefinidamente hasta que se pulsa Ctrl.+C

Salida 12+13.5 25.500000 34.5/2 17.250000 27-0.56 26.440000 -3.2*-12 38.400001

Notas - Los operandos tendran precision normal - Se utilizara la sentencia switch

Ejercicios resueltos de C. Diego Rodríguez-Losada

3

ELAI-EUITI-UPM

Fundamentos de Informática

Solución /* Fichero: */

calculadora.c

#include void main(void) { float a,b; //los dos operandos unsigned char operador; //la operacion float resultado; while(1) { scanf("%f%c%f",&a,&operador,&b); switch(operador) { case '+': resultado=a+b; break; case '-': resultado=a-b; break; case '*': resultado=a*b; break; case '/': resultado=a/b; break; default: printf("Operador no conocido\n"); break; } printf("%f\n",resultado); } }

Ejercicios resueltos de C. Diego Rodríguez-Losada

4

ELAI-EUITI-UPM

Fundamentos de Informática

3. Adivinar un número Temas Control de flujo de programa

Enunciado Se desea programar un juego en el que el ordenador piensa un número entero del 0 al 99, y el usuario intenta adivinarlo. El ordenador informa al jugador si su estimación es menor, mayor o si ha acertado. Cuando acierta, le informa del número de intentos que le ha costado adivinar el número.

Notas -

El programa debe resultar robusto frente a entradas de datos incorrectas. Si el usuario no introduce un numero, el programa dara un aviso. Utilizar srand(…) para inicializar la semilla aleatoria y rand() para generar los numeros aleatorios. La semilla de generacion de numeros aleatorios se inicializa solo una vez, al principio del programa. Se le pasa como parametro el tiempo actual, para que cada vez que se juega sea una semilla diferente.

#include //para srand() y rand() #include //para time() main() { ……… srand(time(NULL));//Inicializar semilla aleatoria numero=rand()%100; //generar numero aleatorio ……… }

Salida Ya he pensado Adivine. Diga Se ha pasado Adivine. Diga Se ha pasado Adivine. Diga Se ha quedado Adivine. Diga Se ha quedado Adivine. Diga Se ha quedado Adivine. Diga Se ha quedado Adivine. Diga Lo adivino en Press any key

un numero del 0 al 99 un numero: 50 un numero: 25 un numero: 12 corto un numero: 20 corto un numero: 22 corto un numero: 23 corto un numero: 24 7 intentos! to continue

Ejercicios resueltos de C. Diego Rodríguez-Losada

5

ELAI-EUITI-UPM

Fundamentos de Informática

Solucion /* Fichero: */

adivinar.c

#include #include //para srand() y rand() #include //para time() void main(void) { int numero,n; int contador_intentos=0; srand(time(NULL));//Inicializar semilla aleatoria numero=rand()%100; //generar numero aleatorio printf("Ya he pensado un numero del 0 al 99\n"); do { printf("Adivine.Diga un numero: "); scanf("%d",&n); contador_intentos++; if(nnumero) { printf("Se ha pasado\n"); } } while(numero!=n); printf("Lo adivino en %d intentos!\n",contador_intentos); }

Ejercicios resueltos de C. Diego Rodríguez-Losada

6

ELAI-EUITI-UPM

Fundamentos de Informática

4. Pensar un número Temas Sentencias de control

Enunciado Se desea programar un juego en el que el usuario piensa un numero entero del 0 al 99, y el ordenador intenta adivinarlo. El jugador informa al ordenador si su estimación es menor, mayor o si ha acertado, mediante los signos e = respectivamente. Cuando el ordenador acierta, le informa del numero de intentos que le ha costado adivinar el numero. El ordenador debe ser capaz de detectar cuando el jugador hace trampas, terminando el programa.

Notas -

El programa debe adivinar el numero con el menor numero de intentos posible, es decir, empleando la estrategia de dividir por la mitad el intervalo posible

Salida Piense un numero del 0 al 99 Yo digo el... 49 Escriba < si es menor, = si he < Me he pasado Yo digo el... 24 Escriba < si es menor, = si he > Me he quedado corto Yo digo el... 36 Escriba < si es menor, = si he < Me he pasado Yo digo el... 30 Escriba < si es menor, = si he = Lo adivine en 4 intentos! Press any key to continue

acertado y > si es mayor

acertado y > si es mayor

acertado y > si es mayor

acertado y > si es mayor

Ejercicios resueltos de C. Diego Rodríguez-Losada

7

ELAI-EUITI-UPM

Fundamentos de Informática

Solucion //fichero: pensar_numero.c #include void main(void) { int numero; //el numero que dice la maquina int lim_sup=99; int lim_inf=0; int intentos=0; char signo; printf("Piense un numero del 0 al 99\n"); while(1) { numero=(lim_sup+lim_inf)/2; //division entera printf("Yo digo el... %d\n",numero); intentos++; //entrada del jugador signo=0; printf("< si menor, = si correcto y > si mayor\n"); fflush(stdin); scanf("%c",&signo); //evaluacion de la entrada del jugador if(signo=='=') { printf("Lo adivine en %d intentos!\n",intentos); break; } if(lim_sup

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.