Está en la página 1de 62

Finobachi

#include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; // primera idea de funcino fibonachi long long Fibonachi1(int n) { if (n<2) return 1; else return (Fibonachi1(n-1)+Fibonachi1(n-2)); } //fibonachi Mejorada long long Fibonachi1(int n) { long long vector[n]; for (int i=0; i<n; i++) { if (i<2) vector[i]= i; else vector[i] = (vector[i-1]+vector[i-2]); return vector[n-1]; }

main() { int a; cout << "ingrese el numero a calcular: "; cin >> a; cout << endl << endl; cout << "el resultado es : " << Fibonachi2(a); getchar(); return 0; }

Puzzle

consiste en un tablero de 4x4 casillas con nmeros ordenados del 1 al 15, no contiene el 16 por simular el espacio, que trata principalmente en mostrar al usuario un tablero desordenado para que ste lo ordene en la menor cantidad de movimientos posibles
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #define FLECHA 224 // Codigo Ascii comn a flecha (esto es copia de otro posteo XD) #define IZQUIERDA 75 // Codigo Ascii flecha izquierda #define DERECHA 77 // Codigo Ascii flecha derecha #define ARRIBA 72 // Codigo Ascii flecha arriba #define ABAJO 80 // Codigo Ascii flecha abajo #define N 4

void imprime(int puzzle[N][N]){ int i,j; printf("\nnttt *-----------------------*n"); for(i=0;i<N;i++){ printf("ttt |"); for(j=0;j<N;j++){ if(puzzle[i][j]==0) printf(" |"); else printf("%3d |",puzzle[i][j]); } printf("n"); if(i<3) printf("ttt ------+-----+-----+------n"); } printf("ttt *-----------------------*nnn"); } char tecla (unsigned char pulsacion){ if (pulsacion==224) //se hace esta condicin por si no se llegase a ingresar flechas para mover pulsacion=getch(); return pulsacion; } void mover(int puzzle[N][N],int mov){// Realiza movimientos el usuario int i,j,k,l,aux; for(k=0;k<N;k++)//encontramos el lugar donde no hay nada para tener los indices de posicion for(l=0;l<N;l++) if(puzzle[k][l]==0){ i=k; j=l; } while((mov==80 && i==0)||(mov==75 && j==3)||(mov==77 && j==0)||(mov==72 && i==3)||(mov!=80 && mov!=75 && mov!=77 && mov!=72)){ system("cls"); imprime(puzzle); printf("nnt Presione las flechas para realizar movimientos (%c%c%c %c)",27,24,25,26); mov=tecla(getch()); } if(mov==80){ // movimiento abajo aux=puzzle[i][j]; puzzle[i][j]=puzzle[i-1][j]; puzzle[i-1][j]=aux; i=i-1; } else if(mov==75){ // movimiento izquirda aux=puzzle[i][j]; puzzle[i][j]=puzzle[i][j+1]; puzzle[i][j+1]=aux; j=j+1; } else if(mov==77){ // movimiento derecha aux=puzzle[i][j]; puzzle[i][j]=puzzle[i][j-1]; puzzle[i][j-1]=aux; j=j-1;

} else{ // movimiento arriba aux=puzzle[i][j]; puzzle[i][j]=puzzle[i+1][j]; puzzle[i+1][j]=aux; i=i+1; } } void desordena(int puzzle[N][N],int dific){ int i,j,k,alea; int aux; i=3; j=3; for(k=0;k<dific;k++){ do{ alea=rand()%4; //Genero aleatorio para posicion de arreglo movimiento }while((alea==0 && i==0)||(alea==1 && j==3)||(alea==2 && j==0)||(alea==3 && i==3)); switch(alea){ case 0: // movimiento abajo aux=puzzle[i][j]; puzzle[i][j]=puzzle[i-1][j]; puzzle[i-1][j]=aux; i=i-1; break; case 1: // movimiento izquirda aux=puzzle[i][j]; puzzle[i][j]=puzzle[i][j+1]; puzzle[i][j+1]=aux; j=j+1; break; case 2: // movimiento derecha aux=puzzle[i][j]; puzzle[i][j]=puzzle[i][j-1]; puzzle[i][j-1]=aux; j=j-1; break; case 3: // movimiento arriba aux=puzzle[i][j]; puzzle[i][j]=puzzle[i+1][j]; puzzle[i+1][j]=aux; i=i+1; break; } } } void genera_puzzle(int puzzle[N][N]){ int i,j,num; num=1; for(i=0;i<N;i++){ for(j=0;j<N;j++){ puzzle[i][j]=num; num++; if(i==3 && j==3) puzzle[i][j]=0; }

} } int correcto(int puzzle[N][N]){//ve si el puzzle esta resuelto int i,j,num,flag; num=1; flag=1; for(i=0;i<N;i++) for(j=0;j<N;j++){ if(i==3 && j==3) num=0; if(puzzle[i][j]!=num) flag++; num++; } return(flag); } main() { // Declaraciones int n,i,dific,cont; int puzzle[N][N]; //Arreglo con puzzle int continuar; unsigned char mov;//se declara como unsigned char porque el cdigo ascii no imprimible de las flechas //es 224 y un simple char solo soporta ascii entre 0 y 127 y con la //declaracion de insigned char soporta codigo ascii entre 0 y 225 time_t t; time(&t); srand(t); // Algoritmo genera_puzzle(puzzle); do{ printf("[1] Faciln"); printf("[2] Intermedion"); printf("[3] Dificiln"); printf("Ingrese dificultad: "); dific=getch(); system("cls"); }while(dific!=49 && dific!=50 && dific!=51); if(dific==49) dific=200; else if(dific==50) dific=500; else dific=900; do{ // para corroborar que realmente se ha desordenado desordena(puzzle,dific); continuar=correcto(puzzle); }while(continuar==1); cont=0;// contador de jugadas system("color 70"); do{ do{ system("cls"); imprime(puzzle);

printf("nnt Presione las flechas para realizar movimientos (%c%c%c %c)",27,24,25,26); mov=tecla(getch()); printf("n"); }while(mov!=ABAJO && mov!=IZQUIERDA && mov!=DERECHA && mov!=ARRIBA); mover(puzzle,mov); continuar=correcto(puzzle); cont++; }while(continuar!=1); system("cls"); imprime(puzzle); system("color 07"); sleep(400); printf(" %c%c%c%c%c %c%c%c%c %c %c %c%c%c%c%c %c %c%c%c %c %c%c%c %c%c%c %c %c%c%c%c %cn",1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,2,1,1,1,2,1,1,1,2,2,2,2,1,1,1,1,1); system("color 70"); sleep(400); printf(" %c %c %c %c %c %c %c %c %c %c %c %cn",1,2,1,1,1,1,2,2,1,1,2); system("color 07"); sleep(400); printf(" %c%c %c%c %c %c %c %c %c %c %c%c%c%c%c %c %c %c%c %c%c%c%c %cn",1,1,2,2,1,2,1,2,1,1,2,2,2,2,2,1,1,2,2,1,1,1,1,1); system("color 70"); sleep(400); printf(" %c %c %c %c %c %c %c %c %c %c %c %c %c %cn",1,2,1,2,1,2,1,1,2,2,1,1,2,1); system("color 07"); sleep(400); printf(" %c %c%c%c%c%c %c%c%c%c%c %c %c%c%c%c%c %c %c%c%c %c %c %c%c%c %c %c%c%c%c %c%c%c%c %cn",1,2,2,2,2,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,2,2,1,1,1,2,2,2,2,2,1,1,1, 1,1); system("color 70"); sleep(400); printf("nttt Total movimientos: %dnntt ",cont); system("color 07"); sleep(400); system("pause"); } /* Se declara a la variable mov como unsigned char debido a que un simple char solo acepta cdigo ascii entre 0 y 127, lo cual no nos sirve, debido a que los caracteres no imprimibles estn comprendidos entre 0 y 225, siendo el cdigo ascii comn de las flechas el nmero 224, pero el especfico de cada flecha seran los siguientes: Abajo : 80 Izquierda : 75 Derecha : 77 Arriba : 72 */

CALCULADORA
#include #include #include #include #include #include <stdio.h> <stdlib.h> <math.h> <string.h> <ctype.h> <errno.h>

#define LINSIZ 40 char *getline(char *); main() { double char

reg = 0.0; line[LINSIZ];

while (getline(line) != NULL) { char *op; double val; /* Parse command string */ val = strtod(line,&op); while (isspace(*op)) ++op; strupr(op); /* Perform operation */ errno = 0; if (*op == '+') reg += val; else if (*op == '-') reg -= val; else if (*op == '*') reg *= val; else if (*op == '/') { if (val != 0) reg /= val; else { puts("ERROR>>> invalid divisor"); continue; } } else if (*op == '=') reg = val; else if (*op == '^') { if (val == 0.0) reg = 1.0; else if (val == 0.5) reg = sqrt(reg); else

reg = pow(reg,val); } else if (strncmp(op,"NEGATE",1) == 0) reg = -reg; else if (strncmp(op,"MOD",1) == 0) { if (val == 0.0) { puts("ERROR>>> invalid modulus"); continue; } else reg = fmod(reg,val); } else if (strncmp(op,"CEIL",1) == 0) reg = ceil(reg); else if (strncmp(op,"FLOOR",1) == 0) reg = floor(reg); else if (strncmp(op,"ROUND",1) == 0) reg = (reg < 0.0) ? ceil(reg - 0.5) : floor(reg + 0.5); else if (strncmp(op,"SQRT",1) == 0) reg = sqrt(reg); else if (strncmp(op,"QUIT",1) == 0) exit(0); else if (*op != '\0') { puts("ERROR>>> invalid operation"); continue; } if (errno) perror("ERROR>>>"); else printf("\t%s => %g\n",line,reg); } return 0; } char *getline(char *buf) { fputs("Calc> ",stdout); fflush(stdout); return gets(buf); } /* Output: Calc> 3.4 = 3.4 = => 3.4 Calc> 3.4 * 3.4 * => 11.56 Calc> 1 + 1 + => 12.56 Calc> sqrt SQRT => 3.54401 Calc> round FLOOR => 3

Calc> q

*/ SEMAFORO
#include <stdio.h> #include <time.h> //funcion int cambiarColor( int ); main( { ) int tiempoSimulacion, tiempo;

int semaforo1 = 0, semaforo2 = 1; bool entraPrimerVez = true; time_t comienzo, actual; //Se introduce el tiempo durante el cual se va a ejecutar la simulacion //Y tambien el tiempo en el que queremos que cambie el color del semaforo printf( "Introduzca el tiempo en segundos en el que se va a realizar la simulacionn" ); scanf( "%d", &tiempoSimulacion ); printf( "Introduzca el tiempo en segundos del cambio del color de los semaforosn" ); scanf( "%d", &tiempo ); comienzo = time( NULL ); do { actual = time( NULL ); //Entra al cuerpo del if cada que haya transcurrido el tiempo de cambio ingresadopor el usuario if( int( difftime(actual, comienzo) ) % tiempo == 0 && entraPrimerVez ) { entraPrimerVez = false; semaforo1 = cambiarColor( semaforo1 ); semaforo2 = cambiarColor( semaforo2 ); if( semaforo1 == 1 ) { printf( "El semaforo 1 esta en Verde y el semaforo 2 en Rojonn" ); } else { printf( "El semaforo 1 esta en Rojo y el semaforo 2 en Verdenn" ); } } if( int( difftime(actual, comienzo) ) % tiempo > 0 ) { entraPrimerVez = true;

} } while( int( difftime(actual, comienzo) ) < tiempoSimulacion ); return 0; } int cambiarColor( int semaforo ) { //Si el valor del semaforo_1 es 1 es porque este semaforo este en verde, lo que indica que este pasa a rojo //y el semaforo_2 pasaria a verde, de lo contrario se invertiria el color segun lo explicado anteriormente if( semaforo == 1 ) { semaforo = 0; } else { semaforo = 1; } return semaforo; } DIA DE LA SEMANA #include <iostream> #include <cstdlib> #include <cmath> using namespace std; bool bisies (int fecha); int bisiesant (int fecha2); int main() { /* Declaracin de variables */ int int int int int ano,dia; mes; total; i; sol;

/* Entrada de datos */ cout<<"Introduzca el ao de la fecha que desee estudiar"<<endl; cin>>agno; cout<<"Introduzca el numero del mes"<<endl; cin>>mes; cout<<"Introduzca el numero del dia"<<endl; cin>>dia; /* Procedimiento */ total=30*(mes-1); total=total+dia;

if (mes>2) {if (bisies(agno)) {total=total-1;} else {total=total-2;}} if (mes<=7) {total=total+mes/2;} else {total=total+4+(mes-7)/2;} i=1900; while (i<agno) { total=total+365; i++; } total=total+bisiesant(agno); sol=total%7; /* Salida de resultados */ cout<<"La fecha introducida corresponde con un "; switch (sol) { case 1: {cout<<"lunes"<<endl;} break; case 2: {cout<<"martes"<<endl;} break; case 3: {cout<<"miercoles"<<endl;} break; case 4: {cout<<"jueves"<<endl;} break; case 5: {cout<<"viernes"<<endl;} break; case 6: {cout<<"sabado"<<endl;} break; case 0: {cout<<"domingo"<<endl;} } system("PAUSE"); return 0;

bool bisies(int fecha) { bool bisiesto;

if ((fecha%100)==0) {if ((fecha%400)==0) {bisiesto=true;} else {bisiesto=false;}} else {if ((fecha%4)==0) {bisiesto=true;} else {bisiesto=false;}} return bisiesto; } int bisiesant(int fecha2) { int j,k; k=0; j=1900; while (j<fecha2) {

if (bisies(j)) k++; j++;

} } return k;

CALENDARIO #include <stdio.h> #include <stdlib.h> #include <string.h> int bisiesto(int); int main(int argc, char **argv) { int dia, mes, anio, dia_semana_primer, auxiliar, conta_dias_mes, siglos[5], meses[12][2]; char aux_anio[5], aux_anio2[5], nombre_meses[12] [30]={"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO"," SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}; printf("ntt*****CALENDATOR (by tonilope)*****nn"); printf("nnIntroduce la fecha (dd-mm-aaaa) (1700-2199): "); while(scanf("%d-%d-%d", &dia, &mes, &anio)!=3 || anio<1700 || anio>2199 || mes<1 || mes>12 || dia<1 || (mes==2 && ((bisiesto(anio) && dia>29) || (!bisiesto(anio) && dia>28))) || ((mes==4 || mes==6 || mes==9 || mes==11) && dia>30) || ((mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) && dia>31)) {

printf("nnIntroduce una fecha valida, por favor: "); fflush(stdin);

/* TABLA SIGLOS */ siglos[0]=4; siglos[1]=2; siglos[2]=0; siglos[3]=6; siglos[4]=4; /* TABLA MESES */ if(bisiesto(anio)) meses[0][0]=6; else meses[0][0]=0; meses[0][1]=31; if(bisiesto(anio)) { meses[1][0]=2; meses[1][1]=29; } else { meses[1][0]=3; meses[1][1]=28; } meses[2][0]=3; meses[2][1]=31; meses[3][0]=6; meses[3][1]=30; meses[4][0]=1; meses[4][1]=31; meses[5][0]=4; meses[5][1]=30; meses[6][0]=6; meses[6][1]=31; meses[7][0]=2; meses[7][1]=31; meses[8][0]=5; meses[8][1]=30; meses[9][0]=0; meses[9][1]=31; meses[10][0]=3; meses[10][1]=30;

meses[11][0]=5; meses[11][1]=31; /* Sacamos el da de la semana del primer da del mes introducido. */ sprintf(aux_anio, "%d", anio); sprintf(aux_anio2, "%d", anio); aux_anio[2]=0; //Nos quedamos con las dos primeras cifras del ao. aux_anio2[0]=aux_anio2[2]; aux_anio2[1]=aux_anio2[3]; aux_anio2[2]=0; //Nos quedamos con las dos ltimas cifras del ao. dia_semana_primer=( siglos[atoi(aux_anio)-17] + atoi(aux_anio2) + (atoi(aux_anio2)/4) + meses[mes-1][0] + 1 )%7; printf("nnttt[%s de %d]nntttLu Ma Mi Ju Vi Sa Donnttt", nombre_meses[mes-1], anio); /* Rellenamos los huecos hasta el primer da del mes. */ if(dia_semana_primer==0) dia_semana_primer=7; auxiliar=0; while(auxiliar<dia_semana_primer-1) { printf(" "); auxiliar++; } /* Imprimimos los das hasta completar la fila. */ conta_dias_mes=0; while(conta_dias_mes<7-auxiliar) { printf("%2d ", conta_dias_mes+1); conta_dias_mes++; } printf("nttt"); /* Mostramos el resto de los das del mes metiendo un salto de lnea cada 7 das. */ while(conta_dias_mes<meses[mes-1][1]) { for(auxiliar=0; auxiliar<7 && conta_dias_mes<meses[mes-1][1]; auxiliar++, conta_dias_mes++) printf("%2d ", conta_dias_mes+1);

printf("nttt"); } printf("nn"); system("pause"); } return 0;

int bisiesto(int anio) { return ((anio%4==0 && anio%100!=0) || anio%400==0); } AREA DE UNA CIRCUNFERENCIA #include <stdio.h> #define PI 3.1416 main () { float radio, longitud, area; printf ("Introduce el radio: "); scanf ("%f", &radio); if (radio!=0) { longitud = 2 * PI * radio; area = PI * radio * radio; printf ("nEl permetro del crculo es %f", longitud); printf ("nEl rea del crculo es %f", area); printf ("n"); } if (radio==0) { printf ("Introduce el permetro: "); scanf ("%f", &longitud); radio = longitud / (2 * PI); area = PI * radio * radio; printf ("nEl radio es %f", radio); printf ("nEl rea es %f", area); printf ("n"); }

}
DESPLAZAR UN VECTOR #include <stdio.h>

main () { /*Nmero de valores de vector*/ int N; printf ("Cuntos valores quieres que tenga tu vector?: "); scanf ("%i", &N); /*Declara el vector*/ int v[N]; int i; /*Lee los valores del vector*/ for (i=0 ; i<N ; i++) { printf ("Introduce el valor %i del vector: ", i+1); scanf ("%i", &v[i]); } /*Muestra los valores del vector*/ for (i=0 ; i<N ; i++) printf ("n%in", v[i]); printf ("n************INTERCAMBIO!!!!************n"); /*Intercambiamos los valores*/ int aux=0; aux=v[N-1]; for ( i=2 ; N-i>=0 ; i++) v[N-i+1]=v[N-i]; v[0]=aux; /*Muestra los valores del vector despus del intercambio*/ for (i=0 ; i<N ; i++) printf ("n%in", v[i]);

} CALCULOS QUIMICOS
#include <iostream.h> #include <stdlib.h> struct datos { double molaridad; double normalidad; double grsoluto; double pesosolu; double pesovol; double pesopeso; double densidad; double pesomolec; double numcargas; }*a; //funciones prototipo

void void void void void

menu(int *); inicializar(struct datos *); ingresar(struct datos *, int ); calcular(struct datos *); resultados(struct datos *);

//funcion principal int main() { a = new datos; inicializar(a); int opc; do{ menu(&opc); if(opc!=9&&opc!=10) { ingresar(a, opc); } else if(opc==9) { calcular(a); resultados(a); } }while(opc!=10); delete a; return 0; } //funciones void menu(int *o) { system("cls"); cout<<"Ingrese un numero segun los datos que dispone :"<<endl; cout<<"1 - Molaridad"<<endl;cout<<"2 - Normalidad"<<endl; cout<<"3 - Peso molecular (gr/mol)"<<endl;cout<<"4 - Densidad (gr/ml)"<<endl; cout<<"5 - Gramos de soluto"<<endl;cout<<"6 - Gramos de solucion"<<endl; cout<<"7 - Peso/Volumen de solucion (ml)"<<endl;cout<<"8 - Numero de cargas, protones u oxidrilos"<<endl; cout<<"9 - Resultados"<<endl;cout<<"10 - Salir"<<endl; cin>>*o; if(*o!=9||*o!=10) system("cls"); } void inicializar(struct datos *s) { s->molaridad=NULL; s->normalidad=NULL; s->pesovol=NULL; s->pesopeso=NULL;

s->grsoluto=NULL; s->pesosolu=NULL; s->densidad=NULL; s->pesomolec=NULL; s->numcargas=NULL; } void ingresar(struct datos *b, int op) { switch(op) { case 1: cout<<"Ingrese la molaridad de la solucion :"<<endl; cin>>b->molaridad; break; case 2: cout<<"Ingrese la normalidad de la solucion :"<<endl; cin>>b->normalidad; break; case 3: cout<<"Ingrese el peso molecular del compuesto :"<<endl; cin>>b->pesomolec; break; case 4: cout<<"Ingrese la densidad de la solucion :"<<endl; cin>>b->densidad; break; case 5: cout<<"Ingrese los gramos de soluto en la solucion :"<<endl; cin>>b->grsoluto; break; case 6: cout<<"Ingrese el peso de la solucion :"<<endl; cin>>b->pesosolu; break; case 7: cout<<"Ingrese el peso volumen de la solucion :"<<endl; cin>>b->pesovol; break; case 8: cout<<"Ingrese el numero de cargas, protones u oxidrilos del compuesto"<<endl; cin>>b->numcargas; break; } } void calcular(struct datos *c) { if(!c->molaridad) { if(c->normalidad!=NULL&&c->numcargas!=NULL) c->molaridad= c->normalidad/c->numcargas; else if(c->grsoluto!=NULL&&c->pesomolec!=NULL) c->molaridad= c->grsoluto/c->pesomolec; } if(!c->normalidad)

{ if(c->molaridad!=NULL&&c->numcargas!=NULL) c->normalidad=c->molaridad*c->numcargas; } if(!c->grsoluto) { if(c->pesosolu!=NULL) c->grsoluto= c->pesosolu*10; else if(c->molaridad!=NULL&&c->pesomolec!=NULL) c->grsoluto=c->molaridad*c->pesomolec; } if(!c->pesosolu) { if(c->densidad!=NULL) c->pesosolu=c->densidad*1000; } if(!c->pesovol) { if(c->grsoluto!=NULL) c->pesovol= c->grsoluto/10; } if(!c->pesopeso) { if(c->grsoluto!=NULL&&c->pesosolu!=NULL) c->pesopeso= (c->grsoluto/c->pesosolu) *100; } if(!c->densidad) { if(c->pesosolu!=NULL) c->densidad=c->pesosolu*1000; } if(!c->numcargas) { if(c->normalidad!=NULL&&c->molaridad!=NULL) c->numcargas= c->normalidad/c->molaridad; } } void resultados(struct datos *d) { system("cls"); cout<<"Los datos calculables son los siguientes:"<<endl; if(d->molaridad) { cout<<"Molaridad = "<<d->molaridad<<endl; } if(d->normalidad) { cout<<"Normalidad = "<<d->normalidad<<endl; } if(d->grsoluto) { cout<<"Gramos de soluto = "<<d->grsoluto<<endl; } if(d->pesosolu) { cout<<"Peso de la solucion = "<<d->pesosolu<<endl;

} if(d->pesovol) { cout<<"Concentracion P/V = "<<d->pesovol<<endl; } if(d->pesopeso) { cout<<"Concentracion P/P = "<<d->pesopeso<<endl; } if(d->densidad) { cout<<"Densidad(gr/ml) = "<<d->densidad<<endl; } if(d->numcargas) { cout<<"Numero de cargas, oxidrilos o protones = "<<d->numcargas<<endl; } system("pause"); } METODO BURBUJA #include<stdio.h> #include<conio.h> void main() { int vec[20]; int a,n; int y,i,j,k; printf("nntt *.*UNIVERSIDAD TECNOLOGICA DE PANAMA*.*ttn"); printf("nnttt *.*SEDE AZUERO*.*nn"); printf("nnt *.*PROYECTO #3 ESTRUCTURA DE DATOS*.*n"); printf("nnt*.*PROFESORA: *.*n"); printf("nnt *.*NUEVA DELHI *.*n"); printf("nnt*.*ESTUDIANTES: *.*"); printf("nnt *.*JHONATAN LOPEZ 20-14-1512*.*n"); printf("nt *.*LEIDYS MURILLO 6-713-1482*.*n"); getch(); clrscr(); s:clrscr(); printf("nnttDE CUANTOS ELEMENTOS VA A INTRODUCIRntt==> "); scanf("%d",&n); if(n>10) { printf("n SON DEMASIADOS ELEMENTOS INTRODUZCA LA CANTIDAD NUEVAMENTE"); getch(); clrscr(); goto s; } else { vec[n]; } for(i=1;i<=n;i++) { printf("ntINTRODUZCA UN NMERO "); scanf("%d",&a); vec[i]=a;

} getch(); clrscr(); printf("nntNUMEROS INTRODUCIDOS"); for(i=1;i<=n;i++) { printf(" [%d]",vec[i]); } getch(); printf("n"); for(i=2;i<=n;i++) { for(j=n;j>=i;j--) { if(vec[j-1]>vec[j]) { y=vec[j-1]; vec[j-1]=vec[j]; vec[j]=y; } printf("n"); for(k=1;k<=n;k++) { printf(" %d",vec[k]); getch(); } } printf("n"); if(i<=n) { printf("nn PASADA #%dn",i-1); for(k=1;k<=n;k++) { printf(" [%d]",vec[k]); } getche(); } } printf("ntDESEA CONTINUAR PRESIONE 1 PARA SI 2 PARA NO "); scanf("%d",&a); if(a==1) { goto s; } else { clrscr(); }

}
TABLA DE MULTIPLICAR /*pequeo programa que genera la tabla de multiplicar de el numero que el usuario quiera y el limite que el usuario quiera echo con do..while*/ #include<stdio.h> #include<conio.h> main()

{ int a; int b; int c=1; int d; printf("Numero al cual quiere generar la tabla? "); scanf("%d",&a); printf("hasta cuanto quiere su tabla? "); scanf("%d",&b); do { d=(a*c); printf("%d x %d = %d n", a,c,d); c++; } while (c<=b); getch(); } CALCULO DE AREAS DE VARIAS FIGURAS #include <windows.h> #include <stdio.h> #include <stdlib.h> #define pi 3.1416 #define tre 0.3333 #define fo 1.3333 int main(); int main(void) { double r,a,l,h,e,f,g,i,b,w,z,j,s; int opcion; system("title calculadora by Cmj"); system("msg * bienvenido a la calculadora Cmj"); puts("Opciones de la calculadora"); puts("1) Revolucion"); puts("2) Prismas"); printf("cualquier otro numero para salirn"); puts("nnttIndique la opcion:"); if (scanf("%d", &opcion) != 1 || opcion < 1 || opcion > 2) return EXIT_FAILURE; if (opcion == 1) { system("color 17"); system("msg * bienvenido a la calculadora de figuras by Cmj (esfera)"); system("title calculadora de figuras esferas by Cmj"); system("cls"); puts("Introduce el radio (en centimetros):n"); scanf("%lf",&r); printf("El area de la circunferencia es:n%f",pi*r*r); printf("nLa longitud de la circunferencia es:n%f",pi*2*r); printf("nEl area de la esfera es:n%f",4*pi*r*r); printf("nEl volumen de la esfera es:n%f",fo*pi*r*r); system("npause");

puts("nIntroduce el radio del cilindro (en centimetros):n"); scanf("%lf",&i); puts("introduce la altura del cilindro (en centimetros):n"); scanf("%lf",&h); printf("El area de la circunferencia es:n%f",pi*i*i); printf("nLa longitud de la circunferencia es:n%f",pi*2*i); printf("nEl aerea lateral del cilindro es:n%f",pi*2*i*h); printf("nEl area de las bases es:n%f",(pi*i*i)*2); printf("nEl area total del cilindro es:n%f",2*pi*i*(h+i)); printf("nEl volumen del cilindro es:n%f",pi*i*i*h); system("npause"); puts("nIntroduce el radio de la base del cono (en centimetros):n"); scanf("%lf",&e); puts("Introduce la altura del cono (en centimetros):n"); scanf("%lf",&f); puts("Introduce la generatriz (en centimetros):n"); scanf("%lf",&g); printf("El area de la circunferencia es:n%f",pi*e*e); printf("nLa longitud de la circunferencia es:n%f",pi*2*r*e); printf("nEl area total del cono es:n%f",pi*e*(g+e)); printf("nEl volumen total del cono es:n%f",tre*pi*e*e*h); system("npause"); printf("nEl area de la circunferencia es:n%f",pi*r*r); printf("nLa longitud de la circunferencia es:n%f",pi*2*r); printf("nEl area de la esfera es:n%f",4*pi*r*r); printf("nEl volumen de la esfera es:n%f",fo*pi*r*r); printf("nEl area de la circunferencia es:n%f",pi*i*i); printf("nLa longitud de la circunferencia es:n%f",pi*2*i); printf("nEl aerea lateral del cilindro es:n%f",pi*2*i*h); printf("nEl area de las bases es:n%f",(pi*i*i)*2); printf("nEl area total del cilindro es:n%f",2*pi*i*(h+i)); printf("nEl volumen del cilindro es:n%f",pi*i*i*h); printf("nEl area de la circunferencia es:n%f",pi*e*e); printf("nLa longitud de la circunferencia es:n%f",pi*2*r*e); printf("nEl area total del cono es:n%f",pi*e*(g+e)); printf("nEl volumen total del cono es:n%f",tre*pi*e*e*h); system("npause"); /** Fichero: esfera.c Autor: Carlos Martn Jimnez Todos los derechos reservados

**/ }

else if(opcion == 2) { int main(); system("color 17"); system("msg * bienvenido a la calculadora de figuras by Cmj (prismas)"); system("cls"); system("title calculadora de figuras prismas by Cmj"); puts("introduce la longitud de la base:n"); scanf("%lf",&b);

puts("introduce la longitud de la altura:n"); scanf("%lf",&z); puts("introduce la longitud del ancho:n"); scanf("%lf",&w); printf("nEl perimetro del cuadrilatero entre b y h es:n%f",b*2*z*2); printf("nEl perimetro del cuadrilatero entre b y a es:n%f",b*2*w*2); printf("nEl perimetro del cuadrilatero entre a y h es:n%f",a*2*w*2); printf("nEl area del cuadrilatero entre b y h es:n%f",b*z); printf("nEl area del cuadrilatero entre a y h es:n%f",w*z); printf("nEl area del cuadrilatero entre b y a es:n%f",b*w); printf("nEl area del cuadrilatero entre b y h es:n%f",b*z); printf("nEl volumen total es:n%f",b*z*w); system("npause"); puts("nEl area de la base del prisma es:n"); scanf("%lf",&j); puts("la altura del prisma es:n"); scanf("%lf",&s); printf("el volumen del prisma es:n%f",j*s); getch(); } return EXIT_SUCCESS; /** Fichero: calculadora.c Autor: c95 c95.cmj@gmail.com Todos los derechos reservados

**/ }

AREA DE UN TRIANGULO Y SU PERIMETRO /* Name: Calcular rea y Permetro de Un Rectngulo Copyright: Todos Los Derechos Reservados Author: aLeJo Date: 2010 Description: Dada la base y la altura de un rectngulo; calcula su rea y el permetro. */ #include <iostream> int main() { int area, perimetro, base, altura; printf ("Digite las especificaciones del rectangulon"); printf ("Su altura ---> "); scanf ("%d", &altura); printf ("Su base ---> "); scanf ("%d", &base); printf ("El area del rectangulo es: %dny su perimetro: %dn", area=base*altura, perimetro=2*(base+altura));

system ("pause"); return 0;

}
CODIGO DE USUSARIO /*este es el programa que genera un codigo de usuario utilizando las primeras tres letras del apellido paterno, las tres primeras letras del apellido materno y las tres primeras letras del nombre del usuario*/ /*juan carlos rodriguez pea mat. 201012075*/ /*programa elaborado por: juan carlos rodriguez pea*/ /*el programa esta realizado y probado en: netbook compaq mini 120LA*/ #include <stdio.h> int main() { printf("================================================================= ==================================================n"); char NOM[20], PATP[20], MATP[20]; /*aqui se declaran las tres cadenas que se utilizan para poder almecenar y utilizar despues, los datos del usuario para poder crear el codigo de usuario*/ int i; /*esta es la declaracion de la variable que despues se utilizara como contador */ printf("este programa genera tu codigo de usuario, por favor introduce tus datosn"); /*aqui es donde se le explica al usuario lo que el programa hace*/ printf("por favor intruce tu nombren");/*aqui se pide al usuario que introduzca su nombre */ scanf("%s", NOM); /*aqui se almacena el nombre que el usuario proporcione en la cadena de NOM*/ printf("por favor introduce tu apellido paternon");/*aqui se pide al usuario que introduzca su primer apellido*/ scanf("%s", PATP);/*aqui se almacena el apellido paterno en la cadena PATP*/ printf("por favor introduce tu apellido maternon");/*aqui se pide al usuario que introduzca su apellido materno */ scanf("%s", MATP);/*aqui se almacena el apellido materno en la cadena MATP*/ printf("tu codigo de usuario es el:n"); /*en esta linea se le informa al usuario que el resultado en la pantalla sera su codigo de usuario*/ for(i=0; i<3; i=i+1) { printf("%c", PATP[i]); /*este bucle se utiliza para poder imprimir las primeras tres letras del apellido paterno almacenadas en la cadena PATP*/ } for(i=0; i<3; i=i+1) { printf("%c", MATP[i]); /*este bucle se utiliza para poder imprimir las primeras tres letras del apellido materno almacenadas en la cadena MATP*/ } for(i=0; i<3; i=i+1) {

printf("%c", NOM[i]); /*este bucle se utiliza para poder imprimir las primeras tres letras del nombre almacenadas en la cadena NOM */ } printf("n"); /*esta linea se utiliza para dar un salto de linea*/ printf("fin del programa"); /*se le informa al usuario que el programa ha finalizado*/ printf("n"); /*esta linea tambien es un salto de linea*/ printf("================================================================= ===================================================n"); } DIA DE LA SEMANA QUE NACISTE #include<iostream.h> #include<conio.h> void main() { clrscr(); char *fmen[]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto ","Setiembre","Octubre","Noviembre","Diciembre","ERROR"}; int ip,a,op,anop, mes=0,max=0, maxfeb=0,dia=0,mes2; int val4, val5, val6, val7, val8, val9, val0; char *fdias[] = {"Sabado","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes"}; int ano; cout<<"tttDIA EN QUE NACISTEnn"; cout<<"tAverigua en que dia de la semana naciste,ntcon solo poner la fecha de nacimientonn"; cout<<"nnntIngrese el ao : "; cin>>ano; if(ano%400==0) { maxfeb=29; } else{ if(ano%4==0 && ano%100!=0) { maxfeb=29; } else{ maxfeb=28; } } do{

cout<<"ntIngrese el mes : "; cin>>mes; switch(mes) {

case 1: ip=0; max=31; break; case 2: ip=1; max=maxfeb; break; case 3: ip=2; max=31; break; case 4: ip=3; max=30; break; case 5: ip=4; max=31; break; case 6: ip=5; max=30; break; case 7: ip=6; max=31; break; case 8: ip=7; max=31; break; case 9: ip=8; max=30; break; case 10: ip=9; max=31; break; case 11: ip=10; max=30; break; case 12: ip=11; max=31; break; default: ip=12; cout<<"ERROR tal numero de mes no existe"; break;

mes2=mes; }while(ip==12);

do{

cout<<"ntIngrese el dia : "; cin>>dia; if(dia>max) { cout<<"ERROR Numero de dia no existente"; } }while(dia>max); anop=ano; if(mes==1) { mes2=13; ano=ano-1; } if (mes==2) { mes2=14; ano=ano-1; } val4 = ((mes2+1)*3)/5; val5 = ano/4; val6 = ano/100; val7 = ano/400; val8 = dia +(mes2*2)+val4+ano+val5-val6+val7+2; val9 = val8/7; val0 = val8-(val9*7); cout<<"nLa fecha en que usted nacio fue : "; cout<<fdias[val0]<<", "<<dia<<" de "<<fmen[ip]<<" de "<<anop; } getch();

MULTIPLICACION DE ARREGLOS #include<conio.h> #include<stdio.h> main() { int a[10], i,b,n,c; clrscr(); printf("ESTE PROGRAMA ME PERMITE MULTIPLICAR ARREGLOSnn"); printf("Cuantos y cuales son los valores:t"); scanf("%i",&n); printf("- - - - - - - - - - - - - - - - n"); for(i=0;i<n;i=i+1) { printf("%i-",i); scanf("%i",&a[i]); printf("n"); } printf("- - - - - - - - - - - - - - - - n"); printf("por cualt");

scanf("%i",&b); printf("- - - - - - - - - - - - - - - - "); for (i=0;i<n;i++) { c= a[i]*b; printf ("n%i * %i = %in", a[i],b,c); } printf("- - - - - - - - - - - - - - - - n"); printf("PRESIONE CUALQUIER TECLA PARA FINALIZAR..."); getch(); } CALCULO DE RESISTENCIA #include<iostream> #include<math.h> using namespace std; void main() { float resistencia1; float resistencia2; float resistencia3; float resistenciatotal; cout <<"ingrese el valor de la resistencia 1 en homios"; cin >>resistencia1; cout <<endl; cout <<"ingrese el valor de la resistencia 2 en homios"; cin >>resistencia2; cout <<endl; cout <<"ingrese el valor de la resitencia 3 en homios"; cin >>resistencia3; cout <<endl; cout <<"la resistencia total en homios es de ..."; resistenciatotal=(resistencia1+resistencia2+resistencia3); cout <<resistenciatotal; cout <<"homios"; cout <<endl; system ("pause"); } DESCUENTO TOTAL #include<iostream.h> #include<math.h> int descuento; int preciocondescuento; int precio; void main() { cout<<"ingrese el valor del producto"<<endl; cin>>precio; cout<<"ingrese el porcentaje del descuento"<<endl; cin>>descuento; preciocondescuento=precio-(precio*descuento/100); cout<<"el precio con descuento es de ..."<<endl; cout<<preciocondescuento; cout<<endl;

FUERZA ELECTRICA EN DOS CARGAS #include<iostream> #include<math.h> using namespace std; void main() { float carga1; float carga2; float distancia; float k=9e9; float fuerza; cout <<endl; cout <<"ingrese el valor de la carga1 en cuolumbs"; cin >>carga1; cout <<endl; cout <<"ingrese el valor de la carga2 e coulumbs"; cin >>carga2; cout <<endl; cout <<"ingrese el valor de la distancia en milimetros"; cin >>distancia; cout <<endl; cout <<"la fuerza electrica es:"; fuerza=(k*(carga1*carga2)/distancia*distancia); cout <<fuerza; cout <<endl; system ("pause"); } COFACTOR DE UNA MATRIZ #include "stdafx.h" # include <iostream.h> int i,j,k,l,m,n,r,s,p,q,g,numero; float **a,**cofa,**b; float det; void main() { cout<<"ttIntroducir el ORDEN DE LA MATRIZ : cin>>n; cout<<"n"; a=new float*[n+1]; b=new float*[n+1]; cofa=new float*[n+1]; N = ";

for(int i=1;i<=n;i++) { a[i]=new float [n+1]; b[i]=new float [n+1]; cofa[i]=new float [n+1]; } m=n-1; /* Vamos a introducir la matriz por teclado*/ cout<<"ttIntroducir los elementos por FILAS n"; cout<<"tt---------------------------------- n"; for(i=1;i<=n;i++)

{ {

for(j=1;j<=n;j++) cout<<"a("<<i<<","<<j<<")"; cin>>a[i][j]; } }

/*operacion*/ q=0; r=0; for(p=1;p<=n;p++) { for(s=1;s<=n;s++) { r=0; for(i=1;i<=n;i++) { q=0; if(p!=i) r=r+1; for(j=1;j<=n;j++) if(p!=i) { if(s!=j) { q=q+1; b[r][q]=a[i][j]; } } /*****Calculo del DETERMINANTE*****/ det=b[1][1]; for(k=1;k<m;k++) { l=k+1; for(i=l;i<n;i++) { for(j=l;j<n;j++) b[i][j] = ( b[k][k]*b[i][j]-b[k][j]*b[i][k] )/b[k][k]; } det=det*b[k+1][k+1]; } /*calculodel (-1)^(i+j)*/ numero=(s+p); for(i=1;i<=100;i++) { numero +=-2; if(numero==0) g=1; else { if(numero==1) g=-1; } } cofa[p][s]=(g)*det; }

} } LISTADOS */ /* SI QUEREMOS LEER LOS ELEMENTOS DE LA MATRIZ

cout<<"RESULTADO DE LA TARIZ DE COFACTORES"<<"n"; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) cout<<cofa[i][j]<<" cout<<"n"; } for(i=1;i<=n;i++) { delete [] a[i]; delete [] b[i]; delete [] cofa[i]; } }

";

Programa para calcular todos los nmeros primos hasta un tope dado.
#include <stdio.h> #include <math.h> #include <time.h>

#define TOPE 500000000 int main(int argc, char *argv[]) { unsigned long int *primos, raiz, i, j, tope, total, tiempo_inicio, tiempo_final; FILE *fichero; char *numeros, nombre_fichero[100]; printf("ntPRIMATOR: buscador de numeros primos (CRIBA DE ERATOSTENES)nn"); if(argc==2) { tope=atoi(argv[1]); if(tope>2 && tope<=TOPE) { printf("nEchando unas cuentecillas, por favor espera...nn"); tiempo_inicio=time(NULL); if((numeros=malloc((tope+1)*sizeof(char)))!=NULL)

{ /* INICIO CRIBA */ //Suponemos que TODOS los nmeros son primos for(i=2; i<tope; i++) numeros[i]='p'; //Cribamos raiz=(unsigned long int)sqrt(tope); for(i=2; i<=raiz ; i++) if(numeros[i]=='p') for(j=2 ; (j*i)<tope; j++) numeros[(j*i)]='c'; //Contamos los primos que hay en total for(i=2, total=0; i<tope; i++) if(numeros[i]=='p') total++; /* FIN CRIBA */ if((primos = malloc(total* sizeof(long)))!=NULL) { //Creamos la tabla con los primos for(i=2, j=0 ; j<total; i++) if(numeros[i]=='p') primos[j++]=i; tiempo_final=time(NULL); printf("nTotal de primos encontrados: [%u] Tiempo empleado: %u segn", total, tiempo_final-tiempo_inicio); printf("nn(I)mprimir la LISTA / (G)uardarla en un fichero ?nn"); do { i=getch(); }while(toupper(i)!='I' && toupper(i)!='G'); if(toupper(i)=='I') { for(j=0; j<total-1; j++) printf("%u | ", primos[j]); printf("%un", primos[j]); } else { sprintf(nombre_fichero, "primator %d.txt", tope); fichero=fopen(nombre_fichero, "w+");

fprintf(fichero, "PRIMATOR %d nnTotal de primos encontrados: [%u] Tiempo empleado: %u segnn", tope, total, tiempo_final-tiempo_inicio); for(j=0; j<total-1; j++) fprintf(fichero, "%u | ", primos[j]); fprintf(fichero, "%un", primos[j]); fclose(fichero); printf("nFichero [%s] creado correctamente.n", nombre_fichero); } free(primos); } else printf("Error: NO HAY MEMORIA SUFICIENTE. (Prueba con un tope MENOR)n"); free(numeros); } else

printf("Error: NO HAY MEMORIA SUFICIENTE. (Prueba con un tope MENOR)n"); } else printf("Error: 2<tope<=%dn", TOPE); } else printf("nLa sintaxis es:nnt %s [numero_tope]nnPrimator calculara TODOS los primos hasta [numero tope]-1n", argv[0]); } ELECCIONES #include <iostream> #include <cstdlib> #include <cmath> using namespace std; int main() { /* Declaracin de variables */ int int int int int int escaos; votos1,votos2,votos3,votos4; voto1,voto2,voto3,voto4; esc1,esc2,esc3,esc4; temp; a,b,c,d;

/* Entrada de datos */ /* Slo los partidos que obtienen al menos el 5% de los votos optan a los escaos (en Espaa). Si son menos de 4 partidos, a los sobrantes se les da 0 votos*/ cout<<"Introduce el numero de escaos que compone la camara sometida a votacion"<<endl; cin>>escaos; cout<<"Introduce el numero de votos que han recibido los cuatro partidos:"<<endl; cout<<"partido 1: "; cin>>votos1; voto1=votos1; cout<<"partido 2: "; cin>>votos2; voto2=votos2; cout<<"partido 3: "; cin>>votos3; voto3=votos3; cout<<"partido 4: "; cin>>votos4; voto4=votos4; /* Procedimiento */ esc1=0; esc2=0; esc3=0; esc4=0; temp=0; do{ if (votos1>votos2) {if (votos1>votos3) {if (votos1>votos4) {esc1++;} else {if (votos1<votos4) {esc4++;} else {if (voto1>=voto4) {esc1++;} else {esc4++;} } } } else {if (votos1<votos3) {if (votos3>votos4) {esc3++;} else {if (votos3<votos4) {esc4++;} else

{if (voto3>=voto4) {esc3++;} else {esc4++;} } } else }

{if (votos1<votos4) {esc4++;} else {if (voto1>=voto3) {esc1++;} else {esc3++;} } }

} else

} {if (votos1<votos2) {if (votos2>votos3) {if (votos2>votos4) {esc2++;} else {if (votos2<votos4) {esc4++;} else {if (voto2>=voto4) {esc2++;} else {esc4++;} } } } else {if (votos2<votos3) {if (votos3>votos4) {esc3++;} else {if (votos3<votos4) {esc4++;} else {if (voto3>=voto4) {esc3++;} else {esc4++;} } } } else {if (voto2>=voto3) {esc2++;} else {esc3++;} } }

} else {if (voto1>=voto2) {esc1++;} else {esc2++;} }

} temp++; votos1=voto1/(1+esc1); votos2=voto2/(1+esc2); votos3=voto3/(1+esc3); votos4=voto4/(1+esc4);

} while (temp<escaos);

/* Salida de resultados */ cout<<"El partido 1; quienes con "<<esc1<<" escaos"<<endl; cout<<"El partido 2; quienes con "<<esc2<<" escaos"<<endl; cout<<"El partido 3; quienes con "<<esc3<<" escaos"<<endl; cout<<"El partido 4; quienes con "<<esc4<<" escaos"<<endl; system("PAUSE"); return 0; han recibido "<<voto1<<" votos, se queda han recibido "<<voto2<<" votos, se queda han recibido "<<voto3<<" votos, se queda han recibido "<<voto4<<" votos, se queda

CIRCUITO DE 3 MALLAS #include<stdio.h> #include<conio.h> #include<iostream.h> void main() { float r1=0,r2=0,r3=0,e1=0,e2=0,i1=0,i2=0,i3=0,n=0,d=0,m=0; cout<<"digite r1"; cout<<endl; cin>>r1; cout<<"digite r2"; cout<<endl; cin>>r2; cout<<"digite r3"; cout<<endl; cin>>r3; cout<<"digite e1"; cout<<endl; cin>>r1; cout<<"digite e2"; cout<<endl; cin>>r2;

n= e2*r3+e1*r1+r3; d= (r1+r3)*(r2+r3)-(r3*r3); m= e1*r3+e2*(r1+r3); i1=n/d;i2=m/d; i3=i1-i2; cout<<"La corriente i1 es "<<i1<<" Amperios "<<endl; cin>>i1;

cout<<"La corriente i2es "<<i2<<" Amperios "<<endl; cin>>i2;

cout<<"La corriente i3 es"<<i3<<" Amperios "<<endl; cin>>i3; } SIMULAR UNA TIENDA

Sencillo programa que Permite ingresar datos de clientes, productos y facturas y los guarda en archivos secuenciales, tambin permite buscar los mismos y las facturas. tiene relaciones. Se puede mejorar as que se los dejo.
#include #include #include #include <stdio.h> <conio.h> <string.h> <stdlib.h>

struct datos_clientes { char clave[4]; char nombre[40]; char calle[50]; char colonia[40]; char telefono[11]; }clientes; struct datos_productos { char clave[4]; char producto[20]; char descripcion[40]; char precio[10]; }productos; struct datos_factura { char clave[4]; char fecha[15]; char clave_cliente[4];

char clave_producto[4]; char cantidad[5]; }facturas;

void main() { int opcion=9; int cantidadprod; char opcion_seg[2]; char clavebuscar[4]; FILE *archivo, *auxiliar; float precioprod; char variablecomp; int cont; float totalpagar; if((archivo=fopen("c:datoscli.txt","a+b"))==NULL) { textattr(279); cprintf("ntno se puede abrir el archivo"); getch(); exit(1); } if((auxiliar=fopen("c:borrador.txt","a+b"))==NULL) { textattr(279); cprintf("ntno se puede abrir el archivo"); getch(); exit(1); } do { textcolor(MAGENTA); textbackground(GREEN); clrscr(); printf("n Tienda eduardo y el guth "); printf("nt######################################"); printf("nn 1.- factura de venta"); printf("nn 2.- ingresar nuevo producto"); printf("nn 3.- ingresar nuevo cliente"); printf("nn 4.- buscar factura de una venta"); printf("nn 5.- Buscar producto"); printf("nn 6.- buscar cliente"); printf("nn 7.- Salir"); printf("n Opcion : "); gets(opcion_seg); opcion=atoi(opcion_seg); switch(opcion) { case 1: textattr(168); clrscr(); freopen("c:datosfact.txt","a+b",archivo);

printf("ntclave de la factura: ");fflush(stdin); gets(facturas.clave); printf("nt fecha: ");fflush(stdin); gets(facturas.fecha); printf("ntclave del cliente: gets(facturas.clave_cliente); freopen("c:datoscli.txt","a+b",archivo); rewind(archivo); variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); while(variablecomp!=EOF) { if(fread(&clientes,sizeof(clientes),1,archivo)!=1) { printf("nt Errror al leer producto"); getch(); exit(3); } if(strcmp(facturas.clave_cliente,clientes.clave)==0) { cont=2; printf("nnt Nombre: %s",clientes.nombre); } variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); } if (cont!=2) { printf("nnt Clave del cliente no existe"); getch(); } printf("ntclave del producto: ");fflush(stdin); gets(facturas.clave_producto); freopen("c:datosprod.txt","a+b",archivo); rewind(archivo); variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); while(variablecomp!=EOF) { if(fread(&productos,sizeof(productos),1,archivo)!=1) { printf("nt Errror al leer producto"); getch(); exit(3); }

");fflush(stdin);

if(strcmp(facturas.clave_producto,productos.clave)==0) { cont=2; precioprod=atof(productos.precio); %s",productos.producto); %s",productos.precio); productos: "); printf("nt printf("ntprecio : printf("nt cantidad de gets(facturas.cantidad);

cantidadprod=atoi(facturas.cantidad); totalpagar=(precioprod)*(cantidadprod); printf("nt total a pagar= %f ", totalpagar); getch(); } variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); } if (cont!=2) { printf("nt Clave ingresada no existe"); getch(); } freopen("c:datosfact.txt","a+b",archivo); if(fwrite(&facturas,sizeof(facturas),1,archivo)!=1) { printf("ntError al escribir sobre el archivo"); getch(); } break;

case 2: textattr(169); clrscr(); freopen("c:datosprod.txt","a+b",archivo); printf("ntingresa clave del producto: ");fflush(stdin); ");fflush(stdin); ");fflush(stdin); gets(productos.clave); printf("ntingresa nombre del producto: gets(productos.producto); printf("ntingresa descripcion del producto: gets(productos.descripcion);fflush(stdin);

printf("ntingresa precio: ");fflush(stdin); gets(productos.precio);

if(fwrite(&productos,sizeof(productos),1,archivo)!=1) { printf("Error al escribir sobre el archivo"); getch(); } printf("nt %s",productos.precio); getch(); break; case 3: textattr(169); clrscr(); freopen("c:datoscli.txt","a+b",archivo); printf("ntingresa clave del cliente: gets(clientes.clave); printf("ntingresa nombre: ");fflush(stdin); gets(clientes.nombre); printf("ntingresa calle: ");fflush(stdin); gets(clientes.calle); printf("ntingresa colonia: ");fflush(stdin); ");fflush(stdin); gets(clientes.colonia); printf("ntingresa telefono: gets(clientes.telefono); if(fwrite(&clientes,sizeof(clientes),1,archivo)!=1) { printf("ntError al escribir sobre el archivo"); getch(); exit(2); } break; case 4: textattr(357); clrscr(); freopen("c:datosfact.txt","a+b",archivo); printf("nntIngresa la clave de la scanf("%s", & clavebuscar); rewind(archivo); variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); while(variablecomp!=EOF) { if(fread(&facturas,sizeof(facturas),1,archivo)!=1)

");fflush(stdin);

factura");fflush(stdin);

factura de venta");

{ printf("nt Falla al leer getch(); exit(3); }

if(strcmp(facturas.clave,clavebuscar)==0) { cont=2; printf("nt clave: %s", facturas.clave); printf("nt fecha: %s", facturas.fecha); freopen("c:datoscli.txt","a+b",auxiliar); rewind(auxiliar); variablecomp=fgetc(auxiliar); fseek(auxiliar,0L,SEEK_SET); while(variablecomp!=EOF) { if(fread(&clientes,sizeof(clientes),1,auxiliar)!=1) { printf("nt Error al leer cliente"); getch(); exit(3); }

if(strcmp(facturas.clave_cliente,clientes.clave)==0)

{ cont=2; printf("n

Nombre: %s",clientes.nombre); auxiliar); fseek(auxiliar,0L,SEEK_SET);

} ;variablecomp=fgetc(

} if (cont!=2) { printf("n Clave del cliente no existe"); getch(); }

freopen("c:datosprod.txt","a+b",auxiliar); rewind(auxiliar); variablecomp=fgetc(auxiliar);

fseek(auxiliar,0L,SEEK_SET);

while(variablecomp!=EOF) { { printf("nt getch(); exit(3); }

if(fread(&productos,sizeof(productos),1,auxiliar)!=1) Falla al leer producto");

if(strcmp(facturas.clave_producto,productos.clave)==0) { cont=2; printf("n Producto: %s",productos.producto); printf("n Precio: %s", productos.precio); precioprod=atof(productos.precio); } variablecomp=fgetc(auxiliar); fseek(auxiliar,0L,SEEK_SET); } if (cont!=2) { printf("nnt Clave del cliente no existe"); getch(); } printf("n cantidad: %s", facturas.cantidad); cantidadprod=atoi(facturas.cantidad); totalpagar=(precioprod)*(cantidadprod); printf("n total: %f", totalpagar); getch(); } variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); } if (cont!=2) { printf("nt Clave ingresada no existe"); getch(); } break;

case 5: textattr(158); clrscr(); freopen("c:datosprod.txt","a+b",archivo); printf("nIngresa la clave del producto: ");fflush(stdin); gets(clavebuscar); rewind(archivo); variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); while(variablecomp!=EOF) {

if(fread(&productos,sizeof(productos),1,archivo)!=1) { printf("nt Errror al leer producto"); getch(); exit(3); } if(strcmp(clavebuscar,productos.clave)==0) { cont=2; printf("n clave: %s",productos.clave); printf("n producto: %s",productos.producto); printf("n Dedscripcion: %s",productos.descripcion); printf("n precio : %s",productos.precio); getch(); } variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); } if (cont!=2) { printf("nt Clave ingresada no getch(); } case 6: break; textcolor(BLACK); textbackground(GREEN); clrscr(); printf("ntclave de cliente a buscar: ");fflush(stdin); gets(clavebuscar); freopen("c:datoscli.txt","a+b",archivo); rewind(archivo);

existe");

variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); while(variablecomp!=EOF) { if(fread(&clientes,sizeof(clientes),1,archivo)!=1) { printf("nt Errror al leer producto"); getch(); exit(3); } if(strcmp(clavebuscar,clientes.clave)==0) { cont=2; printf("nt %s",clientes.clave); printf("nt %s",clientes.nombre); fflush(stdin); printf("nt clientes.calle); printf("nt %s",clientes.colonia); printf("nt %s",clientes.telefono); getch(); }

Clave: Nombre: Calle: %s", Colonia: Telefono:

fflush(stdin);variablecomp=fgetc(archivo); fseek(archivo,0L,SEEK_SET); } if (cont!=2) { printf("nnt Clave del cliente no existe"); getch(); } break; case 7: textcolor(RED); textbackground(YELLOW); cprintf("n Para Salir presiones cualquier getch(); break; default: textcolor(RED); textbackground(BLUE); cprintf("n esta opcon no es valida"); getch(); break; }

tecla");

while(opcion!=7); if(fclose(archivo)!=0) { textcolor(159); textbackground(YELLOW); cprintf("nterror al abrir el archivo"); getch(); exit(4); } } ALUMNO aprueba o no APRUEBA #include <stdio.h> //para scanf, printf #include <conio.h> //para clrscr y getch void main (void) //programa principal { int calificacion=0; //Declaracion de variable e inicializacion a cero clrscr (); //limpia pantalla printf("Dime la calificacion del alumno:"); //pide la calificacion scanf("%d,&calificacion"); //captura la calificacion if(calificacion >=8) //si la calificacion es mayor o igual que8entonces {printf ("naprobado"); //muestra mensaje de aprobado } // fin de proceso verdadero. else {printf ("nNoaprobado"); //muestra el mensaje de no aprobado } //fin de proceso no a probado getch(); //captura caracter y detiene la pantalla

} //fin del programa principal CRONOMETRO CUANTO FALTA PARA TU CUMPLE


#include <iostream.h> #include <stdlib.h> void op(); void calculo(); int main() { calculo(); } void calculo() {

system("cls"); int x=1, y=1, z=1900, a , b, c, m , n, l, p, q, crono; cout<<"programas de cesar reyes. "<<endl; cout<<""<<endl; cout<<" Enero. "<<endl; Mayo. Septiembre.

cout<<" Febrero. "<<endl; cout<<" Marzo. "<<endl; cout<<" Abril. "<<endl;

Junio. Julio. Agosto. ";

Octubre. Noviembre Diciembre.

cout<<"digite el numero de dia en que nacio: cin>>a; if(a>31) do { system("cls"); cout<<"programas de cesar reyes. "<<endl; cout<<""<<endl; cout<<" Enero. "<<endl; cout<<" Febrero. "<<endl; cout<<" Marzo. "<<endl; cout<<" Abril. "<<endl; cout<<"digite el numero de cin>>a; } while(a>31); Mayo. Junio. Julio. Agosto. dia en que nacio:

Septiembre. Octubre. Noviembre Diciembre. ";

cout<<"digite el numero de mes en que nacio: cin>>b; if(b>12) do { system("cls"); cout<<"programas de cesar reyes. "<<endl; cout<<""<<endl; cout<<" Enero. "<<endl; cout<<" Febrero. "<<endl; cout<<" Marzo. "<<endl; cout<<" Abril. "<<endl; cout<<"digite el numero de cout<<"digite el numero de cin>>b; } while(b>12); Mayo. Junio. Julio. Agosto. dia en que nacio: mes en que nacio:

";

Septiembre. Octubre. Noviembre Diciembre. "<<a<<endl; ";

cout<<"digite el anio en que nacio: cin>>c; cout<<"digite el anio actual: cin>>l; cout<<"digita el numero de mes actual:

"; "; ";

cin>>p; if(p>12) do { system("cls"); cout<<"programas de cesar reyes. "<<endl; cout<<""<<endl; cout<<" Enero. "<<endl; cout<<" Febrero. "<<endl; cout<<" Marzo. "<<endl; cout<<" Abril. "<<endl; Mayo. Junio. Julio. Agosto. Septiembre. Octubre. Noviembre Diciembre. "<<a<<endl; "<<b<<endl; "<<c<<endl; "<<l<<endl; ";

cout<<"digite el numero de dia en que nacio: cout<<"digite el numero de mes en que nacio: cout<<"digite el anio en que nacio: cout<<"digite el anio actual: cout<<"digita el numero de mes actual: cin>>p; } while(p>12); cout<<"digita el numero de dia actual: cin>>q; if(q>31) do { system("cls"); cout<<"programas de cesar reyes. "<<endl; cout<<"digite cout<<"digite cout<<"digite cout<<"digite cout<<"digita cout<<"digita cin>>q; } while(q>31); m=a-1; n=b-1; el el el el el el numero de dia en que nacio: numero de mes en que nacio: anio en que nacio: anio actual: numero de mes actual: numero de dia actual:

";

"<<a<<endl; "<<b<<endl; "<<c<<endl; "<<l<<endl; "<<p<<endl; ";

do { system("cls"); if(x<=9) cout<<"calculando: "<<"0"<<x++<<"/00"<<"/00"<<endl; else cout<<"calculando: "<<x++<<"/00"<<"/00"<<endl; } while(x<=m);

if(x>=m) do { system("cls"); if(y<=9) cout<<"calculando: "<<x<<"/0"<<y++<<"/00"<<endl; else cout<<"calculando: "<<x<<"/"<<y++<<"/00"<<endl; } while(y<=n); if(y>=n) do { system("cls"); if(z<=9) cout<<"calculando: "<<x<<"/"<<y<<"/0"<<z++<<endl; else cout<<"calculando: "<<x<<"/"<<y<<"/"<<z++<<endl; } while(z<=c); system("cls"); cout<<"programas de cesar reyes. "<<endl; cout<<""<<endl; cout<<"Recuerde que si el programa no concuerda con el analisis correcto es porque tiene una medida estandar para los meses "<<endl; cout<<"la cual es de 30 dias."<<endl; cout<<""<<endl; cout<<"calculado/Su fecha de nacimiento es: "<<x<<"/"<<y<<"/"<<z-1<<endl; cout<<"calculado/La fecha actual es: "<<q<<"/"<<p<<"/"<<l<<endl; if(p<b) cout<<"usted aun no cumple los "<<l-c<<" anios, usted tiene "<<(l-c)-1<<endl; if(p<=b&&q<a) cout<<"Faltan "<<b-p<<" meses y "<<a-q<<" dias aproximadamente, para que usted cumpla "<<l-c<<" anios"<<endl; if(q<a&&p>b) cout<<"Usted Tiene la edad de: "<<l-c<<" anios cumplidos desde hase "<<(((p-b)*30)-30)+((30-a)+q)<<" dias aproximadamente y contando... "<<endl; else if(p>=b&&q>=a) cout<<"Usted Tiene la edad de: "<<l-c<<" anios cumplidos desde hase "<<(((p-b)*30)-30)+((30-a)+q)<<" dias y contando... "<<endl; else { if(p<b&&q>=a) cout<<"Faltan "<<((30-q)+a)+((30*(b-p))-30)<<" dias aproximadamente, para cumplir "<<l-c<<" anios."<<endl; } system("pause");

op(); } void op() { int cont=0,ronda; cout<<"Desea otra ronda (si=1, no=2): cin>>ronda; switch(ronda) { case 1:calculo();break; case 2:exit(0); } } DIAS TRANSCURRIDOS #include<iostream.h> #include<conio.h> void main() { clrscr(); char *fmen[]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto ","Setiembre","Octubre","Noviembre","Diciembre","ERROR"}; int ano,ip,mes=0,max=0,dia=0,sum=0,tot=365,fal; int meses[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; cout<<"nnntIngrese el ao : "; cin>>ano; if(ano%400==0) { meses[1]=29; tot=366; } else{ if(ano%4==0 && ano%100!=0) { meses[1]=29; tot=366; } } do{ "<<endl;

cout<<"ntIngrese el mes : "; cin>>mes; { switch(mes) case 1: ip=0; break; case 2:

ip=1; break; case 3: ip=2; break; case 4: ip=3; break; case 5: ip=4; break; case 6: ip=5; break; case 7: ip=6; break; case 8: ip=7; break; case 9: ip=8; break; case 10: ip=9; break; case 11: ip=10; break; case 12: ip=11; break; default: ip=12; cout<<"ERROR tal numero de mes no existe"; break; max=meses[ip];

}while(ip==12); do{ cout<<"ntIngrese el dia : "; cin>>dia; if(dia>max) { cout<<"ERROR Numero de dia no existente"; } }while(dia>max); for (int a=ip-1;a>=0;a--) { sum+=meses[a]; }

sum+=dia; fal=tot-sum; cout<<"nnntDe la fecha : "<<dia<<" de "<<fmen[ip]<<" del "<<ano<<"nn"; cout<<"nnnt-Los dias transcurridos desde el 1 de Enero son : "<<sum<<"nnn"; cout<<"nnnt-Y los dias que faltan transcurrir hasta el 31 de Diciembre son : "<<fal; getch(); } RUFFINI #include <stdio.h> #include <stdlib.h> void ruffini(){ /*Variables Ruffini Principal*/ int op_decimales, coeficientes, divisor, a2, b2, c2, d2, e2, f2, g2, h2, i2, j2; float a1, b1, c1, d1, e1, f1, g1, h1, i1, j1; printf("Regla de Ruffinin"); printf("Elija una de estas opciones:n"); printf("1. Algn coeficiente tiene decimalesn"); printf("2. Ningun coeficiente tiene decimalesn"); printf("-> "); scanf("%i", &op_decimales); switch ( op_decimales ){ case 1: printf("Introduce el nmero de coeficientes: "); scanf("%i", &coeficientes); printf("nIntroduce el valor del divisor: "); scanf("%i", &divisor); while ( coeficientes < 3 ){//Si el nmero de coeficientes es menor de 3 printf("El nmero de coeficientes debe estar entre 3 y 5n"); printf("Introduce el nmero de coeficientes: "); scanf("%i", &coeficientes); printf("nIntroduce el valor del divisor: "); //scanf("%i", &divisor); }//if ( coeficientes < 3 ) while ( coeficientes > 5 ){// Si el nmero de coeficientes es mayor de 5

printf("El nmero de coeficientes debe estar entre 3 y 5n"); "); "); printf("Introduce el nmero de coeficientes: scanf("%i", &coeficientes); printf("nIntroduce el valor del divisor: scanf("%i", &divisor); }//if ( coeficientes > 5 ) printf("nIntroduce los %i coeficientes:n", switch ( coeficientes ){ case 3: printf("1-> "); scanf("%f", &a1); printf("n2-> "); scanf("%f", &b1); printf("n3-> "); scanf("%f", &c1); //Calcular Ruffini f1=a1*divisor; g1=(b1+f1)*divisor; j1=c1+g1; printf("nn"); printf(" |%.2f printf(" |n"); printf(" %i| g1); j1); %.2f %.2f %.2fn", a1, b1, c1); %.2fn", divisor, f1,

coeficientes);

printf("__|________________________n"); printf(" %.2f %.2f |%.2f|n", a1, f1+b1, break;//case 3 case 4: printf("1-> "); scanf("%f", &a1); printf("n2-> "); scanf("%f", &b1); printf("n3-> "); scanf("%f", &c1); printf("n4-> "); scanf("%f", &d1); //Calcular Ruffini f1=a1*divisor; g1=(b1+f1)*divisor; h1=(c1+g1)*divisor;

j1=h1+d1; printf("nn"); printf(" |%.2f %.2f %.2f %.2f %.2fn", a1, b1, %.2fn", divisor, |%.2f|n", a1,

c1, d1); f1, g1, h1); f1+b1, c1+g1, j1);

printf(" |n"); printf(" %i| %.2f

printf("__|____________n"); printf(" %.2f %.2f %.2f break;//case 4: case 5: printf("1-> "); scanf("%f", &a1); printf("n2-> "); scanf("%f", &b1); printf("n3-> "); scanf("%f", &c1); printf("n4-> "); scanf("%f", &d1); printf("n5-> "); scanf("%f", &e1); //Calcular Ruffini f1=a1*divisor; g1=(b1+f1)*divisor; h1=(c1+g1)*divisor; i1=(d1+h1)*divisor; j1=i1+e1; printf("nn"); printf(" |%.2f %.2f %.2f %.2f

%.2f %.2f

%.2fn", a1, %.2fn",

b1, c1, d1, e1); divisor, f1, g1, h1, i1);

printf(" |n"); printf(" %i| %.2f

printf("__|________________________n"); printf(" %.2f %.2f %.2f %.2f |%.2f|n", a1, f1+b1, c1+g1, d1+h1, j1); break;//case 5: }//switch ( coeficientes ) printf("nEl resto es %.2fn", j1); break;//case 1: case 2: printf("Introduce el nmero de coeficientes: "); scanf("%i", &coeficientes);

while ( coeficientes < 3 ){// Si el nmero de coeficientes es menor de 3 printf("El nmero de coeficientes debe estar entre 3 y 5n"); printf("Introduce el nmero de coeficientes: "); scanf("%i", &coeficientes); }// End "while ( coeficientes < 3 )" while ( coeficientes > 5 ){// Si el nmero de coeficientes es mayor de 5 estar entre 3 y 5n"); "); printf("El nmero de coeficientes debe printf("Introduce el nmero de coeficientes: scanf("%i", &coeficientes); while ( coeficientes < 3 ){// Si el nmero de printf("El nmero de coeficientes debe estar entre 3 y 5n"); nmero de coeficientes: "); &coeficientes); scanf("%i", }// End "while ( coeficientes < 3 )" }// End "while ( coeficientes > 5 )" printf("nIntroduce los %i coeficientes:n", coeficientes); printf("nIntroduce el valor del divisor: "); scanf("%i", &divisor); switch ( coeficientes ){ case 3: printf("1-> "); scanf("%i", &a2); printf("n2-> "); scanf("%i", &b2); printf("n3-> "); scanf("%i", &c2); //Calcular Ruffini f2=a2*divisor; g2=(b2+f2)*divisor; j2=c2+g2; printf("nn"); printf(" |%i %i %in", a2, b2, c2); printf(" |n"); printf(" %i| %i %in", divisor, f2, g2); printf("__|________________________n"); printf(" %i %i |%i|n", a2, f2+b2, j2); printf("Introduce el

coeficientes es menor de 3

break;//case 3 case 4: printf("1-> "); scanf("%i", &a2); printf("n2-> "); scanf("%i", &b2); printf("n3-> "); scanf("%i", &c2); printf("n4-> "); scanf("%i", &d2); //Calcular Ruffini f2=a2*divisor; g2=(b2+f2)*divisor; h2=(c2+g2)*divisor; j2=h2+d2; printf("nn"); printf(" |%i %i %i %in", a2, b2, c2, d2); printf(" |n"); printf(" %i| %i %i %in", divisor, f2, g2, printf("__|____________n"); printf(" %i %i %i |%i|n", a2, f2+b2, c2+g2, j2); break;//case 4: case 5: printf("1-> "); scanf("%i", &a2); printf("n2-> "); scanf("%i", &b2); printf("n3-> "); scanf("%i", &c2); printf("n4-> "); scanf("%i", &d2); printf("n5-> "); scanf("%i", &e2); //Calcular Ruffini f2=a2*divisor; g2=(b2+f2)*divisor; h2=(c2+g2)*divisor; i2=(d2+h2)*divisor; j2=i2+e2; printf("nn"); printf(" |%i printf(" |n"); %i %i %i %in", a2, b2, c2,

h2);

d2, e2);

printf(" %i| g2, h2, i2); c2+g2, d2+h2, j2);

%i

%i

%i

%in", divisor, f2,

printf("__|________________________n"); printf(" %i %i %i %i |%i|n", a2, f2+b2,

break;//case 5: }//switch ( coeficientes ) printf("nEl resto es %in", j2); break; }//switch (op_decimales) printf("Pulsa una tecla para salir"); getchar(); getchar(); }// End "Ruffini" int main() { ruffini();// Start "Ruffini" return (0); }// End "main" METODO GAUSS JORDAN PARA CALCULAR UNA MATRIZ #include <stdio.h> #include <conio.h> #include <math.h> /*********** VARIABLES GLOBALES **********************/ double matriz[50][50]; double identidad[50][50]; int N; //N contiene el tamao de la matriz cuadrada /*********** PROTOTIPOS DE FUNCIONES *****************/ void void void void void void void void hallar_inversa(void); escalonar_matriz(void); permutar_filas(int fila1, int fila2); multip_fila(int fila,double factor); sumar_fila_multip(int fila1,int fila2, double factor); ceros_abajo(int fila_pivote, int columna_pivote); ceros_arriba(int fila_pivote, int columna_pivote); generar_matriz_identidad(void);

/*****************************************************/ int main() { int fi, co;

clrscr(); do{ printf("Ingrese el tamao de la matriz cuadrada: "); scanf("%i",&N); if(N>50 || N<2) {clrscr(); printf("El numero debe estar entre 2 y 50n");} }while(N>50 || N<2); for(fi=0;fi<N;fi++) { for(co=0;co<N;co++) { printf("Ingrese el valor de matriz[%i][%i]",fi+1,co+1); scanf("%lf",&matriz[fi][co]); } } hallar_inversa(); return 0; } / *------------------------------------------------------------------------*/ void hallar_inversa(void) { int cont,cont2, flag=0; escalonar_matriz(); generar_matriz_identidad(); //rellena la matriz identidad for(cont=0;cont<N;cont++) //recorre filas { for(cont2=0;cont2<N;cont2++) //recorre columnas { if(matriz[cont][cont2]!=0) //busca pivote (elemento ditinto de 0) { if(matriz[cont][cont2]!=1) //si pivote no es 1, se lo multiplica { multip_fila(cont,pow(matriz[cont][cont2],-1)); } ceros_arriba(cont,cont2); // se hacen 0's por arriba ceros_abajo(cont,cont2); // y por debajo del pivote break; } } } /*--------------------------------------------------------------*/ /* Una vez terminada esta operacion, la matriz identidad estara */ /* transformada en la inversa */ /* */

/* Ahora se comprueba que la matriz original este transformada */ /* en la matriz identidad, de no ser asi la inversa obtenida */ /* no es valida y la matriz no tiena inversa */ /*--------------------------------------------------------------*/ for(cont=0;cont<N;cont++) { for(cont2=0;cont2<N;cont2++) { if(cont==cont2) { if(matriz[cont][cont2]!=1) flag=1; } else { if(matriz[cont][cont2]!=0) flag=1; } } }

if(flag==1) { printf("nnLa matriz no tiene inversann"); } else { printf("nnLa Matriz Inversa es :nn"); for(cont=0;cont<N;cont++) { for(cont2=0;cont2<N;cont2++) { printf("%+#0.3f ",identidad[cont][cont2]); } printf("n"); } } printf("nPresione una tecla para continuar..."); getch(); } /*----------------------------------------------------------------------*/ /* */ /* Ordena la matriz de forma que quede en su forma escalonada por */ /* renglones */ /* */ /*----------------------------------------------------------------------*/

void escalonar_matriz(void) { int cont, col, ceros, vec[10]; int flag, aux; for(cont=0;cont<N;cont++) { col=0,ceros=0; if(matriz[cont][col]==0) { do{ ceros++; col++; }while(matriz[cont][col]==0); } vec[cont]=ceros; } do { flag=0; for(cont=0;cont<N-1;cont++) { if(vec[cont]>vec[cont+1]) { aux=vec[cont]; vec[cont]=vec[cont+1]; vec[cont+1]=aux; permutar_filas(cont,cont+1); flag=1; } } }while(flag==1); } /*---------------------------------------------------------------------*/ /* SE DEFINEN LAS 3 OPERACIONES ELEMENTALES DE FILA */ /* */ /* Las operaciones que se le realizen a la matriz para reducirla */ /* tambien deberan realizarsele a la matriz identidad para obtener */ /* la matriz inversa */ /*---------------------------------------------------------------------*/ void permutar_filas(int fila1,int fila2) { float auxval; int cont;

for(cont=0;cont<N;cont++) { auxval=matriz[fila1][cont]; matriz[fila1][cont]=matriz[fila2][cont]; matriz[fila2][cont]=auxval; auxval=identidad[fila1][cont]; identidad[fila1][cont]=identidad[fila2][cont]; identidad[fila2][cont]=auxval; } } /*---------------------------------------------------------------------*/ void multip_fila(int fila,double factor) { int cont; for(cont=0;cont<N;cont++) { matriz[fila][cont]=(matriz[fila][cont])*factor; identidad[fila][cont]=(identidad[fila][cont])*factor; } } /*---------------------------------------------------------------------*/ void sumar_fila_multip(int fila1,int fila2, double factor) { int cont; for(cont=0;cont<N;cont++) { matriz[fila1][cont]=(matriz[fila1][cont])+((matriz[fila2][cont])*factor); identidad[fila1][cont]=(identidad[fila1][cont])+((identidad[fila2] [cont])*factor); } } void ceros_arriba(int fila_pivote, int columna_pivote) { int cont; for(cont=0;cont<fila_pivote;cont++) { sumar_fila_multip(cont,fila_pivote,((matriz[cont][columna_pivote])*(1))); } } / *------------------------------------------------------------------------*/ void ceros_abajo(int fila_pivote, int columna_pivote)

{ int cont; for(cont=columna_pivote+1;cont<N;cont++) { sumar_fila_multip(cont,fila_pivote,((matriz[cont][columna_pivote])*(1))); } } / *------------------------------------------------------------------------*/ void generar_matriz_identidad(void) { int i,j; for(i=0;i<50;i++) { for(j=0;j<50;j++) { if(i==j) identidad[i][j]=1; else identidad[i][j]=0; } } }

También podría gustarte