+ All Categories
Home > Documents > COMPILACIÓN PROGRAMAS

COMPILACIÓN PROGRAMAS

Date post: 26-Mar-2015
Category:
Upload: -
View: 561 times
Download: 3 times
Share this document with a friend
69
SUMAR I //Directivos para el preprocesador #include <iostream> using std:: cin; using std:: cout; //Funciones int ingreso(); int suma (int,int); int resta (int,int); int multiplica (int,int); int divide (int,int); //Definicion de variables globales int numero1,numero2; //Funcion principal del programa int main () { cout <<"\t\t SUMAR, RESTAR, MULTIPLICAR Y DIVIDIR DOS NUMEROS ENTEROS\n"; //Llamadas a las funciones ingreso (); suma (numero1,numero2); resta (numero1,numero2); multiplica (numero1,numero2); divide (numero1,numero2); return 0; } int ingreso () { cout <<"\n Ingrese primer numero: "; cin >> numero1; cout <<"\n Ingrese segundo numero: "; cin >> numero2; return numero1,numero2; } int suma (int n1, int n2) 1
Transcript
Page 1: COMPILACIÓN PROGRAMAS

SUMAR I

//Directivos para el preprocesador

#include <iostream> using std:: cin;using std:: cout;

//Funciones

int ingreso();int suma (int,int);int resta (int,int);int multiplica (int,int);int divide (int,int);

//Definicion de variables globales

int numero1,numero2;

//Funcion principal del programa

int main (){ cout <<"\t\t SUMAR, RESTAR, MULTIPLICAR Y DIVIDIR DOS NUMEROS ENTEROS\n"; //Llamadas a las funciones

ingreso (); suma (numero1,numero2); resta (numero1,numero2); multiplica (numero1,numero2); divide (numero1,numero2); return 0;}

int ingreso (){ cout <<"\n Ingrese primer numero: "; cin >> numero1; cout <<"\n Ingrese segundo numero: "; cin >> numero2; return numero1,numero2;}

int suma (int n1, int n2)

{ int resultado; resultado= n1 + n2; cout <<"\n\n SUMA ="<< n1 <<" + "<< n2<<" = "<<resultado <<"\n"; return resultado;

}

1

Page 2: COMPILACIÓN PROGRAMAS

int resta (int num1, int num2)

{ int restar; restar= num1 - num2; cout <<"\n\n RESTA ="<< num1 <<" - "<< num2<<" = "<<restar <<"\n"; return restar;}int multiplica (int nume1, int nume2)

{ int multiplicacion; multiplicacion= nume1 * nume2; cout <<"\n\n MULTIPLICA ="<< nume1 <<" * "<< nume2<<" = "<<multiplicacion <<"\n"; return multiplicacion;}int divide (int numeral1, int numeral2)

{ int division; division= numeral1 / numeral2; cout <<"\n\n DIVIDE ="<< numeral1 <<" / "<< numeral2<<" = "<<division <<"\n\n"; return division;}

SUMAR II

//Directivos para el preprocesador

#include <iostream> using std:: cin;using std:: cout;

//Funciones

int ingreso();int suma (int,int);int resta (int,int);int multiplica (int,int);int divide (int,int);void salida(int);

//Definicion de variables globales

int numero1,numero2,resultado;

//Funcion principal del programa

int main (){ cout <<"\t\t SUMAR, RESTAR, MULTIPLICAR Y DIVIDIR DOS NUMEROS ENTEROS\n"; //Llamadas a las funciones

ingreso ();2

Page 3: COMPILACIÓN PROGRAMAS

suma (numero1,numero2); salida (resultado); resta (numero1,numero2); salida (resultado); multiplica (numero1,numero2); salida (resultado); divide (numero1,numero2); salida (resultado); return 0;}

int ingreso (){ cout <<"\n Ingrese primer numero: "; cin >> numero1; cout <<"\n Ingrese segundo numero: "; cin >> numero2; return numero1,numero2;}

int suma (int n1, int n2){ resultado= n1 + n2; cout <<"\n\n SUMA = "<<n1<<" + "<<n2; return resultado; // Tiene pleno significado, ya que ese resultado, lo voy a usar en la funcion salida}

int resta (int num1, int num2){ resultado= num1 - num2; cout <<"\n\n RESTA = "<<num1<<" / "<<num2; return resultado;}

int multiplica (int nume1, int nume2){ resultado= nume1 * nume2; cout <<"\n\n MULTIPLICA = "<<nume1<<" * "<<nume2; return resultado;}

int divide (int numeral1, int numeral2){ resultado= numeral1 / numeral2; cout <<"\n\n DIVIDE = "<<numeral1<<" / "<<numeral2; return resultado;}

void salida (int r){ cout <<" = "<<r<<"\n";}

3

Page 4: COMPILACIÓN PROGRAMAS

SENO DE UN ÁNGULO

#include <iostream> using std:: cin;using std:: cout;using std:: endl;#include <cmath>

//Funciones

double ingresoangulo();double calculoseno (double);void desplegar(double,double);

//Definicion de variables globales

double angulo,seno;

//Funcion principal del programa

int main (){ cout <<"\n\t\t CALCULO DEL SENO DE UN ANGULO\n"; //Llamadas a las funciones

ingresoangulo (); calculoseno (angulo); desplegar(angulo,seno); cout<<endl; return 0;}

double ingresoangulo (){ cout <<"\n Ingrese el angulo en radianes: "; cin >> angulo; return angulo;}

double calculoseno (double angulito){ seno= sin(angulito); return seno; // Tiene pleno significado, ya que ese resultado, lo voy a usar en la funcion salida}

void desplegar (double a,double s){ cout <<"\n\n seno( "<<a<<" ) = "<<s<<endl;}

4

Page 5: COMPILACIÓN PROGRAMAS

NOTAS

#include <iostream>using std::cout;using std::cin;using std::endl;

int notas();int suma (int,int);void verificar (int,int,int);

int n1,n2,resultado;

int main (){ cout<<"\n\t\t\t SITUACION DE UN ESTUDIANTE "<<"\n\n"; notas (); suma (n1,n2); verificar (n1,n2,resultado); cout<<endl; return 0;}

int notas(){ cout<<" Ingrese Nota 1: "; cin>>n1; cout<<"\n Ingrese Nota 2: "; cin>>n2; cout<<"\n\n"; return n1,n2;}

int suma(int nta1, int nta2){ resultado=nta1+nta2; return resultado;}

void verificar (int nota1, int nota2, int r){ cout<<"\t\t NOTA 1 \t NOTA 2 \t NOTA 3 \t SITUACION"<<"\n\n"; cout<<"\t\t "<<nota1<<" \t\t "<<nota2<<" \t\t "<<r; if (r>=14)

cout<<" "<<"\t\tEXONERADO\n\n"; if (r<9)

cout<<" "<<"\t\tREPROBADO\n\n"; if (r<14)

5

Page 6: COMPILACIÓN PROGRAMAS

{ if (r>=9)

cout<<" "<<"\t\tSUPLETORIO\n\n"; }}ÁREA Y VOLUMEN DE UN CILINDRO#include <iostream>#include <cmath>using std::cout;using std::cin;#define pi 3.14159265358979323846

double ingreso ();double area (double,double);double volumen (double,double);void desplegarvolumen (double);double radio, altura, vol;

int main (){ cout<<"\n\t\t CALCULO DEL AREA Y VOLUMEN DE UN CILINDRO"<<"\n\n"; ingreso (); area (radio,altura); volumen (radio,altura); desplegarvolumen (vol); return 0;}

double ingreso(){ cout<<" Ingrese el radio de la base del cilindro (cm) = "; cin>>radio; cout<<"\n"; cout<<" Ingrese la altura del cilindro (cm) = "; cin>>altura; cout<<"\n"; return radio,altura;}

double area(double r,double h){ double resultado; resultado=(2*pi*r)*(h+r); cout<<" El area del cilindro es = "<<resultado<<" cm^2 \n\n"; return resultado;}

double volumen (double rad,double alt){ vol=pi*(pow(rad,2))*alt; cout<<" El volumen del cilindro es = "; return vol;

6

Page 7: COMPILACIÓN PROGRAMAS

}

void desplegarvolumen (double volume){ cout<<vol<<" cm^3 \n\n";}COMPARACIÓN LADOS#include <iostream>using std::cout;using std::cin;

double ingreso();double comparacion(double,double,double);void desplegar(double);

double error,l1,l2,l3;;

int main(){

cout<<"\n\n\t\tPROGRAMA PARA DETERMINAR SI UN POLIGONO\n\n\t\t\tDE TRES LADOS ES UN TRIANGULO\n\n";

ingreso();return 0;

}

double ingreso(){

cout<<" Ingrese lado 1 : ";cin>>l1;cout<<" Ingrese lado 2 : ";cin>>l2;cout<<" Ingrese lado 3 : ";cin>>l3;comparacion(l1,l2,l3);desplegar(error);return l1,l2,l3;

}

double comparacion(double a,double b,double c){

if ((a+b)>c){

if((a+c)>b){

if((b+c)>a)error=1;

7

Page 8: COMPILACIÓN PROGRAMAS

elseerror=0;

}else

error=3;}else

error=2;return 0;

}

void desplegar(double err){

if (err==1){

cout<<"\n\n\t\tSI FORMAN UN TRIANGULO\n\n";cout<<"\t\t\t"<<l1<<" + "<<l2<<" > "<<l3<<"\n\n";

}if (err==0){

cout<<"\n\n\t\tNO FORMAN UN TRIANGULO\n\n"; cout<<"\t\t\t"<<l2<<" + "<<l3<<" < "<<l1<<"\n\n";}if (err==3){

cout<<"\n\n\t\tNO FORMAN UN TRIANGULO\n\n"; cout<<"\t\t\t"<<l1<<" + "<<l3<<" < "<<l2<<"\n\n";}if (err==2){

cout<<"\n\n\t\tNO FORMAN UN TRIANGULO\n\n"; cout<<"\t\t\t"<<l1<<" + "<<l2<<" < "<<l3<<"\n\n";}

}

NOTA 3#include <iostream>using std::cout;using std::cin;using std::endl;

int notas();void comprobar(int,int);int suma (int,int);void verificar (int,int,int);

8

Page 9: COMPILACIÓN PROGRAMAS

int n1,n2,resultado;

int main (){ cout<<"\n\t\t\t SITUACION DE UN ESTUDIANTE "<<"\n\n"; notas (); cout<<endl; return 0;}

int notas(){ cout<<" Ingrese Nota 1: "; cin>>n1; cout<<"\n Ingrese Nota 2: "; cin>>n2; comprobar(n1,n2); return n1,n2;}

void comprobar (int num1,int num2){ if (num1>=0)

{ if (num1<=10) {

if (0<=num2){ if (num2<=10)

suma (n1,n2); else

cout<<"\n\n\t\tNOTA ERRADA\n\n";}else

cout<<"\n\n\t\tNOTA ERRADA\n\n"; } else

cout<<"\n\n\t\tNOTA ERRADA\n\n";}

elsecout<<"\n\n\t\tNOTA ERRADA\n\n";

}

int suma(int nta1, int nta2)

9

Page 10: COMPILACIÓN PROGRAMAS

{ resultado=nta1+nta2; verificar (n1,n2,resultado); return resultado;}

void verificar (int nota1, int nota2, int r){ cout<<"\t\t NOTA 1 \t NOTA 2 \t NOTA 3 \t SITUACION"<<"\n\n"; cout<<"\t\t "<<nota1<<" \t\t "<<nota2<<" \t\t "<<r; if (r>=14)

cout<<" "<<"\t\tEXONERADO\n\n"; if (r<9)

cout<<" "<<"\t\tREPROBADO\n\n"; if (r<14) {

if (r>=9) cout<<" "<<"\t\tSUPLETORIO\n\n";

}}IDENTIFICAR TRIANGULO#include <iostream>using std::cout;using std::cin;using std::endl;

void ilados();int verificar(int,int,int);void resultados(int); /*Aqui voy a llamar a mi variable tipo

e indicar que tipo de variable esno todas las llamadas van a estar en la funciòn main, sino tambienen otros lados del programa*/

int tipo;

int main(){

cout<<"\n\t\t TIPO DE TRIANGULO SEGUN SUS LADOS\n\n";ilados(); //No tengo la llamada a las otras funcionescout<<endl;return 0;

}

void ilados() /*Aquì ya no voy a retornar nada, solo voy a usar los lados en esta parte del programa

10

Page 11: COMPILACIÓN PROGRAMAS

entonces, no voy a retornar nada, mi funciòn es void*/{

int l1,l2,l3;cout<<"\n Ingrese:\n\n";cout<<" Lado 1: ";cin>>l1;cout<<"\n Lado 2: ";cin>>l2;cout<<"\n Lado 3: ";cin>>l3;verificar(l1,l2,l3); //No quiero tener las otras llamadas en main,resultados(tipo); //quiero optimizar la memoria de la computadora

} //y por eso defino variables locales

int verificar(int ldo1,int ldo2,int ldo3){

if (ldo1==ldo2){

if (ldo2==ldo3)tipo=1; //Le asigno a "tipo" un valor de 1 (T.

equilatero)else

tipo=2;}else{

if (ldo2==ldo3)tipo=2;

else{

if(ldo1==ldo3)tipo=2;

elsetipo=3;

}}return tipo; //Estoy obligado a retornar un valor porque mi funciòn es

int} //Ya obtuve "tipo", entonces ya lo puedo usar en "resultados"

void resultados(int tpotri){

if(tpotri==1)cout<<"\n\n TIPO TRIANGULO : EQUILATERO";

11

Page 12: COMPILACIÓN PROGRAMAS

else{

if (tpotri==2)cout<<"\n\n TIPO TRIANGULO : ISOSCELES";

elsecout<<"\n\n TIPO TRIANGULO : ESCALENO";

}}TRIANGULO COMPLETO#include <iostream>using std::cout;using std::cin;using std::endl;

int ilados();void forman(int,int,int);int tipotri(int,int,int);void resultados(int);

int l1,l2,l3,ope1=0,ope2=0,ope3=0,tipo; /*siempre los dos que no forman van a ser ope1,ope2 y siempre el

lado mayor va a ser ope3; entonces asì para

los resultados siempre voy a tener

ope1+ope2<ope3. Sus valores incialesson cero, porque

no deben ser igual a cero*/

int main(){

cout<<"\n\n\t\tTIPO DE TRIANGULO SEGUN SUS LADOS\n\n";ilados();forman(l1,l2,l3);cout<<endl;return 0;

}

int ilados(){

cout<<"\nIngrese : \n\n";cout<<" Lado 1 : ";cin>>l1;cout<<" Lado 2 : ";cin>>l2;

12

Page 13: COMPILACIÓN PROGRAMAS

cout<<" Lado 3 : ";cin>>l3;return l1,l2,l3;

}

void forman(int a, int b, int c){

if(a<=0||b<=0||c<=0)cout<<"\n\n\t\tLOS LADOS NO FORMAN TRIANGULO\n\n";

else{

if(a+b<c){

ope1=a;ope2=b;ope3=c;

}if(a+c<b){

ope1=a;ope2=c;ope3=b;

}if(b+c<a){

ope1=b;ope2=c;ope3=a;

}if (ope1==0){

tipotri(l1,l2,l3);resultados(tipo);

}else{

cout<<"\n\n\t\tLOS LADOS NO FORMAN TRIANGULO\n\n";cout<<"\t"<<ope1<<" + "<<ope2<<" = "<<ope1+ope2<<" < "<<ope3<<"\n\

n";}

}}

int tipotri(int ldo1,int ldo2,int ldo3){

13

Page 14: COMPILACIÓN PROGRAMAS

if(ldo1==ldo2&&ldo2==ldo3)tipo=1;

else{

if(ldo1==ldo2||ldo2==ldo3||ldo1==ldo3)tipo=2;

elsetipo=3;

}return tipo; //Obtengo el "tipo" que necesito para mi funcion "resultados"

}

void resultados(int tpotri){

if(tpotri==1)cout<<"\n\n TIPO TRIANGULO : EQUILATERO\n\n";

else{

if (tpotri==2)cout<<"\n\n TIPO TRIANGULO : ISOSCELES\n\n";

elsecout<<"\n\n TIPO TRIANGULO : ESCALENO\n\n";

}}NUMEROS MAYOR MENOR#include <iostream>using std::cout;using std::cin;using std::endl;

int ingreso();int verificar(int,int,int);void desplegar(int,int);

int n1,n2,n3,op1,op2;

int main (){

cout<<"\n\n\tPROGRAMA PARA ENCONTRAR EL MAYOR Y MENOR DE TRES NUMEROS\n\n";

ingreso();verificar(n1,n2,n3);return 0;

}

14

Page 15: COMPILACIÓN PROGRAMAS

int ingreso(){

cout<<"\n Ingrese el primer numero : ";cin>>n1;cout<<"\n Ingrese el segundo numero : ";cin>>n2;cout<<"\n Ingrese el tercer numero : ";cin>>n3;return n1,n2,n3;

}

int verificar(int num1,int num2, int num3){

if(num1==num2&&num2==num3){

cout<<"\n\tLos numeros son iguales, no existe mayor o menor\n\n";}else{if(num1<=num2&&num2<num3){

op1=num1;op2=num3;

}if(num2<=num1&&num1<num3){

op1=num2;op2=num3;

}if(num1<=num3&&num3<num2){

op1=num1;op2=num2;

}if(num2<=num3&&num3<num1){

op1=num2;op2=num1;

}if(num3<=num1&&num1<num2){

op1=num3;op2=num2;

}if(num3<=num2&&num2<num1)

15

Page 16: COMPILACIÓN PROGRAMAS

{op1=num3;op2=num1;

}desplegar(op1,op2);}return op1,op2;

}

void desplegar(int op1,int op2){

cout<<"\n\tEl menor numero es : "<<op1<<"\n";cout<<"\n\tEl mayor numero es : "<<op2<<"\n\n";

}TRIANGULO# include <iostream>using std:: cout;using std:: cin;using std:: endl;

double ingresar ();void verifica (double, double, double);

double n1, n2, n3;

int main (){ cout <<"\t\t VERIFICAR SI ES TRIANGULO \n\n";ingresar ();verifica (n1, n2, n3);return 0;}

double ingresar (){ cout <<"\n Ingrese el primer lado: "; cin >> n1; cout <<"\n Ingrese el segundo lado: "; cin >> n2; cout <<"\n Ingrese el tercer lado: "; cin >> n3; return n1, n2, n3;}

void verifica ( double n1, double n2, double n3){

if (n1>0)

16

Page 17: COMPILACIÓN PROGRAMAS

{ if (n2>0)

{ if (n3>0) {

if ((n1 + n2) > n3){

if ((n1 + n3) > n2){

if ((n2 + n3) > n1){ cout <<"\n Si forma triangulo: \n";

cout <<"\t\n"<< n1<<" + "<< n2 <<" > "<< n3 <<" , "<< n1 <<" + "<< n3 <<" > "<< n2 <<" , "<< n2 <<" + "<< n3 <<" > "<< n1 <<" \n " ;

}

else{ cout <<"\n No forma triangulo: \n";

cout <<"\t\n"<< n2 <<" + "<< n3 <<" < "<< n1 <<" \n ";}

}

else{ cout <<"\n No forma triangulo: \n";

cout <<"\t\n"<< n1 <<" + "<< n3 <<" < "<< n2 <<" \n ";}

}

else{ cout <<"\n No forma triangulo: \n";

cout <<"\t\n"<< n1 <<" + "<< n2 <<" < "<< n3 <<" \n ";}

}else{ cout <<" No es posible \n";}

} else

{ cout <<" No es posible \n"; }}

else { cout <<" No es posible \n"; }}DEBER 654

17

Page 18: COMPILACIÓN PROGRAMAS

# include <iostream>using std:: cout;using std:: cin;using std:: endl;

int ingreso();void verificar(int);int separardigitos(int);void desplegar(int,int,int);int num,u,d,c;int main(){

cout<<"\n\n\t SEPARACION DE UN VALOR EN SUS DIGITOS\n\n";ingreso();verificar(num);return 0;

}int ingreso(){

cout<<"\n Ingrese el numero : ";cin>>num;return num;

}void verificar(int numero){

if (0<=numero&&numero<=1000){

separardigitos(num);desplegar(u,d,c);

}else

cout<<"\n\n\t Numero no corresponde al rango \n\n\n";}int separardigitos(int nume){

u=(nume%10);d=(nume/10)%10;c=nume/100;return c,d,u;

}

void desplegar(int uni,int dec, int cen){

cout<<"\n Numero separado en sus digitos : "<<cen<<" "<<dec<<" "<<uni<<"\n\n";}

18

Page 19: COMPILACIÓN PROGRAMAS

SUMA DE LOS DIEZ PRIMEROS NÚMEROS

#include <iostream>using std::cout;using std::cin;using std::endl;

int generar();void resultado(int);

int suma=0;

int main(){

cout<<"\n\t\tUSO DE FOR\n\n";cout<<"\n\tGenerar los diez primeros numeros y determinar su suma\n\n";cout<<"\n\t\tNUMEROS\n";generar();resultado(suma);cout<<endl;return 0;

}

int generar(){

for(int nro=1;nro<=10;nro++) // ++ posincremento: al valor actual de numero le suma 1, semejante a nro=nro+1

{suma+=nro; //como decir suma=suma+nro, es equivalente, pero el compilador lo

hace mas rapidocout<<"\n\t\t"<<nro;

}return suma;

}

void resultado(int s){

cout<<"\n\n\tSUMA : "<<s;}

SUMA DE LOS DIEZ PRIMEROS NÚMEROS IMPARES

#include <iostream>using std::cout;using std::cin;using std::endl;

int generar();void resultado(int);

int suma=0;

19

Page 20: COMPILACIÓN PROGRAMAS

int main(){

cout<<"\n\t\t\t\tUSO DE FOR\n\n";cout<<"\n\tGenerar los diez primeros numeros impares y determinar su suma\n\n";cout<<"\n\t\tNUMEROS\n";generar();resultado(suma);cout<<endl;return 0;

}

int generar(){

for(int nro=1;nro<=20;nro+=2) //Los programas no deben estar condicionados por valores cal por nosotros

{suma+=nro; cout<<"\n\t\t"<<nro;

}return suma;

}

void resultado(int s){

cout<<"\n\n\tSUMA : "<<s<<"\n\n";}

20

Page 21: COMPILACIÓN PROGRAMAS

MENÚ CON DECISIONES, USO DE FOR, IF

/*1. Desplegar un numero con sus digitos invertidos entre 1 - 999 999 9992. Generar n numeros entre 1 y 10 (n es la cantidad a generar)

Ejemplo: si n=2 entonces aparece 1,2 y su suma si n=5 entonces aparece 1,2,3,4,5 y su suma

Si no se ingresa un numero entre 1 y 10 sale que es numero erroneoy se queda ahì..no regresa al menu

3. Fin*/

#include <iostream>using std::cout;using std::cin;using std::endl;

int titulos();void controlar(int); /*Aqui solo voy a verificar, no retorna nada, el programa va a definir que hacer

si me equivoco, si escogì alguna, si quiero terminar*/void opciones(int);int ingnumero();void validar1(int); //Verificar que el numero estè entre 1 - 999 999 999void invertir(int);void validar2(int);void generar(int);

int opc, nro;

int main(){

titulos();controlar(opc);cout<<endl;return 0;

}

int titulos(){

cout<<"\n\n\tUSO DE ESTRUCTURAS IF, SWITCH, FOR\n\n";cout<<"\n\n\tOPCIONES\n";cout<<"\n1. Desplegar un numero con sus digitos invertidos\n";cout<<"\n2. Generar n numeros entre 1 y 10\n";cout<<"\n3. Fin\n";cout<<" Digite opcion : ";cin>>opc;return opc;

}

void controlar(int op)21

Page 22: COMPILACIÓN PROGRAMAS

{for(int opcion=op;opcion!=3;opcion=opc) //porque si digito 3, entonces ahì se acabo el

programa // de qué depende?? unicamente de la opción que nosotros digitemos,

de nada más //DE LEY ES OPC AHI Y NRO ABAJO, SINO VA A

CAMBIAR MUCHO{

if(opcion==1||opcion==2)opciones(opc);

elsecout<<"\nOPCION ERRADA\n\n";

titulos();}

}

void opciones(int op12){

switch(op12){

case 1 :cout<<"\n Numeros entre 1 - 999 999 999\n\n";ingnumero();validar1(nro);invertir(nro);break;

case 2 :cout<<"\n Numeros entre 1 - 10\n\n";ingnumero();validar2(nro);generar(nro);break;

default : //aqui solo pongo por cumplir con la estructura del formato de switch, pero la verdad

//no lo necesito, aquì solo ingresaron las opciones 1 y 2cout<<"ESTA OPCION NUNCA OCURRE";

}}

int ingnumero(){

cout<<"\n\nIngrese un numero ";cin>>nro;return nro;

}

void validar1(int n) //Estoy aqui hasta que me ingrese un numero correcto (la condicion sea falsa){

for (int numero=n;numero<1||numero>999999999;numero=nro){

cout<<"\n\nNumero errado\n";22

Page 23: COMPILACIÓN PROGRAMAS

ingnumero();}

}

void invertir(int cantidad){

int residuo;cout<<"\n Numero invertido : ";for (int cociente=cantidad;cociente>10;cociente/=10){

residuo=cociente;residuo%=10;cout<<residuo<<" ";

}cout<<cociente;

}

void validar2(int nu) //Estoy aqui hasta que me ingrese un numero correcto (la condicion sea falsa){

for (int nume=nu;nume<1||nume>10;nume=nro){

cout<<"\n\nNumero errado\n";ingnumero();

}}

void generar (int numerito){

int suma=0,i=0;cout<<"\n\t Numeros : \n";for(int nros=numerito;nros!=0;nros--){

i++;suma+=i;cout<<"\n\t"<<i;

}cout<<"\n\t Suma = "<<suma;

}

MENÚ ORDENAR NUMEROS, HALLAR TERCER LADO TRIANGULO, FACTORIAL#include <iostream>#include <cmath>using std::cin;using std::cout;using std::endl;

int titulos();void controlar(int);void opciones(int);int ingnums(); //Ordenar tres numeros descendentementeint ordenar(int,int,int);void desplegar(int,int,int);

23

Page 24: COMPILACIÓN PROGRAMAS

int inglados();void verifl1(int);void verifl2(int);int terlado(int,int);int ingnro();void verifnro(int);int factorial(int);

int opc,n1,n2,n3,a=0,b=0,c=0,l1,l2,num;

int main(){

titulos();controlar(opc);cout<<endl;return 0;

} int titulos(){

cout<<"\n\n\n\tUSO DE ESTRUCTURAS SWITCH, IF Y FOR\n\n";cout<<"\n\nOPCIONES : \n\n";cout<<"\n\t1. Ordenar tres numeros descendentemente \n\n";cout<<"\n\t2. Generar el tercer lado de un triangulo dados dos lados \n\n";cout<<"\n\t3. Generar el factorial de un numero \n\n";cout<<"\n\t4. Fin \n\n";cout<<endl;cout<<"\n\n Digite opcion seleccionada : ";cin>>opc;return opc;

}void controlar (int opcion){

for(int op=opcion;op!=4;op=opc){

if(op==1||op==2||op==3)opciones(opc);

else{

cout<<"\n\n OPCION ERRADA\n\n";titulos();

}}

}void opciones (int op123){

switch(op123){

case 1 :ingnums();ordenar(n1,n2,n3);desplegar(a,b,c);

24

Page 25: COMPILACIÓN PROGRAMAS

break;case 2 :

cout<<"\n\tIngrese longitudes de lado del 1 al 10 \n\n";inglados();verifl1(l1);verifl2(l2);terlado(l1,l2);titulos();break;

case 3 :cout<<"\n\tIngrese numero del 1 al 10 ";ingnro();verifnro(num);factorial(num);break;

default :cout<<"ESTA OPCION NUNCA OCURRE";

}}int ingnums(){

cout<<"\n Ingrese numero 1 : ";cin>>n1;cout<<"\n Ingrese numero 2 : ";cin>>n2;cout<<"\n Ingrese numero 3 : ";cin>>n3;return n1,n2,n3;

}int ordenar(int nume1,int nume2, int nume3){

if(nume1>=nume2&&nume2>=nume3){

a=nume1;b=nume2;c=nume3;

}if(nume2>=nume3&&nume3>=nume1){

a=nume2;b=nume3;c=nume1;

}if(nume3>=nume1&&nume1>=nume2){

a=nume3;b=nume1;c=nume2;

}if(nume1>=nume3&&nume3>=nume2){

a=nume1;25

Page 26: COMPILACIÓN PROGRAMAS

b=nume3;c=nume2;

}if(nume2>=nume1&&nume1>=nume3){

a=nume2;b=nume1;c=nume3;

}if(nume3>=nume2&&nume2>=nume1){

a=nume3;b=nume2;c=nume1;

}return a,b,c;

}void desplegar(int aa, int be, int ce){

cout<<"\n\tEn orden descendente los numeros son : "<<aa<<" "<<be<<" "<<ce<<endl;titulos();

}int inglados(){

cout<<"\n Ingrese lado 1 : ";cin>>l1;cout<<"\n Ingrese lado 2 : ";cin>>l2;return l1,l2;

}void verifl1(int lad1){

for(int lado1=lad1;0>lado1||lado1>10;lado1=l1){

cout<<"\nLado errado\n";inglados();

}}void verifl2(int lad2){

for(int lado2=lad2;0>lado2||lado2>10;lado2=l2){

cout<<"\nLado errado\n";inglados();

}}int terlado(int lad1,int lad2){

int sum=0,res=0;sum=lad1+lad2;res=abs(lad1-lad2)+1;cout<<"\n Longitudes posibles del tercer lado : ";

26

Page 27: COMPILACIÓN PROGRAMAS

for(int i=res;i<sum;i++)cout<< i <<" , ";

return i;}

int ingnro(){

cout<<"\nIngrese el numero : ";cin>>num;return num;

}

void verifnro(int numero){

for (int nu=numero;1>nu&&nu>10;nu=num){

cout<<"\nNumero errado ";ingnro();

}}

int factorial(int numro){

int factorial=1;for(int nn=numro; nn!=0;nn--)

factorial*=nn;cout<<"\n\n Factorial = "<<factorial;return factorial;

}

27

Page 28: COMPILACIÓN PROGRAMAS

18/10/2010 y 20/10/2010

USO DE DO WHILE ENCONTRAR LAS CINCO PRIMERAS POTENCIAS DE DOS Y SUMARLAS

//Generar los cinco primeros numeros que sean potencias de dos NO MULTIPLOS, POTENCIAS

#include <iostream>#include<cmath>using std::cin;using std::cout;using std::endl;

void generar();int main(){

cout<<"\n\t\tUSO ESTRUCTURAS WHILE Y DO WHILE\n\n";cout<<"\n\tCINCO PRIMEROS VALORES POTENCIAS DE DOS\n\n";cout<<"\n\tValores\n";generar();cout<<endl;return 0;

}void generar(){

int nro,contador=1,suma=0;do{

nro=pow(2,contador);cout<<"\n\t"<<nro;suma+=nro;contador++;

}while (contador<=5);cout<<"\n\n SUMA = "<<suma<<endl;

}

USO DE WHILE ENCONTRAR LAS CINCO PRIMERAS POTENCIAS DE DOS Y SUMARLAS

//Generar los cinco primeros numeros que sean potencias de dos NO MULTIPLOS, POTENCIAS

#include <iostream>#include<cmath>using std::cin;using std::cout;using std::endl;

void generar();int main(){

cout<<"\n\t\tUSO ESTRUCTURAS WHILE Y DO WHILE\n\n";cout<<"\n\tCINCO PRIMEROS VALORES POTENCIAS DE DOS\n\n";cout<<"\n\tValores\n";

28

Page 29: COMPILACIÓN PROGRAMAS

generar();cout<<endl;return 0;

}void generar(){

int nro,contador=1,suma=0;while (contador<=5){

nro=pow(2,contador);cout<<"\n\t"<<nro;suma+=nro;contador++;

}cout<<"\n\n SUMA = "<<suma<<endl;

}

ENCONTRAR EL PRIMER NUMERO POTENCIA DE DOS MAYOR A MIL

#include <iostream>#include<cmath>using std::cin;using std::cout;using std::endl;

void generar();int main(){

cout<<"\n\t\tUSO ESTRUCTURAS WHILE Y DO WHILE\n\n";cout<<"\n\tPRIMER VALOR POTENCIA DE DOS MAYOR A MIL\n\n";generar();cout<<endl;return 0;

}void generar(){

int nro,contador=1,suma=0;do{

nro=pow(2,contador);contador++;

}while (nro<1000);cout<<"\n\n El numero es = "<<nro<<endl;

}

DETERMINAR SI EL NUMERO INGRESADO ES PRIMO O NO

#include <iostream>using std::cin;using std::cout;using std::endl;

29

Page 30: COMPILACIÓN PROGRAMAS

void control();int ingnro();void primo(int);int numero;

int main(){

cout<<"\n\nDETERMINAR SI UN NUMERO ES PRIMO O NO\n\n";control();cout<<endl;return 0;

}void control(){

do{

ingnro();if(numero>1)

primo(numero);}while(numero>1);

}int ingnro(){

cout<<"\n\tIngrese un numero > 1 : ";cin>>numero;return numero;

}

void primo(int cociente){

int residuo=0,ayuda=0;//Para ver los posibles cocientes a los que debo ir dividiendocociente/=2; while (cociente>1) //el cociente no debe valer uno, xq ahi todos los numeros serian primos{

residuo=numero; //siempre chequeo versus el mismo numero que entroresiduo%=cociente; //Esta determina el residuo de una vezif (residuo>0)

cociente --;else //Aqui yo forzo a terminar el while, ya no tiene sentido chequear{ //Para el resto de cocientes

cociente=1; //para que al regresar a while, ya no chequee nada(while de cociente>1)ayuda=1;

}}if(ayuda==0)

cout<<"\nEL NUMERO "<<numero<<" SI ES PRIMO \n";else

cout<<"\nEL NUMERO "<<numero<<" NO ES PRIMO \n";}

30

Page 31: COMPILACIÓN PROGRAMAS

DETERMINAR SI EL NUMERO INGRESADO ES PRIMO O NO Y QUE APAREZCA PORQUE (FACTORES)

#include <iostream>using std::cin;using std::cout;using std::endl;

void control();int ingnro();int primo(int);void desplegar(int,int,int,int);int numero,cociente,ayuda=0,y,w;

int main(){

cout<<"\n\nDETERMINAR SI UN NUMERO ES PRIMO O NO\n\n";control();cout<<endl;return 0;

}void control(){

do{

ingnro();if(numero>1){

primo(numero);desplegar(numero,y,ayuda,w);

}}while(numero>1);

}int ingnro(){

cout<<"\n\tIngrese un numero > 1 : ";cin>>numero;return numero;

}int primo(int cociente){

int residuo=0;//Para ver los posibles cocientes a los que debo ir dividiendocociente/=2; while (cociente>1) //el cociente no debe valer uno, xq ahi todos los numeros serian primos{

residuo=numero; //siempre chequeo versus el mismo numero que entroresiduo%=cociente; //Esta determina el residuo de una vezif (residuo>0){

cociente --;ayuda=0;

31

Page 32: COMPILACIÓN PROGRAMAS

}else{

y=cociente;w=numero/cociente;cociente=1;ayuda=1;

}}return ayuda,y,w;

}

void desplegar(int nroo, int ye,int ayu,int we){

if(ayu==0)cout<<"\n EL NUMERO "<<nroo<<" SI ES PRIMO \n";

else{

cout<<"\n EL NUMERO "<<nroo<<" NO ES PRIMO \n";cout<<"\n "<<nroo<<" = "<<we<<" * "<<ye;cout<<endl;

}}

32

Page 33: COMPILACIÓN PROGRAMAS

25/10/2010 PROGRAMA PARA CALCULAR UNA SERIE#include <iostream>#include <cmath>using std::cin;using std::cout;using std::endl;

void titulos();int ingreso();void control();void sumatorio(int); //Esta va a decir cuantos terminos se van a calcularint numerador(int);int denominador(int);void terminos(int,int,int,int); //Se encarga de calcular cada termino y desplegar cada termino individualmente

double suma; //Lo pongo 0.0 porque es doubleint n,tres,cuatro,cinco;

int main(){

control();cout<<endl;return 0;

}

void control(){

for(int fin=0;fin>=0;fin=n) // n es el numero de terminos que vamos a calcular{

titulos();ingreso();

if(n>=0&&n<=6){double suma=0.0;sumatorio(n);}else{

if (n>6)cout<<"\n\tValor no contemplado\n\n";

}}

}

void titulos(){

cout<<"\n\n\t\tCALCULO DEL SUMATORIO\n\n";cout<<"\n\t\t(3^n+4^n)/5^n\n";cout<<"\tPara finalizar ingrese un numero negativo\n\n";

}

int ingreso()33

Page 34: COMPILACIÓN PROGRAMAS

{cout<<"\n\tDigite un numero de 0 a 6 : ";cin>>n;suma=0;return n;

}

void sumatorio(int ene){

for(int j=ene;j>=0;j--){

numerador(j);denominador(j);terminos(tres,cuatro,cinco,j);

}cout<<"\n\tSUMATORIO = "<<suma;

}

int numerador(int nt){

tres=pow(3,nt);cuatro=pow(4,nt);return tres,cuatro;

}

int denominador(int nute){

cinco=pow(5,nute);return cinco;

}

void terminos (int tre,int cua,int ci,int subind){

double termino;termino=((double) tre + (double) cua)/(double) ci; //voy a cambiar el tipo de dato de int a

double, porque sino daria errorsuma+=termino;cout<<"\n\tT"<<subind<<" = ( "<<tre<<" + "<<cua<<" ) / "<<ci<<" = "<<termino;

}

34

Page 35: COMPILACIÓN PROGRAMAS

INTERCAMBIAR ELEMENTOS DENTRO DE UN ARREGLO 17/11/2010/*funcion que me define el arreglofuncion que controle si deseo continuar o terminarfuncion que permita ingresar las posiciones de los elementoscontrolar y validar que las posiciones sean correctasfuncion para desplegar los cambios*/

#include <iostream>using std::cout;using std::cin;using std::endl;#include <iomanip>using std::setw;

void inicializar();void verarreglo(int[],int);void controlar(int []);int posiciones(int); //hay un argumento de tipo int que es el tamano, necesito controlarlovoid intercambio(int[],int,int);

const int tamano=10;int p1,p2; //Son las posiciones de los elementos de mi programa

int main(){

cout<<"\n\t\tARREGLOS DE UNA DIMENSION\n\n";cout<<"\n\tINTERCAMBIAR ELEMENTOS\n\n";cout<<"\n\tElementos"<<setw(10)<<" Valor del elemento\n";inicializar();cout<<endl;return 0;

}

void inicializar (){

int c[tamano]={-20,30,0,400,80,100,-35,10,15,80};verarreglo(c,tamano);controlar(c);

}

void verarreglo(int a[],int contele){

for(int i=0;i<contele;i++){

cout<<"\n\t"<<setw(3)<<"[ "<<i<<" ] = "<<setw(11)<<a[i];}

}

void controlar(int d[]){

char sino;do{

posiciones(tamano);intercambio(d,p1,p2);verarreglo(d,tamano);

35

Page 36: COMPILACIÓN PROGRAMAS

cout<<"\n\tSi desea continuar digite s : ";cin>>sino;

}while(sino=='s');

}

int posiciones(int nroele){

do{

cout<<"\n\n\tIngrese posiciones : \n";cout<<"\n\tPosicion 1 : ";cin>>p1;cout<<"\n\tPosicion 2 : ";cin>>p2;

}while((p1<0||p1>nroele-1)||(p2<0||p2>nroele-1)); //Cuando ingrese mal

simplemente hace que ingrese

//nuevamente los valoresreturn p1,p2;

}

void intercambio(int b[], int pos1, int pos2){

int noborrar;noborrar=b[pos1];b[pos1]=b[pos2];b[pos2]=noborrar;

}

22/11/2010 PUBLICAR ASTERISCOS SEGÚN NUMERO DE ELEMENTOS

/*funcion que me define el arreglofuncion que controle si deseo continuar o terminarfuncion que permita ingresar las posiciones de los elementoscontrolar y validar que las posiciones sean correctasfuncion para desplegar los cambios*/

#include <iostream>using std::cout;using std::cin;using std::endl;#include <iomanip>using std::setw;

void inicializar();void verarreglo(int[],int);void asterisco(int[],int);

const int tamano=10;

int main(){

cout<<"\n\t\t\ARREGLOS DE UNA DIMENSION\n\n";cout<<"\n\tINICIALIZACION DE ARREGLOS POR EL TECLADO\n\n";cout<<"\n\tElementos"<<setw(10)<<" Valor del elemento\n";inicializar();cout<<endl;

36

Page 37: COMPILACIÓN PROGRAMAS

return 0;}

void inicializar (){

int c[tamano];cout<<"\n\n\tDigite elementos : \n\n";for (int j=0; j<tamano;j++){

cout<<setw(5)<<" [ "<<j<<setw(5)<<" ] : ";cin>>c[j];

}verarreglo(c,tamano);

}

void verarreglo(int d[],int canele){

cout<<"\n\n\tArreglo : ";for(int i=0;i<canele;i++){

cout<<setw(4)<<d[i];}asterisco(d,tamano);

}

void asterisco(int e[],int cant){

for(int f=0;f<cant;f++){

int p;char ast;ast='*';cout<<"\n"<<e[f]<<endl;p=e[f];for(int m=0;m<p;m++){ cout<<"*";}

}}

24/11/2010 ORDENAR ARREGLO

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;

void iniciarar();void ordenar(int [],int);void desplegar(int [],int);

const int tamano=10;

int main(){

cout<<"\n\n\tOrdenamiento de arreglos\n\n";cout<<"\n\ten orden ascendente\n";iniciarar();

37

Page 38: COMPILACIÓN PROGRAMAS

cout<<endl;return 0;

}

void iniciarar(){

int arreglo[tamano];cout<<"\n\tIngrese : ";for(int j=0;j<tamano;j++){

cout<<setw(4)<<"\n[ "<<j<<setw(4)<<" ] : ";cin>>arreglo[j];

}cout<<"\n\n\t Arreglo : ";desplegar(arreglo,tamano);ordenar(arreglo,tamano);

}

void desplegar(int a[],int canele){

for(int k=0;k<canele;k++){

cout<<setw(4)<<a[k];}

}

void ordenar(int b[],int nroele){

for(int barridos=0;barridos<nroele-1;barridos++){

int noborrar;for(int i=0;i<nroele-1;i++){

if (b[i]>b[i+1]){

noborrar=b[i];b[i]=b[i+1];b[i+1]=noborrar;

}}

}cout<<"\n\n Arreglo ordenado : ";desplegar(b,tamano);

}

/*Uso dos estructuras for, una que cuenta el numero de barridosy la otra que les va intercambiando*/

24/11/2010 CAMBIAR UN ELEMENTO DEL ARREGLO

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;

void iniciarar();

38

Page 39: COMPILACIÓN PROGRAMAS

void ordenar(int [],int);void desplegar(int [],int);void intercambiar(int[]);

const int tamano=10;char sino='s';int posicion,numero;

int main(){

cout<<"\n\n\tOrdenamiento de arreglos\n\n";cout<<"\n\ten orden ascendente\n";iniciarar();cout<<endl;return 0;

}

void iniciarar(){

int arreglo[tamano];cout<<"\n\tIngrese : ";for(int j=0;j<tamano;j++){

cout<<setw(4)<<"\n[ "<<j<<setw(4)<<" ] : ";cin>>arreglo[j];

}cout<<"\n\n\t Arreglo : ";desplegar(arreglo,tamano);ordenar(arreglo,tamano);while (sino=='s')

{intercambiar(arreglo);cout<<"\n\n\tDigite s si desea cambiar un numero del arreglo : ";cin>>sino;

}

}

void desplegar(int a[],int canele){

for(int k=0;k<canele;k++){

cout<<setw(4)<<a[k];}

}

void ordenar(int b[],int nroele){

for(int barridos=0;barridos<nroele-1;barridos++){

int noborrar;for(int i=0;i<nroele-1;i++){

if (b[i]>b[i+1]){

noborrar=b[i];b[i]=b[i+1];b[i+1]=noborrar;

39

Page 40: COMPILACIÓN PROGRAMAS

}}

}cout<<"\n\n Arreglo ordenado : ";desplegar(b,tamano);

}

void intercambiar(int ab[]){

cout<<"\n\n\tIngrese posicion que desea cambiar : ";cin>>posicion;cout<<"\n\n\tIngrese el nuevo valor de la posicion : ";cin>>numero;

if (posicion>=0&&posicion<=9){

ab[posicion]=numero;desplegar(ab,tamano);

}else{

cout<<"\n\t\tPosicion erronea";intercambiar(ab);

}

}/*Uso dos estructuras for, una que cuenta el numero de barridosy la otra que les va intercambiando*/

29/11/2010 PRODUCTO ENTRE DOS VECTORES – DETERMINAR VENTAS

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;#include <cmath>

void inicializara();void inicializarb();void valorventas(double [],double [],int);

const int tamano=10;double arreglob[tamano],arregloa[tamano];char sino;

int main(){

cout<<"\n\n\tARREGLOS DE UNA DIMENSION\n\n";cout<<"\n\nPRODUCTO ENTRE LOS ELEMENTOS DE DOS VECTORES\n\n";do{

inicializara();inicializarb();valorventas(arregloa,arreglob,tamano);cout<<endl;cout<<"\n\nSi desea ingresar nuevos valores de cantidades y precios

digite s : ";cin>>sino;

}

40

Page 41: COMPILACIÓN PROGRAMAS

while (sino=='s');return 0;

}

void inicializara(){

cout<<"\n\nIngrese vector a (cantidades vendidas): \n\n";for(int j=0;j<tamano;j++){

cout<<"\n[ "<<j<<" ] = ";cin>>arregloa[j];double y=arregloa[j];double z=fmod(y,int(y));if(arregloa[j]<0||z!=0){

cout<<"\nIngrese nuevamente : ";j-=1;

}}

}

void inicializarb(){

cout<<"\n\nIngrese vector b (precios de los articulos): \n\n";for(int k=0;k<tamano;k++){

cout<<"\n[ "<<k<<" ] = ";cin>>arreglob[k];if(arreglob[k]<=0){

cout<<"\nIngrese nuevamente : ";k-=1;

}}

}

void valorventas(double a[], double b[],int tamano){

cout<<"\n\n"<<setw(7)<<"CANTIDADES"<<setw(10)<<"PRECIOS"<<setw(12)<<"TOTAL"<<endl;

for(int i=0;i<tamano;i++){

double total;total=arregloa[i]*arreglob[i];

cout<<setw(7)<<arregloa[i]<<setw(12)<<arreglob[i]<<setw(12)<<total<<endl;}

}

29/11/2010 ROTAR ELEMENTOS

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;

41

Page 42: COMPILACIÓN PROGRAMAS

void inicializar();void desplegar(int[],int);void rotar(int[],int);

const int tamano=8;char sino;

int main (){

cout<<"ROTAR ARREGLO";cout<<endl;cout<<"Ingrese arreglo : ";inicializar();return 0;

}

void inicializar(){

int arreglo[tamano];for(int i=0;i<tamano;i++){

cout<<endl;cout<<setw(5)<<" [ "<<i<<" ] : ";cin>>arreglo[i];

}desplegar(arreglo,tamano);

}

void desplegar(int a[],int tam){

for(int j=0;j<tam;j++){

cout<<endl;cout<<a[j];cout<<endl;

}do{cout<<"Si desea rotar el arreglo digite s: ";cin>>sino;rotar(a,tamano);}while(sino=='s');

}

void rotar(int b[],int nroele){

int noborrar=b[0];b[nroele]=noborrar;for (int k=0;k<nroele;k++){

b[k]=b[k+1];cout<<b[k];cout<<endl;

}}

42

Page 43: COMPILACIÓN PROGRAMAS

08/12/2010 BÚSQUEDA DINÁMICA EN ARREGLOS – BUSQUEDA BINARIA

#include <iostream>using std::cout;using std::cin;using std::endl; #include <iomanip>using std::setw;

void inicioar();void desplegar(const int [],int); //Declaro al arreglo como constante y ese arreglo

//ni por accidente va a ser cambiado a alteradoint ingreso();void busquedabi(const int[],int,int,int); //ibajo, ialto, argumento de busquedavoid encuentra(int,int);char sino;

const int tamanio=15;int imedio, encontrado,ab; // ab: argumento de busqueda

int main(){

cout<<"\n\t\t\t BUSQUEDA BINARIA EN ARREGLOS \n";inicioar();cout<<endl;return 0;

}

void inicioar(){

int arreglo[tamanio]={-50,-45,-30,-10,0,10,25,45,60,86,100,200,310,350,400};desplegar(arreglo,tamanio);do{

ingreso();busquedabi(arreglo,0,tamanio-1,ab);

cout<<"\n\n\tDigite s si desea continuar : ";cin>>sino;

}while(sino=='s');cout<<endl;

}

void desplegar(const int c[], int cantele){

cout<<"\n\n Arreglo ordenado: ";for(int k=0; k<cantele; k++)

cout<<setw(4)<<c[k];}

int ingreso(){

43

Page 44: COMPILACIÓN PROGRAMAS

cout<<"\n\n\tIngrese el argumento de busqueda : ";cin>>ab;return ab;

}

void busquedabi(const int b[],int ibajo,int ialto,int vbuscado){

while(ibajo<=ialto){

imedio=(ibajo+ialto)/2;if(vbuscado==b[imedio]){

encontrado=b[imedio];encuentra(encontrado,imedio);break; // Rompo la interactividad del while poniendole break aqui

}else{

if(vbuscado<=b[imedio])ialto=imedio-1;

elseibajo=imedio+1;

}}if(ibajo>ialto) // Que significa que no le encontro, por eso llego hasta eso...

cout<<"\n\tEl elemento "<<vbuscado<<" no se encuentra en el arreglo\n"; }

void encuentra(int venco,int pos){

cout<<"\n\tEl elemento "<<venco<<" si se encuentra en el arreglo en la posicion "<<pos;

}

13/12/2010 MENU ARREGLOS DE UNA DIMENSIÓN#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;

void opciones(int);void inicializar(int [],int);void desplegarar(int [],int);void ingresar(int [],int);void rotar(int [],int);void encontrar(int [],int);void ingdato();void buscar(int [],int,int);void despresult(int[],int,int,int,int);

const int tamano=12;int opcion;

44

Page 45: COMPILACIÓN PROGRAMAS

int arreglo[tamano];

int main(){

cout<<"\n\n\tMENU DE ARREGLOS\n";inicializar(arreglo,tamano);do{

cout<<"\n\t1. Ingresar un arreglo \n";cout<<"\n\t2. Rotar los elementos del vector \n";cout<<"\n\t3. Encontrar los elementos mayor y menor \n";cout<<"\n\t4. Buscar un elemento en el arreglo \n";cout<<"\n\t5. Fin \n";cout<<endl;cout<<"\n\t Digite opcion : ";cin>>opcion;opciones(opcion);

}while(opcion!=5);return 0;

}

void inicializar(int a[],int tam){

for(int i=0;i<tam;i++)a[i]=0;

}

void opciones(int op){

switch (op){

case 1:ingresar(arreglo,tamano);break;

case 2:rotar(arreglo,tamano);break;

case 3:encontrar(arreglo,tamano);break;

case 4:ingdato();break;

case 5:break;

default:cout<<"\n\tOpcion no valida\n";break;

}}

45

Page 46: COMPILACIÓN PROGRAMAS

void ingresar(int c[],int can){

cout<<"\n\tIngrese los elementos del vector : \n";for(int k=0;k<can;k++){

cout<<"\n\ta [ "<<k<<" ] : ";cin>>c[k];

}desplegarar(c,can);

}

void desplegarar(int b[],int nroele){

cout<<"\n\t Arreglo : ";for(int j=0;j<nroele;j++)

cout<<setw(5)<<b[j];cout<<endl;

}

void rotar(int d[],int nro){

int noborrar;noborrar=d[0];d[nro]=noborrar;for(int m=0;m<nro;m++){

d[m]=d[m+1];}desplegarar(d,tamano);

}

void encontrar(int e[],int canele){

int menor,mayor;for(int p=0;p<canele;p++){

if(p==0){

menor=e[p];mayor=e[p];

}if(e[p]<menor)

menor=e[p];

if(e[p]>mayor)mayor=e[p];

}

cout<<"\n\tELEMENTO MAYOR : "<<mayor<<" , POSICION : ";46

Page 47: COMPILACIÓN PROGRAMAS

for(int s=0;s<canele;s++){

if(e[s]==mayor)cout<<s<<" , ";

}cout<<"\n\tELEMENTO MENOR : "<<menor<<" , POSICION : ";for(int t=0;t<canele;t++){

if(e[t]==menor)cout<<t<<" , ";

}cout<<endl;

}

void ingdato(){

int dato;cout<<"\n\tIngrese el argumento de busqueda : ";cin>>dato;buscar(arreglo,tamano,dato);

}

void buscar(int f[], int taman, int numero){

int aux[tamano];int respuesta,contador=0;for(int r=0;r<taman;r++){

if(f[r]==numero){

aux[r]=1;respuesta=1;contador++;

}}despresult(aux,respuesta,contador,taman,numero);

}

void despresult(int au[], int res,int cont,int nroelementos,int numerito){

if (res==1){

cout<<"\n\n\tEl numero "<<numerito<<" si se encuentra en el arreglo "<<cont<<" veces, \n\ten las posiciones : ";

for (int n=0;n<nroelementos;n++){

if(au[n]==1)cout<<n<<" , ";

}47

Page 48: COMPILACIÓN PROGRAMAS

}else

cout<<"\n\n\tEl numero "<<numerito<<" no se encuentra en el arreglo \n";cout<<endl;

}

DETERMINANTE DE UNA MATRIZ 15/12/2010

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;#include <cmath>//Determinante de una matriz de tercer orden - Metodo de menores

const int fil=3; //Tambien podria ser una unica variable, porque const int col=3; //es una matriz cuadrada

void inmatriz();int determinante(const int [][col]);void desplegar(const int [][col]);void desplegar1(int);

int resultado=0;

int main(){

cout<<"\n\n\tCALCULO DEL DETERMINANTE DE UNA MATRIZ\n\n";inmatriz();cout<<endl;return 0;

}

void inmatriz(){

int matriz[fil][col];cout<<"\nIngrese los valores de la matriz por filas \n";

for(int i=0;i<fil;i++){

48

Page 49: COMPILACIÓN PROGRAMAS

cout<<endl;for(int j=0;j<col;j++){

cout<<"\n"<<" ["<<i<<"]["<<j<<"] = ";cin>>matriz[i][j];

}}

determinante(matriz);desplegar(matriz);desplegar1(resultado);cout<<endl;

}

int determinante (const int a[][col]){

int x=0,signo;for (int y=0;y<col;y++){

signo=pow(-1,x+y);if(y==0){

resultado+=(signo*a[x][y])*(a[x+1][y+1]*a[x+2][y+2]-a[x+1][y+2]*a[x+2][y+1]);

}else

if(y==1)resultado+=(signo*a[x][y])*(a[x+1][y-1]*a[x+2]

[y+1]-a[x+2][y-1]*a[x+1][y+1]);else

resultado+=(signo*a[x][y])*(a[x+1][y-2]*a[x+2][y-1]-a[x+2][y-2]*a[x+1][y-1]);

}return resultado;

}

void desplegar(const int b[][col]){

cout<<"\n\tMATRIZ INICIAL\n";for(int m=0;m<fil;m++){

cout<<endl;for (int n=0;n<col;n++)

cout<<setw(4)<<b[m][n];}

}

void desplegar1(int r){

cout<<"\n\n\tDeterminante = "<<r;

}

MULTIPLICACIÓN DE MATRICES 15/12/2010

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>

49

Page 50: COMPILACIÓN PROGRAMAS

using std::setw;

const int fil=2;const int colfil=2;const int col=3; //Debemos definir estas cosas antes de los

//prototipos, porque en estos ya debemos poner

// al menos el numero de columnasvoid inmatrices();void multiplicar(const int [][colfil],const int[][col],int[][col]); //Porque nuestras matrices ingresadas no deben cambiar ni por error, la tercera si cambiavoid desplegar(const int [][colfil],const int[][col],const int[][col]);//Aqui si las tres constantes porque solo las voy a leer y publicar

int main(){

cout<<"\n\n\tMULTIPLICACION DE MATRICES\n\n";inmatrices();cout<<endl;return 0;

}

void inmatrices(){

int mat1[fil][colfil]={{-1,3},{5,4}};int mat2[colfil][col]={{1,2,5},{3,6,-3}};int mat3[fil][col]={0}; // Se lo debe inicializar para que no existan conflictos en

el formultiplicar(mat1,mat2,mat3);desplegar(mat1,mat2,mat3);cout<<endl;

}

void multiplicar(const int a[][colfil],const int b[][col],int c[][col]) {

for(int i=0;i<fil;i++) // Maneja las filas de la primera matriz{

for(int k=0;k<col;k++) // Maneja las columnas de la segunda matriz{

for(int j=0;j<colfil;j++) // Maneja columnas de la primera y filas de la segunda

c[i][k]=c[i][k]+a[i][j]*b[j][k];

}}

}

void desplegar(const int m1[][colfil],const int m2[][col],const int m3[][col]) {

cout<<"\n\tMATRIZ A \n";for (int m=0;m<fil;m++){

cout<<endl; //Salto una linea despues de publicar cada fila MUY IMPORTANTE!!!!!!

for(int n=0;n<colfil;n++)cout<<setw(4)<<m1[m][n];

}cout<<endl;

50

Page 51: COMPILACIÓN PROGRAMAS

cout<<"\n\tMATRIZ B \n";for (int p=0;p<colfil;p++){

cout<<endl;for(int q=0;q<col;q++)

cout<<setw(4)<<m2[p][q];}cout<<endl;cout<<"\n\tMATRIZ PRODUCTO \n";for (int x=0;x<fil;x++){

cout<<endl;for(int y=0;y<col;y++)

cout<<setw(4)<<m3[x][y];}

}

MATRIZ COFACTORES 22/12/2010

#include <iostream>using std::cout;using std::cin;using std::endl;#include <iomanip>using std::setw;#include <cmath>

//Voy a necesitar una nueva matriz que va a ser la matriz de cofactoresconst int fil=3;const int col=3;

void inicioma(); //Aqui debo tener dos matrices : la original y la de cofactoresvoid cofactores(const int[][col],int [][col]);void despliegue(const int[][col],int [][col]);

int main(){ cout<<"\n\tCALCULO DE LA MATRIZ DE COFACTORES\n\n"; inicioma(); cout<<endl; return 0;}

void inicioma(){ int matriz[fil][col]={{-1,1,2},{3,4,-2},{1,2,3}}; int a[fil][col]; cofactores(matriz,a);

cout<<endl;}

void cofactores(const int b[][col],int cofactor[][col]){ int signo; for(int i=0;i<fil;i++) { if (i==0) {

51

Page 52: COMPILACIÓN PROGRAMAS

for(int j=0;j<fil;j++) { signo=pow(-1,i+j); if(j==0) cofactor[i][j]=signo*(b[i+1][j+1]*b[i+2][j+2]-b[i+1][j+2]*b[i+2][j+1]); if(j==1) cofactor[i][j]=signo*(b[i+1][j-1]*b[i+2][j+1]-b[i+2][j-1]*b[i+1][j+1]); if(j==2) cofactor[i][j]=signo*(b[i+1][j-2]*b[i+2][j-1]-b[i+2][j-2]*b[i+1][j-1]); } } else { if(i==1) { for(int j=0;j<fil;j++) { signo=pow(-1,i+j); if(j==0) cofactor[i][j]=signo*(b[i-1][j+1]*b[i+1][j+2]-b[i+1][j+1]*b[i-1][j+2]); if(j==1) cofactor[i][j]=signo*(b[i-1][j-1]*b[i+1][j+1]-b[i+1][j-1]*b[i-1][j+1]); if(j==2) cofactor[i][j]=signo*(b[i-1][j-2]*b[i+1][j-1]-b[i+1][j-2]*b[i-1][j-1]); } } else { for(int j=0;j<fil;j++) { signo=pow(-1,i+j); if(j==0) cofactor[i][j]=signo*(b[i-2][j+1]*b[i-1][j+2]-b[i-1][j+1]*b[i-2][j+2]); if(j==1) cofactor[i][j]=signo*(b[i-2][j-1]*b[i-1][j+1]-b[i-1][j-1]*b[i-2][j+1]); if(j==2) cofactor[i][j]=signo*(b[i-2][j-2]*b[i-1][j-1]-b[i-1][j-2]*b[i-2][j-1]); } } } } despliegue(b,cofactor);}

void despliegue(const int d[][col],int cofact[][col]){

cout<<"\n\tMatriz original : \n";for (int p=0;p<col;p++){

cout<<endl;for(int q=0;q<fil;q++)

cout<<setw(4)<<d[p][q];}cout<<endl;cout<<"\n\tMatriz de cofactores : \n";for (int r=0;r<col;r++){

cout<<endl;for(int s=0;s<fil;s++)

52

Page 53: COMPILACIÓN PROGRAMAS

cout<<setw(4)<<cofact[r][s];}

}

MATRIZ INVERSA 22/12/2010

#include <iostream>using std::cout;using std::cin;using std::endl;#include <iomanip>using std::setw;#include <cmath>

//Voy a necesitar una nueva matriz que va a ser la matriz de cofactoresconst int fil=3;const int col=3;

void inicioma(); //Aqui debo tener dos matrices : la original y la de cofactoresvoid cofactores(const int[][col],int [][col]);void despliegue(const int[][col],int [][col]);int determinante(const int [][col]);void inversa(int,int [][col]);

int resultado;

int main(){ cout<<"\n\tCALCULO DE LA MATRIZ DE COFACTORES\n\n"; inicioma(); cout<<endl; return 0;}

void inicioma(){ int matriz[fil][col]={{-1,1,2},{3,4,-2},{1,2,3}}; int a[fil][col]; cofactores(matriz,a);

cout<<endl;}

void cofactores(const int b[][col],int cofactor[][col]){ int signo; for(int i=0;i<fil;i++) { if (i==0) { for(int j=0;j<fil;j++) { signo=pow(-1,i+j); if(j==0) cofactor[i][j]=signo*(b[i+1][j+1]*b[i+2][j+2]-b[i+1][j+2]*b[i+2][j+1]); if(j==1) cofactor[i][j]=signo*(b[i+1][j-1]*b[i+2][j+1]-b[i+2][j-1]*b[i+1][j+1]); if(j==2) cofactor[i][j]=signo*(b[i+1][j-2]*b[i+2][j-1]-b[i+2][j-2]*b[i+1][j-1]); } }

53

Page 54: COMPILACIÓN PROGRAMAS

else { if(i==1) { for(int j=0;j<fil;j++) { signo=pow(-1,i+j); if(j==0) cofactor[i][j]=signo*(b[i-1][j+1]*b[i+1][j+2]-b[i+1][j+1]*b[i-1][j+2]); if(j==1) cofactor[i][j]=signo*(b[i-1][j-1]*b[i+1][j+1]-b[i+1][j-1]*b[i-1][j+1]); if(j==2) cofactor[i][j]=signo*(b[i-1][j-2]*b[i+1][j-1]-b[i+1][j-2]*b[i-1][j-1]); } } else { for(int j=0;j<fil;j++) { signo=pow(-1,i+j); if(j==0) cofactor[i][j]=signo*(b[i-2][j+1]*b[i-1][j+2]-b[i-1][j+1]*b[i-2][j+2]); if(j==1) cofactor[i][j]=signo*(b[i-2][j-1]*b[i-1][j+1]-b[i-1][j-1]*b[i-2][j+1]); if(j==2) cofactor[i][j]=signo*(b[i-2][j-2]*b[i-1][j-1]-b[i-1][j-2]*b[i-2][j-1]); } } } } despliegue(b,cofactor);}

void despliegue(const int d[][col],int cofact[][col]){

int adj[fil][col];cout<<"\n\tMatriz original : \n";for (int p=0;p<col;p++){

cout<<endl;for(int q=0;q<fil;q++)

cout<<setw(4)<<d[p][q];}cout<<endl;cout<<"\n\tMatriz de cofactores : \n";for (int r=0;r<col;r++){

cout<<endl;for(int s=0;s<fil;s++)

cout<<setw(4)<<cofact[r][s];}cout<<"\n\n\tMatriz adjunta : \n";for (int rr=0;rr<col;rr++){

cout<<endl;for(int ss=0;ss<fil;ss++){

adj[rr][ss]=cofact[ss][rr];cout<<setw(4)<<adj[rr][ss];

54

Page 55: COMPILACIÓN PROGRAMAS

}}determinante(d);inversa(resultado,adj);

}

int determinante (const int a[][col]){

int x=0,signo;for (int y=0;y<col;y++){

signo=pow(-1,x+y);if(y==0){

resultado+=(signo*a[x][y])*(a[x+1][y+1]*a[x+2][y+2]-a[x+1][y+2]*a[x+2][y+1]);

}else

if(y==1)resultado+=(signo*a[x][y])*(a[x+1][y-1]*a[x+2]

[y+1]-a[x+2][y-1]*a[x+1][y+1]);else

resultado+=(signo*a[x][y])*(a[x+1][y-2]*a[x+2][y-1]-a[x+2][y-2]*a[x+1][y-1]);

}cout<<endl;cout<<"\n\tDeterminante : "<<resultado;cout<<endl;return resultado;

}

void inversa(int deter,int cof[][col]){

int numero;cout<<"\n\tMatriz inversa : \n";for (int xx=0;xx<fil;xx++){

cout<<endl;for(int yy=0;yy<col;yy++){

numero=cof[xx][yy];cout<<setw(6)<<numero<<"/"<<deter;

}}

}

APUNTADORES 22/12/2010

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;

const int fil=3;const int col=3;

void inicioarreglo();

55

Page 56: COMPILACIÓN PROGRAMAS

void desplegar1(const int [][col]); //Desplegar la matriz como siempre lo hacemosvoid desplegar2(int [][col]);void desplegar3(int [][col]); // Aqui voy a desplegar las direcciones de los elementos de la matrizvoid ingresar(int [][col]); //Aqui ya debe ser variable la matriz para que me deje cambiar sus elementos

int main(){ cout<<"\n\t\tUSO DE APUNTADORES EN ARREGLOS\n\n"; inicioarreglo(); cout<<endl; cout<<endl; return 0;}

void inicioarreglo(){ int matriz[fil][col]={{-10,0,4},{15,-20,50},{1,2,3}}; desplegar1(matriz); desplegar2(matriz); desplegar3(matriz); ingresar(matriz); desplegar3(matriz);}

void desplegar1(const int a[][col]){ cout<<"\n\nMatriz A: \n"; for(int i=0;i<fil;i++) { cout<<endl; for(int j=0;j<col;j++) { cout<<setw(4)<<a[i][j]; } }}

void desplegar2(int b[][col]){ int *apele; // Apuntador de los elementos de la matriz - VARIABLE LOCAL, solo la usaremos aqui cout<<"\n\nMatriz de direcciones de los elementos de la matriz A : \n"; for(int x=0;x<fil;x++) { cout<<endl; for(int y=0;y<col;y++) { apele=&b[x][y]; cout<<setw(10)<<apele; //Sin el asterisco porque quiero que publique las direcciones no los valores } }}

//Usando las direcciones se van a publicar lo elementos de la matriz, pero ahora usando sus DIRECCIONES...//va a imprimir basicamente lo mismo, pero la manera de hacerlo será diferente

56

Page 57: COMPILACIÓN PROGRAMAS

void desplegar3(int c[][col]){ int *direle; cout<<"\n\nDespliegue de los elementos de la matriz usando sus direcciones: \n"; for(int m=0;m<fil;m++) { cout<<endl; for(int n=0;n<col;n++) { direle=& c[m][n]; cout<<setw(4)<<*direle; } }}

void ingresar(int d[][col]){ int *direccion; cout<<"\nIngrese : \n"; for(int k=0;k<fil;k++) { cout<<endl; for(int l=0;l<col;l++) { cout<<"[ "<<k<<" ][ "<<l<<" ] : "; direccion=&d[k][l]; cin>>*direccion; }

}

}

TODO APUNTADORES 03/01/2011

#include <iostream>using std::cin;using std::cout;using std::endl;#include <iomanip>using std::setw;const int fil=3;const int col=3;void ingmat();void despmat(int [][col]);void sumar(int [][col]);void despsuma(int);int main(){ cout<<"\n\n\tSUMAR LOS ELEMENTOS DE UNA MATRIZ\n\n"; ingmat(); cout<<endl; return 0;}void ingmat(){ int mat[fil][col], *apunta; cout<<"\nIngrese los elementos por columnas : \n"; for(int i=0;i<fil;i++) {

57

Page 58: COMPILACIÓN PROGRAMAS

for(int j=0;j<col;j++) { apunta=&mat[i][j]; cout<<" [ "<<j<<" ] [ "<<i<<" ] : "; cin>>*apunta; } } despmat(mat);}void despmat(int a[][col]){ int *apele; cout<<"\nMatriz : \n"; for(int k=0;k<fil;k++) { cout<<endl; for(int l=0;l<col;l++) { apele=&a[l][k]; cout<<setw(5)<<*apele; } } sumar(a);}void sumar(int b[][col]){ int suma=0;

int *aptotal;aptotal=&suma;

int *direc; //int suma=0; for(int m=0;m<fil;m++) { for(int n=0;n<col;n++) { direc=&b[m][n]; *aptotal+=*direc; } } cout<<"\n\n\tLa suma de todos los elementos del arreglo es : "<<*aptotal; cout<<endl;}

58


Recommended