La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de control condicional

Presentaciones similares


Presentación del tema: "Estructuras de control condicional"— Transcripción de la presentación:

1 Estructuras de control condicional
Curso Propedéutico Maestría en Ingeniería Electrónica

2 Operadores relacionales
Los operadores relacionales generan un valor 1 si es verdadera y 0 si es falsa Operador Significado == igualdad != Diferente > Mayor que < Menor que >= Mayor o igual <= Menor o igual

3 Sentencia if La sentencia if permite decidir ejecutar o no una instrucción o un bloque de instrucciones. Sintaxis if (condición) Instrucción o bloque; Un bloque es una secuencia de instrucciones englobadas entre llaves (“{}”). La condición esta formada por una expresión booleana. verdadero condición sentencias falso

4 Ejemplo de if simple Prueba si un número leído desde el teclado es par. #include <iostream.h> int main() { int numero; cout << "teclee un número: "; cin >> numero; if(numero % 2 == 0) cout << "número par"; return 0; }

5 Ejemplo 2 de if simple Si el número a es divisible por el número b, se despliega el número de veces que a es mayor que b. #include <iostream.h> int main() { int a,b,n; cout << "teclee un número: "; cin >> a; cout << "teclee un número: "; cin >> b; if(a % b == 0){ n = a / b; cout << a << " es " << n << " veces " << b; } return 0; }

6 Sentencia if - else La sentencia if – else permite decidir entre ejecutar una instrucción (o un bloque de instrucciones) y otra instrucción (o un bloque de instrucciones) Sintaxis if (condición) Instrucción o bloque; else falso verdadero condición sentencias sentencias

7 Ejemplo de if - else simple
Prueba si un número leído desde el teclado es par. #include <iostream.h> int main() { int numero; cout << "teclee un número: "; cin >> numero; if(numero % 2 == 0) cout << "número par"; else cout << "número impar"; return 0; }

8 Intersección de dos rectas
Programa para determinar si dos rectas se interceptan Suponga que las rectas se representan por la ecuación de la forma y = m x + b Donde m es la pendiente y b es la ordenada al origen. La única forma en que las dos rectas no se interceptan en un punto es cuando son paralelas, es decir, cuando las dos tienen la misma pendiente. Podemos expresar el algoritmo de la siguiente forma si pendiente1 diferente de pendiente2 calcular la intersección imprimir resultado sino informar que no se interceptan

9 Programa #include <iostream.h> int main() { float m1,m2,b1,b2,x,y; cout << "teclee la pendiente y ordenada al origen 1: "; cin >> m1 >> b1; cout << "teclee la pendiente y ordenada al origen 2: "; cin >> m2 >> b2; if(m1 != m2){ x = (b2 - b1)/(m1 - m2); y = m1*x+b1; cout << "Las rectas se interceptan en: " << x << ", " << y << endl; } else cout << "Las rectas no se interceptan..."; return 0; }

10 Sistema de ecuaciones 2x2
Se desea resolver un sistema de ecuaciones de 2x2 de la forma a x + b y = c d x + e y = f El sistema puede resolverse con las fórmulas x = (c e – b f) / (a e – b d) y = (a g – c e) / (a e – b d) El sistema tiene solución si el denominador de estas fracciones es diferente de cero. El algoritmo es: si (a f – b e ) != 0 calcular solución mostrar resultado sino informar que no hay solución

11 Programa sis2x2.cpp #include <iostream.h> int main() { float a,b,c,d,e,f,x,y; cout << "teclee los coeficientes a, b, c, d, e, f: "; cin >> a >> b >> c >> d >> e >> f; if( (a*f - b*e) != 0){ x = (c*e - b*f)/(a*e - b*d); y = (a*f - c*d)/(a*e - b*d); cout << " x = " << x << "\ny = " << y << endl; } else cout << "El sistema no tiene solución\n"; return 0; }

12 Sentencia ?: La sentencia if puede abreviarse mediante el operador ?:. La sintaxis es: condición ? operando1 : operando2; Esta muy relacionado a la sentencia if/else. El operador regresa el operando1 si la condición es verdadera y regresa el operando2 si es falsa. Ejemplo: cout << ( cal >= 60 ? “Aprobado” : “Reprobado”); Esta sentencia imprimirá “Aprobado” se cal es mayor o igual a 60 e imprimirá “Reprobado” si es menor que 60. Note que los paréntesis son necesarios dado que el operador ?: tiene la menor precedencia. También es válido: cal >= 60 ? cout << “Aprobado” : cout << “Reprobado”;

13 Tarea #3 Escriba un programa que lea un número y determine si es par o impar. Utilice el operador ?:. Escriba un programa que lea tres números reales representando los lados de un triángulo y decida si el triángulo es rectángulo o no. Escriba una versión con if-else y otra con el operador ?:. Escriba un programa para resolver una ecuación cuadrática. Considere el caso en que las soluciones sean complejas.

14 Operadores lógicos Existen 4 operadores lógicos en C: and = &&, or = ||, not = !, xor = ^. Los operadores lógicos tienen una prioridad más baja que los operadores relacionales. expresión1 expresión2 expresión1 && expresión2 falso verdadero expresión1 expresión2 expresión1 || expresión2 falso verdadero expresión !expresión falso verdadero expresión1 expresión2 expresión1 ^ expresión2 falso verdadero Prioridad de evaluación ! && ||

15 ejemplos de operadores lógicos
x > 5 || x == 3 verdadero para x = 3, 6, 7, ... ! (x == 7) && x % 2 != 0 verdadero para x = 1, 3, 5, 9, 11, ... x <= -1 || x > 5 || x ==2 verdadero para x = -2, -1, 2, 6, 7, 8, ... En el siguiente fragmento se despliegan solo los múltiplos de 7 o cuadrados perfectos if(num % 7 == 0 || sqrt(num)-floor(sqrt(num))==0)

16 Anidamiento Una sentencia if puede tener es su parte verdadera o falsa otra sentencia if. O sea if(condición1) if(condición2) if(condición3) sentencias; ...

17 Ejemplo de anidamiento
Se desea un programa para imprimir un letrero dependiendo de la siguiente tabla: #include <iostream.h> int main() { float cal; cout << "teclee la calificación: "; cin >> cal; if(cal < 6) cout << “Reprobado\n"; else if(cal < 7) cout << “Suficiente\n"; else if(cal < 8) cout << “Bien\n"; else if(cal < 9) cout << “Muy bien\n"; else cout << “Excelente\n"; return 0; } condición letrero cal < 6 “Reprobado” 6 <= cal < 7 “Suficiente” 7 <= cal < 8 “Bien” 8 <= cal < 9 “Muy bien” 9 <= cal < 10 “Excelente”

18 Comparación de 3 números
#include <iostream.h> int main() { float a, b, c; cout << "teclee 3 números: "; cin >> a >> b >> c; if(a > b) if(a > c) cout << a << endl; else cout << c << endl; else if(b > c) cout << b << endl; return 0; } #include <iostream.h> int main() { float a, b, c; cout << "teclee 3 números: "; cin >> a >> b >> c; if(a >= b && a >= c) cout << a << endl; if(b >= a && b >= c) cout << b << endl; if(c >= a && c >= b) cout << c << endl; return 0; }

19 Sentencia switch La sentencia switch permite elegir entre varias alternativas. Sintaxis switch (<expresión>){ case <constante>:[case <constante>:]<sentencias>;break; [default:<sentencias>;break;] } Acción del caso a break; caso a Acción del caso b break; caso b Acción del caso z break; caso z Acción por omisión

20 ejemplo de switch #include <iostream.h> int main() { int dia; cout << "teclee el número del día: "; cin >> a; switch(a){ case 0:cout << “Lunes” << endl;break; case 1:cout << “Martes” << endl;break; case 2:cout << “Miércoles” << endl;break; case 3:cout << “Jueves” << endl;break; case 4:cout << “Viernes” << endl;break; case 5:cout << “Sabado” << endl;break; case 6:cout << “Domingo” << endl;break; default cout << “día no válido” << endl; return 0; }

21 Tarea #4 Escriba un programa determine el mayor y el menor de dos números. Luego determine el cociente y el residuo del mayor entre el menor y despliegue los resultados. Modifique el programa de comparación de tres números para que despliegue los tres números leídos en orden ascendente. Si se teclea deberá desplegar Haga las dos versiones con if anidados y con condiciones compuestas. Modifique el programa de los días de la semana para desplegar “entre semana” si el día es de 0 a 4, “sabado” si es 5 y “domingo” si es 6.


Descargar ppt "Estructuras de control condicional"

Presentaciones similares


Anuncios Google