Vous êtes sur la page 1sur 12

UNIVERSIDAD DON BOSCO

FACULTAD DE ESTUDIOS TECNOLGICOS


ESCUELA DE COMPUTACION
GUIA DE LABORATORIO #03
CICLO: 01/ 2015

Nombre de la Practica:

Estructura Condicional y Selectiva en Lenguaje C/C++

Lugar de Ejecucin:

Centro de Computo

Tiempo Estimado:

2 horas y 30 minutos

MATERIA:

Introduccin a la Programacin

I. OBJETIVOS

Que el alumno sea capaz de:


Aplique correctamente las estructuras de decisin (IF simple y doble) dentro del cdigo
fuente de un programa en lenguaje C
Disee mens de varias opciones en un programa de C++, utilizando instrucciones if-else
Pueda aplicar la estructura de decisin (switch - case) dentro del cdigo fuente de un
programa
Disee mens de varias opciones en un programa de C++, utilizando switch- case
II. INTRODUCCION TEORICA

La Toma de decisiones en Lenguaje C


Con el lenguaje C++ puede tomar decisiones gracias a 2 estructuras:
a) Estructura if
b) Estructura switch
Este tipo de sentencias le permiten alterar la secuencia normal de pasos de su programa en
base a la redaccin de condiciones especficas.
A continuacin veremos sintaxis y uso de la estructura IF.
Estructura IF para toma de decisiones
A la estructura if se le define una condicin para as bifurcar la secuencia del programa en
una de dos alternativas posibles. De la siguiente manera:
a) Si se cumple la condicin ejecutar las Sentencias1.
b) Si no se cumplen la condicin, ejecutar las Sentencias2.
1

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

La sintaxis de la estructura IF se define as (COMPARE ATENTAMENTE LAS 2


REDACCIONES):
Lenguaje C
if(condicin) {
//Sentencias
si
condicin
Sentencias1
}
else {
//Sentencias
si
no
condicin
Sentencias2
}

Comparacin con el Pseudocdigo


Si (condicin) entonces

cumple

Sentencias si cumple condicin


Sentencias 1
Sino
Sentencias si no cumple condicin

cumple

Sentencias 2
Fin Si

Cada uno de los dos bloques de sentencias: el bloque i f (si se cumple condicin) y el bloque
e l s e (si no se cumple condicin), tiene una pareja de llaves de apertura-cierre { } para
indicar el inicio y final de las sentencias a realizar en cada caso dentro de la estructura
condicional if.
Los valores lgicos que utiliza C son los nmeros enteros: 1 (significa verdadero) y 0
(significa falso), por lo que al evaluar a una Condicin en un if:
a) si esta devuelve 1, se ejecuta el bloque de sentencias 1.
b) Si devuelve 0, se ejecuta el bloque de sentencias 2. Este bloque e l s e

} es

opcional, puede ser ignorado por el programador si lo cree as conveniente.


Las condiciones a evaluar por una estructura if puede ser de 2 tipos:
a) Simple

b) Compleja.

En una Condicin simple, se compara una variable con un valor o sino con otra variable,
gracias a los operadores relacionales de C++ que son los siguientes:
>

mayor que

<

menor que

>=

mayor o igual que

<=

menor o igual que

==

igual que

!=

Diferente a, No igual que

Introduccin a la Programacin

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

Algunos ejemplos de condiciones simples utilizadas dentro de un IF son los siguientes:


if (a>5)

if (Z<=12)

if (q != 0)

Una condicin compleja permite evaluar 2 o ms condiciones simples como

una sola

evaluacin lgica, gracias al uso de los operadores lgicos. Los operadores lgicos de C son
los siguientes:
Operador Descripcin de funcionamiento
lgico
&&

(Y lgico: AND/Y)
El operador "&&" equivale al "AND" o "Y"; devuelve 1 (verdadero) slo si las
dos expresiones evaluadas son verdaderas (true) o distintas de cero. En caso
contrario devuelve cero (falso). Si la primera expresin evaluada es falsa (false),
C no evala a la segunda y devuelve false.

||

( O lgico: OR/ O)
El operador "||" equivale al "OR" u "O inclusivo"; devuelve 1 (true) si
cualquiera de las expresiones evaluadas es verdadera (true) o distinta de cero,
en caso contrario devuelve 0 (false). Si la primera expresin evaluada es
verdadera 1, la segunda no se evala.

No lgico o negacin: (signo de admiracin NOT / negacin de).


El operador " ! " es equivalente al "NOT", o "NO", y devuelve "true" slo si la
expresin evaluada es falsa (false) o cero, en caso contrario devuelve "true".

La sintaxis de uso cada uno de estos operadores lgicos es:


(<expresin1> && <expresin2>)

(<expresin1> || <expresin2>)

! <Expresin>

Ejemplos de condiciones complejas utilizando los operadores lgicos dentro de un if:


if ((a>5)&&(Z<=12))
if ((Z>5)||(w<1))
if ((renta<=120)&&(AFP>45))
if ((a>0)||(b<=0)&&(n != a))
Introduccin a la Programacin

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

Anidamiento de estructuras de decisin


Se anidan colocando una en el interior de la otra
Diseo Pseudocdigo

Cdigo en C

Si ( condicin1 ) entonces

if( condicion1 )

..

Si (condicin2) entonces

if( condicion2 )

..

{ ..

fin si

fin si

Estructura de decisin SWITCH


La instruccin de seleccin switch es una instruccin de seleccin mltiple que permite
efectuar un grupo de acciones segn el resultado de evaluar una variable con una serie de
valores.
Esta variable al ser evaluada debe proporcionar

SINTAXIS DE INSTRUCCIN

como resultado un valor entero o, en ocasiones, un

SWITCH

carcter, de lo contrario generara resultados

switch (Variable) {

imprevistos. La sintaxis de switch se muestra en el

case'constante1':

cuadro a la derecha: La estructura de una sentencia

break;

switch comienza con la palabra reservada switch


seguida de un Variable entre parntesis. El valor de
esta variable es la que se quiere comparar con una

instrucciones1;
case'constante2':
instrucciones2;
break;
..
..

serie de valores definidos dentro de la sentencia

case'constanteN':

switch.

break;

Luego se definen una pareja de llaves { } que


limitan el cuerpo de switch. A continuacin, se
utilizan las etiquetas de seleccin Case., para definir
cada uno de los valores con los cuales se comparara
Introduccin a la Programacin

instruccionesN;
default:
instrucciones

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

a la variable. Esta palabra case debe tener como


argumento obligatoriamente constantes enteras, o
caracteres individuales sea bajo forma numrica o
simblica.
Normalmente, la sentencia switch compara en secuencia a la Variable con el valor definido en
cada Case. Si cumple que es igual al valor definido en un Case particular, desarrolla el
conjunto de Instrucciones definidas luego de los 2 puntos respectivos.

La instruccin break
Esta instruccin se utiliza para producir una salida inmediata de cualquier estructura de
control, ya sea selectiva mltiple (como el switch), o para producir la salida anticipada de un
ciclo o lazo de tipo while, dowhile o for. La ejecucin del programa contina con la primera
instruccin fuera de la estructura de control suspendida.

III. MATERIALES Y EQUIPO

Para la realizacin de la gua de prctica se requerir lo siguiente:


No
.

Requerimiento

Cantidad

Gua de Laboratorio #03 de IP

Compilador de C++.

Memoria USB

IV. PROCEDIMIENTO

1. Cree una carpeta con su nombre para que guarde sus archivos cpp de los ejercicios
solicitados:

Introduccin a la Programacin

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

2. Ahora desarrolle cada uno de los programas de C a continuacin, teniendo cuidado de


aplicar las reglas siguientes en cada cdigo fuente:

Cuide el uso de maysculas y minsculas en al redactar palabras reservadas y los


nombres de variables y/o funciones, ya que lenguaje C es sensible a maysculas y
minsculas.

Realice la compilacin respectiva, con el fin de generar el archivo .exe de aplicacin. En


caso de errores, compare cuidadosamente su cdigo con el redactado en el
procedimiento.

Desarrolle varias pruebas de ejecucin, ingresando diversos datos en cada prueba, para
construir una idea general del funcionamiento del programa!!

Cuando encuentre una nota de IMPORTANTE, al final de un cdigo, realice sin falta las
pruebas solicitadas ah, para deducir las respuestas apropiadas!!

1. Cdigo cpp del Programa E1_GUIA1IP.cpp Cmo saber cul de dos nmeros es mayor?
#include <stdio.h>
#include <stdlib.h>
//Para saber cual de dos numeros es mayor
int main(){
//declaracion variables de Entrada
int a=0,b=0;
//crea 2 variables enteras
printf("\n\tPrograma que determina cual de 2 numeros es el mayor
\n\n");
printf("Introduzca 1er numero:\t");
scanf("%d",&a);
printf("Ahora introduzca 2do numero a comparar:\t");
scanf("%d",&b);
if(a>b){
printf("\n%d el primero es el mayor...\n",a);
}
else{
if(a<b){
printf("\n%d el segundo es el mayor...\n",b);
}else {
printf("Los dos numeros son iguales\n");
}//fin if-2
}//fin if-1
system("pause"); //detiene ejecucion hasta que
UNA tecla
}//fin funcion principal main
Introduccin a la Programacin

usuario

presiona

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

IMPORTANTE:
-

Intente digitar un nmero decimal en lugar de uno de los nmeros enteros que espera
la aplicacin. Qu sucede con los resultados del programa?

2. Nombre de cdigo fuente E2_GUIA1IP.cpp Calcular el area de una figura geometrica?


Realice un programa en C que pregunte a usuario cual de los siguientes tipos de rea desea calcular:
1.rectngulo, 2..triangulo o 3.circulo, para luego pedir los datos apropiados y mostrar el rea final. Avise al
usuario cuando no seleccione opcin valida
/* programa de seleccion de area (rectangulo, triangulo y circulo)
y su calculo respectivo */
#i
#i
#i
#i

n
n
n
n

cl
cl
cl
cl

ud
ud
ud
ud

e
e
e
e

<iostream.h>
<conio.h> //porque usara funcion getch
<math.h> //usa funcion pow
<stdlib.h> //contiene funcion system

#define PI 3.141592 //declara valor de constante PI


main(){
//declaracion de variables a utilizar
//>>> entradas
char TipArea; //tipo de area a calcular
float lar,anc; //largo y ancho de rectangulo
float bas,alt; //base y altura de triangulo
float radio; //radio de circulo
//>>> salidas
float area=0; //resultado calculo area seleccionada
cout<<"***********************************\n";
cout<<"* PROGRAMA PARA CALCULOS DE AREAS *\n";
cout<<"***********************************";
cout<<"\n\nSeleccione letra de opcion de una de \n";
cout<<"las siguientes figuras para mostrarle su Area:\n";
cout<<"\n\t(a). Rectangulo\t(b). Triangulo\t(c). Circulo\n";
TipArea=getch();//captura UNA tecla presionada por usuario
if(TipArea=='a'){
system("cls"); //limpia contenido pantalla de ejecucion
//pide datos necesarios para determinar area del rectangulo
cout<<"\Escribe largo del rectangulo: "; cin>>lar;
cout<<"\ny ahora digite ancho del mismo: "; cin>>anc;
area=lar*anc;
cout<<"El
Area
de
rectangulo
es
de
"<<area<<"
metros
Introduccin a la Programacin

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++


cuadrados\n";
}else{
if(TipArea=='b'){
system("cls");
//pide datos necesarios para calcular area de triangulo
cout<<"\Escribe base y luego largo del triangulo:\n";
cin>>bas>>alt;
area=(bas*alt)/2;
cout<<"Area
del
triangulo
es
de
"<<area<<"
metros
cuadrados\n";
}else{
if(TipArea=='c'){
system("cls");
//pide los datos necesarios para calcular area circulo
cout<<"\nEscribe el Radio del Circulo:\t";
cin>>radio;
//la funcion pow calcula la potencia de un numero
area=PI*pow(radio,2); //invoca funcion pow
cout<<"\nEl
area
del
Circulo
es
de
"<<area<<"
metros
cuadrados\n";
}else{
cout<<"\n\n\t>>ERROR: No me diste una opcion valida
<<<\n\n";
}//fin tercer if-else
}//fin segundo if-else
}//fin primer if-else
system("pause"); //genera pausa en ejecucion de la aplicacion!!
}//fin funcion main

Introduccin a la Programacin

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++


3. Nombre de cdigo fuente E3_GUIA1IP.cpp Programa que te dir lo que ocurrir este da!!

4. Archivo cpp fuente del Programa E4_GUIA1IP.cpp: Determinar descuento a una tienda?
Pida a un cliente su total de compras y luego debe aplicarle un descuento segn la categora de descuento del
negocio. Al final mostrar cual es su categora de Descuento y su total a pagar (quitando el descuento). Las
categoras son las siguientes:
Categora

Si Total de Compras es...

Descuento (%)

menos de $ 52.7: no se aplica descuento

Ninguno

entre $ ( 52.7 y 806.3 )

10%

Mas de $ 806.3

20%

.
/* Programa para aplicar
compra */
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

una

categora

de

descuento

main(){
//Para un Cliente...
float TotCompras;//total de compras
int CatCli; // Categora de descuento(1,2,3) asignada
Introduccin a la Programacin

sobre

una

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++


float Desc; //Monto del descuento aplicado segn su Categora
char NombreC[20]; // Nombre del cliente que realiza la compra
printf("Ingrese el nombre del cliente:\t");
scanf("%s",&NombreC);//captura cadenas sin espacios
//gets(NombreC);//captura cadenas con espacios
printf("Ingrese su total de compras (en dolares $):\t");
scanf("%f",&TotCompras);
if(TotCompras<12.5){ //categoria 1
CatCli=1;
Desc=0;
}else if((TotCompras>=12.5)&&(TotCompras<=46.70)){
CatCli=2; //Categoria 2
Desc= 0.10; //Porcentaje 10%
}else{
CatCli=3; //Categora 3
Desc=0.20;//Porcentaje 20%
}//Fin ultimo if-else
system("color 4a");
//Se calcula el monto del descuento
Desc=Desc*TotCompras;
//Se aplica el descuento al total de compras
TotCompras=TotCompras-Desc;
printf("\n>
Cliente
%s
esta
en
la
categoria
%d",NombreC,CatCli);
printf("\n\tMonto de Descuento aplicado es $%.1f",Desc);
printf("\n\tMonto
final
del
Total
de
compras:
$%.2f\n\n",TotCompras);
system("pause");
}//fin de main

IMPORTANTE:
-

La cadena de texto 4a usada en llamada system("color 4a") representa un Byte


escrito en hexadecimal (de 2 digitos). Modifique 4a por otra pareja de digitos
hexadecimales diferentes, incluso pruebe despus con digitos iguales (Ej: bb o 55)
Qu sucede con los resultados del programa?

5. Programa E5_GUIA1IP: Bsqueda y correccin de errores en un cdigo fuente de C.


A continuacin se ofrece un programa que indica el cuadrante (1, 2, 3, 4) donde esta ubicado un punto con
coordenada X e Y.
/*
Programa
para
cartesiano */
#include<stdio.h>
#include<conio.h>
Introduccin a la Programacin

determinar

ubicacion

10

de

punto

en

plano

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++


main(){
//lista de variables a utilizar
int x,Y;//coordenadas punto P(x,y)
char cua; // num de cuadrante de ubicacion del punto P
printf("\t\tPrograma para determinar Cuadrante de Plano:\n");
printf("\nIngrese coordenadas (x,y) del punto a ubicar:\n");
scanf("%d%d",&x,&y);/lectura de coordenadas
if((x>0)&&(Y<0)){ cua='4';
else if((x<0)&&(Y<0)){ cua='3';
}else{
if(x>0) cua='1'; else cua='2';
}
printf("\n\nEl
punto
(%d
,
d)
%c",x,y,cua);

esta

ubicado

en

Cuadrante

system("pause);
}//fin de main

IMPORTANTE:
-

Este ltimo cdigo fuente presenta errores de todo tipo, no logra compilar.

Ubique y corrija los errores sintcticos que encuentre en el cdigo fuente, para lograr
generar el archivo ejecutable (.exe)
V. DISCUSION DE RESULTADOS

Ejercicio 1:
Realice los clculos necesarios para convertir una cantidad de dinero en una moneda inicial a otra
moneda final. Las monedas disponibles en el programa son a) Euro, b) Yen Japones, c) Peso Mexicano y
d) Dlares, segn la seleccin del usuario.
Ejemplo: el usuario puede indicar que su aplicacin determine: cuantos Yenes equivalen 24 Euros?,
cuanto equivale 45.34 dlares en Euros?

Ejercicio 2:
Realice un programa en C/C++ que permita a un cajero ingresar el precio individual ($) de un
producto y su total a vender (unidades). Luego se le muestra un men para ingresar el modo de pago.
Las tres formas de pago disponibles son:
Introduccin a la Programacin

11

Gua #: 03 Estructura Condicional y Selectiva en Lenguaje C+++

a) En Efectivo

b) con Cheque

c) Tarjeta de credito.

El programa le regresa (en $) al cajero:


a) el monto inicial a pagar (sin descuento), b) total de descuento aplicado y c) Monto final a pagar
(monto inicial menos descuento).
Tenga en cuenta que si el pago es en efectivo se aplicara un descuento del 12.4%, si paga con cheque se
realizar un descuento del 8.6%, y si paga con tarjeta de crdito se le aplicara un descuento del 4.21%.
Por ejemplo: si cajero registra venta de 21 productos con precio individual de $3.2 y paga con cheque,
la salida mostrar:
Precio de productos sin descuento: $ 67.20
Descuento aplicado: $ 5.78
Total a pagar: $ 61.42
Nota: Utilice Switch para el desarrollo de este ejercicio.

Ejercicio 3:
Presente el cod.fuente del Ejemplo 5 del procedimiento de esta prctica, pero ya corregido, que
funcione apropiadamente ante el usuario.
VII. BIBLIOGRAFIA

Metodologa de la Programacin: Diagramas de Flujo, Algoritmos y Programacin estructurada.


Joyanes Aguilar, Luis. No. De Clasificacin 005.1 J88 1998. Editorial: MCGRAW HILL
Cmo Programar en C/C++. Deitel, Harvey M... No. De Clasificacin 005.362 D325 1995 Editorial:
PRENTICE HALL

Introduccin a la Programacin

12

Vous aimerez peut-être aussi