Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
GUÍA DE LABORATORIO #3
OBJETIVO:
TEMPORIZACIÓN:
1
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
INTRODUCCIÓN:
En la mayoría de los programas en C que hemos encontrado hasta el momento, las instrucciones
se ejecutaban en el mismo orden en que aparecían en el programa. Cada instrucción se
ejecutaba una única vez. Los programas que se suelen escribir en la práctica no son tan
sencillos como éstos, ya que los que hemos visto no incluyen ningún tipo de elementos de
control lógico. En particular, en estos programas no aparecen comprobaciones de condiciones
que sean verdaderas o falsas ni aparece la ejecución repetida de grupos individuales de
instrucciones de forma selectiva. La mayoría de los programas de interés práctico hacen uso
intenso de estos elementos.
Por ejemplo, muchos programas requieren que se efectúe una comprobación lógica en algún
punto concreto de los mismos. A continuación se realizará alguna acción que dependerá del
resultado del test lógico. Esto se conoce como ejecución condicional. Existe también una clase
especial de ejecución condicional, llamada selección, en la que se selecciona un grupo de
instrucciones entre varios grupos disponibles.
LA SENTENCIA if
if (condición)
sentencia(s);
2
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
La estructura selectiva doble if–else permite que el flujo del programa se bifurque por dos
ramas diferentes en el punto de la toma de decisión. Si al evaluar la condición el resultado es
verdadero, entonces se sigue por un camino específico – el de la izquierda – y se ejecuta una
acción determinada o un conjunto de ellas. Si el resultado de la evaluación es falso, entonces
se sigue por otro camino – el de la derecha – y se realiza(n) otra(s) acción(es). En ambos casos,
luego de ejecutar las acciones correspondientes, se continúa con la secuencia normal del
diagrama de flujo.
if (expresión-lógica)
sentencia(s);
else
sentencia(s);
3
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
//divisible2.c
#include<stdio.h>
void main( )
{
int div1,div2;
printf ( "Introduzca dos enteros: " ) ;
scanf ("%d %d",&div1,&div2);
if(div1%div2 ==0)
printf ( " %d es divisible por %d\n",div1,div2);
else
printf ( " %d NO es divisible por %d\n",div1,div2);
}
Ejemplo #4: Programa que permite calcular el mayor de dos números leídos del teclado y
visualizarlo en pantalla.
//mayor.c
#include <stdio.h>
void main( )
{
int n1,n2;
printf ( "Introduzca dos enteros: ");
scanf ("%d %d", &n1, &n2) ;
if (n1>n2)
printf("%d es el MAYOR\n",n1);
else
printf("%d es el MAYOR\n",n2);
}
4
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
if(condición)
Sentencia(s);
else if(condición)
Sentencia(s);
else if (condición )
Sentencia(s);
else
Sentencia(s);
5
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
if (numero > 0)
printf ("%d es POSITIVO\n",numero);
else if (numero < 0)
printf ("%d es NEGATIVO\n",numero);
else
printf ("%d es CERO\n",numero);
}
EJERCICIOS PROPUESTOS:
1. Leer un número y escribir el valor absoluto del mismo. Nota: Resuelva utilizando una
estructura condicional simple.
3. En la Librería Parra las personas que van a pagar el importe de su compra llegan a la
caja y sacan de una caja un número que les indicará el valor del descuento que tendrán sobre el
total de su compra. Tomar en cuenta lo siguiente:
• Si el número es 1: Descuento 20% y no se le aplica el IVA.
• Si el número es 2: Descuento 15% más IVA.
• Si el número es 3: Descuento 18% y no se le aplica el IVA.
Nota: Sólo hay 3 posibilidades de números en la caja.
Resuelva utilizando una estructura condicional múltiple.
6
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
5. En un supermercado han realizado una campaña bastante original. En la caja, una vez
calculado el importe de la compra, se le solicita al cliente que extraiga de una bolsa una de las
10 esquelas que hay dentro. Las esquelas están numeradas del 1 al 10 y tienen premio según la
siguiente tabla:
• Esquelas 1, 2, 3 se le descuenta al cliente un 2% de la compra.
• Esquela 7 Se le descuenta un 10%.
• Esquelas 9 y 10 Se le descuenta un 4%.
• Esquela 8 Se les descuenta 5%.
• Las restantes no tienen premio.
La sentencia switch es una sentencia C que se utiliza para seleccionar una de entre múltiples
alternativas. La sentencia switch es especialmente útil cuando la selección se basa en el valor
de una variable simple o de una expresión simple denominada expresión de control o selector.
El valor de esta expresión puede ser de tipo int o char, pero no de tipo float ni double.
Sintaxis:
La expresión de control o selector se evalúa y se compara con cada una de las etiquetas de
case. La expresión selector debe ser un tipo ordinal (por ejemplo, int , char, pero no float o
string). Cada etiqueta es un valor Único, constante y cada etiqueta debe tener un valor
diferente de los otros. Es habitual que después de cada bloque de sentencias correspondiente
a una secuencia se desee terminar la ejecución del switch; para ello se sitúa la sentencia break
como última sentencia del bloque. break hace que siga la ejecución en la siguiente sentencia
switch.
7
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
Si el valor del selector no está listado en ninguna etiqueta case, no se ejecutará ninguna de las
opciones a menos que se especifique una acción por defecto (omisión). La omisión de una
etiqueta default puede crear un error lógico difícil de prever. Aunque la etiqueta default es
opcional, se recomienda su uso a menos que se esté absolutamente seguro de que todos los
valores de selector estén incluidos en las etiquetas case.
Una sentencia break consta de la palabra reservada break seguida por un punto y coma. Cuando
la computadora ejecuta las sentencias siguientes a una etiqueta case, continúa hasta que se
alcanza una sentencia break. Si la computadora encuentra una sentencia break, termina la
sentencia switch. Si se omiten las sentencias break, después de ejecutar el código de case, la
computadora ejecutará el código que sigue a la siguiente case.
Ejemplo #6: Programa que verifica si un determinado carácter es una vocal o una
consonante.
//caracter.c
#include<stdio.h>
#include<stdlib.h>
void main()
{
char car;
printf("Introduzca el caracter:");
scanf("%c",&car);
switch(car)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
printf("%c es una VOCAL\n",car);
break;
default:
printf("%c es una CONSONANTE\n",car);
}
}
8
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
9
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C
2. Realice un pseudocódigo del siguiente enunciado: El valor del descuento que se le aplica
a cada estudiante de la UCC depende de la ciudad de procedencia. Tome en cuenta la
siguiente tabla, que permita calcular el descuento que se realiza a un estudiante e
imprimir cuál es la cantidad de dinero que deja de percibir el administrador de la
Universidad en concepto de descuento.
10