Está en la página 1de 67

it forces boys

Foto tomada de freedigitalphotos.net

Como ya hemos pasado por el captulo 5 del curso bsico de C, donde veamos los
bucles, vamos a resolver esta tanda de ejercicios antes de plantear otros 25 para
afianzar los ltimos conocimientos adquiridos.
Realice un programa en C:
1. Que pida un nmero del 1 al 5 y diga si es primo o no.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
printf("Introduzca nmero del 1 al 5:");
scanf("%d",&i);
if (i!=4) {
printf("Es primo.");
}
else
{
printf("No es primo.");
}
system("PAUSE");
return 0;
}
2. Que pida un nmero y diga si es par o impar.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
printf("Introduzca nmero:");
scanf("%d",&i);
if (i%2==0) {
printf("Es par.");
}
else
{
printf("Es impar.");
}

system("PAUSE");
return 0;
}
3. Que pida un nmero del 1 al 7 y diga el da de la semana correspondiente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
printf("Introduzca nmero del 1 al 7:");
scanf("%d",&i);
switch(i){
case 1:
printf ("Lunes\n");
break;
case 2:
printf ("Martes\n");
break;
case 3:
printf ("Mircoles\n");
break;
case 4:
printf ("Jueves\n");
break;
case 5:
printf ("Viernes\n");
break;
case 6:
printf ("Sbado\n");
break;
case 7:
printf ("Domingo\n");
break;
default:
printf ("Opcin no vlida\n");
break;
}
system("PAUSE");
return 0;
}
4. Que pida un nmero del 1 al 12 y diga el nombre del mes correspondiente.
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i;
printf("Introduzca nmero del 1 al 12:");
scanf("%d",&i);
switch(i){
case 1:
printf ("Enero\n");
break;
case 2:
printf ("Febrero\n");
break;
case 3:
printf ("Marzo\n");
break;
case 4:
printf ("Abril\n");
break;
case 5:
printf ("Mayo\n");
break;
case 6:
printf ("Junio\n");
break;
case 7:
printf ("Julio\n");
break;
case 8:
printf ("Agosto\n");
break;
case 9:
printf ("Septiembre\n");
break;
case 10:
printf ("Octubre\n");
break;
case 11:
printf ("Noviembre\n");
break;
case 12:
printf ("Diciembre\n");
break;
default:
printf ("Opcin no vlida\n");
break;
}
system("PAUSE");

return 0;
}
5. Que pida 3 nmeros y los muestre en pantalla de menor a mayor.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1<num2 && num1<num3)
{
if (num2<num3)
{
printf("%d",num1);
printf("%d",num2);
printf("%d",num3);
}
else
{
printf("%d",num1);
printf("%d",num3);
printf("%d",num2);
}
}
else if (num2<num1 && num2<num3)
{
if (num1<num3)
{
printf("%d",num2);
printf("%d",num1);
printf("%d",num3);
}
else
{
printf("%d",num2);
printf("%d",num3);
printf("%d",num1);
}

}
else if (num3<num1 && num3<num2)
{
if (num1<num2)
{
printf("%d",num3);
printf("%d",num1);
printf("%d",num2);
}
else
{
printf("%d",num3);
printf("%d",num2);
printf("%d",num1);
}
}
system("PAUSE");
return 0;
}
6. Que pida 3 nmeros y los muestre en pantalla de mayor a menor.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1>num2 && num1>num3)
{
if (num2>num3)
{
printf("%d",num1);
printf("%d",num2);
printf("%d",num3);
}
else
{
printf("%d",num1);

printf("%d",num3);
printf("%d",num2);
}
}
else if (num2>num1 && num2>num3)
{
if (num1>num3)
{
printf("%d",num2);
printf("%d",num1);
printf("%d",num3);
}
else
{
printf("%d",num2);
printf("%d",num3);
printf("%d",num1);
}
}
else if (num3>num1 && num3>num2)
{
if (num1>num2)
{
printf("%d",num3);
printf("%d",num1);
printf("%d",num2);
}
else
{
printf("%d",num3);
printf("%d",num2);
printf("%d",num1);
}
}
system("PAUSE");
return 0;
}
7.

Que pida 3 nmeros y los muestre en pantalla de mayor a menor en lneas


distintas. En caso de haber nmeros iguales se pintan en la misma lnea.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");

scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1>num2 && num1>num3)
{
if (num2>num3)
{
printf("%d\n",num1);
printf("%d\n",num2);
printf("%d\n",num3);
}
else if (num3>num2)
{
printf("%d\n",num1);
printf("%d\n",num3);
printf("%d\n",num2);
}
else
{
printf("%d\n",num1);
printf("%d",num3);
printf("%d\n",num2);
}
}
else if (num2>num1 && num2>num3)
{
if (num1>num3)
{
printf("%d\n",num2);
printf("%d\n",num1);
printf("%d\n",num3);
}
else if (num3>num1)
{
printf("%d\n",num2);
printf("%d\n",num3);
printf("%d\n",num1);
}
else
{
printf("%d\n",num2);
printf("%d",num3);
printf("%d\n",num1);
}
}

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


{
if (num1>num2)
{
printf("%d\n",num3);
printf("%d\n",num1);
printf("%d\n",num2);
}
else if (num2>num1)
{
printf("%d\n",num3);
printf("%d\n",num2);
printf("%d\n",num1);
}
else
{
printf("%d\n",num3);
printf("%d",num2);
printf("%d\n",num1);
}
}
else
{
printf("%d",num1);
printf("%d",num2);
printf("%d",num3);
}
system("PAUSE");
return 0;
}
8. Que pida un nmero y diga si es positivo o negativo.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
if (num1>0){
printf("Es positivo\n");
}
else if (num1<0){
printf("Es negativo\n");
}

else
{
printf("Es cero\n");
}
system("PAUSE");
return 0;
}
9. Que slo permita introducir los caracteres S y N.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
printf("Introduzca un carcter:");
scanf("%c",&c);
if (c=='s' || c=='n' ){
printf("Es correcto\n");
}
else
{
printf("Es incorrecto\n");
}
system("PAUSE");
return 0;
}
10. Que pida un nmero y diga si es mayor de 100.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1;
printf("Introduzca un nmero:");
scanf("%d",&num1);
if (num1>100){
printf("Es mayor\n");
}
else
{

printf("Es menor\n");
}
system("PAUSE");
return 0;
}
11. Que pida una letra y detecte si es una vocal.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
printf("Introduzca un carcter:");
scanf("%c",&c);
switch (c)
{
case 'a':
printf ("Es vocal\n");
break;
case 'e':
printf ("Es vocal\n");
break;
case 'i':
printf ("Es vocal\n");
break;
case 'o':
printf ("Es vocal\n");
break;
case 'u':
printf ("Es vocal\n");
break;
default:
printf ("No es vocal\n");
break;
}
system("PAUSE");
return 0;
}
12. Que pida tres nmeros y detecte si se han introducido en orden creciente.
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1<num2)
{
if (num2<num3)
{
printf("Orden creciente");
}
else
{
printf("No estn introducidos en orden creciente ");
}
}
else
{
printf("No estn introducidos en orden creciente ");
}
system("PAUSE");
return 0;
}
13. Que pida tres nmeros y detecte si se han introducido en orden decreciente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);

if (num1>num2)
{
if (num2>num3)
{
printf("Orden decreciente");
}
else
{
printf("No estn introducidos en orden decreciente ");
}
}
else
{
printf("No estn introducidos en orden decreciente ");
}
system("PAUSE");
return 0;
}
14. Que pida 10 nmeros y diga cul es el mayor y cual el menor.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int
num1,num2,num3,num4,num5,num6,num7,num8,num9,num10,mayor,menor;
mayor=0;
menor=10;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
if (num1>mayor)
{
mayor=num1;
}
else if (num1<menor)
{
menor=num1;
}
printf("Introduzca nmero 2:");
scanf("%d",&num2);
if (num2>mayor)

{
mayor=num2;
}
else if (num2<menor)
{
menor=num2;
}
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num3>mayor)
{
mayor=num3;
}
else if (num3<menor)
{
menor=num3;
}
printf("Introduzca nmero 4:");
scanf("%d",&num4);
if (num4>mayor)
{
mayor=num4;
}
else if (num4<menor)
{
menor=num4;
}
printf("Introduzca nmero 5:");
scanf("%d",&num5);
if (num5>mayor)
{
mayor=num5;
}
else if (num5<menor)
{
menor=num5;
}
printf("Introduzca nmero 6:");
scanf("%d",&num6);
if (num6>mayor)
{
mayor=num6;

}
else if (num6<menor)
{
menor=num6;
}
printf("Introduzca nmero 7:");
scanf("%d",&num7);
if (num7>mayor)
{
mayor=num7;
}
else if (num7<menor)
{
menor=num7;
}
printf("Introduzca nmero 8:");
scanf("%d",&num8);
if (num8>mayor)
{
mayor=num8;
}
else if (num8<menor)
{
menor=num8;
}
printf("Introduzca nmero 9:");
scanf("%d",&num9);
if (num9>mayor)
{
mayor=num9;
}
else if (num9<menor)
{
menor=num9;
}
printf("Introduzca nmero 10:");
scanf("%d",&num10);
if (num10>mayor)
{
mayor=num10;
}
else if (num10<menor)

{
menor=num10;
}
printf("El mayor es:%d\n",mayor);
printf("El menor es:%d\n",menor);
system("PAUSE");
return 0;
}
15. Que pida tres nmeros e indicar si el tercero es igual a la suma del primero y el
segundo.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1+num2==num3)
{
printf("El tercer nmero es la suma de los dos primeros.\n");
}
else
{
printf("El tercer nmero NO es la suma de los dos primeros.\n");
}
system("PAUSE");
return 0;
}
16. Que muestre un men que contemple las opciones Archivo, Buscar y Salir,
en caso de que no se introduzca una opcin correcta se notificar por pantalla.
#include <stdio.h>
#include <stdlib.h>
int main(void)

{
int opcion;
printf("Seleccione opcin:\n");
printf("1 - Archivo\n");
printf("2 - Buscar\n");
printf("3 - Salir\n");
scanf("%d",&opcion);
if (opcion!=1 && opcion!=2 && opcion!=3)
{
printf("La opcin NO es correcta.\n");
}
else
{
printf("La opcin es correcta.\n");
}
system("PAUSE");
return 0;
}
17. Que tome dos nmeros del 1 al 5 y diga si ambos son primos.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2;
printf("Introduzca nmero del 1 al 5:");
scanf("%d",&num1);
printf("Introduzca nmero del 1 al 5:");
scanf("%d",&num2);
if (num1!=4 && num2!=4) {
printf("Ambos son primos.\n");
}
else
{
printf("Los nmeros, o uno de ellos, no son primos.\n");
}
system("PAUSE");
return 0;
}
18. Que tome dos nmeros y diga si ambos son pares o impares.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2;
printf("Introduzca primer nmero:");
scanf("%d",&num1);
printf("Introduzca segundo nmero:");
scanf("%d",&num2);
if (num1%2==0 && num2%2==0) {
printf("Ambos son pares.\n");
}
else
{
printf("Los nmeros, o uno de ellos, no son pares.\n");
}
system("PAUSE");
return 0;
}
19. Que tome tres nmeros y diga si la multiplicacin de los dos primeros es igual al
tercero.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1*num2==num3)
{
printf("El tercer nmero es la multiplicacin de los dos primeros.\n");
}
else
{
printf("El tercer nmero NO es la multiplicacin de los dos primeros.\n");

}
system("PAUSE");
return 0;
}
20. Que tome tres nmeros y diga si el tercero es el resto de la divisin de los dos
primeros.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
printf("Introduzca nmero 1:");
scanf("%d",&num1);
printf("Introduzca nmero 2:");
scanf("%d",&num2);
printf("Introduzca nmero 3:");
scanf("%d",&num3);
if (num1%num2==num3)
{
printf("El tercer nmero es el resto de la divisin de los dos primeros.\n");
}
else
{
printf("El tercer nmero NO es el resto de la divisin de los dos primeros.\n");
}
system("PAUSE");
return 0;
}
21. Que muestre un men donde las opciones sean Equiltero, Issceles y
Escaleno, pida una opcin y calcule el permetro del tringulo seleccionado.
Sirva de aclaracin que el permetro de un tringulo es siempre la suma de sus lados,
pero he preferido hacerlo as para ver las tres formas diferentes de calcularlo.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int lado, base, opcion;

printf("Introduzca lado del tringulo:");


scanf("%d",&lado);
printf("Introduzca base del tringulo:");
scanf("%d",&base);
printf("Seleccione opcin:\n");
printf("1 - Equiltero\n");
printf("2 - Issceles\n");
printf("3 - Escaleno\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
printf("El permetro es:%d\n",3*lado);
break;
case 2:
printf("El permetro es:%d\n",(2*lado)+base);
break;
case 3:
printf("El permetro es:%d\n",lado + lado + lado);
break;
default:
printf("Opcin no vlida.");
break;
}
system("PAUSE");
return 0;
}
22. Que pase de Kg a otra unidad de medida de masa, mostrar en pantalla un men
con las opciones posibles.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int peso;
printf("Introduzca peso en kilogramos:");
scanf("%d",&peso);
printf("Seleccione opcin:\n");
printf("1 - Hectogramos\n");
printf("2 - Decagramos\n");
printf("3 - Gramos\n");

printf("4 - Decigramos\n");
printf("5 - Centigramos\n");
printf("6 - Miligramos\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
printf("El peso es:%d\n",peso/10);
break;
case 2:
printf("El peso es:%d\n",peso/100);
break;
case 3:
printf("El peso es:%d\n",peso/1000);
break;
case 4:
printf("El peso es:%d\n",peso/10000);
break;
case 5:
printf("El peso es:%d\n",peso/100000);
break;
case 6:
printf("El peso es:%d\n",peso/1000000);
break;
default:
printf("Opcin no vlida.");
break;
}
system("PAUSE");
return 0;
}
23. Que lea un importe bruto y calcule su importe neto, si es mayor de 15.000 se le
aplicar un 16% de impuestos, en caso contrario se le aplicar un 10%.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float importe, deduccion;
printf("Introduzca Importe:");
scanf("%f",&importe);
if (importe>15000)
{

deduccion=importe*0.16;
}
else
{
deduccion=importe*0.1;
}
printf("El importe neto es %f euros\n",importe-deduccion);
system("PAUSE");
return 0;
}
24. Que lea una hora en hora:minutos:segundos y diga la hora que es un segundo
despus.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int horas, minutos, segundos;
printf("Introduzca Hora:");
scanf("%d",&horas);
printf("Introduzca Minutos:");
scanf("%d",&minutos);
printf("Introduzca Segundos:");
scanf("%d",&segundos);
segundos=segundos+1;
if (minutos>59)
{
minutos=0;
}
if (horas>23)
{
horas=0;
}
if (segundos>59)
{
segundos=0;
minutos=minutos+1;
if (minutos>59)
{
minutos=0;

horas=horas+1;
if (horas>23)
{
horas=0;
}
}
}
printf("La hora (un segundo despus) es: %02d:%02d:%02d \n", horas, minutos,
segundos);
system("PAUSE");
return 0;
}
25. Que calcule el sueldo que le corresponde al trabajador de una empresa que cobra
40.000 euros anuales, el programa debe realizar los clculos en funcin de los
siguientes criterios:
a.
b.
c.
d.

Si lleva ms de 10 aos en la empresa se le aplica un aumento del 10%.


Si lleva menos de 10 aos pero ms que 5 se le aplica un aumento del 7%.
Si lleva menos de 5 aos pero ms que 3 se le aplica un aumento del 5%.
Si lleva menos de 3 aos se le aplica un aumento del 3%.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float importe, aumento;
int antiguedad;
importe=40000;
printf("Introduzca la antigedad del trabajador:");
scanf("%d",&antiguedad);
if (antiguedad>=10)
{
aumento=importe*0.1;
}
else if (antiguedad<10 && antiguedad>=5)
{
aumento=importe*0.07;
}
else if (antiguedad<5 && antiguedad>=3)
{
aumento=importe*0.05;
}
else

{
aumento=importe*0.03;
}
printf("El sueldo que
euros\n",importe+aumento);

le

corresponde

al

trabajador

es

de

%f

system("PAUSE");
return 0;
}
Qu os parecen los ejercicios?
Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con
Facebook
- See more at: http://programavideojuegos.blogspot.com/2013/05/25-ejerciciosresueltos-de-estructuras.html#sthash.sORX9Om0.dpuf
Inicio > C++, Programacion > Programas Condicionales (Estructuras IF, SWITCH,
WHILE, DO WHILE) [Programas resueltos C++]

Programas Condicionales (Estructuras IF, SWITCH,


WHILE, DO WHILE) [Programas resueltos C++]
enero 13, 2011 locoraphael Deja un comentario Ir a los comentarios
Programas Condicionales (Estructuras IF, SWITCH, WHILE, DO WHILE)
La programacin de Condicin o programacin Condicional consiste en afirmar una
expresin, si sta es verdadera se procede a realizar una instruccin, sino se realiza otra
instruccin, se le conoce tambin como instruccin IF. Por ejemplo:

La programacin de Caso o instruccin SWITCH es tambin de condicin con un grado


ms complejo. Se requiere de casos para validar una expresin. Por ejemplo:

Existe una tercera y es la instruccin DO WHILE, consiste en hacer determinadas


instrucciones mientras la condicin que le asignamos sea valida. Por ejemplo:

Estos 3 casos se pueden mezclar para un mejor desempeo del programa estructurado. A
continuacin 3 problemas para un mejor entendimiento.
Problema 1 Condicional: Dado como dato el sueldo de un trabajador, considere un
aumento del 15% si su sueldo es inferior a 1000 y de un 12% en caso contrario.
Imprima el sueldo con el aumento incorporado.
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
float Sueldo, Total, Aumento;
system (color F0);
cout<<\n\t***EJERCICIO 1 CONDICIONAL IF***\n\n;
cout<<\tDado como dato el sueldo de un trabajador, considere un aumento\n;
cout<<\tSi su sueldo es menor a 1000 se hara del 15%\n;
cout<<\tSi su sueldo es mayor o igual a 1000 se hara del 12%\n;
cout<<\tImprima el sueldo con el aumento incorporado\n\n;
cout<<\tEscriba el sueldo del trabajador\n\t;
cin>>Sueldo;
if (Sueldo<1000)
{
Aumento=Sueldo*.15;
Total=Sueldo+Aumento;
}
else
{
Aumento=Sueldo*.12;
Total=Sueldo+Aumento;
}
cout<<\n\tSu aumento es de: <<Aumento<< pesos\n;
cout<<\tEl sueldo con aumento es de: <<Total<< pesos\n\n\t;
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}

DESCARGAR CODIGO FUENTE .CPP


Use la estructura IF ELSE, la ms sencilla de programacin condicional.
Se declararon las variables FLOAT por puntos decimales.
Se uso la condicin SI (Sueldo<1000) para realizar el porcentaje.
No era necesario poner el Aumento, pero para un mejor entendimiento lo agregue.
Problema No. 2 de estructura SWITCH: Dado como datos la matricula de un
alumno, el semestre en el que est inscrito, y promedio, determine si el mismo es apto
para pertenecer alguna de las profesiones que tiene la universidad. Si el alumno es
aceptado teniendo en cuenta las especificaciones que se listan abajo se debe imprimir su
matrcula, carrera y la palabra Aceptado

Ingeniera

Semestre > 6 y Promedio >= 8.8

Medicina

Semestre >=6 y Promedio > 8.5

Licenciatura

Semestre > 5 y Promedio >=8.3

Tcnico

Semestre >=3 y Promedio >=7.8

#include <cstdlib>

#include <iostream>
using namespace std;
int main()
{
char Carrera;
int Matricula, Semestre;
float Promedio;
system (color F0);
cout<<\n\t***EJERCICIO 2 ESTRUCTURA SWITCH***\n<<endl;
cout<<\tDados los datos de la matricula de un alumno,\n;
cout<<\tsu semestre y su promedio, determine si el mismo es apto \n;
cout<<\tpara pertenecer a alguna de las profesiones que tiene la universidad.\n;
cout<<\tSi el alumno es aceptado teniendo en cuenta las especificaciones\n;
cout<<\tque se listan abajo, se debe imprimir su matricula, tipo de \n;
cout<<\tprofesion y su aprobacion\n\n;
cout<<\tPara entrar a Ingenieria Semestre > 6 y Promedio >= 8.8\n;

cout<<\tPara entrar a Medicina Semestre >=6 y Promedio > 8.5\n;


cout<<\tPara entrar a Licenciatura Semestre > 5 y Promedio >= 8.3\n;
cout<<\tPara entrar a Tecnico
Semestre >=3 y Promedio >= 7.8\n\n;
cout<<(\tEscriba el numero de Matricula\n\t);
cin>>Matricula;
cout<<(\n\tEscriba el promedio\n\t);
cin>>Promedio;
cout<<(\n\tEscriba el Semestre\n\t);
cin>>Semestre;
cout<<\n\tProfesion a elegir (Escribir en MAYUSCULA la letra)\n\t;
cout<<[I = Ingenieria , M = Medicina , L = Licenciatura , T = Tecnico]\n\t;
cin>>Carrera;
switch (Carrera)
{
caseI:
if (Semestre>6)
{
if (Promedio>=8.8)
{
cout<<\n\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
caseM:
if (Semestre>=6)
{
if (Promedio>8.5)
{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{

cout<<\n\tNo Aprobado\n\n\t;
}
break;
caseL:
if (Semestre>5)
{
if (Promedio>=8.3)
{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
caseT:
if (Semestre>=3)
{
if (Promedio>=7.8)
{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
}
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}

DESCARGAR CODIGO FUENTE.CPP


Use la estructura SWITCH, mas complicada que la anterior.
Declare CHAR en la variable Carrera pero tambin pude declararla STRING.
Cuando se decide la Carrera, opte por teclear solo 1 letra en mayscula, si lo desean
pueden quitarlo y optar por escribir toda la palabra, sera igual ;)
El RETURN 0 no es necesario, puedes poner EXIT_SUCCES y sale igual .
En Promedio declare FLOAT la variable por puntos decimales, no todos sacamos 10 ;D
Problema No. 3 de Estructura IF. En una tienda efectan un descuento a los clientes
dependiendo del monto de la compra. El descuento se efecta con base en el siguiente
criterio.
Si el monto es menor que 500 no hay descuento
Si el monto est comprendido entre 500 y 1000 inclusive, el desc es de 5%
Si el monto est comprendido entre 1000 y 7000 inclusive, el desc es del 11%
Si el monto est comprendido entre 7000 y 15000 inclusive, el desc es del 18%
Si el monto es mayor de 15000 el desc es del 25%

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
float Compra, Total;
system (color F0);
cout<<\n\t***EJERCICIO 3 CONDICIONAL IF***\n;
cout<<\n En una tienda efectuan descuento a los clientes;
cout<<\n dependiendo del monto de la compra. El descuento;
cout<<\n se efectuan con base en los siguientes criterios.;
cout<<\n\n *Si el monto es menor que 500 no hay descuento;
cout<<\n *Si la compra es entre 500 y menor a 1000 hay descuento de 5%;
cout<<\n *Si la compra es entre 1000 y menor a 7000 hay descuento de 11%;
cout<<\n *Si la compra es entre 7000 y menor a 1500 hay descuento de 18%;
cout<<\n *Si la compra es mayor o igual a 1500 hay descuento de 25%;
cout<<\n\n Introduzca el monto de la compra\n ;
cin>>Compra;

if (Compra<500)
Total=Compra;
else
{
if (Compra <1000)
Total = Compra-Compra*0.05;
else
{
if (Compra<7000)
Total = Compra-Compra*0.11;
else
{
if (Compra<1500)
Total = Compra -Compra*0.18;
else
Total = Compra-Compra*0.25;
}
}
}
cout<<\n\n El monto a pagar es <<Total<< pesos<<endl;
cout<<\n Gracias por su compra :p\n\n ;
system(PAUSE);
return EXIT_SUCCESS;
}

DESCARGAR CODIGO FUENTE .CPP

Dudas, aclaraciones, ac abajo en comentarios :p

Ingeniera

Semestre > 6 y Promedio >= 8.8

Medicina

Semestre >=6 y Promedio > 8.5

Licenciatura

Semestre > 5 y Promedio >=8.3

Tcnico

Semestre >=3 y Promedio >=7.8


About these ads

Categoras:C++, Programacion
Comentarios (21) Trackbacks (0) Deja un comentario Trackback
Programas Condicionales (Estructuras IF, SWITCH, WHILE, DO WHILE)

La programacin de Condicin o programacin Condicional consiste en afirmar una


expresin, si sta es verdadera se procede a realizar una instruccin, sino se realiza otra
instruccin, se le conoce tambin como instruccin IF. Por ejemplo:

La programacin de Caso o instruccin SWITCH es tambin de condicin con un grado


ms complejo. Se requiere de casos para validar una expresin. Por ejemplo:

Existe una tercera y es la instruccin DO WHILE, consiste en hacer determinadas


instrucciones mientras la condicin que le asignamos sea valida. Por ejemplo:

Estos 3 casos se pueden mezclar para un mejor desempeo del programa estructurado. A
continuacin 3 problemas para un mejor entendimiento.
Problema 1 Condicional: Dado como dato el sueldo de un trabajador, considere un
aumento del 15% si su sueldo es inferior a 1000 y de un 12% en caso contrario.
Imprima el sueldo con el aumento incorporado.
#include <cstdlib>
#include <iostream>
using namespace std;
int main()

{
float Sueldo, Total, Aumento;
system (color F0);
cout<<\n\t***EJERCICIO 1 CONDICIONAL IF***\n\n;
cout<<\tDado como dato el sueldo de un trabajador, considere un aumento\n;
cout<<\tSi su sueldo es menor a 1000 se hara del 15%\n;
cout<<\tSi su sueldo es mayor o igual a 1000 se hara del 12%\n;
cout<<\tImprima el sueldo con el aumento incorporado\n\n;
cout<<\tEscriba el sueldo del trabajador\n\t;
cin>>Sueldo;
if (Sueldo<1000)
{
Aumento=Sueldo*.15;
Total=Sueldo+Aumento;
}
else
{
Aumento=Sueldo*.12;
Total=Sueldo+Aumento;
}
cout<<\n\tSu aumento es de: <<Aumento<< pesos\n;
cout<<\tEl sueldo con aumento es de: <<Total<< pesos\n\n\t;
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}

DESCARGAR CODIGO FUENTE .CPP


Use la estructura IF ELSE, la ms sencilla de programacin condicional.
Se declararon las variables FLOAT por puntos decimales.
Se uso la condicin SI (Sueldo<1000) para realizar el porcentaje.
No era necesario poner el Aumento, pero para un mejor entendimiento lo agregue.
Problema No. 2 de estructura SWITCH: Dado como datos la matricula
de un alumno, el semestre en el que est inscrito, y promedio, determine si
el mismo es apto para pertenecer alguna de las profesiones que tiene la
universidad. Si el alumno es aceptado teniendo en cuenta las

especificaciones que se listan abajo se debe imprimir su matrcula, carrera y


la palabra Aceptado

Ingeniera

Semestre > 6 y Promedio


>= 8.8

Medicina

Semestre >=6 y Promedio >


8.5

Licenciatura

Semestre > 5 y Promedio


>=8.3

Tcnico

Semestre >=3 y Promedio


>=7.8

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
char Carrera;
int Matricula, Semestre;
float Promedio;
system (color F0);
cout<<\n\t***EJERCICIO 2 ESTRUCTURA SWITCH***\n<<endl;
cout<<\tDados los datos de la matricula de un alumno,\n;
cout<<\tsu semestre y su promedio, determine si el mismo es apto \n;
cout<<\tpara pertenecer a alguna de las profesiones que tiene la
universidad.\n;
cout<<\tSi el alumno es aceptado teniendo en cuenta las
especificaciones\n;
cout<<\tque se listan abajo, se debe imprimir su matricula, tipo de \n;
cout<<\tprofesion y su aprobacion\n\n;
cout<<\tPara entrar a Ingenieria Semestre > 6 y Promedio >= 8.8\n;
cout<<\tPara entrar a Medicina
Semestre >=6 y Promedio > 8.5\n;
cout<<\tPara entrar a Licenciatura Semestre > 5 y Promedio >= 8.3\n;
cout<<\tPara entrar a Tecnico
Semestre >=3 y Promedio >= 7.8\n\n;
cout<<(\tEscriba el numero de Matricula\n\t);
cin>>Matricula;

cout<<(\n\tEscriba el promedio\n\t);
cin>>Promedio;
cout<<(\n\tEscriba el Semestre\n\t);
cin>>Semestre;
cout<<\n\tProfesion a elegir (Escribir en MAYUSCULA la letra)\n\t;
cout<<[I = Ingenieria , M = Medicina , L = Licenciatura , T = Tecnico]\n\t;
cin>>Carrera;
switch (Carrera)
{
caseI:
if (Semestre>6)
{
if (Promedio>=8.8)
{
cout<<\n\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;

caseM:
if (Semestre>=6)
{
if (Promedio>8.5)
{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;

}
break;
caseL:
if (Semestre>5)
{
if (Promedio>=8.3)
{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
caseT:
if (Semestre>=3)
{
if (Promedio>=7.8)

{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
}
system(PAUSE);

return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}

DESCARGAR CODIGO FUENTE.CPP


Use la estructura SWITCH, mas complicada que la anterior.
Declare CHAR en la variable Carrera pero tambin pude declararla
STRING.
Cuando se decide la Carrera, opte por teclear solo 1 letra en mayscula, si
lo desean pueden quitarlo y optar por escribir toda la palabra, sera igual ;)
El RETURN 0 no es necesario, puedes poner EXIT_SUCCES y sale igual .
En Promedio declare FLOAT la variable por puntos decimales, no todos
sacamos 10 ;D
Leer ms
Categoras:C++, Programacion
Aprender programacion facil con PSeInt
diciembre 15, 2010 PwnedYou 21 comentarios

PSeInt es un software dedicado a estudiantes/publico en general y su funcin es


entender la lgica de la programacin para aquellos que les sea difcil de entender. Su
interfaz es muy sencilla mediante un simple pseudo lenguaje y todo en espaol. Este
permite ayudar a comprender conceptos bsicos y fundamentales de un programa. En
pocas palabras, te ayuda con el pseudocdigo, los diagramas de flujo y la interpretacin
en consola.
Entre sus caractersticas se encuentra:
Da herramientas de edicin bsica para escribir algoritmos en pseudocdigo.
Permite edicin simultanea de algoritmos
Presenta ayuda (autocompletado, ayudas emergentes, plantillas de comandos,
coloreado)

Puede ejecutar algoritmos escritos


Determina y marca errores de sintaxis en ejecucin
Genera diagramas de flujo a partir del algoritmo escrito
Es totalmente libre y gratuito (Licencia GPL)
Entre muchas novedades mas.
Por ac puedes visitar su pgina web
Por ac puedes descargarlo directamente
Por ac puedes ver videos para entender mejor su funcin (Sper livianos)
Por ac puedes ver imgenes en su ejecucin
Y por ultimo puedes ver varios ejemplos.
Categoras:Programacion, Software
Programas Secuenciales en C++ [Programas resueltos]
diciembre 13, 2010 locoraphael 14 comentarios

Ahora veremos como programar en C++ con pasos sencillos. Dejare de lado la teora,
solo ir explicando los pasos que uso para realizar el programa. Aclaro que como yo lo
hago no es la nica manera, existen demasiadas tcnicas y cada usuario tiene su forma
de programar.
Inicio explicando un programa sencillo. Dejo atrs el Hola Mundo para entrar a
problemas razonados, los programas sencillos se les conoce como Programas
secuenciales pues su estructura es sencilla, sin opciones. Usare el compilador Dev C++
que es el visto en clase.
Problema No. 1: Construya la solucin que permita calcular e imprimir el cuadrado y
el cubo de un nmero entero positivo.
Inicio, abro Dev C++ Ver 4.9.9.2 Archivo Nuevo Archivo Fuente. Empiezo
escribiendo las libreras que usare. Escribimos libreras, y llaves (Si quieres ahorrar los
pasos, dirgete a Archivo Nuevo Basic Console Aplicattion En C++ Aceptar
Te pide que le des nombre al proyecto y direccin para guardarlo Aceptar).
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{

system(PAUSE);
return EXIT_SUCCESS;
}
Antes de escribir, es necesario especificar para qu uso cada instruccin, signo y
comando, los que utilizare son y sirven para:
#include <> Son las libreras esenciales y de inicio.
main - Instruccin que indica entrada y salida de datos.
{ Signo que da apertura del programa o instruccin.
} Signo que da cierre del programa o instruccin.
int Declaracin de variables de tipo ENTERO.
system Comando que permite interactuar con el compilador.
cout<< Instruccin que da SALIDA de datos en la pantalla
cin>> - Instruccin de ENTRADA de datos.
Dan SALIDA de datos escritos por el usuario.
; Signo que da terminada una instruccin de lnea.
* Signo de multiplicacin.
\n Comando que da salto de lnea al ejecutar.
\t Comando que tabula en una lnea.
endl Comando que da fin a una lnea, similar a ;.
/* */ Signos que permiten hacer un comentario sin afectar el programa
return Instruccin que da fin al programa.
En el programa queda as.
1. #include <cstdlib>
#include <iostream>
2. using namespace std;
3. int main()
4. {
5.
6. int Cuadrado, Cubo, Numero;
7. system (color F0);
8. cout<<\t\t\t***PROBLEMA No. 1 SECUENCIAL***\n\n;
9. cout<<\t\t Construya la solucion que permita calcular e\n;
10.cout<<\t\timprimir el cuadrado y cubo de un numero entero\n\n;
11.cout<<\t\t\tDanos el valor del numero entero\n\t\t\t\t\t;

12.cin>>Numero;
13.Cuadrado=Numero*Numero;
14.cout<<\n\t\t\t El cuadrado del numero es <<Cuadrado<<endl;
15.Cubo=Numero*Numero*Numero;
16.cout<<\t\t\t

El cubo del numero es <<Cubo<<endl;

17.cout<<\n\n\n;
18.system(PAUSE);
19.return 0;
20./*Hecho por Raphael Alarkon
21.http://www.IngenieriaEnSistemasUAT.wordpress.com*/
22.}

Aplastamos F9 para compilar y ejecutar. Claramente se ve que el lenguaje en si no es


complicado, las instrucciones son muy claras en este problema secuencial.
DESCARGAR CODIGO EN .CPP

Con la instruccin system(color F0) se escogi fondo blanco con letras negras.
En la instruccin system(PAUSE) se le ordeno pausar a la pantalla para observar el
resultado, sin esta instruccin el programa se ejecuta pero al mostrar resultados se cierra
el programa.
Con el comando return 0 se le pide ejecutarlo 1 vez terminado el compilador.
Problema No. 2: Hacer un programa que calcule el salario total de un trabajador en
base a sus horas trabajadas y la tarifa por hora.
Las percepciones son:
1. Salario bruto.
2. Un 15% del salario por apoyo de despensa.
Las deducciones son:
1. El 1% por concepto de cuota sindical sobre el salario bruto.
2. El 5% por concepto del ISR sobre el salario bruto.
El cdigo queda as:

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
float Horas, Tarifa, SalarioBruto, ApoyoDespensa, Deducciones, SueldoTotal;
system (color F0);
cout<<\t\t\t***PROBLEMA 2 SECUENCIAL***\n\n;
cout<<\tHacer un programa que calcule el salario total de un trabajador\n;
cout<<\t en base a sus horas trabajadas y la tarifa por hora.\n\n;
cout<<\t Las percepciones son:\n;
cout<<\t 1. Salario bruto.\n;
cout<<\t 2. Un 15% del salario por apoyo de despensa.\n\n;
cout<<\t Las deducciones son:\n;
cout<<\t 1. El 1% por concepto de cuota sindical sobre el salario bruto.\n;
cout<<\t 2. El 5% por concepto del ISR sobre el salario bruto.\n\n;
cout<<\t Escriba las horas trabajadas del asalariado:\n\t ;
cin>>Horas;
cout<<\n\t Escriba el pago por hora de trabajo:\n\t ;
cin>>Tarifa;
SalarioBruto=Horas*Tarifa;
ApoyoDespensa=SalarioBruto*0.15;
Deducciones=(SalarioBruto*0.01)+(SalarioBruto*0.05);
//El 0.01 corresponde a deduccion de Cuota Sindical
//El 0.05 corresponde a deduccion de ISR
SueldoTotal=(SalarioBruto+ApoyoDespensa)-Deducciones;
cout<<\n\t Su Salario bruto es de; <<SalarioBruto<< pesos.;
cout<<\n\t Su apoyo de despensa del 15% es de; <<ApoyoDespensa<< pesos.;
cout<<\n\t Sus deducciones sobre el salario bruto es de; <<Deducciones<<
pesos;
cout<<\n\n\t El salario Neto del trabajador es; <<SueldoTotal<< pesos.\n\n\n;
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}
DESCARGAR CODIGO EN .CPP

Use los mismos comandos e instrucciones que el anterior.


Declare nmeros REALES, es decir, FLOAT (Con punto decimal)
Leer ms
Categoras:C++, Programacion
RSS feed

Entradas aleatorias

Problemas de formulas exponenciales de derivacin

Cosenos Directores de un vector [Problema resuelto]

Derivacin mediante la regla de los 4 pasos [Ejemplos]

Aprender programacion facil con PSeInt

Inicio

Nube de etiquetas
Categoras

C++

Calculo

Derivadas

Ingenieria en Sistemas

Integrales

Matematicas

Programacion

Quimica

Redes

Sistemas Operativos

Software

Vectores

Web 2.0

Sitios de inters

CISCO UAT

FayerWayer

Firefox

Somos Mecatronica

UAT de Matamoros

Archivos

abril 2013

enero 2013

abril 2011

marzo 2011

febrero 2011

enero 2011

diciembre 2010

septiembre 2010

agosto 2010

junio 2010

mayo 2010

marzo 2010

febrero 2010

enero 2010

noviembre 2009

octubre 2009

Meta

Registrarse

Acceder

Arriba WordPress
Blog de WordPress.com. El tema INove.
Seguir
Follow Ingenieria en Sistemas de UAT Matamoros

Recibe cada nueva publicacin en tu buzn de correo electrnico.


nete a otros 175 seguidores
Ofrecido por WordPress.com

Programas Condicionales (Estructuras IF, SWITCH, WHILE, DO WHILE)


La programacin de Condicin o programacin Condicional consiste en afirmar una
expresin, si sta es verdadera se procede a realizar una instruccin, sino se realiza otra
instruccin, se le conoce tambin como instruccin IF. Por ejemplo:

La programacin de Caso o instruccin SWITCH es tambin de condicin con un grado


ms complejo. Se requiere de casos para validar una expresin. Por ejemplo:

Existe una tercera y es la instruccin DO WHILE, consiste en hacer determinadas


instrucciones mientras la condicin que le asignamos sea valida. Por ejemplo:

Estos 3 casos se pueden mezclar para un mejor desempeo del programa estructurado. A
continuacin 3 problemas para un mejor entendimiento.
Problema 1 Condicional: Dado como dato el sueldo de un trabajador, considere un
aumento del 15% si su sueldo es inferior a 1000 y de un 12% en caso contrario.
Imprima el sueldo con el aumento incorporado.
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
float Sueldo, Total, Aumento;
system (color F0);
cout<<\n\t***EJERCICIO 1 CONDICIONAL IF***\n\n;
cout<<\tDado como dato el sueldo de un trabajador, considere un aumento\n;
cout<<\tSi su sueldo es menor a 1000 se hara del 15%\n;
cout<<\tSi su sueldo es mayor o igual a 1000 se hara del 12%\n;
cout<<\tImprima el sueldo con el aumento incorporado\n\n;

cout<<\tEscriba el sueldo del trabajador\n\t;


cin>>Sueldo;
if (Sueldo<1000)
{
Aumento=Sueldo*.15;
Total=Sueldo+Aumento;
}
else
{
Aumento=Sueldo*.12;
Total=Sueldo+Aumento;
}
cout<<\n\tSu aumento es de: <<Aumento<< pesos\n;
cout<<\tEl sueldo con aumento es de: <<Total<< pesos\n\n\t;
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}

DESCARGAR CODIGO FUENTE .CPP


Use la estructura IF ELSE, la ms sencilla de programacin condicional.
Se declararon las variables FLOAT por puntos decimales.
Se uso la condicin SI (Sueldo<1000) para realizar el porcentaje.
No era necesario poner el Aumento, pero para un mejor entendimiento lo agregue.
Problema No. 2 de estructura SWITCH: Dado como datos la matricula
de un alumno, el semestre en el que est inscrito, y promedio, determine si
el mismo es apto para pertenecer alguna de las profesiones que tiene la
universidad. Si el alumno es aceptado teniendo en cuenta las
especificaciones que se listan abajo se debe imprimir su matrcula, carrera y
la palabra Aceptado

Ingeniera

Semestre > 6 y Promedio


>= 8.8

Medicina

Semestre >=6 y Promedio >

8.5
Licenciatura

Semestre > 5 y Promedio


>=8.3

Tcnico

Semestre >=3 y Promedio


>=7.8

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
char Carrera;
int Matricula, Semestre;
float Promedio;
system (color F0);
cout<<\n\t***EJERCICIO 2 ESTRUCTURA SWITCH***\n<<endl;
cout<<\tDados los datos de la matricula de un alumno,\n;
cout<<\tsu semestre y su promedio, determine si el mismo es apto \n;
cout<<\tpara pertenecer a alguna de las profesiones que tiene la
universidad.\n;
cout<<\tSi el alumno es aceptado teniendo en cuenta las
especificaciones\n;
cout<<\tque se listan abajo, se debe imprimir su matricula, tipo de \n;
cout<<\tprofesion y su aprobacion\n\n;
cout<<\tPara entrar a Ingenieria Semestre > 6 y Promedio >= 8.8\n;
cout<<\tPara entrar a Medicina
Semestre >=6 y Promedio > 8.5\n;
cout<<\tPara entrar a Licenciatura Semestre > 5 y Promedio >= 8.3\n;
cout<<\tPara entrar a Tecnico
Semestre >=3 y Promedio >= 7.8\n\n;
cout<<(\tEscriba el numero de Matricula\n\t);
cin>>Matricula;
cout<<(\n\tEscriba el promedio\n\t);
cin>>Promedio;
cout<<(\n\tEscriba el Semestre\n\t);
cin>>Semestre;
cout<<\n\tProfesion a elegir (Escribir en MAYUSCULA la letra)\n\t;
cout<<[I = Ingenieria , M = Medicina , L = Licenciatura , T = Tecnico]\n\t;
cin>>Carrera;

switch (Carrera)
{
caseI:
if (Semestre>6)
{
if (Promedio>=8.8)
{
cout<<\n\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;

caseM:
if (Semestre>=6)
{
if (Promedio>8.5)
{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
caseL:
if (Semestre>5)
{
if (Promedio>=8.3)

{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
caseT:
if (Semestre>=3)
{
if (Promedio>=7.8)

{
cout<<\n\t***APROBADO***\n;
cout<<\n\tMatricula No. <<Matricula;
cout<<\n\tTipo de Carrera: <<Carrera<<\n\n\t;
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
}
else
{
cout<<\n\tNo Aprobado\n\n\t;
}
break;
}
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}

DESCARGAR CODIGO FUENTE.CPP


Use la estructura SWITCH, mas complicada que la anterior.
Declare CHAR en la variable Carrera pero tambin pude declararla
STRING.
Cuando se decide la Carrera, opte por teclear solo 1 letra en mayscula, si
lo desean pueden quitarlo y optar por escribir toda la palabra, sera igual ;)
El RETURN 0 no es necesario, puedes poner EXIT_SUCCES y sale igual .
En Promedio declare FLOAT la variable por puntos decimales, no todos
sacamos 10 ;D
Leer ms
Categoras:C++, Programacion
Aprender programacion facil con PSeInt
diciembre 15, 2010 PwnedYou 21 comentarios

PSeInt es un software dedicado a estudiantes/publico en general y su funcin es


entender la lgica de la programacin para aquellos que les sea difcil de entender. Su
interfaz es muy sencilla mediante un simple pseudo lenguaje y todo en espaol. Este
permite ayudar a comprender conceptos bsicos y fundamentales de un programa. En
pocas palabras, te ayuda con el pseudocdigo, los diagramas de flujo y la interpretacin
en consola.
Entre sus caractersticas se encuentra:
Da herramientas de edicin bsica para escribir algoritmos en pseudocdigo.
Permite edicin simultanea de algoritmos
Presenta ayuda (autocompletado, ayudas emergentes, plantillas de comandos,
coloreado)
Puede ejecutar algoritmos escritos
Determina y marca errores de sintaxis en ejecucin
Genera diagramas de flujo a partir del algoritmo escrito

Es totalmente libre y gratuito (Licencia GPL)


Entre muchas novedades mas.
Por ac puedes visitar su pgina web
Por ac puedes descargarlo directamente
Por ac puedes ver videos para entender mejor su funcin (Sper livianos)
Por ac puedes ver imgenes en su ejecucin
Y por ultimo puedes ver varios ejemplos.
Categoras:Programacion, Software
Programas Secuenciales en C++ [Programas resueltos]
diciembre 13, 2010 locoraphael 14 comentarios

Ahora veremos como programar en C++ con pasos sencillos. Dejare de lado la teora,
solo ir explicando los pasos que uso para realizar el programa. Aclaro que como yo lo
hago no es la nica manera, existen demasiadas tcnicas y cada usuario tiene su forma
de programar.
Inicio explicando un programa sencillo. Dejo atrs el Hola Mundo para entrar a
problemas razonados, los programas sencillos se les conoce como Programas
secuenciales pues su estructura es sencilla, sin opciones. Usare el compilador Dev C++
que es el visto en clase.
Problema No. 1: Construya la solucin que permita calcular e imprimir el cuadrado y
el cubo de un nmero entero positivo.
Inicio, abro Dev C++ Ver 4.9.9.2 Archivo Nuevo Archivo Fuente. Empiezo
escribiendo las libreras que usare. Escribimos libreras, y llaves (Si quieres ahorrar los
pasos, dirgete a Archivo Nuevo Basic Console Aplicattion En C++ Aceptar
Te pide que le des nombre al proyecto y direccin para guardarlo Aceptar).
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
system(PAUSE);
return EXIT_SUCCESS;
}

Antes de escribir, es necesario especificar para qu uso cada instruccin, signo y


comando, los que utilizare son y sirven para:
#include <> Son las libreras esenciales y de inicio.
main - Instruccin que indica entrada y salida de datos.
{ Signo que da apertura del programa o instruccin.
} Signo que da cierre del programa o instruccin.
int Declaracin de variables de tipo ENTERO.
system Comando que permite interactuar con el compilador.
cout<< Instruccin que da SALIDA de datos en la pantalla
cin>> - Instruccin de ENTRADA de datos.
Dan SALIDA de datos escritos por el usuario.
; Signo que da terminada una instruccin de lnea.
* Signo de multiplicacin.
\n Comando que da salto de lnea al ejecutar.
\t Comando que tabula en una lnea.
endl Comando que da fin a una lnea, similar a ;.
/* */ Signos que permiten hacer un comentario sin afectar el programa
return Instruccin que da fin al programa.
En el programa queda as.
1. #include <cstdlib>
#include <iostream>
2. using namespace std;
3. int main()
4. {
5.
6. int Cuadrado, Cubo, Numero;
7. system (color F0);
8. cout<<\t\t\t***PROBLEMA No. 1 SECUENCIAL***\n\n;
9. cout<<\t\t Construya la solucion que permita calcular e\n;
10.cout<<\t\timprimir el cuadrado y cubo de un numero entero\n\n;
11.cout<<\t\t\tDanos el valor del numero entero\n\t\t\t\t\t;
12.cin>>Numero;
13.Cuadrado=Numero*Numero;

14.cout<<\n\t\t\t El cuadrado del numero es <<Cuadrado<<endl;


15.Cubo=Numero*Numero*Numero;
16.cout<<\t\t\t

El cubo del numero es <<Cubo<<endl;

17.cout<<\n\n\n;
18.system(PAUSE);
19.return 0;
20./*Hecho por Raphael Alarkon
21.http://www.IngenieriaEnSistemasUAT.wordpress.com*/
22.}

Aplastamos F9 para compilar y ejecutar. Claramente se ve que el lenguaje en si no es


complicado, las instrucciones son muy claras en este problema secuencial.
DESCARGAR CODIGO EN .CPP

Con la instruccin system(color F0) se escogi fondo blanco con letras negras.
En la instruccin system(PAUSE) se le ordeno pausar a la pantalla para observar el
resultado, sin esta instruccin el programa se ejecuta pero al mostrar resultados se cierra
el programa.
Con el comando return 0 se le pide ejecutarlo 1 vez terminado el compilador.
Problema No. 2: Hacer un programa que calcule el salario total de un trabajador en
base a sus horas trabajadas y la tarifa por hora.
Las percepciones son:
1. Salario bruto.
2. Un 15% del salario por apoyo de despensa.
Las deducciones son:
1. El 1% por concepto de cuota sindical sobre el salario bruto.
2. El 5% por concepto del ISR sobre el salario bruto.
El cdigo queda as:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()

{
float Horas, Tarifa, SalarioBruto, ApoyoDespensa, Deducciones, SueldoTotal;
system (color F0);
cout<<\t\t\t***PROBLEMA 2 SECUENCIAL***\n\n;
cout<<\tHacer un programa que calcule el salario total de un trabajador\n;
cout<<\t en base a sus horas trabajadas y la tarifa por hora.\n\n;
cout<<\t Las percepciones son:\n;
cout<<\t 1. Salario bruto.\n;
cout<<\t 2. Un 15% del salario por apoyo de despensa.\n\n;
cout<<\t Las deducciones son:\n;
cout<<\t 1. El 1% por concepto de cuota sindical sobre el salario bruto.\n;
cout<<\t 2. El 5% por concepto del ISR sobre el salario bruto.\n\n;
cout<<\t Escriba las horas trabajadas del asalariado:\n\t ;
cin>>Horas;
cout<<\n\t Escriba el pago por hora de trabajo:\n\t ;
cin>>Tarifa;
SalarioBruto=Horas*Tarifa;
ApoyoDespensa=SalarioBruto*0.15;
Deducciones=(SalarioBruto*0.01)+(SalarioBruto*0.05);
//El 0.01 corresponde a deduccion de Cuota Sindical
//El 0.05 corresponde a deduccion de ISR
SueldoTotal=(SalarioBruto+ApoyoDespensa)-Deducciones;
cout<<\n\t Su Salario bruto es de; <<SalarioBruto<< pesos.;
cout<<\n\t Su apoyo de despensa del 15% es de; <<ApoyoDespensa<< pesos.;
cout<<\n\t Sus deducciones sobre el salario bruto es de; <<Deducciones<<
pesos;
cout<<\n\n\t El salario Neto del trabajador es; <<SueldoTotal<< pesos.\n\n\n;
system(PAUSE);
return 0;
/*Programa hecho por Raphael Alarkon
http://www.IngenieriaEnSistemasUAT.wordpress.com*/
}
DESCARGAR CODIGO EN .CPP

Use los mismos comandos e instrucciones que el anterior.

Declare nmeros REALES, es decir, FLOAT (Con punto decimal)


Leer ms
Categoras:C++, Programacion
RSS feed

Entradas aleatorias

Problemas de formulas exponenciales de derivacin

Cosenos Directores de un vector [Problema resuelto]

Derivacin mediante la regla de los 4 pasos [Ejemplos]

Aprender programacion facil con PSeInt

Inicio

Nube de etiquetas
Categoras

C++

Calculo

Derivadas

Ingenieria en Sistemas

Integrales

Matematicas

Programacion

Quimica

Redes

Sistemas Operativos

Software

Vectores

Web 2.0

Sitios de inters

CISCO UAT

FayerWayer

Firefox

Somos Mecatronica

UAT de Matamoros

Archivos

abril 2013

enero 2013

abril 2011

marzo 2011

febrero 2011

enero 2011

diciembre 2010

septiembre 2010

agosto 2010

junio 2010

mayo 2010

marzo 2010

febrero 2010

enero 2010

noviembre 2009

octubre 2009

Meta

Registrarse

Acceder

Arriba WordPress
Blog de WordPress.com. El tema INove.
Seguir
Follow Ingenieria en Sistemas de UAT Matamoros

Recibe cada nueva publicacin en tu buzn de correo electrnico.


nete a otros 175 seguidores
Ofrecido por WordPress.com

Este programa es parte del libro Programacin y Resolucin de Problemas con C++ de
Nell Dale y Cheep Weems, cuarta edicin. El problemita es sencillo pero sirve, al menos
para m, como un primer uso del tipo de datos boolean. Para entender el algoritmo basta
con recordar que un ao bisiesto es aquel que tiene 366 dias en vez de 365. La regla, en
el calendario gregoriano, es la siguiente:
Un ao es bisiesto si es divisible entre 4, excepto el ltimo de cada siglo (aquel divisible
por 100), salvo que este ltimo sea divisible por 400.
Con sto es posible escribir la funcin Bisiesto que contiene este programa. Tal vez lo
nico extrao es la llamada de esta funcin mediante if. En realidad hay que recordar
que un condicional en C++ se evala como true o como false, (vase el inciso 3 de esta
entrada)as que, dado que la funcin llamada (Bisiesto) devuelve uno de esos dos
valores, es perfectamente vlido invocarla en el if.
////////////////////////////////////////////////////
// Este programa recibe un anio e imprime si es
//
// bisiesto o no
//
// /////////////////////////////////////////////////
#include <iostream>
using namespace::std;

bool Bisiesto( int );


int main()
{
// Abre main
int anio;
cout <<"\nIntroduzca un anio y sabra si es bisiesto:\n";
cin >> anio;
if ( Bisiesto( anio ) )
// Nota: If solo evalua
cout << anio << " es un
else // es decir, si es
cout << anio << " no es
return 0;
}

true o false
anio bisiesto." << endl;
false
un anio bisiesto." << endl;

// Cierra main

////////////////////////////////////////////////////
// FUNCION BISIESTO
////////////////////////////////////////////////////
bool Bisiesto( int a )
// Esta funcion regresa un valor booleano true
// si el anio es bisiesto y regresa el valor
// booleano false si el anio no es bisiesto
{

// Abre funcion Bisiesto

if ( 0 != a%4 )
return false;
else if ( 0 != a % 100 )
return true;
else if ( 0 != a % 400 )
return false;
else
return true;
}
// Cierra funcion Bisiesto

Aqu una ejecucin del programa:


Introduzca un anio y sabra si es bisiesto:
2004
2004 es un anio bisiesto.

Quizs tambin le interese:

Estucturas de Control en C: Los Condicionales if y else

Hola Mundo en C (Usando Linux)

Mi blog ha desaparecido!

Soluciones de los ejercicios - if... elif... else...


Se ofrecen a continuacin unas posibles soluciones de los ejercicios de if ... elif ...
else ....

if ... elif ... else ... 01

Si el programa no tiene en cuenta que no se puede dividir por cero, se pueden escribir
sentencias condicionales independientes:
print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo // divisor)
if dividendo % divisor != 0:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)

... o escribir sentencias condicionales encadenadas:


print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo // divisor)
else:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)

Aprovechando que un nmero distinto de cero se considera True, tambin se podra


escribir:
print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if dividendo % divisor:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)
else:
print("La divisin es exacta. Cociente:", dividendo // divisor)

Pero si se quiere tener en cuenta que no se puede dividir por cero, no se pueden utilizar
tres sentencias condicionales independientes. Se podran utilizar sentencias anidadas:
print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if divisor == 0:
print("No se puede dividir por 0")
else:
if dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo //
divisor)
else:
print("La divisin no es exacta. Cociente:", dividendo //
divisor,
"Resto:", dividendo % divisor)

... o sentencias condicionales encadenadas:

print("Divisor de nmeros")
dividendo = int(input("Escriba el dividendo: "))
divisor = int(input("Escriba el divisor: "))
if divisor == 0:
print("No se puede dividir por 0")
elif dividendo % divisor == 0:
print("La divisin es exacta. Cociente:", dividendo // divisor)
else:
print("La divisin no es exacta. Cociente:", dividendo // divisor,
"Resto:", dividendo % divisor)

if ... elif ... else ... 02

El siguiente programa utiliza sentencias condicionales independientes (el orden no es


importante):
print("Comparador de nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
if numero1 > numero2:
print("Menor:", numero2, "Mayor:", numero1)
if numero1 < numero2:
print("Menor:", numero1, "Mayor:", numero2)
if numero1 == numero2:
print("Los dos nmeros son iguales")

El siguiente programa utiliza sentencias condicionales encadenadas (el orden no es


importante):
print("Comparador de nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
if numero1 > numero2:
print("Menor:", numero2, "Mayor:", numero1)
elif numero1 < numero2:
print("Menor:", numero1, "Mayor:", numero2)
else:
print("Los dos nmeros son iguales")

if ... elif ... else ... 03

El siguiente programa utiliza sentencias condicionales independientes (el orden no es


importante):
print("Comparador de aos")
fecha1 = int(input("En qu ao estamos?: "))
fecha2 = int(input("Escriba un ao cualquiera: "))
if fecha1 > fecha2:
print("Desde el ao", fecha2, "han pasado", fecha1 - fecha2,
"aos")
if fecha1 < fecha2:

print("Para llegar al ao", fecha2, "faltan", fecha2 - fecha1,


"aos")
if fecha1 == fecha2:
print("Son el mismo ao!")

El siguiente programa utiliza sentencias condicionales encadenadas (el orden no es


importante):
print("Comparador de aos")
fecha1 = int(input("En qu ao estamos?: "))
fecha2 = int(input("Escriba un ao cualquiera: "))
if fecha1 > fecha2:
print("Desde el ao", fecha2, "han pasado", fecha1 - fecha2,
"aos")
elif fecha1 < fecha2:
print("Para llegar al ao", fecha2, "faltan", fecha2 - fecha1,
"aos")
else:
print("Son el mismo ao!")

El siguiente programa tiene en cuenta cuando la diferencia entre fechas es nicamente


un ao:
print("Comparador de aos")
fecha1 = int(input("En qu ao estamos?: "))
fecha2 = int(input("Escriba un ao cualquiera: "))
if fecha1 - fecha2 == 1:
print("Desde el ao", fecha2, "ha pasado 1 ao")
elif fecha1 > fecha2:
print("Desde el ao", fecha2, "han pasado", fecha1 - fecha2,
"aos")
elif fecha1 - fecha2 == -1:
print("Para llegar al ao", fecha2, "falta 1 ao")
elif fecha1 < fecha2:
print("Para llegar al ao", fecha2, "faltan", fecha2 - fecha1,
"aos")
else:
print("Son el mismo ao!")

if ... elif ... else ... 04

El siguiente programa utiliza varias sentencias condicionales independientes, puesto que


cada caso es distinto y no se pueden cumplir dos condiciones a la vez:
print("Comparador de mltiplos")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
if numero1 >= numero2 and numero1 % numero2:
print(numero1, "no es mltiplo de", numero2)
if numero1 >= numero2 and numero1 % numero2 == 0:
print(numero1, "es mltiplo de", numero2)
if numero1 < numero2 and numero2 % numero1:
print(numero2, "no es mltiplo de", numero1)
if numero1 < numero2 and numero2 % numero1 == 0:

print(numero2, "es mltiplo de", numero1)

El siguiente programa encadena las condiciones, ahorrndonos la ltima condicin:


print("Comparador de mltiplos")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
if numero1 >= numero2 and numero1 % numero2:
print(numero1, "no es mltiplo de", numero2)
elif numero1 >= numero2 and numero1 % numero2 == 0:
print(numero1, "es mltiplo de", numero2)
elif numero1 < numero2 and numero2 % numero1:
print(numero2, "no es mltiplo de", numero1)
else:
print(numero2, "es mltiplo de", numero1)

El siguiente programa utiliza sentencias condicionales anidadas:


print("Comparador de mltiplos")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
if numero1 >= numero2:
if numero1 % numero2:
print(numero1, "no
else:
print(numero1, "es
else:
if numero2 % numero1:
print(numero2, "no
else:
print(numero2, "es

es mltiplo de", numero2)


mltiplo de", numero2)
es mltiplo de", numero1)
mltiplo de", numero1)

El siguiente programa utiliza variables auxiliares que almacenan el nmero ms grande


y el ms pequeo:
print("Comparador de mltiplos")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
if numero1 >= numero2:
mayor = numero1
menor = numero2
else:
mayor = numero2
menor = numero1
if mayor % menor:
print(mayor, "no es mltiplo de", menor)
else:
print(mayor, "es mltiplo de", menor)

if ... elif ... else ... 05

En este ejercicio unas situaciones incluyen a otras (el caso "tres valores iguales" es un
caso particular del caso "dos valores iguales"). En esos casos, el orden en que se
comprueban las situaciones hace que las expresiones sean ms o menos complicadas.

En el siguiente programa se trata primero el caso ms complicado (dos nmeros


iguales), por lo que la primera condicin es complicada. Hay que comprobar todos los
casos posibles (que cualquier pareja de valores sean iguales y que el tercer nmero sea
distinto). La condicin est escrita entre parntesis porque ocupa ms de un lnea.
print("Comparador de tres nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
numero3 = int(input("Escriba otro nmero ms: "))
if (numero1 == numero2 != numero3 or numero1 == numero3 != numero2 or
numero2 == numero3 != numero1):
print("Ha escrito uno de los nmeros dos veces.")
elif numero1 == numero2 == numero3:
print("Ha escrito tres veces el mismo nmero.")
else:
print("Los tres nmeros que ha escrito son distintos.")

En el siguiente programa el caso ms complicado (dos nmeros iguales) se deja para el


final, para no tener que escribir la condicin de ese caso
print("Comparador de tres nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
numero3 = int(input("Escriba otro nmero ms: "))
if numero1 != numero2 and numero1 != numero3 and numero2 != numero3:
print("Los tres nmeros que ha escrito son distintos.")
elif numero1 == numero2 == numero3:
print("Ha escrito tres veces el mismo nmero.")
else:
print("Ha escrito uno de los nmeros dos veces.")

En el siguiente programa, aunque el caso ms complicado (dos nmeros iguales) no se


deja para el final, la condicin correspondiente no es tan complicada como en el primer
ejemplo, ya que la primera condicin elimina los casos en los que los tres nmeros son
iguales y en la segunda condicin simplemente se comprueba que haya dos iguales (no
hace falta comprobar que el tercero sea distinto puesto que si fueran iguales se cumplira
la primera condicin).
print("Comparador de tres nmeros")
numero1 = int(input("Escriba un nmero: "))
numero2 = int(input("Escriba otro nmero: "))
numero3 = int(input("Escriba otro nmero ms: "))
if numero1 == numero2 == numero3:

print("Ha escrito tres veces el mismo nmero.")


elif numero1 == numero2 or numero1 == numero3 or numero2 == numero3:
print("Ha escrito uno de los nmeros dos veces.")
else:
print("Los tres nmeros que ha escrito son distintos.")

Es importante sealar que mientras que en el primer y segundo programa se podran


intercambiar la primera y segunda condicin y los programas seguiran funcionando, en
el tercer programa no se podran intercambiar la primera y segunda condicin ya que el
programa no dara la respuesta correcta al escribir tres valores iguales.

if ... elif ... else ... 06

El siguiente programa utiliza sentencias condicionales independientes, por lo que el


orden en que se escriban las sentencias condicionales no es importante:
print("Comprobador de aos bisiestos")
fecha = int(input("Escriba un ao y le dir si es bisiesto: "))
if fecha %4 != 0:
print("El ao", fecha, "no es un ao bisiesto.")
if fecha % 100 == 0 and fecha % 400 != 0:
print("El ao", fecha, "no es un ao bisiesto porque es mltiplo
de 100",
"sin ser mltiplo de 400.")
if fecha % 4 == 0 and fecha % 100 != 0:
print("El ao", fecha, "es un ao bisiesto porque es mltiplo de
4.")
if fecha % 400 == 0:
print("El ao", fecha, "es un ao bisiesto porque es mltiplo de
400.")

Como algunos de estos casos estn incluidos en otros (los mltiplos de 400 son
mltiplos de 100 y los mltiplos de 100 son mltiplos de 4), las condiciones se pueden
simplificar si se escriben sentencias condicionales encadenadas y se empieza por el caso
ms especial.
Al haber comprobado en el primer caso si la fecha es mltiplo de 400, en el segundo
caso no hace falta comprobar que la fecha no sea mltiplo de 400. Y de la misma
manera, en el tercer caso no hace falta comprobar que la fecha sea mltiplo de 100.
print("Comprobador de aos bisiestos")
fecha = int(input("Escriba un ao y le dir si es bisiesto: "))
if fecha % 400 == 0:
print("El ao", fecha, "es un ao bisiesto porque es mltiplo de
400.")
elif fecha % 100 == 0:
print("El ao", fecha, "no es un ao bisiesto porque es mltiplo
de 100",
"sin ser mltiplo de 400.")
elif fecha % 4 == 0:

print("El ao", fecha, "es un ao bisiesto porque es mltiplo de


4.")
else:
print("El ao", fecha, "no es un ao bisiesto.")

En el programa anterior el orden en que se hacen las comprobaciones es muy


importante. Si se reordenaran las sentencias sin modificar las condiciones, el programa
fallara.

El programa puede compactarse si no se detallan los motivos por los que un ao es


bisiesto y simplemente se responde si el ao es bisiesto o no:
print("Comprobador de aos bisiestos")
fecha = int(input("Escriba un ao y le dir si es bisiesto: "))
if fecha % 400 == 0 or (fecha % 100 != 0 and fecha % 4 == 0):
print("El ao", fecha, "es un ao bisiesto.")
else:
print("El ao", fecha, "no es un ao bisiesto.")

if ... elif ... else ... 07

El siguiente programa utiliza sentencias condicionales independientes:


print("Ecuacin a x + b = 0")
a = float(input("Escriba el valor del coeficiente a: "))
b = float(input("Escriba el valor del coeficiente b: "))
if a != 0:
print("Una solucin:", - b / a)
if a == 0 and b == 0:
print("Todos los nmeros son solucin")
if a == 0 and b != 0:
print("Sin solucin")

El siguiente programa utiliza sentencias condicionales encadenadas para simplificar las


condiciones. El primer caso es el caso ms especial (ambos coeficientes nulos), el
segundo caso es el siguiente ms especial (el coeficiente a nulo) y el ltimo el ms
general (coeficientes no nulos).
print("Ecuacin a x + b = 0")
a = float(input("Escriba el valor del coeficiente a: "))
b = float(input("Escriba el valor del coeficiente b: "))
if a == b == 0:
print("Todos los nmeros son solucin")
elif a == 0:
print("Sin solucin")
else:
print("Una solucin:", - b / a)

if ... elif ... else ... 08

El siguiente programa utiliza sentencias condicionales independientes, por lo que el


orden de las sentencias condicionales podra ser cualquiera:
print("Ecuacin a x + b
a = float(input("Escriba
b = float(input("Escriba
c = float(input("Escriba

x + c = 0")
el valor del coeficiente a: "))
el valor del coeficiente b: "))
el valor del coeficiente b: "))

d = b*b - 4*a*c
if a == b == c == 0:
print("Todos los nmeros son solucin")
if a == b == 0 and c != 0:
print("Sin solucin")
if a == 0 and b != 0 and c != 0:
print("Una solucin:", -c / b)
if a !=0 and d < 0:
print("Sin solucin real")
if a !=0 and d == 0:
print("Una solucin:", -b / (2*a))
if a !=0 and d > 0:
print("Dos soluciones:", (-b - d**0.5) / (2*a), "y",
(-b + d**0.5) / (2*a))

El siguiente programa utiliza sentencias condicionales encadenadas para simplificar las


condiciones. Las tres primeras son similares a las del ejercicio de la ecuacin de primer
grado (el trmino a es 0) y el orden es importante. Las tres ltimas corresponden a
ecuaciones de segundo grado propiamente dichas (el trmino a es distinto de 0). Las tres
ltimas pueden estar en cualquier orden, pero siempre detrs de las tres primeras.
print("Ecuacin a x + b
a = float(input("Escriba
b = float(input("Escriba
c = float(input("Escriba

x + c = 0")
el valor del coeficiente a: "))
el valor del coeficiente b: "))
el valor del coeficiente b: "))

d = b*b - 4*a*c
if a == b == c == 0:
print("Todos los nmeros son
elif a == b == 0:
print("Sin solucin")
elif a == 0:
print("Una solucin:", - c /
elif d < 0:
print("Sin solucin real")
elif d == 0:
print("Una solucin:", - b /
else:
print("Dos soluciones:", (-b
(-b + d**0.5) / (2*a))

solucin")

b)

(2*a))
- d**0.5) / (2*a), "y",

Tambin se podran agrupar las tres ltimas condiciones:


print("Ecuacin a x + b
a = float(input("Escriba
b = float(input("Escriba
c = float(input("Escriba

x + c = 0")
el valor del coeficiente a: "))
el valor del coeficiente b: "))
el valor del coeficiente b: "))

if a == b == c == 0:
print("Todos los nmeros son solucin")
elif a == b == 0:

print("Sin solucin")
elif a == 0:
print("Una solucin:", - c / b)
else:
d = b*b - 4*a*c
if d < 0:
print("Sin solucin real")
elif d == 0:
print("Una solucin:", - b / (2*a))
else:
print("Dos soluciones:", (-b - d**0.5) / (2*a), "y",
(-b + d**0.5) / (2*a))

if ... elif ... else ... 09


print("Clculo de reas - Elige una figura geomtrica:")
print("a) Tringulo")
print("b) Crculo")
respuesta = input("Qu figura quiere calcular (Escriba T o C)? ")
if respuesta == "T" or respuesta == "t":
base = float(input("Escriba la base: "))
altura = float(input("Escriba la altura: "))
print("Un tringulo de base", base, "y altura", altura,
"tiene un rea de", base * altura / 2)
elif respuesta == "C" or respuesta == "c":
radio = float(input("Escriba el radio: "))
print("Un crculo de radio", radio, "tiene un rea de ",
3.141592 * radio**2)

if ... elif ... else ... 10

El siguiente programa escribe el resultado sin separadores y sea cual sea su valor:
print("Convertidor de centmetros a kilmetros, metros y centmetros")
centimetros = int(input("Escriba una distancia en centmetros: "))
kilometros = centimetros // 100000
metros = centimetros % 100000 // 100
resto = centimetros % 100
print(centimetros, "cm son", kilometros, "km", metros, "m", resto,
"cm")

El siguiente programa escribe el resultado sin separadores, escribiendo nicamente los


valores distintos de cero:
print("Convertidor de centmetros a kilmetros, metros y centmetros")
centimetros = int(input("Escriba una distancia en centmetros: "))
kilometros = centimetros // 100000
metros = centimetros % 100000 // 100
resto = centimetros % 100
print(centimetros, "cm son ", end="")
if kilometros:
print(kilometros, "km ", end="")
if metros:

print(metros, "m ", end="")


if centimetros == 0 or resto:
print(resto, "cm")

El siguiente programa escribe el resultado con comas como separadores, escribiendo


nicamente los valores distintos de cero:
print("Convertidor de centmetros a kilmetros, metros y centmetros")
centimetros = int(input("Escriba una distancia en centmetros: "))
kilometros = centimetros // 100000
metros = centimetros % 100000 // 100
resto = centimetros % 100
print(centimetros, "cm son ", end="")
if kilometros:
if metros or resto:
print(kilometros, "km, ", end="")
else:
print(kilometros, "km")
if metros:
if resto:
print(metros, "m, ", end="")
else:
print(metros, "m")
if centimetros == 0 or resto:
print(resto, "cm")

El siguiente programa escribe el resultado con comas y la conjuncin "y" como


separadores, escribiendo nicamente los valores distintos de cero y teniendo en cuenta
el caso de 1 cm (escribe la respuesta en singular):
print("Convertidor de centmetros a kilmetros, metros y centmetros")
centimetros = int(input("Escriba una distancia en centmetros: "))
kilometros = centimetros // 100000
metros = centimetros % 100000 // 100
resto = centimetros % 100
if centimetros < 0:
print("No se admiten valores negativos")
elif centimetros == 1:
print("1 cm es 1 cm")
else:
print(centimetros, "cm son ", end="")
if kilometros:
if (metros and resto == 0) or (metros == 0 and resto):
print(kilometros, "km y ", end="")
elif metros or resto:
print(kilometros, "km, ", end="")
else:
print(kilometros, "km")
if metros:
if resto:
print(metros, "m y ", end="")
else:
print(metros, "m")
if centimetros == 0 or resto:
print(resto, "cm")

Esta pgina forma parte del curso "Introduccin a la programacin con Python"
disponible en http://www.mclibre.org
Autor: Bartolom Sintes Marco
ltima modificacin de esta pgina: 21 de enero de 2013
Esta obra est bajo una licencia de Creative