sentencias de control 2010 if sabatino - …...ejemplo #1: calcule el total a pagar por la compra de...

24
2010 UNAN – LEON FACULTAD DE CIENCIA Y TECNOLOGIA Departamento de Computación Autor: MSc. Ana María Salgado G. Asignatura: Programación II Ingeniería en Sistemas Sabatino SENTENCIAS DE CONTROL SENTENCIA if Este documento es una extracción del libro Programación en C, metodología, estructura de datos y objetos, de Luis Joyanes Aguilar e Ignacio Zahonero Martínez. Fue recopilado por la MsC. Ana María Salgado G. y completado con ejercicios obtenidos de otros textos e Internet.

Upload: others

Post on 16-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

2010

UNAN – LEON

FACULTAD DE CIENCIA Y TECNOLOGIA

Departamento de Computación

Autor: MSc. Ana María Salgado G.

Asignatura:

Programación II

Ingeniería en Sistemas Sabatino

SENTENCIAS DE CONTROL SENTENCIA if

Este documento es una extracción del libro Programación en C, metodología, estructura de datos y objetos, de Luis Joyanes Aguilar e Ignacio Zahonero Martínez. Fue recopilado por la MsC. Ana María Salgado G. y completado con ejercicios obtenidos de otros textos e Internet.

Page 2: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 2

ESTRUCTURAS DE CONTROL

Las estructuras de control controlan el flujo de ejecución de un programa o

función. Las estructuras de control permiten combinar instrucciones o sentencias

individuales en una simple unidad lógica con un punto de entrada y un punto de

salida.

Las instrucciones o sentencias se organizan en tres tipos de estructuras de control

que sirven para controlar el flujo de la ejecución: secuencia, selección y repetición.

Hasta este momento sólo se ha utilizado el flujo secuencial. Una sentencia

compuesta es un conjunto de sentencias encerradas entre llaves ({ y } ) que se

utiliza para especificar un flujo secuencial.

{

sentencia1;

sentencia2;

.

.

.

sentencian;

}

El control fluye de la sentencia1, a la sentencia2, y así sucesivamente. Sin embargo

existen problemas que requieren etapas con dos o más opciones o alternativas a

elegir en función del valor de una condición o expresión.

Page 3: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 3

LA SENTENCIA if

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

dos alternativas o formatos posibles. El formato más sencillo tiene la sintaxis

siguiente:

if(condición)

sentencia;

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 llega a la sentencia if dentro de un programa, se evalúa la condición

entre paréntesis que viene a continuación de if. Si condición es verdadera, se

ejecuta sentencia; en caso contrario no se ejecuta sentencia. En cualquier caso la

ejecución del programa continúa con la siguiente sentencia del programa.

Ejemplo #1:

Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre

la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses

siempre y cuando estos excedan a $7000, y en ese caso desea saber cuánto dinero

tendrá finalmente en su cuenta.

Pseudocódigo:

Inicio

Leer p_int, cap

interes = cap * p_int

Si int > 7000 entonces

capf = cap + interes

Fin-si

Imprimir capf

Fin

Page 4: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 4

Solución en Lenguaje C:

//if1.c

#include <stdio.h>

float p_int, cap, interes, capf;

void main(void)

{

printf("Introduzca su capital inicial: ");

scanf("%g", &cap);

printf("Cual es el porcentaje de interes?: ");

scanf("%g", &p_int);

interes = cap * p_int;

if(interes > 7000)

capf = cap + interes;

printf("El capital final es: %.2f\n",capf);

}

Ejecución:

Page 5: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 5

Ejemplo #2:

Este programa lee dos números enteros y comprueba cuál es el valor del resto de

la división (n %d). Si el resto es cero, n es divisible por d (en nuestro caso 36 es

divisible por 4, ya que 36 / 4 = 9 y el resto es 0)

Pseudocódigo:

Inicio Leer n,d Si (n mod d = 0) entonces

Imprimir n, “es divisible por “,d Fin-si Fin

Solución en Lenguaje C:

//divisibilidad.c

#include <stdio.h>

void main(void)

{

int n, d;

printf("Introduzca dos enteros:");

scanf("%d %d",&n,&d);

if(n % d = = 0)

printf("%d es divisible por %d \n",n,d);

}

Ejecución:

Page 6: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 6

Ejemplo #3:

Construya un programa tal, que dados como datos los valores enteros P y Q,

determine si los mismos satisfacen la siguiente expresión:

P3 + Q4 – 2P2 < 680

En caso afirmativo debe imprimir los valores de P y Q.

//expresion.c

#include <stdio.h>

#include <math.h>

int p,q,r;

void main(void)

{

printf("Introduzca dos enteros:");

scanf("%d %d",&p,&q);

r = pow(p,3) + pow(q,4) – 2 * pow(p,2);

if(r < 680)

printf("p = %d, q = %d, r = %d\n",p,q,r);

}

Ejemplo #4: La tangente de un ángulo se define como el cociente entre el seno y el coseno de

dicho ángulo.

tan(αααα) = sen(αααα)

cos(αααα)

Construya un programa, que permita calcular la tangente de un ángulo,

considerando que se conoce el valor del seno y del coseno del mismo.

//tang.c

#include <stdio.h>

float seno,coseno,tang;

void main(void )

{

printf("seno= ");

Page 7: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 7

scanf("%f",&seno);

printf("coseno= ");

scanf("%f",&coseno);

if(coseno != 0)

{

tang=seno/coseno;

printf("El valor de la tangente es: %.4f",tang);

}

}

Ejemplo #5:

El siguiente ejercicio, visualiza la tarifa de luz según el gasto de corriente

eléctrica. Para un gasto menor de 1000Kw por hora, la tarifa es 1.2, entre 1000 y

1850Kw por hora es 1.0 y mayor de 1850Kw por hora es 0.9

Pseudocódigo:

Inicio

TARIFA1 = 1.2

TARIFA2 = 1.0

TARIFA3 = 0.9

Leer gasto

Si(gasto < 1000) entonces

tasa = TARIFA1;

Fin-si

Si(gasto >= 1000 and gasto <= 1850) entonces

tasa = TARIFA2;

Fin-si

Si(gasto > 1850)

tasa = TARIFA3;

Fin-si

Imprimir "Tasa que le corresponde a “,gasto, “Kw x h es de “, tasa

Fin

Page 8: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 8

Solución en Lenguaje C:

//tarifaluz.c

#include <stdio.h>

#define TARIFA1 1.2

#define TARIFA2 1.0

#define TARIFA3 0.9

void main()

{

float gasto, tasa;

printf("\n Gasto de corriente: ");

scanf("%f",&gasto);

if(gasto < 1000)

tasa = TARIFA1;

if(gasto >=1000 && gasto <= 1850)

tasa = TARIFA2;

if(gasto > 1850)

tasa = TARIFA3;

printf("\n Tasa que le corresponde a %.1f Kw x h es de %f \n",gasto, tasa);

}

Ejercicios propuestos

1. Escriba un programa que compare un número introducido por el usuario y

compruebe si el número es positivo, negativo o nulo.

2. En un almacén se hace un 20% de descuento a los clientes cuya compra

supere los $1000 ¿Cuál será la cantidad que pagará una persona por su

compra?

Page 9: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 9

3. El número de sonidos emitidos por un grillo en un minuto, es una función

de la temperatura. Como resultado de esto, es posible determinar el nivel

de la temperatura haciendo uso de un grillito como termómetro. La

fórmula para la función es:

t = n/4 + 40

Escriba un programa que le permita calcular la temperatura, teniendo en

cuenta el número de sonidos emitidos por el grillo.

SENTENCIA if DE DOS ALTERNATIVAS: if – else

Un segundo formato de la sentencia if es la sentencia if-else. Este formato de la

sentencia if tiene la siguiente sintaxis:

if(condición)

sentencia1

else

sentencia2

condición Expresión lógica que determina la acción a ejecutar.

sentencia1 Acción que realiza si la condición lógica es verdadera.

sentencia2 Acción que se ejecuta si la expresión lógica es falsa.

En este formato sentencia1 y sentencia2 son individualmente, o bien una única

sentencia que termina con punto y coma(;) o un grupo de sentencias encerrado

entre llaves. Se evalúa la condición. Si condición es verdadera, se ejecuta

sentencia1 y en caso contrario se ejecuta sentencia2.

Page 10: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 10

Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o

más se aplica un descuento del 20% sobre el total de la compra y si son menos

de tres camisas un descuento del 10%.

//descuento.c

#include <stdio.h>

int numcamisas;

float prec, totcomp,totpag;

void main(void)

{

printf("Cuantas camisas comprara?");

scanf("%d",&numcamisas);

printf("Ingrese el precio:");

scanf("%f",&prec);

totcomp = numcamisas * prec;

if(numcamisas >= 3)

totpag = totcomp - totcomp * 0.20;

else

totpag = totcomp - totcomp * 0.10;

printf("Total a pagar = %.2f \n",totpag);

}

Ejemplo #2:

Calcular el número de pulsaciones que debe tener una persona por cada 10

segundos de ejercicio aeróbico; la fórmula que se aplica cuando el sexo es

femenino es:

numpulsaciones = (220 - edad)/10

y si el sexo es masculino:

numpulsaciones = (210 - edad)/10

Page 11: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 11

//pulsaciones.c

#include <stdio.h>

int edad, numpulsaciones;

char sexo;

void main(void)

{

printf("Sexo(F/M):");

sexo = getchar();

printf("Ingrese la edad:");

scanf("%d",&edad);

if(sexo == 'F' || sexo == 'f')

numpulsaciones = (220 - edad)/10;

else

numpulsaciones = (210 - edad)/10;

printf("Numero de pulsaciones = %d \n",numpulsaciones);

}

Ejemplo #3:

Una compañía de seguros está abriendo un dpto. de finanzas y estableció un

programa para captar clientes, que consiste en lo siguiente: Si el monto por el

que se efectúa la fianza es menor que $50 000 la cuota a pagar será por el 3% del

monto, y si el monto es mayor que $50 000 la cuota a pagar será el 2% del monto.

La afianzadora desea determinar cuál será la cuota que debe pagar un cliente.

//fianza.c

#include <stdio.h>

float montofianza, cuota;

void main(void)

{

printf("Ingrese el monto de la fianza:");

scanf("%f",&montofianza);

Page 12: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 12

if(montofianza < 50000)

cuota = montofianza * 0.03;

else

cuota = montofianza * 0.02;

printf("Cuota = %.2f \n",cuota);

}

Ejemplo #4: Una empresa quiere hacer una compra de varias piezas de la misma clase a una

fábrica de refacciones. La empresa, dependiendo del monto total de la compra,

decidirá qué hacer para pagar al fabricante.

Si el monto total de la compra es $500 000 ó más, la empresa tendrá la

capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir

prestado al banco un 30% y el resto lo pagará solicitando un crédito al fabricante.

Si el monto total de la compra no excede de $500 000, la empresa tendrá

capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagará

solicitando crédito al fabricante.

El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le

pague a crédito. Realice el pseudocódigo correspondiente al programa en

Lenguaje C presentado:

//refacciones.c

#include <stdio.h>

float costopza, totcomp, cantinv, prestamo, credito, interes;

int numpza;

void main( )

{

printf("Costo de la pieza: ");

scanf("%f", &costopza);

printf("Numero de piezas: ");

scanf("%d", &numpza);

totcomp = costopza * numpza;

Page 13: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 13

if(totcomp >= 500000)

{

cantinv = totcomp * 0.55;

prestamo = totcomp * 0.30;

credito = totcomp * 0.15;

}

else

{

cantinv = totcomp * 0.70;

prestamo = 0;

credito = totcomp * 0.30;

}

interes = credito * 0.20;

printf("\nCantidad invertida: %.2f\nPrestamo:%.2f\n",cantinv, prestamo);

printf("Credito = %.2f\nIntereses = %.2f\n",credito, interes);

}

Ejemplo #5: Escriba un programa que determine si un número entero, es divisible por otro

número entero, leídos ambos del teclado.

//divisibilidad2.c

#include <stdio.h>

void main(void)

{

int n, d;

printf("Introduzca dos enteros:");

scanf("%d %d",&n,&d);

if(n % d = = 0)

printf("%d es divisible por %d \n",n,d);

else

printf("%d no es divisible por %d \n",n,d);

}

Page 14: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 14

Ejemplo #6: Dada la función f(x) calcular la función para un valor dado x y visualizarlo en

pantalla.

x2 – x para x <= 0.0

-x2 + 3x para x > 0

//funcion.c

#include <stdio.h>

#include <math.h>

void main()

{

float f, x;

printf("Elige un valor de x: ");

scanf("%f",&x);

/* seleccion del rango en que se encuentra x */

if(x <= 0.0)

f = pow(x,2) - x;

else

f = -pow(x,2) + 3 * x;

printf("f(%.1f) = %.3f", x,f);

}

f(x)=

Page 15: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 15

Ejercicios propuestos

1. Un obrero necesita calcular su salario semanal, el cual se obtiene de la

siguiente manera:

• Si trabaja 40 horas o menos se le paga $16 por hora

• Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40

horas y $20 por cada hora extra.

2. Determinar si un alumno aprueba o reprueba un curso, sabiendo que

aprobará si su promedio de tres calificaciones es mayor o igual a 70;

reprueba en caso contrario. Para ambos casos, imprima también su

promedio.

3. Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber

cuántas calorías consume su cuerpo durante todo el tiempo que realice una

misma actividad. Las actividades que tiene permitido realizar son

únicamente dormir o estar sentado en reposo. Los datos que tiene son que

estando dormido consume 1.08 calorías por minuto y estando sentado en

reposo consume 1.66 calorías por minuto.

4. Calcular el mayor de dos números leídos del teclado y visualizarlo en

pantalla.

5. Calcular el total que una persona debe pagar en una llantera, si el precio de

cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se

compran 5 o más.

6. Una empresa de bienes raíces ofrece casas de interés social, bajo las

siguientes condiciones: Si los ingresos del comprador son $8000 o más, el

enganche será del 15% del costo de la casa y el resto se distribuirá en pagos

mensuales, a pagar en diez años. Si los ingresos del comprador son menos

de $8000, el enganche será del 30% del costo de la casa y el resto se

distribuirá en pagos mensuales a pagar en 7 años. La empresa quiere

obtener cuanto debe pagar un comprador por concepto de enganche y

cuanto por cada pago parcial.

Page 16: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 16

7. Una persona desea iniciar un negocio, para lo cual piensa verificar cuánto

dinero le prestará el banco por hipotecar su casa. Tiene una cuenta bancaria,

pero no quiere disponer de ella a menos que el monto por hipotecar su casa

sea muy pequeño. Si el monto de la hipoteca es menor que $1 000 000

entonces invertirá el 50% de la inversión total y un socio invertirá el otro

50%. Si el monto de la hipoteca es de $ 1 000 000 o más, entonces invertirá el

monto total de la hipoteca y el resto del dinero que se necesite para cubrir la

inversión total se repartirá a partes iguales entre el socio y él.

SENTENCIAS 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 o multialternativas.

Sintaxis:

if(condición1)

sentencia1

else if(condición2)

sentencia2

.

.

. else if(condición n)

sentencia n

else

sentencia e

Page 17: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 17

Ejemplo:

/* incrementar contadores de números positivos, números negativos o ceros */

La ejecución de la sentencia if anidada se realiza como sigue:

Se comprueba la primera condición (x > 0); si es verdadera, num_pos se incrementa

en 1 y se salta el resto de la sentencia if. Si la primera condición es falsa, se

comprueba la segunda condición (x < 0); si es verdadera num_neg se incrementa en

uno; en caso contrario se incrementa num_ceros en uno. Es importante considerar

que la segunda condición se comprueba sólo si la primera condición es falsa.

Ejemplo #1: Haga un programa que permita calcular el valor de f(x), según la expresión:

X2 si (x mod 4)=0

X/6 si (x mod 4)=1

√√√√x si (x mod 4)=2

x3 + 5 si (x mod 4)=3

if (x > 0) num_pos = num_pos + 1; else

if(x < 0) num_neg = num_neg + 1; else num_ceros = num_ceros + 1;

f(x)=

Page 18: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 18

//if3.c

#include <stdio.h>

#include <math.h>

int x;

float y ;

void main(void)

{

printf("x = ");

scanf("%d",&x);

if (x % 4 == 0)

y = x * x;

else if (x % 4 == 1)

y = (float)x / 6;

else if(x % 4 == 2)

y = sqrt((double)x);

else if(x % 4 == 3)

y = pow(x,3) + 5;

printf(" y = %.2f \n ",y);

}

Ejemplo #2: Leer tres números enteros diferentes e imprimir el número mayor de los tres.

Pseudocódigo:

Inicio

Leer num1, num2, num3

Si (num1 > num2) and (num1 > num3) entonces

mayor = num1

si no

Si (num2 > num1) and (num2 > num3) entonces

mayor = num2

si no

Page 19: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 19

mayor = num3

Fin-si

Fin-si

Imprimir mayor

Fin

Solución en Lenguaje C:

//mayor.c

#include <stdio.h>

void main(void)

{

int num1, num2, num3, mayor;

printf("Introduzca tres enteros diferentes: ");

scanf("%d %d %d", &num1, &num2, &num3);

if((num1 > num2) && (num1 > num3))

mayor = num1;

else if((num2 > num1) && (num2 > num3))

mayor = num2;

else

mayor = num3;

printf("El mayor es %d \n",mayor);

}

Ejemplo #3:

Una frutería ofrece las manzanas con descuento según la siguiente tabla:

NUM. DE KILOS COMPRADOS % DESCUENTO

0 - 2 0%

2.01 - 5 10%

5.01 - 10 15%

10.01 en adelante 20%

Determinar cuánto pagará una persona que compre manzanas es esa frutería.

Page 20: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 20

//manzanas.c

#include <stdio.h>

float nkilos,compra, pkilo,pago, descuento;

void main(void)

{

printf("Cuantos kilos de manzana comprara?:");

scanf("%f",&nkilos);

printf("Precio del kilo?:");

scanf("%f",&pkilo);

compra = nkilos * pkilo;

if(nkilos >= 0 && nkilos <= 2)

descuento = 0;

else if(nkilos >= 2.01 && nkilos <= 5)

descuento = compra * 0.10;

else if(nkilos >= 5.01 && nkilos <= 10)

descuento = compra * 0.15;

else

descuento = compra * 0.20;

pago = compra - descuento;

printf("Pago = %.2f\n",pago);

}

Ejemplo #4:

El IMSS requiere clasificar a las personas que se jubilaran en el año de 1997.

Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por

antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener

60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas

adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y

una antigüedad en su empleo de 25 años o más.

Las personas adscritas a la jubilación por antigüedad adulta deben tener

60 años o más y una antigüedad en su empleo de 25 años o más.

Determinar en qué tipo de jubilación, quedara adscrita una persona.

Page 21: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 21

//jubilacion.c

#include <stdio.h>

int edad,ant;

void main(void)

{

printf("Edad?:");

scanf("%d",&edad);

printf("Antiguedad?:");

scanf("%d",&ant);

if(edad >= 60 && ant < 25)

printf("La jubilacion es por edad\n");

else if(edad < 60 && ant >= 25)

printf("La jubilacion es por antiguedad joven\n");

else if(edad >= 60 && ant >= 25)

printf("La jubilacion es por antiguedad adulta.\n");

else

printf("No tiene por que jubilarse\n");

}

Ejemplo #5: En una tienda de descuento se efectúa una promoción en la cual se hace un

descuento sobre el valor de la compra total según el color de la bolita que el cliente

saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento

alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul

un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deberá

pagar por su compra. Se sabe que sólo hay bolitas de los colores mencionados. Se

presenta su psudocódigo, realice el programa correspondiente en Lenguaje C:

Page 22: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 22

Inicio

leer tc, b

si b = “blanco” entonces

d = 0

si no

si b = “verde” entonces

d = tc*0.10

si no

si b = “amarilla” entonces

d = tc*0.25

si no

si b = “azul” entonces

d = tc*0.50

si no

d = tc

Fin-si

Fin-si

Fin-si

Fin-si

Tpagar = tc – d

Imprimir Tpagar

Fin

Solución en lenguaje C:

//colorbolita.c

#include <stdio.h>

#include <string.h>

float tc, d, tpagar;

char color[20];

void main(void)

{

printf("Ingrese el total de la compra: ");

scanf("%f",&tc);

printf("Color de la bolita?: ");

fflush(stdin);

gets(color);

Page 23: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 23

if(strcmp(color, "blanco") == 0)

d=0;

else if(strcmp(color,"verde") == 0)

d = tc*0.10;

else if(strcmp(color,"amarilla") == 0)

d = tc*0.25;

else if(strcmp(color,"azul") == 0)

d= tc*0.50;

else

d = tc;

tpagar = tc - d;

printf("Total a pagar = %.2f\n", tpagar);

}

Ejercicios propuestos

1. Leer 2 números enteros; si son iguales que los multiplique, si el primero es

mayor que el segundo que los reste y si no que los sume.

2. Calcular la utilidad que un trabajador recibe en el reparto anual de

utilidades si este se le asigna como un porcentaje de su salario mensual que

depende de su antigüedad en la empresa de acuerdo con la sig. tabla:

Tiempo Utilidad

Menos de 1 año 5 % del salario

1 año o más y menos de 2 años 7% del salario

2 años o más y menos de 5 años 10% del salario

5 años o más y menos de 10 años 15% del salario

10 años o más 20% del salario

Page 24: sentencias de control 2010 if SABATINO - …...Ejemplo #1: Calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre

Sentencias de control

MSc. Ana María Salgado G. 24

3. Un individuo debe realizar un muestreo para determinar en qué categoría

se encuentran las personas que viven en su zona habitacional. Se

determinan las categorías con base en la siguiente tabla:

CATEGORIA EDAD

Niños 0 - 12

Jóvenes 13 - 29

Adultos 30 - 59

Viejos 60 en adelante

4. Determinar la cantidad de dinero que recibirá un trabajador por concepto de

las horas extras trabajadas en una empresa, sabiendo que cuando las horas

de trabajo exceden de 40, el resto se consideran horas extras y que estas se

pagan al doble de una hora normal cuando no exceden de 8; si las horas

extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las

horas normales y el resto al triple.

5. En una fábrica de computadoras se planea ofrecer a los clientes un

descuento que dependerá del número de computadoras que compre. Si las

computadoras son menos de cinco se les dará un 10% de descuento sobre el

total de la compra; si el número de computadoras es mayor o igual a cinco

pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se

les da un 40% de descuento. El precio de cada computadora es de $11,000

6. La Cía. Automovilística Mexicana, S.A. de C.V premia anualmente a sus

mejores vendedores de acuerdo a la siguiente tabla:

Si vendió Le corresponde de Comisión

sobre ventas totales

1,000,000 <= v < 3,000,000 3%

3,000,000 <= v < 5,000,000 4%

5,000,000 <= v < 7,000,000 5%

7,000,000 <= v 6%

Diseñar un programa que lea las ventas de un vendedor y que escriba la comisión

que le corresponde.