T

thor11

Usuario (México)

Primer post: 3 mar 2011Último post: 21 jul 2011
3
Posts
19
Puntos totales
3
Comentarios
P
Programas y practicas en c/c++ números perfectos
Ciencia EducacionporAnónimo3/3/2011

programas para aprender a programar en c/c++ si nesesitas algun programa solo pidelo bueno aquí un programa interesante q calcula los números perfectos es interesante debido a q los números perfectos es un problema no polinomial /*ISC IPN ESCOM México*/ #include<stdio.h> #include<stdlib.h> int perfecto(int x); main() { int x,num=0,i=1,j=1; puts("ingresa el numero de numeros perfectos q quieres q se desplegue" ) ; scanf("%d",&x); while(num<=x){ num=num+perfecto(i); if(perfecto(i)) { printf("el %d perfecto es %dn",j,i ) ; j++; } i++; } system("pause" ) ; } int perfecto(int x) { int acum=0,y=1; while(y<x) { if(!(x%y)) { acum=acum+y; } y++; } if(acum==x) return 1; else return 0; } http://www.bloodshed.net/dev/devcpp.html

11
5
O
Operaciones con Pilas-notación interfija a postfija C/C++
Apuntes Y MonografiasporAnónimo7/21/2011

Este es el código de un algoritmo muy usado en los cursos de estructuras de datos pasa una operación en notación interfija a notación postfija de bajo esta el código con las funciones básicas de la "pila" espero les sirva para los que van empezando en esto de la programación... Saludos a la comunidad de la ESCOM #include "pila1.cpp" #define MAX 20 int Proced(TipoDato cima,TipoDato simb); int main () { TipoDato simb,Cad={' '}; Pila Pil; int a=0,i,flag=0; CrearPila(&Pil); puts("introduce una operacion en notacion interfija"); while((simb=getchar())!='n'){ if(simb!=('/') && simb!=('*') && simb!=('-') && simb!=('+') && simb!=('^') && simb!=('(') &&simb!=(')')){ Cad=simb; a=a+1; } else{ if(simb=='('){ Cad=simb; a=a+1; flag=1;} else if(simb==')'){ while(!PilaVacia(Pil)){ Cad=Quitar(&Pil); a=a+1; } Cad=simb; a=a+1; flag=0; } else if(!PilaVacia(Pil) && Proced(Cima(Pil),simb)){ while(!PilaVacia(Pil) && Proced(Cima(Pil),simb)){ Cad=Quitar(&Pil); a=a+1; }} if(simb!=')' && simb!='(') Ingresar(&Pil,simb); } } while(!PilaVacia(Pil)){ Cad=Quitar(&Pil); a=a+1; } puts(Cad); system("pause"); } int Proced(TipoDato cima,TipoDato simb) { if(cima=='^') { return 1; } else if((cima=='*' || cima=='/') && (simb=='-' || simb=='+')) { return 1; } else{ return 0;} } aquí el archivo con las operaciones de la pila no olvides ponerlos en la misma carpeta typedef char TipoDato; #include "PilaE.h" int PilaLlena(Pila P) { return(P.cima == TAM -1)?1:0; } int PilaVacia(Pila P) { return (P.cima == -1)?1:0; } void Ingresar(Pila *P, TipoDato x) { if(PilaLlena(*P)) { puts("Error, Pila llena"); return; //exit(-1); } P->lista[++P->cima] = x; } TipoDato Quitar(Pila *P) { if(PilaVacia(*P)) { puts("Error, pila vacia"); TipoDato xx; return xx; //exit(-1); } TipoDato aux = P->lista[P->cima]; P->cima--; return aux; } TipoDato Cima(Pila P) { if(PilaVacia(P)) { puts("Error"); TipoDato xx; return xx; //exit(-1); } return (P.lista[P.cima]); } void CrearPila(Pila *P) { P->cima = -1; } ambos archivos se guardan con extencion .Cpp

8
0
P
programa con listas enlasadas operaciones con polinomios
Ciencia EducacionporAnónimo5/6/2011

Pues este programa consta de tres archivos un header y dos archivos .cppTienen q separar los archivos vean bien el codigo ISC... ESCOM IPN el header define la el TDA //ListaEnlasada.h  #include <stdio.h>  #include <stdlib.h>  #include "square.h" typedef struct Nodo {         item *dato;         struct Nodo *siguiente;         }NODO;  void InsertarLista(NODO **cab, item *x);  void ImprimirLista(NODO *primero);  void InsertarOrden(NODO **cab,item *valor) ;      Despues vamos a definir las funciones //ListaEnlasada.cpp typedef struct termino      {      float lit;      float exp;          }Termino; typedef Termino item; #include "ListaEnlasada.h" void InsertarLista(NODO **cab, item *x) {      NODO *aux = (NODO *)malloc(sizeof(NODO));      aux->dato = x;      aux->siguiente = *cab;      *cab = aux; }  //------------------------MOSTRAR LISTA------------------  void ImprimirLista(NODO *cab)   {       system("cls");       if(cab==NULL)       {       printf("La lista esta vacian");       }       else{       printf("nel polinomio es:n");       printf("n");       while (cab != NULL) {             printf( "%2.2f",cab->dato->lit);             printf( "x^");             printf( "%2.2f  +",cab->dato->exp);             cab = cab->siguiente;       }}  } void InsertarOrden(NODO **cab,item *valor)     {                         NODO *nuevo,*back,*next;     nuevo=(NODO *) malloc (sizeof(NODO));     if(nuevo != NULL)     {        nuevo->dato=valor;        nuevo->siguiente=NULL;        back=NULL;        next=(*cab);        while(next != NULL && (valor->exp) < next->dato->exp)           {            back=next;            next=next->siguiente;           }        if(back==NULL)           {            nuevo->siguiente=(*cab);            (*cab)=nuevo;           }        else        {        back->siguiente=nuevo;        nuevo->siguiente=next;        }     }     else{printf("no hay espacio disponible en memoria");}     } Y por ultimo el programa principal "main" #include "ListaEnlasada.cpp" #include <windows.h> void Sumarp(NODO *polmay,NODO *polmen); void Multp(NODO *cab,NODO *cab2); void derip(NODO **cab); void Intp(NODO **cab); char menu(void); int polin(NODO **cab); main() { char opc; int a,b; NODO *cab,*cab2;  char opc2; cab=NULL; cab2=NULL; puts("ingresa el polinomio numero 1"); a=polin(&cab); puts("ingresa el polinomio numero 2"); b=polin(&cab2); do{   opc=menu();   switch (opc)       {       case 'i':ImprimirLista(cab);       case 'a':{            if(a>b)            Sumarp(cab,cab2);            else            Sumarp(cab2,cab);            break;}       case 'b':{            Multp(cab,cab2);            break;}       //      Derivar        case 'c':            {            fflush(stdin);            do              {              system("cls");              puts("deseas obtener la derivada de: ");              puts(" a) La derivada del primer polinomio");              puts(" b) La derivada del segundo polinomio");              puts(" c) Regresar menu principal");              opc2=getchar();fflush(stdin);              switch (opc2)                     {                     case 'a':{derip(&cab);break;}                     case 'b':{derip(&cab2);break;}                     case 'c':{printf(".");printf("..");Sleep(250);printf("...");Sleep(250);printf("....");}                    default: {printf(".");printf("..");Sleep(250);printf("...");Sleep(250);printf("....");}                         }               }while(opc2!='c');            break;            }       //        integral            case 'd':fflush(stdin);            do              {              system("cls");              puts("deseas obtener la integral de: ");              puts(" a) La integral del primer polinomio");              puts(" b) La integral del segundo polinomio");              puts(" c) Regresar menu principal");              opc2=getchar();fflush(stdin);              switch (opc2)                     {                     case 'a':{Intp(&cab);break;}                     case 'b':{Intp(&cab2);break;}                     case 'c':{printf(".");printf("..");Sleep(250);printf("...");Sleep(250);printf("....");}                    default: {printf(".");printf("..");Sleep(250);printf("...");Sleep(250);printf("....");}                         }               }while(opc2!='c');            break;       }   }while(opc!='e'); } char menu(void) { char opc; system("cls"); marco(1,77,1,24); gotoxy(5,6);puts("Este programa realiza operaciones con polinomios n"); gotoxy(5,7);puts("Introduce el primer polinomio"); gotoxy(5,9);puts("   Elige una opcion a realizar n"); gotoxy(5,11);puts("    a) Sumar polinomios n"); gotoxy(5,12);puts("    b) Multiplicar polinomios n"); gotoxy(5,13);puts("    c) Derivar polinomios n"); gotoxy(5,14);puts("    d) Integrar polinomiosn"); gotoxy(5,16);puts("    e) Salirn"); return opc=getchar(); } //---------Sumar polinomio-------------------------- void Sumarp(NODO *pol1,NODO *pol2)    {    int flag=0;    NODO *suma=NULL,aux,*aux1;    aux1=pol2;    while(pol1 != NULL)       {       pol2=aux1;       aux.dato=(item *) malloc (sizeof(item));       while(pol2 != NULL)          {          if(pol1->dato->exp == pol2->dato->exp )             {             aux.dato->lit=pol1->dato->lit + pol2->dato->lit;             aux.dato->exp=pol1->dato->exp;             InsertarOrden(&suma,aux.dato);             flag=1;             }             pol2=pol2->siguiente;          }          if(flag==0)             {             aux.dato->lit=pol1->dato->lit;             aux.dato->exp=pol1->dato->exp;             InsertarOrden(&suma,aux.dato);             }          pol1=pol1->siguiente;          flag=0;       }ImprimirLista(suma);printf("n");system("pause");    } void Multp(NODO *pol1,NODO *pol2) { int flag=0;    NODO *mult=NULL,aux,*aux1;    aux1=pol2;    while(pol1 != NULL)       {       pol2=aux1;       aux.dato=(item *) malloc (sizeof(item));       while(pol2 != NULL)          {             aux.dato->lit=pol1->dato->lit * pol2->dato->lit;             aux.dato->exp=pol1->dato->exp + pol2->dato->exp;             InsertarOrden(&mult,aux.dato);             flag=1;             pol2=pol2->siguiente;          }          pol1=pol1->siguiente;       }ImprimirLista(mult);printf("n");system("pause");    } //------esta funcion calcula la derivada del polinomio---------// void derip(NODO **cab) {  ImprimirLista(&(**cab));  NODO *auxiliar; /* lo usamos para recorrer la lista */       auxiliar = (*cab);       printf("nla derivada es :n");         printf("n");       while (auxiliar!=NULL) {             printf( "%2.2f",(auxiliar->dato->lit)*(auxiliar->dato->exp));             printf( "x^");             printf( "%2.2f  +",(auxiliar->dato->exp)-1);             auxiliar = auxiliar->siguiente;       }printf("n");system("pause");  } //------esta funcion calcula la integral del polinimo----------// void Intp(NODO **cab) {  ImprimirLista(&(**cab));  NODO *auxiliar; /* lo usamos para recorrer la lista */       auxiliar = (*cab);       printf("nLa integral es :n");       printf("n");       while (auxiliar!=NULL) {             printf( "%2.2f",(auxiliar->dato->lit));             printf( "x^");             printf( "%2.2f  +",(auxiliar->dato->exp)+1);             printf( " / ");printf( "%2.2f  +",(auxiliar->dato->exp)+1);             auxiliar = auxiliar->siguiente;       }printf("n");system("pause"); } //-------funcion lee un polinomio-------------------------------// int polin(NODO **cab) { int cont=1; char salir; NODO nuevo,*aux; aux=(*cab); do{    printf("n  introduce el coheficiente del %d termino : ",cont);    nuevo.dato=(item *) malloc (sizeof(item));    scanf("%f",&(nuevo.dato->lit));    fflush(stdin);    printf("  introduce el exponente del %d termino : ",cont);    scanf("%f",&(nuevo.dato->exp));    fflush(stdin);    InsertarOrden(&(*cab),nuevo.dato);    ImprimirLista((*cab));    puts("n desea introducir otro termino presiona "s"  para salir presiona "n"");    salir=getchar();    cont++;   }while(salir!='n'); } Por ultimo una pequeña libreria creada por mi para dar formato a los programas //square.h #include<windows.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #define f1 'xba' #define f2 'xbb' #define f3 'xbc' #define f4 'xcd' #define f5 'xc8' #define f6 'xc9' void marco(int,int,int,int); void marcob(int,int,int,int);//marco negro void marcoc(int hor,int hmax,int ver,int vmax); void cuadro(int hor,int xmax,int ver,int ymax); void cuadro2(int hor,int hmax,int ver,int vmax); void cuadro3(int hor,int hmax,int ver,int vmax); void cuadro4(int hor,int hmax,int ver,int vmax); void movimiento(int x,int y); void gotoxy(int,int); //marco completo void marco(int hor,int hmax,int ver,int vmax) {      int vmin=ver,hmin=hor,cont=7;      gotoxy(hor,ver);printf("%c",f6);      for(ver=ver+1;ver<=vmax;ver++){      gotoxy(hor,ver);printf("%c",f1); }      gotoxy(hor,ver);printf("%c",f5);      for(hor=hor+1;hor<=hmax;hor++){      gotoxy(hor,ver);printf("%c",f4); }      gotoxy(hor,ver);printf("%c",f3);      for(ver=vmax;ver>vmin;ver--){      gotoxy(hor,ver);printf("%c",f1); }      cont=32;      gotoxy(hor,ver);printf("%c",f2);       for(hor=hmax;hor>hmin;hor--){      gotoxy(hor,ver);printf("%c",f4); } } //marco negro void marcob(int hor,int hmax,int ver,int vmax) {     int vmin=ver,hmin=hor,x1=hor;     for(vmin=ver;vmin<=vmax;vmin++)        {        for(hmin=hor;hmin<=hmax;hmin++)        {        gotoxy(hor,ver);        printf(" ");        hor=hor+1;        }        hor=x1;        ver++;        }        }  //marco abierto en un extremo    void marcod(int hor,int hmax,int ver,int vmax) {      int vmin=ver,hmin=hor;      gotoxy(hor,ver);printf("%c",f6);      for(ver=ver+1;ver<=vmax;ver++){      gotoxy(hor,ver);printf("%c",f1); }      gotoxy(hor,ver);printf("%c",f5);      for(hor=hor+1;hor<=hmax;hor++){      gotoxy(hor,ver);printf("%c",f4); }      gotoxy(hor,ver);printf("%c",f2);      for(ver=vmax;ver>vmin;ver--){      gotoxy(hor,ver);printf(" "); }      gotoxy(hor,ver);printf("%c",f3);       for(hor=hmax;hor>hmin;hor--){      gotoxy(hor,ver);printf("%c",f4); } }     //abierto por la derecha void marcoc(int hor,int hmax,int ver,int vmax) {      int vmin=ver,hmin=hor;      gotoxy(hor,ver);printf("%c",f5);      for(ver=ver+1;ver<=vmax;ver++){      gotoxy(hor,ver);printf(" "); }      gotoxy(hor,ver);printf("%c",f6);      for(hor=hor+1;hor<=hmax;hor++){      gotoxy(hor,ver);printf("%c",f4); }      gotoxy(hor,ver);printf("%c",f3);      for(ver=vmax;ver>vmin;ver--){      gotoxy(hor,ver);printf("%c",f1); }      gotoxy(hor,ver);printf("%c",f2);       for(hor=hmax;hor>hmin;hor--){      gotoxy(hor,ver);printf("%c",f4); } }  //abierto por arriba void marcoe(int hor,int hmax,int ver,int vmax) {      int vmin=ver,hmin=hor;      gotoxy(hor,ver);printf("%c",f2);      for(ver=ver+1;ver<=vmax;ver++){      gotoxy(hor,ver);printf("%c",f1); }      gotoxy(hor,ver);printf("%c",f5);      for(hor=hor+1;hor<=hmax;hor++){      gotoxy(hor,ver);printf("%c",f4); }      gotoxy(hor,ver);printf("%c",f3);      for(ver=vmax;ver>vmin;ver--){      gotoxy(hor,ver);printf("%c",f1); }      gotoxy(hor,ver);printf("%c",f6);       for(hor=hmax;hor>hmin;hor--){      gotoxy(hor,ver);printf(" "); } } void cuadro(int hor,int hmax,int ver,int vmax) {      marco(hor,hmax,ver,vmax);      marcob(hor+1,hmax-1,ver+1,vmax); } void cuadro2(int hor,int hmax,int ver,int vmax) {      marcoc(hor,hmax,ver,vmax);      marcob(hor+1,hmax-1,ver+1,vmax); } void cuadro3(int hor,int hmax,int ver,int vmax) {      marcod(hor,hmax,ver,vmax);      marcob(hor+1,hmax-1,ver+1,vmax); } void cuadro4(int hor,int hmax,int ver,int vmax) {      marcoe(hor,hmax,ver,vmax);      marcob(hor+1,hmax-1,ver+1,vmax); } void gotoxy(int x,int y) {      HANDLE hConsoleOutput;      COORD cursor_Pos={x,y};      hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);      SetConsoleCursorPosition(hConsoleOutput,cursor_Pos);      }

0
9
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.