Você está na página 1de 85

Instituto Politcnico Nacional

Escuela Superior de Ingeniera Mecnica y Elctrica


Unidad Zacatenco Ingeniera en comunicaciones y electrnica
Turno: Vespertino GRUPO: 1CV9

Alumno: Aguilar Pacheco Edgar Alfredo Profesor: HERRERA MARTNEZ ALEJANDRO Materia: programacin

practicas
ndice
81

paigina 3. 5. 7. 9.
por el usuario.

Practica # Practica # Practica # Practica #

1. 2. 3. 4.

Hola mundo. Portada. Suma de tres nmeros fijos. Suma de tres nmeros capturados

11. 13. 15. 18. 22. 26. 29. 33. 36.


99.

Practica # Practica #

5. 6.

Volumen de un cubo. rea de un polgono. If-else if-else. Volumen de un cilindro. Paso por referencia. Ley de ohm. Ecuacin cuadrtica. Factorial. Serie de nmeros de 3 en 3 hasta el

Practica # 7. Practica # Practica # 8. 9.

Practica # 10. Practica # 11. Practica # 12. Practica # 13.

39. 42.
calificaciones.

Practica # 14. Practica # 15.

Velocidad de corredores. Promedio de un alumno con 7

16. 49.
neutros.

Practica # 16. Practica # 17.

Nmeros positivos. Nmeros positivos, negativos y

53. 26. 60.


rombo.

Practica # 18. Practica # 19. Practica # 20.

Funcin segn su lmite. Tabulacin de funciones. Triangulo, triangulo invertido y

68.
colores.

Practica # 21. Practica # 22.

Promedio con arreglos. Resistencia mediante el cdigo de

73.

81

Practica # 1.
Hola mundo. Definicin del problema.
Disear un algoritmo y un programa que muestre en pantalla la leyenda HOLA MUNDO. ENTRADAS Ninguna SALIDAS HOLA MUNDO PROCESOS ninguno

Algoritmo.
Pseudocdigo (programa principal). INICIO: IMPRIMIR ("HOLA MUNDO C++") FIN.

Diagrama de flujo.
INICIO

HOLA MUNDO

FIN

Programa .
#include <iostream> #include <cstdlib> using namespace std; int main() { cout << "\n\n\tHOLA MUNDO C++\n\t"; system("PAUSE"); return 0; 81

Programa ejecutado.

Conclusiones. Para poder desplegar un mensaje en pantalla se usa la palabra reservada cout, para poder usarla se debe de declarar la librera iostream, tambin se debe de usar system (PAUSE) este es para que se pueda apreciar lo que se manda a desplegar, y para usar este ltimo se debe de incluir la liberia cstblib. Cuando se corre el programa por primera vez se abre una pequea ventana de color negro y se cierra muy rpido, tan rpido que no se puede apreciar lo que esta contiene, as que cuando se mande a imprimir algo, es muy necesario agregarle el system (PAUSE), ya que de lo contrario no se podr a preciar nada.

Practica # 2.
81

Portada. Definicin del problema.


Disear un algoritmo y un programa que muestre en pantalla una portada que ser utilizada para tus dems programas. ENTRADAS SALIDAS "INSTITUTO POLITCNICO NACIONAL" " ESCUELA SUPERIOR DE INGENIERAS MECNICA Y ELCTRICA " " AGUILAR PACHECO EDGAR ALFREDO" "PRINCIPIOS DE PROGRAMACIN" "GRUPO 1CV9 VESPERTINO" PROCESOS

Ninguna

ninguno

Algoritmo.
Pseudocdigo (programa principal). INICIO: IMPRIMIR (INSTITUTO POLITCNICO NACIONAL") IMPRIMIR ("ESCUELA SUPERIOR DE INGENIERAS MECNICA Y ELCTRICA) IMPRIMIR ("PRINCIPIOS DE PROGRAMACIN) IMPRIMIR ("AGUILAR PACHECO EDGAR ALFREDO ") IMPRIMIR ("GRUPO 1CV9 VESPERTINO") FIN.

Diagrama de flujo.
INICI O

INSTITUTO POLITCNICO NACIONAL" ESCUELA SUPERIOR DE INGENIERAS MECNICA Y ELCTRICA PRINCIPIOS DE PROGRAMACIN AGUILAR PACHECO EDGAR ALFREDO GRUPO 1CV9 VESPERTINO

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; int main() { cout << "\t INSTITUTO POLITECNICO NACIONAL\n" << endl; cout << " ESCUELA SUPERIOR DE INGENIERIAS MECANICA Y << endl; cout << "\t\tAGUILAR PACHECO EDGAR AlFREDO\n" << endl; cout << "\t\t PRINCIPIOS DE PROGRAMACION\n" << endl; cout << "\t\t GRUPO 1CV9 VESPERTINO \n" << endl; cout << "\t "; system ("PAUSE"); return 0; }

ELECTRICA\n"

Programa ejecutado.

Conclusiones.
Es muy parecido este programa al anterior la nica diferencia es que aqu mandamos a desplegar todo una portada, se sigue utilizando como base la palabra reservada cout y el system (PAUSE), aqu ya pude usar mejor lo que el salto de lnea y el tabulador.

81

Practica # 3.
Suma de tres nmeros fijos. Definicin del problema.
Disear un algoritmo y un programa que realice la suma de tres nmeros predeterminados. ENTRADAS Ninguna SALIDAS Suma PROCESOS Suma=numero1+numero2+numero3

Algoritmo.
Pseudocdigo (programa principal). INICIO: a, b, c, res a=5 b=10 c=15 res = a+b+c; IMPRIMIR (reS) FIN.

Diagrama de flujo.
INICI O int a,b,c,res

a=5, b=10, c=15

res=a+b+c

res

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; void portada(); int main () { int a,b,c,res; a=5; b=10; c=15; res=a+b+c; cout << "Suma de 3 numeros fijos \n\n a+b+c \n\n a=5 \n b=10 \t\n c=15 \n" << endl; cout << "El resultado es:" << res << endl; system ("PAUSE"); return 0 ; }

Programa ejecutado.

Conclusiones. En este programa se puede apreciar el cmo podemos realizar operaciones bsica, en este caso suma tres numero predeterminados, y como se manda a imprimir una variable cabe mencionar que se siguen utilizando las herramientas de las practica 1 y 2, lo nico q se hiso en esta fue sumar tres numero, guardarlos en otra variable, y luego mandar a imprimir la variable en donde se guardo la suma.

81

Practica # 4.
Suma de tres nmeros capturados por el usuario. Definicin del problema.
Disear un algoritmo y un programa que realice la suma de tres nmeros los cuales deben ser capturados por el ususario. ENTRADAS a, b, c SALIDAS res PROCESOS res=a+b+c

Algoritmo.
Pseudocdigo (programa principal). INICIO: a, b, c, res IMPRIMIR("Suma de 3 numeros introducidos por el usuario" ) LEER (a,b,c) IMPRIMIR (a, b , c) res = a, b, c IMPRIMIR (res) FIN.

Diagrama de flujo.
INICI O int a,b,c,res

a, b,c

res=a+b+c

res

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; void portada (); int main () { int a,b,c,res; cout << "Suma de 3 numeros introducidos por el usuario" << endl; cout << "\nIntroduce el valor de a : "; cin >> a; cout << "Introduce el valor de b : "; cin >> b; cout << "Introduce el valor de c : "; cin >> c; cout << "\nEl valor de a:" << a << endl; cout << "El valor de b:" << b << endl; cout << "El valor de c:" << c << endl; res = a + b + c; cout << "\nEl resultado es:" << res << endl; system ("PAUSE"); return 0 ; }

Programa ejecutado.

Conclusiones.
En este programa ya utilizamos una nueva palabra reservada llamada cin la cual nos sirve para hacer capturas por medio del teclado, en este caso fueron solo tres nmeros los cuales se volvieron a sumar como en programa anterior, mostrndose igualmente la suma de los tres nmeros, en este caso cuando se pide un dato, ya se puede apreciar lo que se despleg anteriormente.

81

Practica # 5.
Volumen de un cubo. Definicin del problema.
Disear un algoritmo y un programa que calcule el volumen de un cubo, los datos deben de ser introducidos por el usuario. ENTRADAS l SALIDAS volumen PROCESOS volumen= l*l*l

Algoritmo.
Pseudocdigo (programa principal). INICIO: l, vol IMPRIMIR ("Calculo del volumen de un cubo") LEER ( l) SI ( l>0 )HACER IMPRIMIR ( l ) vol = l * l * l IMPRIMIR (vol) SI NO IMPRIMIR ("El volumen no se puede calcular") FIN.

Diagrama de flujo.
INICI O int l, vol

l si l>0 no ERROR vol

vol =1*1*1

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; void portada (); int main () { int l; float vol; cout << "Calculo del volumen de un cubo" << endl; cout << "\nIntroduce el valor del lado: "; cin >> l; if (l>0) { cout << "\nEl valor de l: " << l << endl; vol = l * l * l; cout << "\nEl volumen del cubo es: " << vol << endl; system ("PAUSE"); } else { cout << "\nEl volumen no se puede calcular" << endl; system ("PAUSE"); } return 0 ; }

Programa ejecutado. Conclusiones.


En este programa ya se utiliz el una sentencia de flujo programtico llamada if-else la cual nos sirve para hacer condiciones y se puede traducir as si-si no solo es para poder tomar parmetros, en este caso desde donde, hasta a donde va a poder introducir datos el usuario. Eso fue lo nico diferente de los programas anteriores

81

Practica # 6.
rea de un polgono. Definicin del problema.
Disear un algoritmo y un programa que calcule el rea de un polgono en el cual el usuario pueda introducir los lados del polgono. ENTRADAS lado1, lado2 SALIDAS rea PROCESOS rea=lado1*lado2

Algoritmo.
Pseudocdigo (programa principal). INICIO: lado1,lado2, rea IMPRIMIR ("Calculo del rea de un polgono") LEER ( lado1, lado2) SI((lado1>0)y(lado2>0))HACER rea= lado1 * lado2 IMPRIMIR (lado1, lado2) IMPRIMIR (rea) SI NO IMPRIMIR ("El area no se puede calcular") FIN.

Diagrama de flujo.
INICI O int l1,l2, area

l1,l2 si
(l>0) y (l<10)

area =11*12

no

area

ERROR

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; void portada (); int main () { int l1,l2; float area; cout << "Calculo del area de un poligono" << endl; cout << "\nIntroduce el valor de L1 : "; cin >> l1; cout << "\nIntroduce el valor de L2 : "; cin >> l2; if ((l1>0)&&(l2>0)) { area= l1 * l2; cout << "\nEl valor de L1 : " << l1 << endl; cout << "El valor de L2 : " << l2 << endl; cout << "\nEl area es : " << area << endl; } else { cout << "\nEl area no se puede calcular" << endl; } system ("PAUSE"); return 0 ; }

Programa ejecutado. Conclusiones.


En este programa no se utiliza nada nuevo solo se reafirman todos los conocimientos de las practicas anteriores ya que todo lo visto en este programa ya se ha utilizado en los programas anteriores.

81

Practica # 7.
If-else if-else. Definicin del problema.
Disear un algoritmo y un programa que muestre un men con, en el cual podamos seleccionar cualquiera de las opciones y despus de seleccionar una opcin nos muestre la opcin que seleccionamos. ENTRADAS opcion SALIDAS Opcin seleccionada PROCESOS ninguno

Algoritmo.
Pseudocdigo (programa principal). INICIO: texto1= LA OPCION DESEADA ES: opcion IMPRIMIR (Selecciona la opcion deseada) IMPRIMIR (1.- Opcion 1) IMPRIMIR (2.- Opcion 2) IMPRIMIR (3.- Opcion 3) IMPRIMIR (Cualquier otra para salir) LEER (opcin) SI (opcion = 1) HACER IMPRIMIR (texto1, opcion ) SI (opcion= 2) HACER IMPRIMIR (texto1, opcin) SI (opcion = 3) HACER IMPRIMIR (texto1, opcion) SI NO IMPRIMIR ("salir") FIN.

81

Diagrama de flujo.
INICI O int opcin, texto= la opcin deseada es :

"Selecciona la opcion deseada" "1.- Opcion 1" "2.- Opcion 2" "3.- Opcion 3"

<< "Cualquier otra para salir\n * ";


opcion

opcion =1 opcion =2

texto1, opcion

texto1, opcion

opcion =3

texto1, opcion

FIN

Programa.
#include <iostream> #include <cstdlib> #define texto1 "LA OPCION DESEADA ES:" using namespace std; int main () { int opcion; cout << "Selecciona la opcion deseada\n\n" << "1.- Opcion 1\n" << "2.- Opcion 2\n" << "3.- Opcion 3\n" << "Cualquier otra para salir\n * "; cin >> opcion; 81

if (opcion == 1) { cout << texto1<< opcion << endl; } else if (opcion == 2) { cout << texto1 << opcion << endl; } else if (opcion == 3) { cout << texto1 << opcion << endl; } else { cout << "salir" <<endl; } system ("PAUSE"); return 0; }

Programa ejecutado.

Conclusiones.
En este programa lo nuevo fue que ahora declaramos una constante llamada texto, cuando se declara una constante, como en fsica, qumica, matemticas, etc., la constante vale en este caso lo mismo en todo el programa una, aqu ya utilizamos la sentencia de flujo programtico if-else if-else, aqu ya podemos poner varias condiciones y que realice cierta accin dependiendo de la condicin obtenida.

81

Practica # 8.
Volumen de un cilindro. Definicin del problema.
Disear un algoritmo y un programa que realice el calculo del volumen de un cilindro, haciendo sus consideraciones correspondientes. ENTRADAS radio, altura SALIDAS volumen PROCESOS volumen=PI*radio*altura

Algoritmo.
Pseudocdigo (programa principal). INICIO: PI = 3.1416 r,h,volcil r = capturadato () h = capturadato () volcil = calculavolumen (r,h) SI (volcil>0) HACER IMPRIMIR ( volcil) SI NO IMPRIMIR ("NO SE PUEDE CALCULAR) FIN. Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN.

Pseudocdigo (calculavolumen). 81

INICIO res, rad, alt SI (rad>0 && alt>0) res = PI * pow (rad,2) * alt; REGRESAR (res) SI NO REGRESAR ( 0) FIN.

Diagrama de flujo.
INICI O double capturadato(string palabra) double calculavolumen(double rad, double alt) double r,h,volcil r = capturadato (" radio") h = capturadato (" altura") capturadato()

double valor

valor

return valor

volcil = calculavolumen (r,h)


si

FIN volcil

no

volcil> 0

no se puede calcular

FIN

calculavolumen()

double res
si

(rad>0 && alt>0)


no

res = PI * pow (rad,2) * alt

return 0

return res

FIN

81

Programa.
#include <iostream> #include <cstdlib> #include <cmath> #include <string> #define PI 3.1416 using namespace std; double capturadato(string palabra); double calculavolumen(double rad, double alt); int main () { double r,h,volcil; r = capturadato (" radio"); h = capturadato (" altura"); volcil = calculavolumen (r,h); if (volcil>0) { cout << "\n\tEl volumen es:" << volcil << "\n\t"; } else { cout << "NO SE PUEDE CALCULAR" << endl; } system ("PAUSE"); return 0; } double capturadato (string palabra ) { double valor; cout << "Captura el valor de " << palabra << "=" ; cin >> valor ; return valor; } double calculavolumen (double rad, double alt) { double res; if (rad>0 && alt>0) { res = PI * pow (rad,2) * alt; return res; } else {

81

return 0; } }

Programa ejecutado.

Conclusiones.
En este programa utilizamos ya lo que se llama forma de programar estructuradamente, esto consiste en si a mi muy manera de ve, que se manda a llamar pequeos programas desde el programa principal a estos nuevos programas se llaman funciones, a las cuales yo los llamo subrutinas, ya que cuando las mandas llamar desde el programa principal, realizan las instrucciones que le marcamos y despus vuelve al programa principal, con este reducimos muy drsticamente nuestro programa principal

81

Practica # 9.
Paso por referencia. Definicin del problema.
Disear un algoritmo y un programa que realice la duplicacin de tres nmeros introducidos por el usuario. ENTRADAS m1, m2, m3 SALIDAS m1, m2, m3 //aqu ya deben de estar duplicados PROCESOS m1*=2 m2*=2 m3*=2

Algoritmo.
Pseudocdigo (programa principal). INICIO: m1,m2,m3 m1 = capturadato () m2 = capturadato () m3 = capturadato () imprime (m1, m2, m3) duplica (m1, m2, m3) imprime (m1, m2, m3) FIN. Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN. Pseudocdigo (imprime). INICIO: x1, x2, x3

81

IMPRIME ( "valor M1=", x1) IMPRIME ( "valor M2=", x2) IMPRIME ( "valor M3=", x3) FIN. Pseudocdigo (duplica). INICIO: &m1, &m2, &m3 m1*=2 m2*=2 m3*=2 FIN. //el & significa direccion

Diagrama de flujo.
INICI O void duplica (float &m1, float &m2, float &m3) void imprime( float x1, float x2, float x3) float m1,m2,m3 double capturadato(string palabra) m1 = capturadato ("M1 ") m2 = capturadato capturadato(string palabra) double valor

valor

return valor

("M2
FIN

")
m3 = capturadato ("M3 ") imprime (m1, m2, m3) duplica (m1, m2, m3) imprime (m1, m2, m3) FIN imprime( float x1, float x2, float 3)

duplica (float &m1, float &m2, float &m3) m1*=2 m2*=2 m3*=2

FIN

x1, x2, x3

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; doubl capturadato (string palabra); void duplica (float &m1, float &m2, float &m3); void imprime( float x1, float x2, float x3); int main() { float m1,m2,m3; m1 = capturadato ("M1 "); m2 = capturadato ("M2 "); m3 = capturadato ("M3 "); system ("CLS"); cout <<"\n\tVALORES INTRODUCIDOS"<<endl; imprime (m1, m2, m3); duplica (m1, m2, m3); cout << "\n\tVALORES DUPLICADOS"<<endl; imprime (m1, m2, m3); system ("PAUSE"); return 0; } void imprime (float x1, float x2, float x3) { cout << "valor M1=" << x1 << "\n" ; cout << "valor M2=" << x2 << "\n" ; cout << "valor M3=" << x3 << "\n" << endl; } void duplica (float &m1, float &m2, float &m3) { m1*=2; m2*=2; m3*=2; } double capturadato (string palabra ) { double valor; cout << "Captura el valor de " << palabra << "=" ; cin >> valor ; return valor; }

81

Programa ejecutado.

Conclusiones.
En este programa como su nombre bien lo dice es paso por referencia, que quiere decir que cuando ponemos el & a lo que nos estamos refiriendo es a lo que se encuentra en la direccin de la variable a la que este apuntando, es el segundo programa en el que se est utilizando funciones, todo lo dems ya se ha visto en los programas anteriores.

Practica # 10.
81

Ley de ohm. Definicin del problema.


Disear un algoritmo y un programa que calcule el voltaje de un circuito a partir de la ley de ohm, el usuario debe introducir la corriente y la resistencia. ENTRADAS corriente, resistencia SALIDAS voltaje PROCESOS voltaje=corriente*resistencia

Algoritmo.
Pseudocdigo (programa principal). INICIO: v,r,i, salir,x HACER r = capturadato (" la Resistencia") i = capturadato (" la Corriente") SI (r>0) HACER v = calcula (r,i) IMPRIMIR ( v ) SI NO IMPRIMIR ("No hay resistencias negativas") IMPRIMIR (Desea calcular otro voltaje) LEER (salir;) MIENTRAS (salir= s || salir= S) FIN. Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN. Pseudocdigo (calcula). INICIO: r, i, res res = r *i; REGRESAR ( res) FIN.

Diagrama de flujo.
81

INICI O double calcula (double r, double i) double v,r,i, int salir,x double capturadato(string palabra)

capturadato(string palabra) double valor

valor r = capturadato (" la Resistencia") i = capturadato (" la Corriente")"


si

return valor

(r>0)
no

v = calcula (r,i) V calcula (double r, double i) double res

FIN

salir
si

no

(salir= s || salir= S)

res = r *i return res FIN

FIN

Programa.
#include <iostream> #include <cstdlib>

using namespace std; doubl capturadato(string palabra); double calcula (double r, double i); int main() { double v,r,i,; int salir,x; cout << "Practica 10 Ley de Ohm" << endl; do { r = capturadato (" la Resistencia"); i = capturadato (" la Corriente"); if (r>0) { v = calcula (r,i); cout << "El voltaje es = " << fixed << setprecision (4) << v << " volts" << endl; } 81

else { cout << "No hay resistencias negativas" << endl; } cout << "\nTeclea 1 para salir y cualquier otro para continuar" << endl; cin >> salir; } while (salir!= 1); system ("PAUSE"); return 0; } double calcula (double r, double i) { double res; res = r *i; return res; } double capturadato (string palabra ) { double valor; cout << "Captura el valor de " << palabra << "=" ; cin >> valor ; return valor; }

Programa ejecutado. Conclusiones.


Creo que este programa nos va a resultar muy til ms adelante ya que este puede sacar cualquier voltaje que queramos, se reafirmo el conocimiento, para poder manejar el uso de funciones en los programas, ya que todo ya lo hemos vistos, creo que solo sirvi para entender mejor el concepto de los programas estructurados.

Practica # 11.
81

Ecuacin cuadrtica. Definicin del problema.


Disear un algoritmo y un programa que calcule la ecuacin cuadrtica, mejor conocida como ecuacin general, los datos deben de ser introducidos por el alumno, haga las consideraciones correspondientes. ENTRADAS A, B, C SALIDAS x1,x2 PROCESOS

Algoritmo.
Pseudocdigo (programa principal). INICIO: a, b, c IMPRIMIR ("PROGRAMA 11.ECUACION CUADRTICA") a = capturadato ("a") b = capturadato ("b") c = capturadato ("c") calcula (a, b, c) FIN. Pseudocdigo (calcula). INICIO: a, b, c, w, x1, x2 SI (a!=0) HACER w = pow (b,2) - (4 * a * c) SI ( w>0 ) HACER x1 = ( ( -b ) + (sqrt ( w )) ) / (2 * a) x2 = ( ( -b ) - (sqrt ( w )) ) / (2 * a) IMPRIMIR (x1,x2) SI NO IMPRIMIR ("ESTA ECUACIN NO SE PUEDE CALCULAR") SI NO IMPRIMIR ("ESTA ECUACIN NO SE PUEDE CALCULAR") FIN. Pseudocdigo (capturadato).

81

INICIO: valor LEER (valor) REGRESAR valor FIN.

Diagrama de flujo.
INICIO void calcula ( double a, double b, double c) float a,b,c capturadato (string palabra) a = capturadato ("a") b = capturadato ("b") c = capturadato ("c") calcula (a, b, c)
si

calcula ()

float w, x1, x2
no

si

(a! =0)

"ESTA ECUACION NO SE PUEDE CALCULAR"

w = pow (b,2) - (4 * a * c)
no

( w> 0)

"ESTA ECUACION NO SE PUEDE CALCULAR"

FIN

x1 = ( ( -b ) + (sqrt ( w )) ) / (2 * a) x2 = ( ( -b ) - (sqrt ( w )) ) / (2 * a) x1,x2

FIN

capturadato()

double valor

valor

return valor

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; double capturadato(string palabra); void calcula ( double a, double b, double c); int main () { float a,b,c; cout << "PROGRAMA 11" << endl; cout << "ECUACION CUADRATICA\n" << endl; a = capturadato ("a"); b = capturadato ("b"); c = capturadato ("c"); calcula (a, b, c); return 0; } void calcula (double a, double b,double c) { float w, x1, x2; if (a!=0) { w = pow (b,2) - (4 * a * c); if ( w>0 ) { x1 = ( ( -b ) + (sqrt ( w )) ) / (2 * a); x2 = ( ( -b ) - (sqrt ( w )) ) / (2 * a); cout << "EL VALOR DE X1=" << x1 << endl; cout << "EL VALOR DE X2=" << x2 << endl; system ("PAUSE"); } else { cout << "ESTA ECUACION NO SE PUEDE CALCULAR" <<endl; system ("PAUSE"); } 81

} else { cout << "ESTA ECUACION NO SE PUEDE CALCULAR" <<endl; system ("PAUSE"); }} double capturadato (string palabra ) { double valor; cout << "Captura el valor de " << palabra << "=" ; cin >> valor ; return valor; }

Programa ejecutado.

Conclusiones.
Este programa va a ser muy til ya que puede resolver cualquier ecuacin aunque parezca muy difcil, otro programa muy til que puede ser usado en muchos momentos, sobre todo por aquellos a los que no se les dan las matemticas, en este programa se vuelven a usar funciones y el ya bien manejo if-else.

81

Practica # 12.
factorial. Definicin del problema.
Disear un algoritmo y un programa que calcule el factorial de cualquier nmero introducido por el usuario. ENTRADAS numero SALIDAS factorial PROCESOS factorial=1*2*3*4*--------numero

Algoritmo.
Pseudocdigo (programa principal). INICIO: a, b a = capturadato (numero a calcular) b = a-1; calcula(a, b); FIN. Pseudocdigo (calcula). f, c SI ( f> 0) HACER MIENTRAS ( c> 1) f= f*c c=c-1 IMPRIMIR ( f) O SI ( f < 0) HACER IMPRIMIR ("NO SE PUEDE CALCULAR") SI NO IMPRIMIR("EL FACTORIAL ES 1" << ) FIN.

81

Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN.

Diagrama de flujo.
INICIO double capturadato (string palabra) void calcula (double f, double c) double a,b a = capturadato () b = a-1x2 calcula(a, b) "NO SE PUEDE CALCULAR"
si

calcula ()
si

( f> 0)
no

f= f*c

c=c-1 (f< 0)
no no si

( c> 1) f

"EL FACTORIAL ES 1" FIN whi le FIN ( c> 1))

Programa.
#include <iostream> #include <cstdlib> using namespace std; double captura (); void calcula (double f, double c); int main () { double a,b; a = captura (); b = a-1; calcula(a, b); return 0; 81
capturadato(string palabra) double valor

valor

return valor

FIN

} double captura () { double factorial; cout << "INTRODUCE EL NUMERO A CALCULAR cin >> factorial; return factorial; } void calcula (double f, double c) { if ( f> 0) { while ( c> 1) { f = f * c; c = c - 1; } cout << "\nEL FACTORIAL ES:" << f << endl; system ("PAUSE"); } else if ( f < 0) { cout << "\nNO SE PUEDE CALCULAR" << endl; system ("PAUSE"); } else { cout << "\nEL FACTORIAL ES 1" << endl; system ("PAUSE"); } }

" ;

Programa ejecutado.

81

Conclusiones.
Este programa nos muestra una vez mas que la programacin la podemos utilizar para realizar muchos problemas prcticos, en este caso de matemticas y el como utilizando una buena lgica podemos plasmar cosas muy buenas en los programas los cuales como es en este caso resuelven operaciones como si fuera una calculadora aqu se puedo apreciar el uso de while, que simplemente es para hacer ciclos repetitivos dependiendo de las condiciones.

Practica # 13.
Serie de nmeros de 3 en 3 hasta el 99. Definicin del problema.
Disear un algoritmo y un programa que imprima una serie de 3 en 3 hasta llegar al numero 99 o hasta que sume el numero 33 veces. ENTRADAS ninguna SALIDAS 3,6,9,12,15,1899 PROCESOS ninguno

Algoritmo.
Pseudocdigo (programa principal). INICIO: suma, cuenta, acumulador suma = 0 cuenta = 0 IMPRIMIR (Serie de nmeros) MIENTRAS (cuenta <= 32) HACER cuenta= cuenta +1 suma = 3 * cuenta 81

acumulador =acumulador + suma IMPRIMIR (suma, acumulador) IMPRIMIR(La suma total es ", acumulado)

FIN.

Diagrama de flujo.
INICIO int suma=0,cuenta=0,acumulador=0

cuenta= cuenta +1 suma = 3 * cuenta acumulador =acumulador + suma suma


si

no

(cuenta<=3 2) while ( c> 1)) acumulador

FIN

Programa.
#include <iostream> #include <cstdlib> int main() { int suma,cuenta,acumulador; suma = 0; cuenta = 0; cout << "Serie\tSuma de serie\n" << endl; while (cuenta <= 32) 81

{ cuenta= cuenta +1; suma = 3 * cuenta; acumulador =acumulador + suma; cout << suma <<"\t"<< acumulador<< endl; } cout <<"\nLa suma total es "<<acumulador<< endl; system ("PAUSE"); return 0; }

Programa ejecutado.

Conclusiones.
En este programa utilizamos por segunda la sentencia de flujo programtico llamad while que como ya lo dije es para hacer ciclos, y es muy til para realizar el mismos proceso por tantas veces como nosotros quieramos, se comprendi mejor el uso de while ya se sabe bien como funciona y nos puede ser muy til, en otros programas para no escribir mucho cdigo si ni hacerlo mediante un ciclo.

81

Practica # 14.
Velocidad de corredores. Definicin del problema.
Disear un algoritmo y un programa que calcule la velocidad de corredores de 1500 m, los datos deben de ser introducidos por el usuario , para dejar de calcular velocidades pide al usuario que ingrese 0 en los dos valores.. ENTRADAS ninguna SALIDAS 3,6,9,12,15,1899 PROCESOS ninguno

Algoritmo.
Pseudocdigo (programa principal). INICIO: min,seg; HACER min = capturadato ("los minutos"); seg = capturadato ( "los segundos"); calcula(min,seg); MIENTRAS ((min!=0)&&(seg!=0)) FIN. Pseudocdigo (programa calcula). INICIO: distancia, tiempo, velocidad distancia =1500; SI ((min<0)||(seg<0)) HACER IMPRIMIR ("No hay tiempos negativos") SI ((min>=0)&&(seg>=0)) HACER 81

tiempo = (min * 60) + (seg) velocidad = distancia / tiempo IMPRIMIR (velocidad) FIN. Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN.

Diagrama de flujo.
INICIO double capturadato (string palabra) void calcula(float min, float seg) float min,seg min = capturadato ("los minutos") seg = capturadato ( "los segundos")
no

calcula () float distancia, tiempo, velocidad distancia=1500


si

((min<0)|| (seg<0))

No hay tiempos negativos

calcula(min,seg)

tiempo = (min * 60) + (seg) velocidad = distancia / tiempo


si

((min! =0)&& (seg!=0)


no

velocidad

FIN

FIN

81

Programa.
#include <iostream> #include <cstdlib> double capturado(string palabra); void calcula(float min, float seg); int main() { float min,seg; cout << "\n\tCORREDORES DE 1500m" << endl; cout << "\n\t0 EN LOS DOS TIEMPOS PARA DEJAR DE CALCULAR" << endl; do { min = capturadato ("los minutos"); seg = capturadato ( "los segundos"); calcula(min,seg); } while ((min!=0)&&(seg!=0)); return 0; } void calcula(float min, float seg) { float distancia, tiempo, velocidad; distancia=1500; if ((min<0)||(seg<0)) { cout << "\tNo hay tiempos negativos\n\t"; system ("PAUSE"); } else if((min>=0)&&(seg>=0)) { tiempo = (min * 60) + (seg); velocidad = distancia / tiempo; cout << "\n\tEl tiempo de este corredor es de "<<min<<" minutos "<<seg<<" segundos"<< endl; cout << "\tEa velocidad de este corredor es de " << velocidad << "m/s\n\t"; system ("PAUSE"); } else { system ("PAUSE"); } } double capturadato (string palabra ) 81

{ double valor; cout << "Captura el valor de " << palabra << "=" ; cin >> valor ; return valor; }

Programa ejecutado.

Conclusiones.
En este programa utilizamos el do-while otra sentencia de flujo programtico que en este caso sirvi para que el usuario capturara todos los tiempos que quisiera, y bastaba con introducir dos ceros para que el programa saliera, si el esta sentencia es muy parecida al while, solo que aqu primero se realiza el proceso y luego checa la condicin, mientras que en while primero se checaba la condicin y luego se realizaba el ciclo.

Practica # 15.
Promedio de un alumno con 7 calificaciones. Definicin del problema.
Disear un algoritmo y un programa que calcule el promedio de un alumno el cual cuenta con 7 materias, las calificaciones deben de ser introducidas por el ususario. ENTRADAS calificacin SALIDAS promedio PROCESOS promedio=calificaciones/7

81

Algoritmo.
Pseudocdigo (programa principal). INICIO: a a = capturacalificacion() promedio (a) FIN Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN. Pseudocdigo (capturacalificacion). INICIO: i, prom, calificacion prom = 0 PARA (i=1;i<=7;i++) HACER LEER ( calificacin) SI ((calificacion>0)&&(calificacion<11)) HACER prom = prom + calificacion SI NO IMPRIMIR( "LAS CALIFICACIONES SON DE 1 A 10) i = i-1 calificacion = calificacion - calificacion prom = prom + calificacion REGRESAR (prom) FIN. Pseudocdigo (promedio). INICIO: prom = prom / 7 cout << "promedio "<< prom << endl; FIN.

Diagrama de flujo.
81

INICIO double capturacalificacion() double promedio(float prom) float a a = capturacalificacion() cali promedio (a) ((cali>0) &&(cal< 11))
no si

capturacalificacion () float i, prom=0,cal i=1 i<=7 i++

FI N

prom = prom + cali

i = i-1 cali= cali - cal prom = prom + cal Calificaciones de 1 a 10

return promedio

FIN

promedio() prom = prom / 7

prom

FIN

Programa
#include <iostream> #include<cstdlib> using namespace std; 81

double capturacalificacion(); double promedio(float prom); int main () { float a; cout << "PROGRAMA 15. PROMEDIO DE UN ALUMNO CON 7 CALIFICACIONES" << endl; a = capturacalificacion(); promedio (a); return 0; } double capturacalificacion() { float i, prom,calificacion; prom = 0; for(i=1;i<=7;i++) { cout << "\tcaptura calificacion" << i << "=" ; cin >> calificacion; if ((calificacion>0)&&(calificacion<11)) { prom = prom + calificacion; } else { cout << "NO HAY CALIFICACIONES MENORES DE 0 Y MAYORES DE 10" << endl; i = i-1; calificacion = calificacion - calificacion; prom = prom + calificacion; } } return prom; } double promedio ( float prom) { prom = prom / 7; cout << "promedio "<< prom << endl; system ("PAUSE");

81

Programa ejecutado.

Conclusiones.
En este programa se utilizo una nueva sentencia de flujo programtico llamada for, esta acta como si fuera un while o un do-while, solo que el for en su estructura misma ya lleva lo que el inicializar variables, de donde hasta donde va a abarcar el ciclo, y de cunto va a ser el aumento o el decremento, creo que es mucho ms til que el while o el mismo do-while, en ciertos casos, como este, es muy til ya que as nos ahorraremos mucho cdigo.

Practica # 16.
Nmeros positivos.

81

Definicin del problema.


Disear un algoritmo y un programa que diferencie los nmeros para que solo imprima los numero positivos y cuando no sea un numero positivo solo pida el siguiente numero. ENTRADAS numero SALIDAS positivo PROCESOS (Numero>0)=positivo

Algoritmo.
Pseudocdigo (programa principal). INICIO: ciclo() FIN. Pseudocdigo (ciclo). INICIO: i, numero PARA (i=1; i<=10; i++) HACER numero = Capturadato(i) SI (numero > 0) HACER imprime(numero) FIN Pseudocdigo (capturadato). INICIO: valor LEER (valor) REGRESAR valor FIN.
INICIO double capturadato(int j) void imprime(double numero) void ciclo() ciclo() FI numero= capturadato(i) ciclo ()

Diagrama de flujo.

int i doubl numero i=1 i<=10 i++

(numero > 0)
si

81

numero

FIN

capturadato(string palabra) double valor

valor

imprime()

return valor

numero

FIN

FIN

Programa.
#include <iostream> #include<cstdlib> using namespace std; double Capturadato(int j); void imprime(double numero); void ciclo(); int main() { cout << "PROGRAMA 16. MUESTRA SOLO LOS NUMERO POSITIVOS" << endl; ciclo(); system("pause"); return 0; } void ciclo() { int i; double numero; for(i=1; i<=10; i++) 81

{ numero = Capturadato(i); if(numero > 0) { imprime(numero); } else{} } } double Capturadato(int j) { double valor; cout << "\nCaptura el valor de " << j << "=" ; cin >> valor; return valor; } void imprime(double numero) { cout << "numeros positivos = " << numero << endl; }

Programa ejecutado.

Conclusiones.
En este programa se utilizo la sentencia for solo para que el usuario capturara 10 numeros y al mismo tiempo comparaba si era un nmero mayor a cero, si lo era lo imprima, si no lo era simplemente peda el otro dato, es un programa muy simple, pero el cual refleja muy bien el uso del for, creo que con este programa quedo mejor comprendido el uso del for.

Practica # 17.
Nmeros positivos, negativos y neutros.

81

Definicin del problema.


Disear un algoritmo y un programa que pida al usuario 20 numeros, y al termino de capturarlos te muestre la cantidad de numero positivos que introdujo el usuario, asi mismo para los neutros(0), y los negativos(-) . ENTRADAS numero SALIDAS positivos neutros negativos PROCESOS (numero>0)=positivo (numero=0)=neutro (numero<0)=negativo

Algoritmo.
Pseudocdigo (programa principal). INICIO: Ciclo() FIN. Pseudocdigo (ciclo). INICIO: Pos = 0, Neg = 0, Neu = 0; numero PARA (i = 1; i <= 20; i++) HACER numero = CapturaDato(i) SI (numero > 0) HACER Pos ++; O SI (numero < 0) Neg ++; SI NO Neu ++; IMPRIME (Pos, "Positivos") IMPRIME (Neg, "Negativos") IMPRIME (Neu, "Neutros") FIN. Pseudocdigo (capturadato). INICIO: valor LEER (valor,j) REGRESAR valor 81

FIN. Pseudocdigo (imprime). IMPRIME(palabra, " = ", numero) FIN.

Diagrama de flujo.
INICI O double capturadato(int j) void imprime(double numero,string palabra) void ciclo() ciclo() FI N

ciclo ()

int i doubl numero i=1 i<=10 numero= capturadato(i)


Imprime(Pos, "Positivos") si

i++

(numero > 0)
si

Pos++
Imprime(Neg, "Negativos")

(numero <0) Neu++

Neg++
Imprime(Neu, "Neutros")

FIN capturadato( ) double valor

Valor,j

return valor

FIN

imprime()

palabra,numero

81

FIN

Programa.
#include <iostream> #include <cstdlib> using namespace std; double CapturaDato(int j); void Imprime(double numero, string palabra); void Ciclo(); int main() { cout << "PROGRAMA 16. MUESTRA CUANTOS NUMEROS\nSON POSITIVOS, CUANTOS NEGATIVOS Y CUANTOS NEUTROS"<<endl; Ciclo(); system("pause"); return 0; } void Ciclo() { int i, Pos = 0, Neg = 0, Neu = 0; double numero; for(i = 1; i <= 20; i++) { numero = CapturaDato(i); if(numero > 0) { Pos ++; } else if(numero < 0) { Neg ++; } else { Neu ++; } } 81

Imprime(Pos, "Positivos"); Imprime(Neg, "Negativos"); Imprime(Neu, "Neutros"); } double CapturaDato(int j) { double Valor; cout << "El valor " << j <<"= "; cin >> Valor; return Valor; } void Imprime(double numero, string palabra) { cout << "La cantidad de numeros " << palabra << " = " << numero << endl; }

Programa ejecutado.

Conclusiones.
En este programa es muy parecido al anterior solo se le agregaron algunas condiciones mas, al igual se le agregaron mas contadores, en si este es un programa muy sencillo, ya que todo en este programa ya se ha visto, por lo cual creo que solo sirvi para reafirmar el conocimiento con respecto a for.

81

Practica # 18.
Funcin segn su lmite. Definicin del problema.
Disear un algoritmo y un programa que pida al usuario un numero el cual va a ser el limite de la funcin f(x)= (1/(1+2))+ ((1/2+3))+ ((1/3+4))+ ((1/n+(n+1))). ENTRADAS limite SALIDAS f(x) PROCESOS f(x)=(1/n+(n+1))

Algoritmo.
Pseudocdigo (programa principal). INICIO: m portada() m=capturadato("el numero") calcula(m) FIN. Pseudocdigo (calcula). INICIO: j SI (n > 0) HACER PARA(j = 1; j <= n; j++) HACER IMPRIMIR ("1/(", j,")(",j+1) SI NO IMPRIMIR ("Error!") FIN. Pseudocdigo (capturadato). INICIO: valor LEER (valor,j) REGRESAR valor FIN.

81

Diagrama de flujo.
INICI O double capturadato(int j) void imprime(double numero,string palabra) void ciclo() ciclo() FI N numero= capturadato(i)
Imprime(Pos, "Positivos") si

ciclo ()

int i doubl numero i=1 i<=10 i++

(numero > 0)
si

Pos++
Imprime(Neg, "Negativos")

(numero <0) Neu++

Neg++
Imprime(Neu, "Neutros")

FIN

capturadato( ) double valor

Valor,j

return valor imprime() FIN

palabra,numero

FIN

81

Programa.
#include <iostream> #include <cstdlib> using namespace std; doubl capturadato(string palabra); void calcula(int n); int main() { int m; portada(); cout << "PROGRAMA 18. MUESTRA UNA FUNCION \n\tSEGUN SU LIMITE"<< endl; m=capturadato("el numero"); calcula(m); return 0; } void calcula(int n) { int j; if(n > 0) { cout << "J = "; for(j = 1; j <= n; j++) { cout << "1/(" << j << ")(" << j+1 << ")"; cout << " + \n"; } } else { cout << "Error!"; } cout << endl; system("pause"); } double capturadato (string palabra ) { double valor; cout << "Captura el valor de " << palabra << "=" ; cin >> valor ; return valor; }

Programa ejecutado.

81

Conclusiones.
Este es uno de los programas mas sencillos de todo el curso ya que no tiene mayor complejidad solo es para ejemplificar una vez mas el uso de for, y de cmo lo podemos manejar a nuestro antojo.

Practica # 19.
Tabulacin de funciones. Definicin del problema.
Disear un algoritmo y un programa que muestre la salida de una la funcin Y1=(X3-2X24)/X24, para cuando X toma los valores en A= 10, 12, 14.40. y para B = 3, 6, 9.30. ENTRADAS Ninguna SALIDAS Funcin A Funcin B PROCESOS Y=(X3-2X2+3X-4)/X2-4

Algoritmo.
Pseudocdigo (programa principal). INICIO: a,b; calcula () 81

calcula2 () FIN. Pseudocdigo (calcula). INICIO: y, i IMPRIMIR ( "PARA A ") PARA (i=10; i<=40 ;i=i+2) y = ( ( pow ( i , 3) ) - ( 2*pow ( i , 2 ) ) + ( 3 * i + 4)) / (pow (i,2) - 4); IMPRIMIR ( X , Y) FIN. Pseudocdigo (calcula2). INICIO: y, i IMPRIMIR ( "PARA B") PARA (i=3; i<=30 ;i=i+3) y = ( ( pow ( i , 3) ) - ( 2*pow ( i , 2 ) ) + ( 3 * i + 4)) / (pow (i,2) - 4); IMPRIMIR (X, Y) FIN.

Diagrama de flujo.
calcula() INICIO Calcula2() void calcula () void calcula2 double y, i () double y, i

PARA A

PARA B calcula() i=3 Calcula2() y = ((pow(i,3))-(2*pow(i ,2))+ (3*i+4))/(pow(i,2) - 4) FIN i,Y si i<=30 no fin i+3 no

i=10 y = ((pow(i,3))-(2*pow(i ,2))+ (3*i+4))/(pow(i,2) - 4) i,Y si

i<=4 0 81
fin

i+2

Programa
#include <iostream> #include <cstdlib> void calcula (); void calcula2 (); int main () { int a,b; calcula (); calcula2 (); return 0; } void calcula() { double y,i;

81

cout << "PARA A " << endl; for (i=10; i<=40 ;i=i+2) { y = ( ( pow ( i , 3) ) - ( 2*pow ( i , 2 ) ) + ( 3 * i + 4)) / (pow (i,2) - 4); cout << "X \t Y" << endl; cout << i << "\t" << y << endl; } system ("PAUSE"); } void calcula2() { double y,i; cout << "PARA B" << endl; for (i=3; i<=30 ;i=i+3) { y = ( ( pow ( i , 3) ) - ( 2*pow ( i , 2 ) ) + ( 3 * i + 4)) / (pow (i,2) - 4); cout << "X \t Y" << endl; cout << i << "\t" << y << endl; } system ("PAUSE"); }

Programa ejecutado.

81

Conclusiones
En este programa se utilizo de nueva cuenta como base el for para calcular el valor de una funcin dependiendo de qu valor tuviera x, los valores de x iban cambiando gracias al for que utilizamos, las dos tabulaciones, son es si lo mismo lo unico que cambia es que en la primer tabulacin la x va de dos en dos, y en la segunda tabulacin x va cambiando de tres en tres.

Practica # 20.
81

Triangulo, triangulo invertido y rombo. Definicin del problema.


Disear un algoritmo y un programa que muestre un men el cual nos de las opciones de desplegar ciertas figuras. ENTRADAS Ninguna SALIDAS Triangulo Triangulo invertido Rombo PROCESOS Ninguno

Algoritmo.
Pseudocdigo (programa principal). INICIO: Salir, a HACER a = menu() LIMPIAR (pantalla); selec(a) IMPRIMIR (DESEA VER OTRA FIGURA S/N) LEER (salir) LIMPIAR (pantalla) MIENTRAS ( salir = 'S' or salir = 's' ) FIN. Pseudocdigo (menu). INICIO: opcion IMPRIMIR ( SELECCIONA UNA OPCIN " 0. SALIR" 1. TRIANGULO " 2. TRIANGULO INVERTIDO" 3. ROMBO " LEER (opcin) REGRESAR (opcin) FIN. Pseudocdigo (selec). INICIO:

81

SELECCIONAR (opcion) caso(opcin= 0) HACER (salir) ROMPER Caso (opcin=1) IMPRIMIR (1. TRIANGULO") HACER (triangulo) ROMPER Caso (opcin=2) IMPRIMIR ("2. TRIANGULO INVERTIDO") HACER trianguloinvertido() ROMPER Caso (opcin=3) IMPRIMIR ("3. ROMBO) HACER rombo() ROMPER default: IMPRIMIR (OPCION INCORRECTA") FIN. Pseudocdigo (triangulo). INICIO: i, j, k, n = 5, m = 0 PARA (i=0;i<=5;i++) PARA (j=0;j<=n;j++) IMPRIMIR (" ") PARA (k=1;k<=m;k++) IMPRIMIR ("++" ) n--; m++; IMPRIMIR (salto de lnea) FIN. Pseudocdigo (trianguloinvertido). INICIO: i, j, k, n = 5, m = 0 PARA (i=0;i<=5;i++) PARA (j=0;j<=m;j++) IMPRIMIR (" ") PARA (k=1;k<=n;k++) IMPRIMIR ("++") n--; 81

m++; IMPRIMIR (salto de lnea) FIN. Pseudocdigo (rombo). INICIO: HACER (triangulo()) HACER (trianguloinvertido()) FIN.

Diagrama de flujo.
INICIO double menu() void selec(int opcion) void triangulo() void trianguloinvertido() void rombo() int opcion char salir; int a; a= men() selec(a) "PRESIONA X PARA SALIR, CUALQUIER OTRA PARA CONTINUAR" selec(opcion ) opcion =0 opcion= 1 opcion= 2 opcion= 3 SALIR=sor SALIR=S SI NO FIN Opcin! = anteriore s fin men()
SELECCIONA UNA OPCIN 0. SALIR 1. TRIANGULO 2. TRIANGULO INVERTIDO 3. ROMBO

opcin

Regresar opcin

FIN

Salir del programa

triangulo()

SALIR

Trianguloinvertido( ) rombo

OPCION INCORRECTA

81

triangulo( ) int i, j, k, n=5, m=0 i=0

trianguloinvertido() int i, j, k, n=5, m=0 i=0

j=0

j=0

SI j<= n k=1 ++ SI k<= m k++ NO j++ NO

SI j<= m k=1 ++ SI k<= n k++ j++

NO

NO

Salto de lnea SI i<= m FIN n--,m++

Salto de lnea SI i<= m FIN n--,m++

NO

NO

rombo triangulo () Trianguloinvertido () FIN

81

Programa .
#include <iostream> #include <cstdlib> using namespace std; double menu(); void selec(int opcion); void triangulo(); void trianguloinvertido(); void rombo(); int opcion; int main () { char salir; int a; do { a = menu(); system ("CLS"); selec(a); cout << "\nPRESIONA X PARA SALIR, CUALQUIER OTRA PARA CONTINUAR\n * " ; cin >> salir; system ("CLS"); } while ( salir != 'x' && salir != 'X' ); return 0; } double menu() { cout << "\t.................................................\n"; cout << "\t: SELECIONA UNA OPCION\t\t\t\t:\n"; cout << "\t: 0. SALIR\t\t\t\t\t:\n"; cout << "\t: 1. TRIANGULO \t\t\t\t\t:\n"; cout << "\t: 2. TRIANGULO INVERTIDO\t\t\t:\n"; cout << "\t: 3. ROMBO \t\t\t\t\t\:\n"; cout << "\t.................................................\n"; cout << "\t * "; cin >> opcion; return opcion; } void selec (int opcion) { 81

switch (opcion) { case 0: exit (0); break; case 1: cout << "1. TRIANGULO\n "<<endl; triangulo(); cout << "\n"; break; case 2: cout << "2. TRIANGULO INVERTIDO\n "<<endl; trianguloinvertido(); break; case 3: cout << "3. ROMBO\n "<<endl; rombo(); break; default: cout << "\tOPCION INCORRECTA\n" << endl; } } void triangulo() { int i,j,k, n = 5, m = 0; for (i=0;i<=5;i++) { for (j=0;j<=n;j++) { cout << " " ; } for (k=1;k<=m;k++) { cout << "++" ; } n--; m++; cout << "\n"; } } void trianguloinvertido() { int i,j,k, n = 5, m = 0; for (i=0;i<=5;i++) { for (j=0;j<=m;j++) { cout << " " ; 81

} for (k=1;k<=n;k++) { cout << "++" ; } n--; m++; cout << "\n"; } } void rombo() { triangulo(); trianguloinvertido(); }

Programa ejecutado.

81

Conclusiones
Este programa es algo simple pero nos muestra una forma de fcil de hacer figuras sin utilizar grficos aun, nos servira mucho para representar cuadrados, no se nos ilustra mucho, que con solo unos for y con mucho ingenio se pueden lograr, grandes cosas, creo que este principio lo utilizare para agregrselo a mi proyecto final.

Practica # 21.
81

Promedio con arreglos. Definicin del problema.


Disear un algoritmo y un programa que calcule el promedio de N alumnos, pidindole tres calificaciones, y debe de imprimir el promedio de cada alumno y debe de representarlo con una grafica. ENTRADAS Calif1, Calif2, Calif3 SALIDAS Promedio Grafica PROCESOS Promedio=Calif1+Calif2+Calif3

Algoritmo.
Pseudocdigo (programa principal). INICIO: Salir, Cal HACER Portada () Ccal (Cal) Ical (Cal) Imprimir (DESEA SACAR MAS PROMEDIOS S/N) Leer (Salir) MIENTRAS (salir=s o salir=S) FIN. Pseudocdigo (Ccal). INICIO: i,j PARA (i=0;i<5;i++) Limpiar (pantalla) PARA(j=0;j<3;j++) HACER Imprimir (Captura Alumno) Leer (cal) MIENTRAS (Cal[i][j]<=0 |o Cal[i][j]>10) cal[i][3]=cal[i][3]+cal[i][j]; calif[i][3]=calif[i][3]/3; IMPRIMIR (El promedio del alumno) Limpiar (pantalla) FIN. Pseudocdigo (Ical) INICIO: LIMPIAR (pantalla) i, j IMPRIMIR (alumno ,calificacin ,grafica) PARA(i =0;i<5;i++) IMPRIMIR (alumno, calificacin) 81

PARA (j=0;j<=cal; j++) IMPRIMIR ("#") IMPRIMIR (salto de lnea) FIN.

Diagramas de flujo.
INICI O
void ccal void igraf float cal string salir ccal() i<=5 igraf() DESEA SACAR MAS PROMEDIOS FIN CAPTURA ALUMNO #,i+1,UNIDAD,J+1. i++ j=0

igraf()
int i,j

i=0

SALIR

cal
SI SALIR=sorS ALIR=S NO FIN SI cal<=0 or cal>10

NO

cal=cal+cal
SI

j<3
NO

J++

cal=cal/3

EL PROMEDIO DEL ALUMNO,i,ES,cal.

81

igraf()
int i,j

i=0 SI i<=5 NO FIN j=0 i++

NO

j<c al

J++ SI

Programa. #include <iostream> #include <cstdlib> #include <iomanip> using namespace std; void capturacalificaciones (float calif[5][4]); void imprimegrafica(float calif[5][4]); float cal[5][4]; int main() { string salir; do { system ("CLS"); capturacalificaciones(cal); imprimegrafica(cal); cout << "\n\tDESEA SACAR MAS PROMEDIOS S/N \n\t * "; cin >> salir; } while (salir =="s" || salir =="S");
81

return 0; } void capturacalificaciones(float calif[5][4]) { int i,j; for(i=0;i<5;i++) { system ("CLS"); for(j=0;j<3;j++) do { cout<<"\tCaptura Alumno "<<i+1<<" UNIDAD "<<j+1<<": "; cin>>calif[i][j]; }while (calif[i][j]<=0 || calif[i][j]>10); calif[i][3]=calif[i][3]+calif[i][j]; } calif[i][3]=calif[i][3]/3; cout <<"\n\tEl promedio del alumno " << i+1 << "= " << calif[i][3] << fixed << setprecision(2) << "\n\t"; system ("PAUSE"); system ("CLS"); } } void imprimegrafica(float calif[5][4]) { system ("CLS"); int i,j; cout<<"\n\tAlumno Calificacion Grafica\n" << endl; for(i=0;i<5;i++) { cout<<"\t " << i+1 <<"\t " << calif[i][3] << "\t\t"; for(j=0;j<=(calif[i][3]-.5);j++) { cout<< "#"; } cout<<endl; } }

81

Programa ejecutado.

Conclusiones.
Este programa nos demuestra lo dicho en el programa anterior, usando for para realizar una pequea grafica donde muestra los promedios de los alumnos, podra decirse que es una forma muy simple de graficar cosas, solo se necesita ingenio para poder plasmarlo, en este programa ya utilizamos arreglos, que son muy indispensable, ya que con los arreglos se puede guardar informacin en localidades de memoria, es muy til para ahorrarse mucho cdigo, ya que podemos pedir varios datos y luego rescatarlos por medio de los arreglos, en si esto es algo de lo que le fa poder a c.

81

Practica # 22.
Resistencia mediante el cdigo de colores. Definicin del problema.
Disear un algoritmo y un programa que calcule la resistencia, pidindole los datos de la resistencia al usuario, basndose en el cdigo de colores. ENTRADAS b1,b2,b3,b4 SALIDAS resistencia toleranca PROCESOS resistencia=((b1*10)+b2)*b3 tolerancia = b4

Algoritmo.
Pseudocdigo (programa principal). INICIO: b1, b2, b3, b4, salir banda12[10][2] = {"0", "Negro", "1", "Cafe", "2", "Rojo", "3", "Naranja", "4", "Amarillo", "5", "Verde", "6", "Azul", "7", "Violeta", "8", "Gris", "9", "Blanco"} banda3a[9][2] = {"0", "Negro", "1", "Cafe", "2", "Rojo", "3", "Naranja", "4", "Amarillo", "5", "Verde", "6", "Azul", "7", "Plata", "8", "Dorado"} banda3b[9] = {1, 10, 100, 1000, 10000, 100000, 1000000, 0.1, 0.01} banda4a[3][2] = {"0", "Dorado", "1", "Plata", "2", "Sin color"} banda4b[3] = {0.05, 0.1, 0.2} HACER menub12() b1 = capturabanda(0,9,'1') b2 = capturabanda(0,9,'2') menub3() b3 = capturabanda(0,8,'3') menub4() b4 = capturabanda(0,2,'4') resistencia(b1,b2,b3,b4) calcula(b1,b2,b3,b4) LEER (salir) MIENTRAS (salir == "s" || salir == "S") FIN.

81

Pseudocdigo (capturabanda). INICIO: valor; HACER LEER (valor) SI (valor>=min && valor<max+1) HACER return valor; SI NO IMPRIMIR ("LAS BANDAS VAN DE",min," HASTA EL",max) MIENTRAS (valor>max || valor<min) FIN. Pseudocdigo (menu12). INICIO: i,j PARA (i=0;i<=9;i++) HACER PARA (j=0;j<=1;j++) HACER IMPRIMIR (banda12[i][j]) FIN. Pseudocdigo (menu3) INICIO: i,j PARA (i=0;i<=8;i++) HACER PARA (j=0;j<=1;j++) HACER IMPRIMIR (banda3a [i][j]) IMPRIMIR (banda3b[i]) FIN. Pseudocdigo (menu4) INICIO: i,j PARA (i=0;i<=2;i++) HACER PARA (j=0;j<=1;j++) HACER IMPRIMIR (banda4a [i][j]) IMPRIMIR (banda4b[i]) FIN.

81

Pseudocdigo (resistencia) INICIO: IMPRIMIR (banda12[b1][1],"-",banda12[b2][1],"-", banda3a[b3][1],"-",banda4a[b4][1]) FIN. Pseudocdigo (calcula) INICIO: r, rt r = (((b1*10)+b2)*banda3b[b3]); rt = r *banda4b[b4]; IMPRIMIR ("La resistencia es de = ", r," Ohms +- ", rt) FIN.

81

INICIO

void menub12() void menub3() void menub4()

int capturabanda(int min,int max,char banda) void calcula (int b1,int b2,int b3,int b4) void resistencia(int b1,int b2,int b3,int b4)

string banda12[10][2] = {"0", "Negro", "1", "Cafe", "2", "Rojo", "3", "Naranja", "4", "Amarillo", "5", "Verde", "6", "Azul", "7", "Violeta", "8", "Gris", "9", "Blanco"} string banda3a[9][2] = {"0", "Negro", "1", "Cafe", "2", "Rojo", "3", "Naranja", "4", "Amarillo", "5", "Verde", "6", "Azul", "7", "Plata", "8", "Dorado"} double banda3b[9] = {1, 10, 100, 1000, 10000, 100000, 1000000, 0.1, 0.01} string banda4a[3][2] = {"0", "Dorado", "1", "Plata", "2", "Sin color"} float banda4b[3] = {0.05, 0.1, 0.2}

D i a g r a m a s

int b1,b2,b3,b4 string salir

menub12()

b1 = capturabanda(0,9,'1')

b2 = capturabanda(0,9,'2')

menub3()

b3 = capturabanda(0,8,'3')

menub4()

b4 = capturabanda(0,2,'4') resistencia(b1,b2,b3,b4)

calcula(b1,b2,b3,b4)

SALIR

SI
SALIR=sorSALIR= S

NO FIN

81

de flujo.

81

capturabanda()

Menu12()

int valor

int i,j i=0 i<=9 SI j=0 i<=1 i++

valor banda

(valor>=min && valor<max+1) NO El valor es de, min, a, mx. SI valor>max || valor<min)

return valor

j++

banda12[i][j]

FIN

resistencia( ) banda12[b1][1]"-" banda12[b2][1]"-" banda3a[b3][1]"-" banda4a[b4][1]

FIN

menu3()

menu4()

FIN

int i,j i=0 i<=8 j=0 j<=1 i++ i=0 i<=2

int i,j calcula() i++ double r,rt j++ r =((b1*10)+b2)*banda3b[b3] rt = r *banda4b[b4]

j++

j=0 j<=1

banda3a [i][j]

banda3 [i][j]

banda3b [i][j]

Banda4b [i][j]

Resistencia de, r, Ohms +-,rt

FIN

FIN

FIN

81

Programa.
#include <iostream> #include <cstdlib> #include <string> using namespace std; void menub12(); void menub3(); void menub4(); int capturabanda(int min,int max,char banda); void calcula (int b1,int b2,int b3,int b4); void resistencia(int b1,int b2,int b3,int b4); string banda12[10][2] = {"0", "Negro", "1", "Cafe", "2", "Rojo", "3", "Naranja", "4", "Amarillo", "5", "Verde", "6", "Azul", "7", "Violeta", "8", "Gris", "9", "Blanco"}; string banda3a[9][2] = {"0", "Negro", "1", "Cafe", "2", "Rojo", "3", "Naranja", "4", "Amarillo", "5", "Verde", "6", "Azul", "7", "Plata", "8", "Dorado"}; double banda3b[9] = {1, 10, 100, 1000, 10000, 100000, 1000000, 0.1, 0.01}; string banda4a[3][2] = {"0", "Dorado", "1", "Plata", "2", "Sin color"}; float banda4b[3] = {0.05, 0.1, 0.2}; int main() { int b1,b2,b3,b4; string salir; do { menub12(); b1 = capturabanda(0,9,'1'); b2 = capturabanda(0,9,'2'); menub3(); b3 = capturabanda(0,8,'3'); menub4(); b4 = capturabanda(0,2,'4'); resistencia(b1,b2,b3,b4); calcula(b1,b2,b3,b4); cout << "\n\tDESEA CALCULAR OTRA RESISTENCIA S/N\n\t * "; cin >> salir; } while (salir == "s" || salir == "S"); return 0; } int capturabanda(int min,int max, char banda) { int valor; do { cout << "\n\tCaptura el balor de la banda " << banda << "= ";

81

cin >> valor; if (valor>=min && valor<max+1) { return valor; } else { cout << "POR FAVOR INSERTA UN NUMERO DEL " << min << " HASTA EL " << max << endl; } } while (valor>max || valor<min); } void menub12() { int i,j; system ("CLS"); cout << "\n\tPROGRAMA 22. \n\tCALCULO DE RESISTENCIA A PARTIR DEL CODIGO DE COLORES "<<endl; cout << "\n\tBANDA 1 Y 2\t COLOR\n" << endl; for (i=0;i<=9;i++) { for(j=0;j<=1;j++) { cout << "\t " << banda12[i][j] << " " ; } cout << endl; } } void menub3() { int i,j; system("CLS"); cout << "\n\tPROGRAMA 22. \n\tCALCULO DE RESISTENCIA A PARTIR DEL CODIGO DE COLORES "<<endl; cout << "\n\t BANDA 3\t COLOR\tFactor de multiplicacion" << endl; for(i=0;i<=8;i++) { for (j=0;j<=1;j++) { cout << "\t " << banda3a [i][j]<<" \t"; } cout << banda3b[i]; cout << endl; } } void menub4() { int i,j; 81

system ("CLS"); cout << "\n\tPROGRAMA 22. \n\tCALCULO DE RESISTENCIA A PARTIR DEL CODIGO DE COLORES "<<endl; cout << "\n\t BANDA 4\t COLOR\tFactor de multiplicacion" << endl; for(i=0;i<=2;i++) { for (j=0;j<=1;j++) { cout << "\t " << banda4a [i][j]<<" \t"; } cout << banda4b[i]; cout << endl; } } void resistencia(int b1,int b2,int b3,int b4) { system ("CLS"); cout << "\n\tPROGRAMA 22. \n\tCALCULO DE RESISTENCIA A PARTIR DEL CODIGO DE COLORES "<<endl; cout << "\n\tTU RESISTENCIA ES = \n\t *"; cout << banda12[b1][1]<<"-"; cout << banda12[b2][1]<<"-"; cout << banda3a[b3][1]<<"-"; cout << banda4a[b4][1]; cout << endl; } void calcula (int b1,int b2,int b3,int b4) { double r,rt; r = (((b1*10)+b2)*banda3b[b3]); rt = r *banda4b[b4]; cout << "\n\tLa resistencia es de = " << r << " Ohms" << " +- " << rt << endl; }

Programa ejecutado.

81

Conclusiones
Con este programa podemos observar la utilidad de los arreglos para desplegar menus ya que solo guardamos los datos en el arreglo, y luego con ayuda de los for se puede accesar a ellos, este programa tambin es practico, por que hay quienes no saben medir las resitencias y con este programa basta con que se introduzca los nmeros respecto a los colores, este programa se baso en el cdigo de colores el cual es muy simple, con este programa se da por concluido el curso, durante todo el curso pude aprender muchas cosas las cuales no sabia y en el transcurso del semestre las fui aprendiendo.

81

81

Você também pode gostar