Story Transcript
ESTRUCTURAS CONDICIONALES SIMPLES: Pseudocódigo Si (Condición) entonces //Acciones Fin_si
ANSI C if (Condición) { //Acciones }
ESTRUCTURAS CONDICIONALES DOBLES: Pseudocódigo Si (Condición) entonces //Acciones Si no //Acciones Fin_si
ANSI C if (Condición) {
//Acciones
} else {
//Acciones
}
ESTRUCTURAS CONDICIONALES ANIDADAS: Pseudocódigo Si (Condición1) entonces //Acciones Si (Condición2) entonces //Acciones Si no //Acciones Fin_si //Acciones Si no //Acciones Si (Condición3)entonces //Acciones Si no //Acciones Fin_si //Acciones Fin_si
ANSI C if (Condición1) { //Acciones if (Condición2) { //Acciones } else { //Acciones } //Acciones } else { //Acciones if (Condición3) { //Acciones } else { //Acciones } //Acciones }
ESTRUCTURAS CONDICIONALES MÚLTIPLES: Pseudocódigo En_Caso_de (Expresión) Hacer Opción1: //Acción Opción2: Inicio //Acciones Fin .... OpciónN: //Acción En otro caso: Fin_Caso
ANSI C switch (Expresión) { case Opción1: //Acción break; case Opción2: { //Acciones break; } ... case OpciónN: //Acción break; default: { //Acciones }
}; break; //Este tipo de sentencia permite romper la ejecución secuencial de un programa, en este caso termina la ejecución del switch. Si no se incluye, se siguen ejecutando las siguientes opciones hasta que una de ellas se cumpla o hasta que termine el switch.
EJEMPLOS: CÓDIGO: ENUNCIADO:
1
DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:
PROCESO:
NOMBRE: CONDICIONAL SIMPLE Sacar las raíces de una ecuación cuadrática. (AX2 +BX +C) ANALISIS DEL PROBLEMA Tres coeficientes Dos raíces cuadráticas A no puede valer 0 y el contenido dentro de la raíz no puede ser negativo. Inicio X = -B ± √ B2 – 4AC 1. Pedir los coeficientes. 2A 2. Si A es 0, la división queda indeterminada 3. si la raíz es negativa, dan resultados imaginarios. 4. si las condiciones 2 y 3 no se cumplen, entonces se hacen los respectivos cálculos de las raíces y se muestran los resultados. Fin
DISEÑO DEL PROBLEMA ALGORITMO: Programa_ RaícesCuadráticas Inicio Var: Real: A, B, C, x1, x2, Raíz Entero: BandA, BandB Escribir "Introduzca los coeficientes A, B y C Leer A,B,C BandA ß 0 BandB ß 0 Si A == 0 entonces Imprimir "No es una ecuación cuadrática" BandA ß 1 Fin-si Raíz ß B * B 4 * A * C Si Raíz < 0 entonces Imprimir "Las raíces no son reales positivas" BandB ß 2 Fin-si Si (BandA !=1) AND (BandB !=2) entonces X1 ß (-B + (Raíz (B * B 4 * A * C) ) ) / 2 * A X2 ß (-B - (Raíz (B * B 4 * A * C) ) ) / 2 * A Escribir "La primera raíz es: ", X1 Escribir "La segunda raíz es: ", X2 Fin-si Fin IMPLEMENTACIÓN DEL PROBLEMA DOCUMENTACIÓN: Al ejecutar el programa se le pide al usuario que ingrese los cuatro números, cada uno separado por un espacio; al terminar de ingresarlo se oprime Enter y a continuación el programa muestra los resultados del producto y la media de los cuatro números que el usuario ingreso. CODIGO FUENTE: #include #include #include int main() { float A, B, C, X1, X2, Raiz; int BandA=0, BandB=0; printf ("Introduzca los coeficientes A, B y C: "); scanf("%f %f %f", &A, &B, &C); if (A == 0) { printf ("\nNo es una ecuación cuadrática"); BandA = 1; }; Raiz = B * B - 4 * A * C; if (Raiz < 0) { printf ("\nLas raíces no son reales positivas"); BandB = 2; };
if ((BandA != 1) && (BandB != 2)) { X1 = (-B + (sqrt (B * B - 4 * A * C) ) ) / 2 * A; X2 = (-B - (sqrt (B * B - 4 * A * C) ) ) / 2 * A; printf ("\nLa primera raíz es: %f", X1); printf ("\nLa segunda raíz es: %f", X2); }; system("pause"); return EXIT_SUCCESS; }
CÓDIGO:
2
ENUNCIADO: DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:
PROCESO:
NOMBRE: CONDICIONAL ANIDADA Escriba un algoritmo para que determine y muestre el mayor de tres números reales cualesquiera. ANALISIS DEL PROBLEMA Tres números Mayor de tres números
Inicio 1. Pedir los tres números 2. comparar uno por uno y el mayor guardarlo aparte 3. hacer esta comparación con todos los otros números. 4. Mostrar el mayor. Fin DISEÑO DEL PROBLEMA
ALGORITMO: Programa_MayorTres Inicio Var: Real: ni, n2, n3, Mayor Mayor ß 0 Leer n1, n2, n3 Si (n1 > n2) entonces Mayor ß n1 Si no Si (n2 > n3) entonces Mayor ß n2 Si no Mayor ß n3 Fin_si Fin_si Escribir Mayor Fin IMPLEMENTACIÓN DEL PROBLEMA CODIGO FUENTE: #include #include int main() { float n1, n2, n3, Mayor; printf ("Introduzca los rtes números: "); scanf("%f %f %f", &n1, &n2, &n3); Mayor = 0;
if (n1 > n2) { Mayor = n1; } else { if (n2 > n3) { Mayor = n2; } else { Mayor = n3; } } printf ("\nEl mayor es: %f", Mayor); system("pause"); return EXIT_SUCCESS; }
CÓDIGO:
3
ENUNCIADO: DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: CONDICIONES O RESTRICCIONES: PROCESO:
NOMBRE: CONDICIONAL MÚLTIPLE Escribir el nombre del día de la semana si ingresan el número de la posición del día dentro de la semana (1, 2...7) ANALISIS DEL PROBLEMA Número del día Día correspondiente al número ingresado
Inicio 1. Pedir el numero del día 2. Comparar desde el 1 al 7 a que día corresponde y mostrar el día Fin DISEÑO DEL PROBLEMA
ALGORITMO: Programa_Dia Inicio Var: Entero: dia Leer dia Según_sea dia hacer 1: Escribir Lunes 2: Escribir Martes 3: Escribir Miercoles 4: Escribir Jueves 5: Escribir Viernes 6: Escribir Sabado 7: Escribir Domingo En_otro_caso: Escribir No existe Fin_Según Fin IMPLEMENTACIÓN DEL PROBLEMA CODIGO FUENTE: #include #include
int main() { int dia; printf ("Ingrese el nro del dia: "); scanf("%d", &dia);
switch (dia) { case 1: { printf ("\nLunes\n"); break; } case 2: { printf ("Martes\n"); break; } case 3: { printf ("Miercoles\n"); break; } case 4: { printf ("Jueves\n"); break; } case 5: { printf ("Viernes\n"); break; } case 6: { printf ("Sabado\n"); break; } case 7: { printf ("Domingo\n"); break; } default: si_no: printf ("\nNo existe"); }; system("pause"); return EXIT_SUCCESS; }