You are on page 1of 10

Universidad Nacional Autónoma de Nicaragua UNAN-León

Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C

GUÍA DE LABORATORIO #3

ESTRUCTURAS ALGORÍTMICAS CONDICIONALES “SIMPLES, DOBLES Y MÚLTIPLES”

OBJETIVO:

 Realizar programas en Lenguaje C aplicando las estructuras condicionales.

TEMPORIZACIÓN:

Inicio de la Práctica: 03/05/2013.

Tiempo de Desarrollo de la Práctica de Laboratorio: 1 Sesió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.

En C existen 3 estructuras condicionales: if(condicional simple), if-else(condicional doble), else


if (condicional múltiple).

LA SENTENCIA if

En C, la estructura de control de selección principal es una sentencia if. La sentencia if tiene


dos alternativas o formatos posibles. La sintaxis de la sentencia if es:

if (condición)
sentencia(s);

Condición: es una expresión entera (lógica).


Sentencia: es cualquier sentencia ejecutable, que se ejecutará sólo si la condición toma un
valor distinto de cero.

La sentencia if funciona de la siguiente manera. Cuando se alcanza la sentencia if dentro de un


programa, se evalúa la condición, si es verdadera, se ejecuta la sentencia(s); en caso contrario
no se ejecuta. En cualquier caso la ejecución del programa continúa con la siguiente sentencia
del programa.

2
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C

Ejemplo #1: Programa que verifica si un número es divisible por otro.


//divisible.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);
}

Ejemplo#2: Programa que verifica si un número es positivo, negativo o nulo.


//verificar.c
#include<stdio.h>
void main()
{
int numero;
printf("Introduzca un numero: " ) ;
scanf ("%d",&numero);
if (numero>0)
printf ("%d es POSITIVO\n",numero);
if (numero<0)
printf ("%d es NEGATIVO\n",numero);
if (numero==0)
printf ("%d es CERO\n",numero);
}

EJECUCIÓN CONDICIONAL DOBLE: LA INSTRUCCIÓN if-else

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.

En lenguaje C, la estructura selectiva if-else se escribe de la siguiente forma:

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

Observemos la representación gráfica de esta estructura:

Ejemplo #3: Programa que verifica si un número es divisible por otro.

//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

EJECUCIÓN CONDICIONAL MÚLTIPLE: LA INSTRUCCIÓN if-else anidadas

Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa, es a su


vez una sentencia if. Una sentencia if anidada se puede utilizar para implementar decisiones
con varias alternativas.

if(condición)
Sentencia(s);
else if(condición)
Sentencia(s);
else if (condición )
Sentencia(s);
else
Sentencia(s);

Sangría en las sentencias if anidadas:

El formato muitibifurcación se compone de una serie de sentencias if anidadas, que se pueden


escribir en cada línea una sentencia if. La sintaxis multibifurcación anidada es:

Ejemplo#5: Programa que verifica si un número es positivo, negativo o nulo.


//verificar2.c
#include <stdio.h>
void main()
{
int numero;
printf("Introduzca un numero: " ) ;
scanf ("%d",&numero);

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:

Realice para cada uno de los siguientes enunciados su correspondiente pseudocódigo y


programa en C:

1. Leer un número y escribir el valor absoluto del mismo. Nota: Resuelva utilizando una
estructura condicional simple.

2. El Director de ISI Sabatino desea implementar un programa de descuento en la


mensualidad de los estudiantes universitarios de acuerdo al promedio obtenido en las
asignaturas que cursan, el cual consiste en lo siguiente: si el promedio obtenido por un alumno
en el último período es mayor o igual que 80 se le hará un descuento del 25% sobre la(s)
mensualidad y no se le cobrará IVA; si el promedio es menor que 80 deberá pagar la(s)
mensualidad completa más 15% de IVA. Calcular e imprimir cuanto debe pagar un alumno.
Nota: Resuelva utilizando una estructura condicional doble.

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.

4. Se leen ternas de números A, B, y op, se pide realizar un pseudocódigo que visualice el


resultado de las operaciones de acuerdo al código de operación op:
• Si op = ‘+’ entonces A + B
• Si op = ‘-’ entonces A - B
• Si op = ‘*’ entonces A * B
• Si op = ‘/’’ entonces A /B
Nota: 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.

SENTENCIA DE CONTROL switch

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.

Sintaxis con break:

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

Ejemplo #7: Dadas la cantidad de horas trabajadas, la categoría y la antigüedad de un


empleado, calcular el sueldo teniendo en cuenta que cobra $5 adicionales por cada año
trabajado.
El valor de la hora para cada categoría es:
• Categoría 1: $5
• Categoría 2: $6
• Categoría 3: $4.5
• Categoría 4: $10
• Categoría 5: $9

Utilice el valor de la categoría como selector del switch.


//categoría.c
#include<stdio.h>
#include<stdlib.h>
void main()
{
int nht,cat,ant;
float sueldo=0.0,pxh;
printf("Introduzca la cantidad de horas trabajadas:");
scanf("%d",&nht);
printf("Introduzca su antiguedad: ");
scanf("%d",&ant);
printf("Introduzca la categoria (1-5): ");
scanf("%d",&cat);
switch(cat)
{
case 1:
pxh=5;
break;
case 2:
pxh=6;
break;
case 3:
pxh=4.5;
break;
case 4:
pxh=10;
break;
case 5:
pxh=9;
break;
default:
printf("\nCategoria Invalida\n");
}
sueldo=(nht*pxh)+(ant*5);
printf("\nPor su categoria de empleado #%d su salario es: $ %.2f\n",cat,sueldo);
}

9
Universidad Nacional Autónoma de Nicaragua UNAN-León
Departamento de Computación
Laboratorio #3: Estructuras Condicionales en C

EJERCICIOS PROPUESTOS (switch)

1. Realice un pseudocódigo que lea por teclado un número entre 1 y 12 correspondiente al


de un mes e imprima el número de días correspondiente a dicho mes. Nota: Si el número
de día introducido es menor que 1 o mayor que 12, se mostrará el mensaje “MES
INCORRECTO”. Nota: Resuelva utilizando una estructura Según
Ejemplo:
Introduzca número de mes: 2
Salida:
El mes 2 tiene 28 días.

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.

Clave Ciudad Descuento


1 León 2%
2 Chinandega 10%
3 Managua 15%
4 Estelí 18%
5 Jinotega 20%

El valor de la mensualidad es de: C$ 250,67.

10

You might also like