Estructuras de control condicional Computacin Operadores relacionales Los

  • Slides: 56
Download presentation
Estructuras de control condicional Computación

Estructuras de control condicional Computación

Operadores relacionales Los operadores relacionales permiten construir expresiones booleanas es decir, expresiones cuyo valor

Operadores relacionales Los operadores relacionales permiten construir expresiones booleanas es decir, expresiones cuyo valor es 1 o 0. Los operadores relacionales permiten comparar valores o expresiones aritméticas. En C el valor 1 se interpreta como verdadero y el 0 como falso. Operador Significado == igualdad != Diferente > Mayor que < Menor que >= Mayor o igual <= Menor o igual

Ejemplos 1 > 2 = 0 falso 3 < 5 = 1 verdadero (7

Ejemplos 1 > 2 = 0 falso 3 < 5 = 1 verdadero (7 – 4) == 3 = 1 verdadero 17 >= (5 + 12) = 1 verdadero = 0 falso (3*a – 0. 3) == 0 falso (OJO con los reales) 3 > 1 > 0 = 1 verdadero i = 3; j = 7; i * j != 21 float a=0. 1; Asignar a una variable la mayor de otras dos: a = 17; b = 15; c = a*(a>=b) + b*(b>=a); c = 17 a>=b = 1 y b>=a = 0

Tarea Encuentre el valor de las siguientes expresiones relacionales 2 != 7 3 >

Tarea Encuentre el valor de las siguientes expresiones relacionales 2 != 7 3 > 2 -1 <= -2 (5 – 7) > (3 – 4) (3*2 + 5*4) == (8*5/2 + 4*4 – 10) Encuentre el valor asignado a la variable x, suponga a = 3, b = 4, c = 12 x = (2*a > c – b)*c + (c == 2*b + 2*a – 2)*a; x = (a <= b)*(a – b) + (c > 2*a + 5)*(c – 2*a);

Sentencia if La sentencia if permite decidir ejecutar o no una instrucción o un

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 falso sentencias

Ejemplo de if simple Prueba si un número leído desde el teclado es par.

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; }

Ejemplo 2 de if simple Si el número a es divisible por el número

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; }

Sentencia if - else La sentencia if – else permite decidir entre ejecutar una

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 Instrucción o bloque; falso verdadero condición sentencias

Ejemplo de if - else simple Prueba si un número leído desde el teclado

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; }

Tarea Escriba un programa que lea tres números reales y decida si forman un

Tarea Escriba un programa que lea tres números reales y decida si forman un triángulo. Suponga que los números se leen de mayor a menor. 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. Suponga que los números se leen de mayor a menor. Entregar impreso.

Intersección de dos rectas Programa para determinar si dos rectas se interceptan Suponga que

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 pendiente 1 diferente de pendiente 2 calcular la intersección imprimir resultado sino informar que no se interceptan

Programa #include <iostream. h> int main() { float m 1, m 2, b 1,

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

Sistema de ecuaciones 2 x 2 Se desea resolver un sistema de ecuaciones de

Sistema de ecuaciones 2 x 2 Se desea resolver un sistema de ecuaciones de 2 x 2 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

Programa sis 2 x 2. cpp #include <iostream. h> int main() { float a,

Programa sis 2 x 2. 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ónn"; return 0; }

Tarea Un punto está sobre una recta si al avaluar la ecuación y –

Tarea Un punto está sobre una recta si al avaluar la ecuación y – mx – b se obtiene un valor positivo y está bajo la recta si se obtiene un valor negarivo. Escriba un programa que lea los valores de la pendiente m y la ordenada al origen b, y las coordenadas (x, y) de un punto e imprima si el punto esta sobre o bajo la recta. (x, y) y – mx + b > 0 y = mx + b y – mx + b < 0

Operadores lógicos Existen 4 operadores lógicos en C: and = &&, or = ||,

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ón 1 expresión 2 expresión 1 && expresión 2 expresión 1 || expresión 2 0 0 0 0 1 1 1 0 0 1 1 1 1 expresión ! expresión 1 expresión 2 expresión 1 ^ expresión 2 0 1 0 0 1 1 1 0 Prioridad de evaluación ! && ||

ejemplos de operadores lógicos x > 5 || x == 3 verdadero para x

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)

Discusión Escriba sentencias que sean verdaderas para: x = 1, 2, 4, 8 x

Discusión Escriba sentencias que sean verdaderas para: x = 1, 2, 4, 8 x = 7, 14, 21, …, 49 x = 1, 2, 3, 6, 7, 8, 9 x = …, - 5, -3, -1, 0, 2, 4, 6, …

Anidamiento Una sentencia if puede tener en su parte verdadera o falsa otra sentencia

Anidamiento Una sentencia if puede tener en su parte verdadera o falsa otra sentencia if. O sea if(condición 1) if(condición 2) if(condición 3) sentencias; else if(condición 2) if(condición 3). . .

Ejemplo de anidamiento Se desea un programa para imprimir un letrero dependiendo de la

Ejemplo de anidamiento Se desea un programa para imprimir un letrero dependiendo de la siguiente tabla: condición letrero cal < 6 “Reprobado” 6 <= cal < 7 “Suficiente” 7 <= cal < 8 “Bien” 8 <= cal < 9 “Muy bien” 9 <= cal < 10 “Excelente”

#include <iostream. h> int main() { float cal; cout << "teclee la calificación: ";

#include <iostream. h> int main() { float cal; cout << "teclee la calificación: "; cin >> cal; if(cal < 6) cout << “Reprobadon"; if(cal >= 6 && cal < 7) cout << “Suficienten"; else if(cal < 7) cout << “Suficienten"; if(cal >=7 $$ cal < 8) cout << “Bienn"; else if(cal < 8) cout << “Bienn"; if(cal >=8 && cal < 9) cout << “Muy bienn"; else if(cal < 9) cout << “Muy bienn"; else cout << “Excelenten"; return 0; }

Comparación de 3 números Se desea comparar 3 números leídos desde el teclado, imprimiendo

Comparación de 3 números Se desea comparar 3 números leídos desde el teclado, imprimiendo el mayo de ellos. Se puede resolver comparando el primero con el segundo, luego si el primero es mayor, se compara el primero con el tercero. Si el primero no es mayor que el segundo, entonces se compara el segundo con el tercero. a>b verdadero “b mayor” b>c falso “c mayor” verdadero falso “c mayor” a>c verdadero “a mayor”

Solución condiciones compuestas Utilizando condiciones compuestas, primero comparamos el primero con los dos restantes,

Solución condiciones compuestas Utilizando condiciones compuestas, primero comparamos el primero con los dos restantes, si es mayor que los otros dos, imprimimos el primero, sino, comparamos el segundo con los otros dos, etc. Note que debe usar >= para que se imprime forzosamente un resultado. falso a>=b && a>=c verdadero b>=a && b>=c “b mayor” c>=a && c>=b verdadero “c mayor” verdadero “a mayor”

Anidamiento #include <iostream. h> int main() { float a, b, c; cout << "teclee

Anidamiento #include <iostream. h> int main() { float a, b, c; cout << "teclee 3 números: "; cin >> a >> b >> c; if(a > b) if(a > c) Condiciones compuestas #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; else cout << c << endl; if(b >= a && b >= c) else cout << b << endl; else if(b > c) cout << b << endl; if(c >= a && c >= b) else cout << c << endl; return 0; }

Tarea Escriba una sentencia que sea verdadera para x =. . . , -2,

Tarea Escriba una sentencia que sea verdadera para x =. . . , -2, -1, 0, 3, 6, 9, 12, 15, 18, . . . Rescriba las siguientes sentencias de if anidados sin usar ningún anidamiento: if ( a < c ) if ( b < c ) x = y; else x = z; if ( a < b ) if ( a >= b ) x = z; else x = y; else x = z;

Tarea casera 1. Escriba un programa en C que lea tres números y los

Tarea casera 1. Escriba un programa en C que lea tres números y los imprima en orden. Ayuda: existen 6 casos: a>b>c, a>c>b, b>a>c, b>c>a, c>a>b y c>b>a. Haga una versión condiciones compuestas y otra con sentencias if anidadas.

Sentencia switch La sentencia switch permite elegir entre varias alternativas. Sintaxis switch (<expresión>){ case

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

ejemplo de switch Programa para leer un número de día (1 – lunés, …

ejemplo de switch Programa para leer un número de día (1 – lunés, … 7 – domingo) SIEMPRE PONGA break AL FINAL DE CADA OPCIÓN EN LA SENTENCIA SWITCH. #include <iostream. h> int main(){ int dia; cout << "teclee el número del día: "; cin >> dia; switch(dia){ case 1: cout << "Lunes" << endl; break; case 2: cout << "Martes" << endl; break; case 3: cout << "Miércoles" << endl; break; case 4: cout << "Jueves" << endl; break; case 5: cout << "Viernes" << endl; break; case 6: cout << "Sabado" << endl; break; case 7: cout << "Domingo" << endl; break; default: cout << "día no válido" << endl; } system("PAUSE"); } Modifique el programa de los días de la semana para desplegar “entre semana” si el día es de 1 a 5, “sabado” si es 6 y “domingo” si es 7. utilice una sola sentencia cout para el caso de los días entre semana.

Ejemplo de menú Se elige entre varias opciones de un menú 1 2 3

Ejemplo de menú Se elige entre varias opciones de un menú 1 2 3 4 - Microsoft Word"; Yahoo messenger"; Auto. CAD"; Java Games"; Cada opción despliega un mensaje diferente /* Ejemplo-switch-1 */ #include <iostream. h> main(){ int a; cout << "tt. Menu"; cout <<"n------------------"; cout <<"n 1 - Microsoft Word"; cout <<"n 2 - Yahoo messenger"; cout <<"n 3 - Auto. CAD"; cout <<"n 4 - Java Games"; cout <<"n------------------"; cout <<"n. Ingrese numero de su preferencia: "; cin >> a; // leer entrada switch (a){ case 1: // si entrada es 1 cout <<"n. Personal Computer Softwaren"; break; case 2: // si entrada es 2 cout <<"n. Web based Softwaren"; break; case 3: // si entrada es 3 cout <<"n. Scientific Softwaren"; break; case 4: // si entrada es 4 cout <<"n. Embedded Softwaren"; break; default: cout <<"n. Entrada incorrectan"; } system("PAUSE"); }

Ejemplo de empleados Calcular el sueldo mensual de un empleado que trabaja por horas,

Ejemplo de empleados Calcular el sueldo mensual de un empleado que trabaja por horas, el pago de cada hora trabajada depende de su categoría: categoria pago x hora A 26. 90 B 24. 30 C 21. 50 Además si el empleado trabaja mas de 150 horas mensuales tiene una bonificación del 5 % de sueldo.

Algoritmo Se ingresara el nombre del empleado, seguido de su categoría y al final

Algoritmo Se ingresara el nombre del empleado, seguido de su categoría y al final el número de horas trabajadas. Algoritmo 1. Leer datos 2. Determinar sueldo en base a su categoría 3. Determinar monto de bonificación 4. Imprimir nombre, categoría y sueldo total Variables (entrada) nombre – cadena de caracteres categoria – carácter horas - entero Variables (salida) pago. Hora – real (float) bono – real (float) sueldo – real (float)

El tipo char y cadena (char[]) La categoría se almacenará en una variable de

El tipo char y cadena (char[]) La categoría se almacenará en una variable de tipo char (carácter) El nombre del empleado se almacenará en una cadena de caracteres. En C hay que especificar la longitud máxima de la cadena. La declaración sigue la siguiente sintaxis: char variable[longitud máxima]; Ejemplo: char nombre[30]; La lectura solo lee la cadena hasta el primer espacio o hasta la longitud máxima, si teclea “juan perez”, solo se almacenará “juan”.

Declaración y lectura char nombre[7]; //nombre del empleado char categoria; //categoría A, B, C

Declaración y lectura char nombre[7]; //nombre del empleado char categoria; //categoría A, B, C int horas; //horas trabajadas float pago. Hora, sueldo, bonificacion; cout << "nombre del empleado: "; cin >> nombre; cout << "categoría: "; cin >> categoria; cout << "horas trabajadas: "; cin >> horas;

Cálculo del sueldo Se determinará mediante una sentencia switch el pago por hora en

Cálculo del sueldo Se determinará mediante una sentencia switch el pago por hora en función de la categoría. //determinación del pago por horas switch(categoria){ case 'a': case 'A': pago. Hora = 26. 90; break; case 'b': case 'B': pago. Hora = 24. 30; break; case 'c': case 'C': pago. Hora = 21. 50; break; } //calculo del sueldo sin bonificación sueldo = horas*pago. Hora; //cálculo de bonificación if(horas>150) bonificacion = 0. 05*sueldo; else bonificacion = 0. 0; //sueldo total sueldo = sueldo+bonificacion;

Salida de resultados La salida se presentará en forma tabular //Salida en forma tabular

Salida de resultados La salida se presentará en forma tabular //Salida en forma tabular cout << "nnombret. Categt. Horast. Pago/Hrt. Boni. tsueldon" <<nombre<<"t"<<categoria<<"t"<<horas<<"t"<<pago. Hora<< "t"<<bonificacion<<"t"<<sueldo<<endl;

Tarea Escriba un programa que despliegue un menú con las opciones: a. Capital de

Tarea Escriba un programa que despliegue un menú con las opciones: a. Capital de Bélgica? b. Río más grande se Sudamérica? c. Sistema operativo de Microsoft? d. Premio novel de química mexicano? lea un carácter de ‘a’ a ‘d’ y despliegue la respuesta de la opción elegida. Utilice un sentencia switch. Switch(variable){ case ‘a’ : cout << “jhsjkhkjhkjfhjkhfjkbkjnfkn”<< endl; break; ……… }

Tarea casera Modifique el programa de los días de la semana para desplegar “entre

Tarea casera Modifique el programa de los días de la semana para desplegar “entre semana” si el día es de 1 a 5, “sabado” si es 6 y “domingo” si es 7. Escriba un programa que lea un valor de temperatura en K, ºC o ºF y la convierta a las otras dos escalas, lea el tipo de conversión mediante un menú y una sentencia switch. Escriba un programa que lea dos números reales y un símbolo de operación y realice la operación aritmética seleccionada (+, -, *, /) entre los dos números tecleados. Utilice la sentencia switch. Ejemplo: Teclear obtener 3. 5 7. 8 * 27. 3 7. 4 16. 3 / 0. 45399

Solución de una cuadrática La ecuación cuadrática en forma general es ax 2 +

Solución de una cuadrática La ecuación cuadrática en forma general es ax 2 + bx +c = 0 La solución puede encontrarse con la fórmula: Hay tres casos posibles dependiendo del valor del radicando > 0 Dos raíces diferentes b 2 – 4 ac = 0 Una raíz repetida < 0 Raíces complejas conjugadas

Diseño de un programa para resolver una cuadrática. Algoritmo 1. Leer valores de los

Diseño de un programa para resolver una cuadrática. Algoritmo 1. Leer valores de los coeficientes 2. Determinar el valor del discriminante 3. Si el discriminante es mayor que cero encontrar las 2 raíces diferentes y mostrarlas en la pantalla, sino 4. Si el discriminante es igual a cero determinar la raíz doble y mostrarla en la pantalla, sino 5. Determinar las raíces complejas conjugadas y mostrarlas en la pantalla.

Variables Coeficientes: a – coeficiente de x 2, real (float) b – coeficiente de

Variables Coeficientes: a – coeficiente de x 2, real (float) b – coeficiente de x, real (float) c – término independiente, real (float) d – discriminante, real (float) Declaración: float a, b, c, d; Lectura: cout << “Teclee los coeficientes a, b, c: ”; cin >> a >> b >> c; Determinación del discriminante: d = b*b – 4*a*c;

Variables para almacenar las raíces: x 1, x 2 – raíces diferentes, reales (float)

Variables para almacenar las raíces: x 1, x 2 – raíces diferentes, reales (float) xdoble – raíz doble (float) xreal, ximg – parte reala e imaginaria de la raíz compleja Declaración: float x 1, x 2, x, xreal, ximag;

Determinación de cada caso Utilizaremos una sentencia if anidada: If(d>0){ x 1 = (-b

Determinación de cada caso Utilizaremos una sentencia if anidada: If(d>0){ x 1 = (-b – sqrt(d))/2/a; x 2 = (-b + sqrt(d))/2/a; cout << “x 1 =t“<< x 1 << “nx 2 =t” << x 2 << endl; }else If(d=){ xdoble = (-b – sqrt(d))/2/a; cout << “Raiz doblenx =t“<< xdoble << endl; }else{ xreal = -b/2/a; ximag = (sqrt(-d))/2/a; cout << “x real =t“<< xreal << “nximag =t” << ximg << endl; }

Ejemplo Dos vehículos se mueven a diferentes velocidades en t = 0 y con

Ejemplo Dos vehículos se mueven a diferentes velocidades en t = 0 y con aceleraciones constantes y diferentes y se encuentran en diferente posición, haga un programa que determine en que tiempos y posiciones ambos vehículos coinciden. Sea x 01, v 1 y a 1 la posición, la velocidad y la aceleración con que se mueve el primer vehículo y x 02, v 2 y a 2 la posición, la velocidad y la aceleración en que se mueve el segundo vehículo. Las ecuaciones de movimiento de cada cuerpo son: x 1 = x 01+ v 1 t + 0. 5 a 1 t 2 x 2 = x 02 +v 2 t + 0. 5 a 2 t 2

Los tiempos pedidos se encuentran cuando x 1 = x 2 o x 01

Los tiempos pedidos se encuentran cuando x 1 = x 2 o x 01 + v 1 t + 0. 5 a 1 t 2 = x 02 +v 2 t + 0. 5 a 2 t 2 Simplificando se llega a 0. 5 (a 1 – a 2) t 2 + (v 1 – v 2) t +x 01 – x 02 = 0 Esta es una ecuación cuadrática de la forma a x 2 + b x + c = 0 Con a = 0. 5(a 1 – a 2) b = (v 1 – v 2) Cuya solución es: Esta tiene solución cuando b 2 – 4 a c > 0 c = x 01– x 02

Algoritmo 1. Leer los valores del primer vehículo 2. Leer los valores del segundo

Algoritmo 1. Leer los valores del primer vehículo 2. Leer los valores del segundo vehículo 3. Calcular los coeficientes a, b y c 4. Calcular el valor del discriminante 5. Si el discriminante es mayor o igual a cero calcular los valores de t y guardarlos en t 1, t 2, pos 1 , pos 2 si t 1>0 imprimir “se encontrarán en t 1 en pos 1” si t 2>0 imprimir “se encontrarán en t 2 en pos 2“ 6 sino informar que no se encuentran en ningún tiempo

Declaración y lectura de variables //variables de entrada float x 01, v 1, a

Declaración y lectura de variables //variables de entrada float x 01, v 1, a 1, x 02, v 2, a 2; //coeficientes de la cuadrática y discriminante float a, b, c, d; //tiempos float t 1, t 2, pos 1, pos 2; //lectura de datos cout << "teclee el t 1, x 01 y a 1: "; cin >> t 1 >> x 01 >> a 1; cout << "teclee el t 2, x 02 y a 2: "; cin >> t 2 >> x 02 >> a 2;

Solución del problema a = 0. 5*(a 1 -a 2); b = v 1

Solución del problema a = 0. 5*(a 1 -a 2); b = v 1 -v 2; c = x 01 -x 02; d = b*b - 4*a*c; if(d>0){ t 1 = (-b+sqrt(d))/2/a; t 2 = (-b-sqrt(d))/2/a; if(t 1>0){ pos 1 = x 01+v 1*t 1+0. 5*a 1*t 1; cout << "se encontrarán en "<<t 1<<" s en " <<pos 1<<" m"<<endl; } if(t 2>0){ pos 2 = x 01+v 1*t 2+0. 5*a 1*t 2; cout <<"se encontrarán en "<<t 2<<" s en " <<pos 2<<" m"<<endl; } }else cout << "NO se encuentran"<<endl; system("PAUSE"); }

else colgado if (x < y) if (x < z) cout << "Hola" ;

else colgado if (x < y) if (x < z) cout << "Hola" ; else cout << "Adiós" ; F v x<y v x<z Adios Hola x<y F Adios v x<z v Hola

Solución if (x < y){ if (x < z) cout << “Hola" ; }

Solución if (x < y){ if (x < z) cout << “Hola" ; } else cout << "Adiós" ; o if (x < y && x < z) cout << “Hola" ; else cout << "Adiós" ;

Sentencia ? : La sentencia if puede abreviarse mediante el operador ? : .

Sentencia ? : La sentencia if puede abreviarse mediante el operador ? : . La sintaxis es: condición ? operando 1 : operando 2; Esta muy relacionado a la sentencia if/else. El operador regresa el operando 1 si la condición es verdadera y regresa el operando 2 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”;

Ejemplos Sentencia if sentencia ? : if(a>5) x = 6; else x = 7;

Ejemplos Sentencia if sentencia ? : if(a>5) x = 6; else x = 7; a>5 ? x=6: x=7; if(x>8 && x<12)? a=2*b+c: a=3*b+c; a = 2*b+c; else a = 3*b+c; if(a>b) if(b>c) x = 5*a+c; else x = 6*a+b; else x = 8*a+4*b; (a>b)? (b>c? x=5*a+c: x=6*a+b; ): x=8*a+4*b;

Ejercicios Traducir a if y = (a>b)? 3*a+b: 2*a+b; z =a>=2*x? (a<6)? 4*a: 5*a:

Ejercicios Traducir a if y = (a>b)? 3*a+b: 2*a+b; z =a>=2*x? (a<6)? 4*a: 5*a: 3*a+1; ¿Qué valores se imprimen? int a=8, b=9, x=5, y, z; y = (a>b)? 3*a+b: 2*a+b; z =a<=2*x? (a<6)? 4*a: 5*a: 3*a+1; cout <<"y = "<< y <<" z= " <<z<<endl;

#include <iostream. h> main(){ int n; //numero par con operador ? : cout <<

#include <iostream. h> main(){ int n; //numero par con operador ? : cout << "teclee n: "; cin >> n; n%2==0? cout << "numero parn": cout << "numero imparn"; system("PAUSE"); } #include <iostream. h> main(){ int a, b, c, m; //numero mayor con operador ? : cout << "teclee a, b, c: "; cin >> a>>b>>c; a>=b ? a>=c ? cout << a : cout << c: b>=c ? cout << b: cout << c; a>=b ? a>=c ? m = a : m = c : b>=c ? m = b : m = c; cout << endl; cout << m << endl; system("PAUSE"); }

Tarea Traduzca las sentencias if a sentencias con el operador ? : . if(x>8)

Tarea Traduzca las sentencias if a sentencias con el operador ? : . if(x>8) y = 23; else z = -5; if(x>=8 && x!=12) z = sqrt(6*x); else if(x>0) z = sin(3*x); else z = sin(5*x); Traduzca la siguiente sentencia con ? A if x = (y>5)? 2*y+1: (z<10)? 3*y+2: 5*z+1;

Tarea casera Escriba un programa que lea tres números reales representando los lados de

Tarea casera 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. Suponga que los números se leen de menor a mayor. (punto extra) Escriba un programa para resolver una ecuación cuadrática. Considere el caso en que las soluciones sean complejas utilizando el operador ? : .