PRÁCTICA 4. SENTENCIAS DE CONTROL DE SELECCIÓN. 1

Anuncio
Fundamentos de Informática
Primero de Ingeniería Técnica Industrial
Mecánica, Química, Electricidad y Electrónica
Departamento de Tecnologías de la Información
PRÁCTICA 4. SENTENCIAS DE CONTROL DE SELECCIÓN.
1. Introducción.
En esta práctica deberá aplicar todos los conceptos vistos en la primera parte del Tema 5
de teoría, (Control de flujo del programa), que trata sobre las Sentencias de Control de
Selección (if else y switch).
Una vez más queremos insistir en la importancia de diferenciar claramente dos cosas:
•
Por un lado, entender el concepto de Sentencia de Control de Selección y
saber cómo se modifica el control del flujo del programa a raíz del uso
de este tipo de sentencias.
•
Por otro lado, aprender a utilizar adecuadamente las dos sentencias de
control de selección que ofrece el lenguaje C: if else y switch.
2. Conceptos nuevos
Los conceptos nuevos introducidos son:
1) Flujo del programa.
2) Sentencias de Control de Selección.
3) Evaluación de una condición presente en una sentencia de control (realmente
este concepto ya se vio en el Tema 4, pero en esta práctica usted podrá
entender la verdadera utilidad de las condiciones y comprobar si sabe evaluar
y diseñar condiciones adecuadamente.)
3. Lenguaje C
Las nuevas características de C que ha aprendido y necesita saber para la realización de
esta práctica son:
1)
2)
3)
4)
5)
6)
Funcionamiento de la sentencia de control if
Funcionamiento de la sentencia de control if else
Funcionamiento de la sentencia de control if else-if
Posibilidad de anidamientos de las sentencias if, if else e if else-if
Funcionamiento de la sentencia switch
Posibilidad de anidamiento de las sentencias switch
4. Entorno DevC++.
Es fundamental para que entienda el verdadero funcionamiento de las sentencias de
control, poder ejecutar el programa paso a paso y observar cuál es el desarrollo del flujo
del programa.
Para ello son imprescindibles utilizar dos cosas:
Fundamentos de Informática
Primero de Ingeniería Técnica Industrial
Mecánica, Química, Electricidad y Electrónica
Departamento de Tecnologías de la Información
•
La opción de ejecución paso a paso (Depurar (F8) Æ Avanzar Paso a Paso
(Shift F7) ) que permite ejecutar el programa instrucción a instrucción, viendo
así cómo se desarrolla.
•
La opción del menú de depuración Añadir Watch (F4), que permite ver cómo
va variando el contenido de aquellas variables del programa que deseemos.
Investigue en casa, antes de asistir a las prácticas, estas dos herramientas que se ofrecen
para depurar programas.
5. Ejercicios propuestos
Con todo lo que ha visto en la primera parte del Tema 5 de teoría, usted ya puede
comenzar a hacer programas en C. A continuación le ofrecemos una serie de ejercicios
que debería usted intentar hacer antes de asistir a prácticas:
1) Encuentre los errores de la siguiente sentencia escrita en lenguaje C
if x > 25.0
y=x
else
y = z;
2) ¿Qué valor se le asigna a la variable consumo en la sentencia if siguiente si la
variable velocidad vale 120? ¿y si velocidad vale 110?. Si quiere estar seguro de
que su respuesta está bien, codifique el ejemplo con DevC++.
if (velocidad > 80)
consumo = 10.0;
else if (velocidad > 100)
consumo = 12.00;
else if (velocidad > 120)
consumo =15.00
3) Escribir un programa que lea una nota de un examen por teclado y devuelva la
calificación que tiene. La calificación podrá ser: Suspenso (0-4.99), Aprobado
(5-6.99), Notable (7-8.99), Sobresaliente (9-9.99) o Matricula de Honor (10).
Realice este ejercicio utilizando la sentencia de control switch.
4) Repita el ejercicio anterior pero utilizando la sentencia de control if else-if.
5) Mejore el ejercicio anterior de modo que si el usuario introduce un valor menor
que cero o un valor mayor que 10 se muestre por pantalla un mensaje de error y
finalice el programa.
6) Escribir un programa que lea dos números enteros por teclado y determine cuál
es el mayor y cual es el menor. También deberá considerar el caso en el que los
dos números sean iguales.
Fundamentos de Informática
Primero de Ingeniería Técnica Industrial
Mecánica, Química, Electricidad y Electrónica
Departamento de Tecnologías de la Información
7) Escribir un programa que lea tres números enteros por teclado y muestre por
pantalla el mayor de los tres.
8) Escribir un programa que lea tres números enteros por teclado y emita un
mensaje indicando si están o no en ordenados en orden creciente.
9) Escribir un programa que muestre por pantalla la cantidad de memoria,
expresada en bytes, que ocupa cada uno de los siguientes tipos de datos
existentes en C: char, unsigned char, int, short int, unsigned short int, long int,
float y double. Comparar y analizar el resultado.
Nota: Existe en C el operador sizeof(), que le servirá para llevar a buen fin este
ejercicio.
Ejemplo: El programa deberá sacar por pantalla una frase como ésta para cada
tipo de dato: “Una variable de tipo ----- ocupa en memoria ----- bytes”. Así para
el tipo entero el programa sacaría por pantalla: “Una variable de tipo short int
ocupa en memoria 2 bytes”.
10) Dadas las variables enteras: i = 10, j=5 y k = -2, y las variables de tipo carácter
c1=‘w’ y c2 = ‘?’. Indique si las siguientes condiciones son ciertas o falsas.
a) (i < 10) && ( j = = 5);
b) ( i <= 10 ) && ( j = = 5 );
c) ! ( k > 3);
d) ( k != 3 ) || ( c1 = = ‘w’ );
e) ( c1 = = 119 ) && ( c2 = = ‘?’ );
f) ( ( i > 10) || ( k <= 0) ) && (( c1 = = ’w’) && ( c2 = = 63 ))
g) ( ( i > 9) && ( k <= -1) ) && (( c1 = = ’t’) || ( c2 = = 63 ))
h) ( ( i > 9) && ( k <= -1) ) && ( c1 = = ’t’) || ( c2 = = 65 )
i) ( k = = -2) || ( i > 20) || (j != 5) || ( c1 = = ‘w’ ) || (c2 = = 63)
j) (( k + j ) = = 3 ) && (( i + j – 2) = = 17)
11) Escribir un programa que permita introducir por teclado tres números enteros y
responda si los números son iguales.
12) Escribir un programa que permita introducir por teclado tres letras y responda si
existen al menos dos letras iguales.
13) Realizar un programa en el que el usuario introduce un número entero y el
programa responde si el número es par o impar.
Fundamentos de Informática
Primero de Ingeniería Técnica Industrial
Mecánica, Química, Electricidad y Electrónica
Departamento de Tecnologías de la Información
14) Realizar un programa que pida dos números enteros por teclado y muestre por
pantalla el siguiente menú:
MENU
1.
2.
3.
4.
Sumar
Restar
Multiplicar
Dividir
Elija opción:
El usuario deberá elegir una opción y el programa deberá mostrar el resultado
por pantalla. y finalizar. Realizar el ejercicio utilizando switch( ).
15) Mejorar el programa anterior para en aquellos casos en los que el usuario elige
una opción distinta de las 4 posibles el programa muestre un mensaje de error
(por ejemplo: “Error. Opción no válida”) y a continuación finalice.
Si estos ejercicios le parecen insuficientes, o le gustaría consultar ejercicios resueltos y
comentados, le recomendamos que consulte el libro “Programación en C” de Byron
Gottfried o cualquier otro libro, manual o tutorial de C que contenga ejercicios resueltos
y explicados.
6. Conocimientos mínimos
Después de haber realizado esta práctica usted debería responder sin dilación a las
siguientes preguntas. Si no es así es que no ha aprendido lo suficiente, de modo que
deberá repasar algunos conceptos.
• Qué es una sentencia de control.
• Qué es el flujo de un programa.
• Cómo se modifica el flujo de un programa cuando utilizamos una sentencia de
control de selección.
• Qué sentencias de control de selección ofrece el lenguaje C.
• Cuál es el diagrama de flujo de la sentencia if.
• Cuál es el diagrama de flujo de la sentencia if else.
• Cuál es el diagrama de flujo de la sentencia switch.
• Qué limitaciones tiene la sentencia switch respecto a la sentencia if else-if.
• En qué situaciones se debe utilizar la sentencia switch.
• Qué ocurre si omite las palabra break en uno de los case de una sentencia switch
7.
La Frase....
“Un computador hará lo que le digas, pero ello puede ser muy diferente de lo que
tengas en mente.”
Joseph Weizenbaum.
Descargar