You are on page 1of 5

Fundamentos de la Informtica.

Primero del Grado de Ingeniera Mecnica


Departamento de Tecnologa de la Informacin

PRCTICA 2. SENTENCIAS DE CONTROL DE SELECCIN.


1. Introduccin.
En esta prctica deber aplicar todos los conceptos vistos en la primera parte del Tema 5
de teora, (Control de flujo del programa), que trata sobre las Sentencias de Control de
Seleccin (if else y switch).
Una vez ms queremos insistir en la importancia de diferenciar claramente dos cosas:

Por un lado, entender el concepto de Sentencia de Control de Seleccin y


saber cmo se modifica el control del flujo del programa a raz del uso
de este tipo de sentencias.

Por otro lado, aprender a utilizar adecuadamente las dos sentencias de


control de seleccin 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 Seleccin.
3) Evaluacin de una condicin presente en una sentencia de control (realmente
este concepto ya se vio en el Tema 4, pero en esta prctica usted podr
entender la verdadera utilidad de las condiciones y comprobar si sabe evaluar
y disear condiciones adecuadamente.)
3. Lenguaje C
Las nuevas caractersticas de C que ha aprendido y necesita saber para la realizacin de
esta prctica 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 cul es el desarrollo del flujo
del programa.
Para ello son imprescindibles utilizar dos cosas:

Fundamentos de la Informtica.
Primero del Grado de Ingeniera Mecnica
Departamento de Tecnologa de la Informacin

La opcin de ejecucin paso a paso (Depurar (F8)  Avanzar Paso a Paso


(Shift F7) ) que permite ejecutar el programa instruccin a instruccin, viendo
as cmo se desarrolla.

La opcin del men de depuracin Aadir Watch (F4), que permite ver cmo
va variando el contenido de aquellas variables del programa que deseemos.

Investigue en casa, antes de asistir a las prcticas, 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 teora, usted ya puede
comenzar a hacer programas en C. A continuacin le ofrecemos una serie de ejercicios
que debera usted intentar hacer antes de asistir a prcticas:
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
calificacin que tiene. La calificacin 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 nmeros enteros por teclado y determine cul
es el mayor y cual es el menor. Tambin deber considerar el caso en el que los
dos nmeros sean iguales.

Fundamentos de la Informtica.
Primero del Grado de Ingeniera Mecnica
Departamento de Tecnologa de la Informacin

7) Escribir un programa que lea tres nmeros enteros por teclado y muestre por
pantalla el mayor de los tres.
8) Escribir un programa que lea tres nmeros enteros por teclado y emita un
mensaje indicando si estn 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 sacara 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 carcter
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 nmeros enteros y
responda si los nmeros 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 nmero entero y el
programa responde si el nmero es par o impar

Fundamentos de la Informtica.
Primero del Grado de Ingeniera Mecnica
Departamento de Tecnologa de la Informacin

14) Realizar un programa que pida dos nmeros enteros por teclado y muestre por
pantalla el siguiente men:
MENU
1.
2.
3.
4.

Sumar
Restar
Multiplicar
Dividir

Elija opcin:

El usuario deber elegir una opcin 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 opcin distinta de las 4 posibles el programa muestre un mensaje de error
(por ejemplo: Error. Opcin no vlida) y a continuacin finalice.
Si estos ejercicios le parecen insuficientes, o le gustara consultar ejercicios resueltos y
comentados, le recomendamos que consulte el libro Programacin en C de Byron
Gottfried o cualquier otro libro, manual o tutorial de C que contenga ejercicios resueltos
y explicados.
6. Conocimientos mnimos
Despus de haber realizado esta prctica usted debera responder sin dilacin 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
Cmo se modifica el flujo de un programa cuando utilizamos una sentencia de
control de seleccin
Qu sentencias de control de seleccin ofrece el lenguaje C.
Cul es el diagrama de flujo de la sentencia if
Cul es el diagrama de flujo de la sentencia if else
Cul 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.

Fundamentos de la Informtica.
Primero del Grado de Ingeniera Mecnica
Departamento de Tecnologa de la Informacin

Joseph Weizenbaum.