Son estructuras que le dan el control de flujo de algoritmo o programa a otra parte o rama del programa mediante expresiones simples. Esta estructura está clasificada en DECISIÓN SIMPLE, DECISIÓN DOBLE Y DECISIÓN MÚLTIPLE.
DECISIÓN SIMPLE | ||
Diagrama de flujo | Pseudocódigo | Lenguaje C |
Si la condición es TRUE entonces operación 1 Fin Si | if (confición) { operación 1; } | |
DECISIÓN DOBLE | ||
Diagrama de flujo | Pseudocódigo | Lenguaje C |
Si la condición es TRUE entonces Operación 1 en caso contrario Operación 2 Fin Si | if (condición){ operación 1; } else{ Operación 2; } | |
DECISIÓN MULTIPLE (switch case) | ||
Diagrama de flujo | Pseudocódigo | Lenguaje C |
Si la expresión es igual a Valor 1 entonces Operación 1 Si la expresión es igual a Valor 2 entonces Operación 2 Si la expresión es igual a Valor 3 entonces Operación 3 . . . caso contario Operación N | switch (condición) {case 1: operación 1; break; case 2: operación 2; break; case 3: operación 3; break; default: operación; break; } |
PROBLEMA 3.
Realice un algoritmo que muestre al usuario el siguiente menú de opciones de figuras a elegir para obtener su área y perimetro
MENÚ:
1.CUADRADO
2.CIRCULO
3.RECTÁNGULO
4.TRIÁNGULO EQUILÁTERO
1. IMPRIMIR MENÚ
printf ("MENU\n 1.Cuadrado\n 2.Circulo\n 3.Rectangulo\n 4.Triangulo rectangulo\n Opción:");
2. LEER OPCIÓN
scanf("%d", &opc);
3. SI OPCIÓN IGUAL...
case 1: printf ("Ingrese valor del lado:\n"); scanf ("%f",&lado); area=lado*lado; per=4*lado; break; case 2: printf ("Ingrese valor del radio:\n"); scanf ("%f",&radio); area=PI*radio*radio; per=PI*2*radio; break; case 3: printf ("Ingrese valor del lado:\n"); scanf ("%f",&lado); printf ("Ingrese valor de altura:\n"); scanf ("%f",&altura); area=lado*altura; per=2*(lado + altura); break; case 4: printf ("Ingrese valor del lado:\n"); scanf ("%f",&lado); R=sqrt(3)/4; area=lado*lado*R; per=3*lado; break;
4. FIN SI
default: printf ("Solo hay cuatro opciones");
5. IMPRIMIR (AREA, PERIMETRO)
printf ("EL valor de area es %f y del perimetro es %f de la figura que escogió", area, per);
6. FIN
PROBLEMA 3.
Obtener la ecuación de una línea recta a partir de 2 puntos de la forma (x,y) dados por el usuario. Mostrar al usuario la ecuación obtenida de la forma y=mx+b. Luego, preguntarle al usuario si desea obtener una tabla de puntos de la ecuación. Si dice que si, preguntarle el rango de x: X inicial y el X final y también preguntarle el número de puntos N en total que hay en el rango de X.
Con esta información obtener el conjunto de N puntos (x, y) donde y se calcula de la ecuación obtenida.
1. INGRESAR VALORES
printf ("Este programa resuelve ecuaciones cuadraticas de la fomra ax^2+bx+c=0"); printf ("Favor de ingresar el valor para a"); scanf("%f",a);
2. SI ECUACIÓN ES LINEAL ....
if (a==0) { prinft ("Esta ecuación es lineal, ¿desea resolverla? (presione 1 para sí)"); scanf ("%d",h); if (h==1) { printf ("Favor de ingresar el valor para b"); scanf("%f",b); printf ("Favor de ingresar el valor para c"); scanf("%f",c); x=-(c/b); printf ("La solucaion para la ecuación %fx + % = 0 es %f", a, b, x); } else { printf ("Hasta la vista"); } }
4. DE LO CONTRARIO...
else { printf ("Favor de ingresar el valor para b"); scanf("%f",b); printf ("Favor de ingresar el valor para c"); scanf("%f",c); P=pow((b),2); D=sqrt(P-(4*a*c));S if (D>0) { F = b/(2*a); E = D/(2*a); x1 = E-F; x2 = -(E + F); printf ("La solucaion para la ecuación %fx^2 + %fx + %f = 0 es %f y %f", a, b, c, x1, x2); } else { F = b/(2*a); E = D/(2*a); printf ("La solucaion compleja para la ecuación %fx^2 + %fx + %f = 0 es %f-%fi y %f+%f", a, b, c, F, E, F, E); } }
5. FIN