Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
curso-cpp:estructuras-selectivas [2017/10/12 17:57] santo [Ejercicios] |
curso-cpp:estructuras-selectivas [2017/10/29 19:28] (actual) santo |
||
---|---|---|---|
Línea 13: | Línea 13: | ||
La sintaxis (forma de escritura) de la instrucción if es la siguiente: | La sintaxis (forma de escritura) de la instrucción if es la siguiente: | ||
- | <code> | + | <code cpp> |
if (condicion) | if (condicion) | ||
{ | { | ||
instruccion1; | instruccion1; | ||
instruccion2; | instruccion2; | ||
- | ... | + | //... |
instruccionFinal; | instruccionFinal; | ||
} | } | ||
Línea 27: | Línea 27: | ||
Por ejemplo, el siguiente programa puede utilizarse para leer un número, y escribir en pantalla un mensaje de acuerdo a su signo: | Por ejemplo, el siguiente programa puede utilizarse para leer un número, y escribir en pantalla un mensaje de acuerdo a su signo: | ||
- | <code> | + | <code cpp> |
#include <iostream> | #include <iostream> | ||
Línea 95: | Línea 95: | ||
En efecto, cero es un número especial, el único entero que no es ni positivo ni negativo, y por lo tanto ''0 < 0'' y ''0 > 0'' son ambas **falsas**. Podemos entonces agregar este caso como un nuevo if en el programa: | En efecto, cero es un número especial, el único entero que no es ni positivo ni negativo, y por lo tanto ''0 < 0'' y ''0 > 0'' son ambas **falsas**. Podemos entonces agregar este caso como un nuevo if en el programa: | ||
- | <code> | + | <code cpp> |
#include <iostream> | #include <iostream> | ||
Línea 138: | Línea 138: | ||
Veamos un segundo ejemplo de programa, que muestre un mensaje de acuerdo a la paridad del número ingresado: | Veamos un segundo ejemplo de programa, que muestre un mensaje de acuerdo a la paridad del número ingresado: | ||
- | <code> | + | <code cpp> |
int main() | int main() | ||
{ | { | ||
Línea 164: | Línea 164: | ||
Es posible escribir lo siguiente: | Es posible escribir lo siguiente: | ||
- | <code> | + | <code cpp> |
if (condicion) | if (condicion) | ||
Línea 187: | Línea 187: | ||
A continuación mostramos el ejemplo anterior de par o impar, reescrito utilizando la instrucción else: | A continuación mostramos el ejemplo anterior de par o impar, reescrito utilizando la instrucción else: | ||
- | <code> | + | <code cpp> |
int main() | int main() | ||
{ | { | ||
Línea 230: | Línea 230: | ||
Hemos visto que la sintaxis (escritura) completa del ''if'' tiene la siguiente forma: | Hemos visto que la sintaxis (escritura) completa del ''if'' tiene la siguiente forma: | ||
- | <code> | + | <code cpp> |
if (condicion) | if (condicion) | ||
{ | { | ||
Línea 245: | Línea 245: | ||
Veamos algunos ejemplos: | Veamos algunos ejemplos: | ||
- | <code> | + | <code cpp> |
// Escritura completa | // Escritura completa | ||
Línea 263: | Línea 263: | ||
Los dos ejemplos anteriores son equivalentes, ya que hay una sola instrucción entre llaves. Notemos en cambio que los siguientes dos ejemplos **no** son equivalentes: | Los dos ejemplos anteriores son equivalentes, ya que hay una sola instrucción entre llaves. Notemos en cambio que los siguientes dos ejemplos **no** son equivalentes: | ||
- | <code> | + | <code cpp> |
// Escritura completa | // Escritura completa | ||
Línea 296: | Línea 296: | ||
Existe un peligro más cuando omitimos las llaves, y este peligro es el resultado de que en C++ la parte ''else'' sea opcional. Supongamos un código como el siguiente: | Existe un peligro más cuando omitimos las llaves, y este peligro es el resultado de que en C++ la parte ''else'' sea opcional. Supongamos un código como el siguiente: | ||
- | <code> | + | <code cpp> |
// Ejemplo 1 (resulta correcto) | // Ejemplo 1 (resulta correcto) | ||
if (x > 0) | if (x > 0) | ||
Línea 320: | Línea 320: | ||
Veamos a continuación entonces cómo escribir los ejemplos con la escritura completa con llaves: | Veamos a continuación entonces cómo escribir los ejemplos con la escritura completa con llaves: | ||
- | <code> | + | <code cpp> |
// Ejemplo 1 (con llaves, correcto) | // Ejemplo 1 (con llaves, correcto) | ||
if (x > 0) | if (x > 0) | ||
Línea 376: | Línea 376: | ||
Utilizando estos operadores lógicos, podemos muchas veces resumir largas cadenas de ifs, en una sola condición compuesta más clara. Veamos por ejemplo el siguiente ejemplo para decidir si un año es bisiesto: | Utilizando estos operadores lógicos, podemos muchas veces resumir largas cadenas de ifs, en una sola condición compuesta más clara. Veamos por ejemplo el siguiente ejemplo para decidir si un año es bisiesto: | ||
- | <code> | + | <code cpp> |
#include <iostream> | #include <iostream> | ||
Línea 408: | Línea 408: | ||
Si bien es correcto, este código puede resumirse en el siguiente mucho más claro, utilizando expresiones lógicas: | Si bien es correcto, este código puede resumirse en el siguiente mucho más claro, utilizando expresiones lógicas: | ||
- | <code> | + | <code cpp> |
#include <iostream> | #include <iostream> | ||
Línea 438: | Línea 438: | ||
Por ejemplo, en el caso de los operadores de comparación, ''1 < 2'' da por resultado ''true'', que es un valor de tipo ''bool''. ''1 == 2'' es otro valor de tipo ''bool'', que será ''false''. Como con cualquier otro tipo de datos, podemos declarar variables ''bool'': | Por ejemplo, en el caso de los operadores de comparación, ''1 < 2'' da por resultado ''true'', que es un valor de tipo ''bool''. ''1 == 2'' es otro valor de tipo ''bool'', que será ''false''. Como con cualquier otro tipo de datos, podemos declarar variables ''bool'': | ||
- | <code> | + | <code cpp> |
bool cond1 = 1 == 2; | bool cond1 = 1 == 2; | ||
bool cond2 = 1 < 2; | bool cond2 = 1 < 2; | ||
Línea 456: | Línea 456: | ||
===== Más ejercicios ===== | ===== Más ejercicios ===== | ||
- | * Escribir un programa que lea tres números, y los vuelva a imprimir pero ordenados de menor a mayor. | + | * [[http://juez.oia.unsam.edu.ar/#/task/tri_sort/statement|Escribir un programa que lea tres números, y los vuelva a imprimir pero ordenados de menor a mayor.]] |
- | * Escribir un programa que lea una hora en formato de 24 horas (exactamente 5 caracteres) y la imprima en forma AM / PM. Ejemplos:<code> | + | * [[http://juez.oia.unsam.edu.ar/#/task/la_hora/statement|Escribir un programa que lea una hora en formato de 24 horas (exactamente 5 caracteres) y la imprima en forma AM / PM.]] Ejemplos:<code> |
23:12 imprime 11:12 PM | 23:12 imprime 11:12 PM | ||
10:15 imprime 10:15 AM | 10:15 imprime 10:15 AM | ||
12:15 imprime 12:15 PM | 12:15 imprime 12:15 PM | ||
00:15 imprime 12:15 AM</code> | 00:15 imprime 12:15 AM</code> | ||
- | * Leer dos numeros de hasta 2 digitos, e imprimir una "cuenta" del producto. La cuenta debe estar bien alineada a derecha. Ejemplos: <code> | + | * [[http://juez.oia.unsam.edu.ar/#/task/productis/statement|Leer dos numeros de hasta 2 digitos, e imprimir una "cuenta" del producto.]] La cuenta debe estar bien alineada a derecha. Ejemplos: <code> |
Si vienen 12 y 5, | Si vienen 12 y 5, | ||
12 | 12 |