Fundamentos de la programación 2011 2012 Fundamentos de la

Anuncio
Fundamentos de la programación
Fundamentos de la programación 2011 2012
2011‐2012
3A
G d
I
i í I f
ái
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Luis Hernández Yáñez
Facultad de Informática
Facultad de Informática
Universidad Complutense
Expresión condicional
Condición
?
Exp1
Exp2
:
Dos alternativas
Dos alternativas.
—
Condición: Expresión lógica
Condición
: Expresión lógica
Operadores (prioridad)
Asociatividad
—
Exp1 y y Exp2
Exp2: Expresiones
: Expresiones
++ ‐‐ (postfijos)
++ ‐‐
Llamadas a funciones
Llamadas a funciones
Moldes
Izda. a dcha.
++ ‐‐ (prefijos) !
++ ‐‐
‐ (cambio de signo)
Dcha. a izda.
* / %
Izda. a dcha.
+ ‐
+ ‐
Izda. a dcha.
< <= > >=
Izda. a dcha.
== !=
Izda. a dcha.
&&
Izda. a dcha.
||
Izda a dcha
Izda. a dcha.
?:
Dcha. a izda.
= += ‐
= += ‐= *= /= %=
Dcha. a izda.
Si Condición se evalúa a Si Condición
se evalúa a true
true,,
el resultado es Exp1
el resultado es Exp1;;
si Condición se evalúa a si Condición
si se evalúa a false, se evalúa a false
false, el resultado es Exp2
el resultado es Exp2..
int a = 5
a = 5, b = 3
, b = 3, c;
c = (a + b == c = (a + b == 10
10) ? ) ? 2
2 : 3
: 3;
Luis Hernández Yáñezz
c = ( 8
c = ( 8
== 10
== 10) ? ) ? 2
2 : 3
: 3;
c = false
c = false
c = 3
c = 3;
? 2
? 2 : 3
: 3;
Fundamentos de la programación: Más sobre tipos e instrucciones
Página 2
Equivalencia con un if
if‐
‐else
c = (a + b == 10
c = (a + b == 10) ? ) ? 2
2 : 3
: 3;
Es equivalente a:
if (a + b == if (a + b == 10
10) c = ) c = 2
2;
else c = 3
c = 3;
Se pueden concatenar:
Luis Hernández Yáñezz
cout << (nota == cout
cout << (nota == 10
<< (nota == 10 ? ? "MH"
MH : (nota >= : (nota >= 9 ? : (nota >= 9
? "SB"
SB : :
(nota >= (nota >= 7
7 ? "NT"
? "NT" : (nota >= 5
: (nota >= 5 ? "AP"
? "AP" : "SS"
: "SS"))))
))))
Esto es equivalente a la escala Esto es equivalente a la escala if
if‐
‐else
else‐
‐if de la siguiente sección.
q
g
Fundamentos de la programación: Más sobre tipos e instrucciones
Página 3
Escala if
Escala if ... ... else if
else if ... equivalente
cout << (nota == cout
cout << (nota == 10
<< (nota == 10 ? ? "MH"
MH : (nota >= : (nota >= 9 ? : (nota >= 9
? "SB"
SB : :
(nota >= (nota >= 7
7 ? "NT"
? "NT" : (nota >= 5
: (nota >= 5 ? "AP"
? "AP" : "SS"
: "SS"))))
))))
Luis Hernández Yáñezz
Si nota == 10 entonces MH
Si nota == 10
si no, si nota >= 9
si no, si nota >= 9 entonces SB
si no, si nota >= 7
si no, si nota >= 7 entonces NT
si no, si nota >= 5
, nota >= 5 entonces AP
si no, si si no SS
double nota;
cin >> nota;
if (nota == (nota == 10
10) cout << ) cout << "MH"
"MH";
;
else if (nota >= 9
(nota >= 9) cout << "SB"
) cout << "SB";
;
else if (nota >= 7
(nota >= 7) cout << "NT"
) cout << "NT";
;
else if (nota >= 5
(nota >= 5) cout << "AP"
) cout << "AP";
;
else cout << cout << "SS"
"SS";
;
true
"MH"
== 10
false
true
"SB"
>= 9
false
true
"NT"
>= 7
>
7
false
true
>= 5
"AP"
false
Fundamentos de la programación: Más sobre tipos e instrucciones
"SS"
Página 4
Descargar