Você está na página 1de 8

Estructuras Condicionales

Las estructuras condicionales en C utilizan el concepto expresiones booleanas. A

printf("\nEl valor es positivo \n");


return 0;

continuacin se muestra un sencillo ejemplo en lenguaje C del uso de estructuras


condicionales
#include <stdio.h>

}
En este ejemplo, la estructura condicional despues de la primera aparicin de
else: if(valor == 0) evalua por un valor de cero y si es cierto C imprimir el mensaje
"El valor es cero", el segundo else corresponde a la ocurrencia de un valor positivo,

int main()
{
int valor;

en este caso no se evaluan ms condiciones debido a que luego de haber evaluado


las dos expresiones booleanas, solo queda la opcin de que el valor sea positivo y

printf("Digite un valor entero :");


scanf("%d", &valor);
if (valor < 0)
printf("\nEl valor es negativo\n");
return 0;
}
Este programa lee un nmero entero digitado por el usuario. Luego el programa
prueba el valor usando una estructura condicional simple para verificar si el nmero
es negativo. S lo es, el programa imprime el mensaje: "El valor es negativo". En otro
caso, el programa no hace nada. El (b < 0)es la parte de la estructura condicional
que se denomina Expresin Booleana. C evalua (determina si es cierta o falsa) para
decidir cuando imprimir o no imprimir el mensaje. Si la espresin booleana se evala
a verdadero (True), entonces C ejecuta el bloque de instrucciones (dentro de llaves
{}) o la instruccin que sigue a la estructura condicional. S la expresin booleana es
falsa (False), entonces C salta el bloque de instruciones o la instruccin que sigue a
la estructura condicional.
A continuacin se muestra un ejemplo un poco ms complejo:
#include <stdio.h>
int main()
{
int valor;
printf ("Enter a value:");
scanf("%d", &valor);
if (valor < 0)
printf("\nEl valor es negativo\n");
else
if (valor == 0)
printf("\nEl valor es cero\n");
else

por lo tanto no es necesario evaluar algo como if (valor>0).


Operadores Booleanos en lenguaje C:
Los operadores booleanos son los que debemos utilizar en lenguaje C para construir
expresiones booleanas, que determinarn la ejecucin de algunas partes del
programa. A continuacin se listan los principales operadores booleanos utilizados
en el lenguaje C:
Igualdad:
==
Mayor que:
>
Menor que:
<
Mayor o igual que: >=
Menor o igual que: <=
Diferente:
!=
Y lgico (AND): &&
O lgico (OR):
||
Negacin (NOT): !
Ejercicios Resueltos (Instruciones secuenciales y estructuras condicionales)

Ejercicio 1:- En un estacionamiento cobran $/. 1.500 por hora o fraccin. Disee un
algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su
vehculo, conociendo el tiempo de estacionamiento en horas y minutos.
Algoritmo 1

Ejercicio 2:- Disee un algoritmo que determine si n nmero es o no es, par


positivo.
Algoritmo

INICIO
// Declaracin de variables
ENTERO horas, minutos
REAL pago
// Entrada de datos
LEER horas, minutos
// Si hay alguna fraccin de hora, incrementa las horas a pagar en una unidad
SI( minutos > 0 )
horas = horas + 1
// Determina el importe a pagar
pago = horas * 1.500
// Salida de resultados
IMPRIMIR pago
FIN

INICIO
// Declaracin de variables
REAL numero
CADENA tipoNumero
// Entrada de datos
LEER numero
// Determina si el nmero es o no es, par positivo
SI( (numero%2==0) && (numero>0) )
tipoNumero = "El nmero es par positivo"
SINO
tipoNumero = "El nmero no es par positivo"
// Salida de resultados
IMPRIMIR tipoNumero
FIN

Ejercicio 3:- Un supermercado ha puesto en oferta la venta al por mayor de cierto


producto, ofreciendo un descuento del 15% por la compra de ms de 3 docenas y
10% en caso contrario. Adems por la compra de ms de 3 docenas se obsequia una
unidad del producto por cada docena en exceso sobre 3. Disee un algoritmo que
determine el monto de la compra, el monto del descuento, el monto a pagar y el
nmero de unidades de obsequio por la compra de cierta cantidad de docenas del
producto.
Algoritmo

obsequio = docenas-3
}
SINO{
montodes = 0.10*montocom
obsequio = 0
}
// Determina el monto a pagar
montopag = montocom - montodes
// Salida de resultados
IMPRIMIR montocom, montodes, montopag, obsequio
FIN
Ejercicio 4:- Disee un algoritmo que lea un nmero de tres cifras y determine si es
igual al revs del nmero.
Observacin
Como el nmero tiene tres cifras, para que sea igual al revs, basta con que la cifra
de las unidades sea igual a la cifra de las centenas. Por ejemplo: 353, 878, etc.
Algoritmo

INICIO
// Declaracin de variables
REAL montopag, montocom, montodes, precio
ENTERO docenas, obsequio
// Entrada de datos
LEER docenas, precio
// Determina el monto de la compra
montocom = docenas*precio
// Determina el monto del descuento y el obsequio
SI( docenas > 3 ){
montodes = 0.15*montocom

INICIO
// Salida de resultados
ENTERO numero, unidades, centenas
CADENA tipoNumero
// Entrada de datos
LEER numero
// Si el nmero tiene tres cifras...
SI(numero >99 && numero < 1000 ){
// Determina la cifra de las unidades y la cifra de las centenas
unidades = numero%10
centenas = int(numero/100)
// Determina si el nmero es igual al inverso
SI( unidades == centenas )
tipoNumero = "El nmero es igual al inverso"
SINO
tipoNumero = "El nmero no es igual al inverso"
// Muestra el tipo de nmero
IMPRIMIR tipoNumero
}
SINO
IMPRIMIR "Debe ingresar un nmero de tres cifras"
FIN
Ejercicio 5:- Una compaa dedicada al alquiler de automoviles cobra un monto fijo
de $300000 para los primeros 300 km de recorrido. Para ms de 300 km y hasta 1000
km, cobra un monto adicional de $ 15.000 por cada kilmetro en exceso sobre 300.
Para ms de 1000 km cobra un monto adicional de $ 10.000 por cada kilmetro en
exceso sobre 1000. Los precios ya incluyen el 20% del impuesto general a las ventas,
IVA. Disee un algoritmo que determine el monto a pagar por el alquiler de un
vehculo y el monto includo del impuesto.
INICIO
// Declaracin de variables
REAL kilomrec, montopag, montoiva, montofijo = 300000, iva = 0.20
// Entrada de datos
LEER kilomrec
// Determina el monto a pagar
SI( kilomrec <= 300 )
montopag = montofijo
SINO SI( kilomrec <= 1000 )
montopag = montofijo + 15000*(kilomrec-300)
SINO
montopag = montofijo + 15000*700 + 10000*(kilomrec-1000)

// Determina el monto del impuesto


montoiva = iva*montopag
// Salida de resultados
IMPRIMIR montopag, montoiva
FIN

Ejercicio 6:- Disee un algoritmo que determine quienes son contemporneos entre
Juan, Mario y Pedro.
Algoritmo

contemporaneos = "Juan y Pedro son contemporneos"


SINO
SI(EdadMario == EdadPedro)
contemporaneos = "Mario y Pedro son contemporneos"
SINO
contemporaneos = "No hay contemporneos"
// Salida de resultados
IMPRIMIR contemporaneos
FIN
Ejercicio 7:- El promedio de prcticas de un curso se calcula en base a cuatro prcticas
calificadas de las cuales se elimina la nota menor y se promedian las tres notas ms
altas. Disee un algoritmo que determine la nota eliminada y el promedio de
prcticas de un estudiante.
Algoritmo

INICIO
// Declaracin de variables
ENTERO EdadJuan, EdadMario, EdadPedro
CADENA contemporaneos
// Entrada de datos
LEER EdadJuan, EdadMario, EdadPedro
// Determina quienes son contemporneos
SI(EdadJuan == EdadMario && EdadMario == EdadPedro)
contemporaneos = "Los tres son contemporneos"
SINO
SI(EdadJuan == EdadMario)
contemporaneos = "Juan y Mario son contemporneos"
SINO
SI(EdadJuan == EdadPedro)

Ejercicio 8:- Disee un algoritmo que lea tres longitudes y determine si forman o no
un tringulo. Si es un tringulo determine de que tipo de tringulo se trata entre:
equiltero (si tiene tres lados iguales), issceles (si tiene dos lados iguales) o escaleno
(si tiene tres lados desiguales). Considere que para formar un tringulo se requiere
que: "el lado mayor sea menor que la suma de los otros dos lados".
Algoritmo

INICIO
// Declaracin de variables
REAL pc1, pc2, pc3, pc4, pcmenor, promedio
// Entrada de datos
LEER pc1, pc2, pc3, pc4
// Determina la nota menor
pcmenor = pc1
SI( pc2 < pcmenor )
pcmenor = pc2
SI( pc3 < pcmenor )
pcmenor = pc3
SI( pc4 < pcmenor )
pcmenor = pc4
// Determina el promedio
promedio = (pc1 + pc2 + pc3 + pc4 - pcmenor )/3
// Salida de resultados
IMPRIMIR promedio, pcmenor
FIN

SI( ( L1 == L2 ) && ( L2 == L3 ) )
tipoTriangulo= "Tringulo equiltero"
SINO SI( ( L1 == L2 ) || ( L1 == L3 ) || ( L2 == L3 ) )
tipoTriangulo= "Tringulo issceles"
SINO
tipoTriangulo= "Tringulo escaleno"
}
SINO
tipoTriangulo= "No es un tringulo"
// Salida de resultados
IMPRIMIR tipoTriangulo
FIN
Ejercicio 9:- Disee un algoritmo que lea un nmero entero de 3 cifras, y forme el
mayor nmero posible con las cifras del nmero ingresado. El nmero formado
debe tener el mismo signo que el nmero ingresado.
INICIO
// Declaracin de variables
ENTERO num1, num2, numaux, uni, dec, cen, menor, mayor,medio
// Entrada de datos
LEER num1
// Si el nmero tiene tres cifras...
SI( ( num1 >= 100 && num1 <= 999 ) || ( num1 >= -999 && num1 <= -100 ) ){
INICIO
// Declaracin de variables
REAL L1, L2, L3, suma
CADENA tipoTriangulo
// Entrada de datos
LEER L1, L2, L3<
// Determina el lado mayor
mayor = L1
SI( L2 > mayor )
mayor = L2
SI( L3 > mayor )
mayor = L3
// Determina la suma de los lados a excepcin del lado mayor
suma = L1 + L2 + L3 - mayor
// Determina de que tipo de tringulo se trata
SI( mayor < suma ){

// Guarda el nmero en una variable auxiliar para preservar el signo


numaux = num1
// Cambia el signo de num1 en caso de ser negativo
SI( num1 < 0 )
num1 = -num1
// Determina las cifras del nmero
cen = num1/100
dec = (num1%100)/10
uni = (num1%100)%10
// Determina la cifra menor
menor = cen
SI( dec < menor )
menor = dec

SI( uni < menor )


menor = uni
// Determina la cifra mayor
mayor = cen
SI( dec > mayor )
mayor = dec
SI( uni > mayor )
mayor = uni
// Determina la cifra del medio
medio = cen+dec+uni-mayor-menor
// Forma el nuevo nmero
SI( numaux > 0 )
num2 = mayor*100 + medio*10 + menor
SINO
num2 = -1*(menor*100 + medio*10 + mayor)
// Imprime el nuevo nmero
IMPRIMIR num2
}
SINO
IMPRIMIR "El nmero no tiene tres cifras"
FIN

Você também pode gostar