|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Temas - luchojimenez
Páginas: [1]
1
« en: Viernes 22 de Junio de 2012, 20:50 »
le adjunto este codigo que modela las curvas bezier en c++ las cuales tienen detras un fuerte conceptoi matematico como polinomios y ecuaciones parametricas #include<graphics.h> #include<math.h> #include<conio.h>
#include<dos.h> #include<stdio.h> int b3p(int x0,int y0,int x1,int y1,int x2,int y2);
void main() { int gd=DETECT,gm;// define los controladores de tarjeta grafica en borland c++ initgraph(&gd,&gm,"");//inicializa el modo grafico b3p(80,280,180,0,280,280); getch(); closegraph(); } int b3p(int x0,int y0,int x1,int y1,int x2,int y2) { double x,y,xx,yy,t=0; line(x0,y0,x1,y1); line(x1,y1,x2,y2); do{ x=x0*pow(1-t,2)+ x1*2*t*(1-t)+ x2*pow(t,2);//ecuacion parametrica polinomial de grado dos y=y0*pow(1-t,2)+ y1*2*t*(1-t)+ y2*pow(t,2);//ecuacion parametrica para el eje Y putpixel(x,y,3);//dibuja un pixel en la cordenadas x,y y color 3 t=t+0.001;//incremento mediante el cual se dibujaran los pixeles }while(t<=2);limite por el cual se dibujan los pixeles return 0; }
si alguien puede hacerles corecciones o aportes algo se agradece
2
« en: Viernes 22 de Junio de 2012, 20:42 »
bueno estoy tratando de modelar un girasol en c++ con borlannd c++ 5.5 ya logre modelar lo de adentro con unas ecuaciones parametricas que me consegui en la web que modelan perfectamente los granos del centro de girasol
#include<iostream.h> #include<conio.h> #include<stdio.h> #include<graphics.h> #include<dos.h>
void main() { float x,y,ang,a,r;//xx,yy,ang1,k; a=2.55; //k=3.5; int gdriver = DETECT, gmode,n; cout<<"dame el orden del centro del girasol un valor entre 1 a 1500"<<endl; cin>>n;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); //ang1=0; if(n<=1500) { do{ // do{ ang=n*137.7; r=a*sqrt(n); x=380+ r*cos(ang); y=290 + r*sin(ang); //xx=380+ r*sin(k*ang1)*cos(ang1); //yy=290+r*sin(k*ang1)*sin(ang1); putpixel(x,y,14); n++; //ang1=ang1+0.0005; //}while(ang1<=70); }while(n<=1700); }
system("pause"); closegraph(); }
de repente alguien pueda ehcarme una mano con mi trabajo , el cual es muy autodidsacta sobre computacion grafica
3
« en: Viernes 22 de Junio de 2012, 20:35 »
bueno estoy trabajando en codigo sobre las curvas de koch en c++ y borland c++ 5.5 todavia no he logrado resultados validos mas sin embargos les adjunto lo que he trabajado ahsta ahora para a ver si alguien por hay puede hacerme una correcion de lo estoy haciendo
#include<iostream.h> #include<conio.h> #include<stdio.h> #include<graphics.h> #include<math.h> #define pi 3.141516
class tortuga{ private: double x; double y; double ang; public: void tortuga(double x,double y,double ang) { tortuga.x=x; tortuga.y=y; tortuga.ang=ang*pi/180; } void salta(double distancia) { double xx=x+distancia*cos(ang); double yy=y-distancia*sin(ang); salta(xx, yy); } void salta(double x, double y) { this.x=x; this.y=y; } void gira(double ang) { this.angulo+=angulo*pi/180;
} void traza(double distancia){ double xx=x+distancia*Math.cos(angulo); double yy=y-distancia*Math.sin(angulo); Line(xx, yy, x,y); salta(xx, yy); } }; void generaKoch(int nivel, double distancia){ if(nivel==0){ tortuga.traza(distancia); }else{ generaKoch(nivel-1, distancia/3); tortuga::gira(60.0); generaKoch(nivel-1, distancia/3); tortuga::gira(-120.0); generaKoch(nivel-1, distancia/3); tortuga:gira(60); generaKoch(nivel-1, distancia/3); } }
void main() { int gdriver = DETECT, gmode,n=6; double d=50; initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); generaKoch(n,d); system("pause"); closegraph(); }
4
« en: Domingo 6 de Noviembre de 2011, 04:29 »
bueno estoy explorando j2me me gustaria crear un proyectico para el colegio donde doy clases de quimica, el modelo consistiria en un formulario con las letras a,b,c y d y que ese formulario se pueda enviar por el bluetooth a un servidor que me representen esos datos creando curvas que me muestren informacion de los conceptos previos de los estudiantes,en netbeans he hecho cosas pero hasta el momento no he probado con el bluetooth el cual se implemta en java me mediante jsr 082, sera que alguien me colabora con ese proyectico
5
« en: Miércoles 15 de Diciembre de 2010, 20:25 »
lo quiero es hacer es es un interrruptor en OFF junto a un bombillo y que cuando se presione una tecla se ponga en ON y se encienda el bombillo, por favor orientacion en sdl c++, no estoy pidiendo codigo he adui my gameloop while( gameIsRunning ) { //Events //Logic //Rendering } //Game Loop while( quit == false ) { //Start the frame timer fps.start(); //Events while( SDL_PollEvent( &event ) ) { myDot.handle_input(); if( event.type == SDL_QUIT ) { quit = true; } } //Logic myDot.move(); //Rendering SDL_FillRect( screen, &screen->clip_rect, SDL_MapRGB( screen->format, 0xFF, 0xFF, 0xFF ) ); myDot.show(); if( SDL_Flip( screen ) == -1 ) { return 1; } while( fps.get_ticks() < 1000 / FRAMES_PER_SECOND ){} } void Dot::handle_input() { if( event.type == SDL_KEYDOWN ) { switch( event.key.keysym.sym ) { case SDLK_UP: yVel -= DOT_HEIGHT / 2; break; case SDLK_DOWN: yVel += DOT_HEIGHT / 2; break; case SDLK_LEFT: xVel -= DOT_WIDTH / 2; break; case SDLK_RIGHT: xVel += DOT_WIDTH / 2; break; } } else if( event.type == SDL_KEYUP ) { switch( event.key.keysym.sym ) { case SDLK_UP: yVel += DOT_HEIGHT / 2; break; case SDLK_DOWN: yVel -= DOT_HEIGHT / 2; break; case SDLK_LEFT: xVel += DOT_WIDTH / 2; break; case SDLK_RIGHT: xVel -= DOT_WIDTH / 2; break; } } x += xVel; if( ( x < 0 ) || ( x + DOT_WIDTH > SCREEN_WIDTH ) ) { x -= xVel; } y += yVel; if( ( y < 0 ) || ( y + DOT_HEIGHT > SCREEN_HEIGHT ) ) { y -= yVel; } }
6
« en: Miércoles 15 de Diciembre de 2010, 04:38 »
este ejemplo lo consegui de la pagina lazy foo el jemplo tomaron unos dibujos para la animacion una hoja sprite , a esta animacion se llama sprite me gustaria que una alma caritativa me explicase mucho para poder impplementar el codigo en mis propias hojas de sprite //The headers #include "SDL/SDL.h" #include "SDL/SDL_image.h" #include <string> //Screen attributes const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int SCREEN_BPP = 32; //The frames per second const int FRAMES_PER_SECOND = 10; //The dimenstions of the stick figure const int FOO_WIDTH = 64; const int FOO_HEIGHT = 205; //The direction status of the stick figure const int FOO_RIGHT = 0; const int FOO_LEFT = 1; //The surfaces SDL_Surface *foo = NULL; SDL_Surface *screen = NULL; //The event structure SDL_Event event; //The areas of the sprite sheet SDL_Rect clipsRight[ 4 ]; SDL_Rect clipsLeft[ 4 ]; //The stick figure class Foo { private: //The offset int offSet; //Its rate of movement int velocity; //Its current frame int frame; //Its animation status int status; public: //Initializes the variables Foo(); //Handles input void handle_events(); //Moves the stick figure void move(); //Shows the stick figure void show(); }; //The timer class Timer { private: //The clock time when the timer started int startTicks; //The ticks stored when the timer was paused int pausedTicks; //The timer status bool paused; bool started; public: //Initializes variables Timer(); //The various clock actions void start(); void stop(); void pause(); void unpause(); //Gets the timer's time int get_ticks(); //Checks the status of the timer bool is_started(); bool is_paused(); }; SDL_Surface *load_image( std::string filename ) { //The image that's loaded SDL_Surface* loadedImage = NULL; //The optimized surface that will be used SDL_Surface* optimizedImage = NULL; //Load the image loadedImage = IMG_Load( filename.c_str() ); //If the image loaded if( loadedImage != NULL ) { //Create an optimized surface optimizedImage = SDL_DisplayFormat( loadedImage ); //Free the old surface SDL_FreeSurface( loadedImage ); //If the surface was optimized if( optimizedImage != NULL ) { //Color key surface SDL_SetColorKey( optimizedImage, SDL_SRCCOLORKEY, SDL_MapRGB( optimizedImage->format, 0, 0xFF, 0xFF ) ); } } //Return the optimized surface return optimizedImage; } void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL ) { //Holds offsets SDL_Rect offset; //Get offsets offset.x = x; offset.y = y; //Blit SDL_BlitSurface( source, clip, destination, &offset ); } void set_clips() { //Clip the sprites clipsRight[ 0 ].x = 0; clipsRight[ 0 ].y = 0; clipsRight[ 0 ].w = FOO_WIDTH; clipsRight[ 0 ].h = FOO_HEIGHT; clipsRight[ 1 ].x = FOO_WIDTH; clipsRight[ 1 ].y = 0; clipsRight[ 1 ].w = FOO_WIDTH; clipsRight[ 1 ].h = FOO_HEIGHT; clipsRight[ 2 ].x = FOO_WIDTH * 2; clipsRight[ 2 ].y = 0; clipsRight[ 2 ].w = FOO_WIDTH; clipsRight[ 2 ].h = FOO_HEIGHT; clipsRight[ 3 ].x = FOO_WIDTH * 3; clipsRight[ 3 ].y = 0; clipsRight[ 3 ].w = FOO_WIDTH; clipsRight[ 3 ].h = FOO_HEIGHT; clipsLeft[ 0 ].x = 0; clipsLeft[ 0 ].y = FOO_HEIGHT; clipsLeft[ 0 ].w = FOO_WIDTH; clipsLeft[ 0 ].h = FOO_HEIGHT; clipsLeft[ 1 ].x = FOO_WIDTH; clipsLeft[ 1 ].y = FOO_HEIGHT; clipsLeft[ 1 ].w = FOO_WIDTH; clipsLeft[ 1 ].h = FOO_HEIGHT; clipsLeft[ 2 ].x = FOO_WIDTH * 2; clipsLeft[ 2 ].y = FOO_HEIGHT; clipsLeft[ 2 ].w = FOO_WIDTH; clipsLeft[ 2 ].h = FOO_HEIGHT; clipsLeft[ 3 ].x = FOO_WIDTH * 3; clipsLeft[ 3 ].y = FOO_HEIGHT; clipsLeft[ 3 ].w = FOO_WIDTH; clipsLeft[ 3 ].h = FOO_HEIGHT; } bool init() { //Initialize all SDL subsystems if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) { return false; } //Set up the screen screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); //If there was an error in setting up the screen if( screen == NULL ) { return false; } //Set the window caption SDL_WM_SetCaption( "Animation Test", NULL ); //If everything initialized fine return true; } bool load_files() { //Load the sprite sheet foo = load_image( "foo.png" ); //If there was a problem in loading the sprite if( foo == NULL ) { return false; } //If everything loaded fine return true; } void clean_up() { //Free the surface SDL_FreeSurface( foo ); //Quit SDL SDL_Quit(); } Foo::Foo() { //Initialize movement variables offSet = 0; velocity = 0; //Initialize animation variables frame = 0; status = FOO_RIGHT; } void Foo::handle_events() { //If a key was pressed if( event.type == SDL_KEYDOWN ) { //Set the velocity switch( event.key.keysym.sym ) { case SDLK_RIGHT: velocity += FOO_WIDTH / 4; break; case SDLK_LEFT: velocity -= FOO_WIDTH / 4; break; } } //If a key was released else if( event.type == SDL_KEYUP ) { //Set the velocity switch( event.key.keysym.sym ) { case SDLK_RIGHT: velocity -= FOO_WIDTH / 4; break; case SDLK_LEFT: velocity += FOO_WIDTH / 4; break; } } } void Foo::move() { //Move offSet += velocity; //Keep the stick figure in bounds if( ( offSet < 0 ) || ( offSet + FOO_WIDTH > SCREEN_WIDTH ) ) { offSet -= velocity; } } void Foo::show() { //If Foo is moving left if( velocity < 0 ) { //Set the animation to left status = FOO_LEFT; //Move to the next frame in the animation frame++; } //If Foo is moving right else if( velocity > 0 ) { //Set the animation to right status = FOO_RIGHT; //Move to the next frame in the animation frame++; } //If Foo standing else { //Restart the animation frame = 0; } //Loop the animation if( frame >= 4 ) { frame = 0; } //Show the stick figure if( status == FOO_RIGHT ) { apply_surface( offSet, SCREEN_HEIGHT - FOO_HEIGHT, foo, screen, &clipsRight[ frame ] ); } else if( status == FOO_LEFT ) { apply_surface( offSet, SCREEN_HEIGHT - FOO_HEIGHT, foo, screen, &clipsLeft[ frame ] ); } } Timer::Timer() { //Initialize the variables startTicks = 0; pausedTicks = 0; paused = false; started = false; } void Timer::start() { //Start the timer started = true; //Unpause the timer paused = false; //Get the current clock time startTicks = SDL_GetTicks(); } void Timer::stop() { //Stop the timer started = false; //Unpause the timer paused = false; } void Timer::pause() { //If the timer is running and isn't already paused if( ( started == true ) && ( paused == false ) ) { //Pause the timer paused = true; //Calculate the paused ticks pausedTicks = SDL_GetTicks() - startTicks; } } void Timer::unpause() { //If the timer is paused if( paused == true ) { //Unpause the timer paused = false; //Reset the starting ticks startTicks = SDL_GetTicks() - pausedTicks; //Reset the paused ticks pausedTicks = 0; } } int Timer::get_ticks() { //If the timer is running if( started == true ) { //If the timer is paused if( paused == true ) { //Return the number of ticks when the timer was paused return pausedTicks; } else { //Return the current time minus the start time return SDL_GetTicks() - startTicks; } } //If the timer isn't running return 0; } bool Timer::is_started() { return started; } bool Timer::is_paused() { return paused; } int main( int argc, char* args[] ) { //Quit flag bool quit = false; //Initialize if( init() == false ) { return 1; } //Load the files if( load_files() == false ) { return 1; } //Clip the sprite sheet set_clips(); //The frame rate regulator Timer fps; //The stick figure Foo walk; //While the user hasn't quit while( quit == false ) { //Start the frame timer fps.start(); //While there's events to handle while( SDL_PollEvent( &event ) ) { //Handle events for the stick figure walk.handle_events(); //If the user has Xed out the window if( event.type == SDL_QUIT ) { //Quit the program quit = true; } } //Move the stick figure walk.move(); //Fill the screen white SDL_FillRect( screen, &screen->clip_rect, SDL_MapRGB( screen->format, 0xFF, 0xFF, 0xFF ) ); //Show the stick figure on the screen walk.show(); //Update the screen if( SDL_Flip( screen ) == -1 ) { return 1; } //Cap the frame rate if( fps.get_ticks() < 1000 / FRAMES_PER_SECOND ) { SDL_Delay( ( 1000 / FRAMES_PER_SECOND ) - fps.get_ticks() ); } } //Clean up clean_up(); return 0; }
este es el sprite lo que me gustaria saber es como hace sdl para procesar el orden de las posiciones en la hoja de sprite
7
« en: Jueves 25 de Noviembre de 2010, 22:57 »
estuve mirando unos tutoriales sobre en cgi en linux, es intersando se pueden integrar codigos c++ a html , no si laguien por ahi sabe de algun tutorial , y sobre servidores gratis que soporten esta opcion
8
« en: Miércoles 17 de Noviembre de 2010, 17:16 »
como agregarle un color por ejemplo rojo al interior del circulo y fondo gris #include <conio.h> #include <stdlib.h> #include <dos.h> #include <graphics.h> void main() { int monitor=DETECT,modo; initgraph(&monitor,&modo,"C:\tc\bgi"); do { circle(150,240,80); } while(!kbhit()); closegraph(); }
9
« en: Martes 16 de Noviembre de 2010, 04:27 »
nesesito representar un estructura tipo arbol binario este es mi codigo #include <conio.h> //De aquí utilizaremos la función kbhit() #include <stdlib.h> //De aquí sacaremos la función random() #include <dos.h> //Usaremos esta librería por la función delay(int valor) que nos permite //establecer un retardo en milisegundos. #include <graphics.h> //Esta es la librería que nos permite usar gráficos. void main() { int gdriver=DETECT, gmode, contador=0; initgraph(&gdriver,&gmode,"C:\BORLANDC\BGI"); //Iniciamos el modo gráfico. setbkcolor(11); do { setbkcolor(11); setcolor(11); setlinestyle(0,0,2); circle(450, 240,20); line(290,120,445,220); setcolor(11); setlinestyle(0,0,2); circle(270, 120,20); line(270,125,150,240); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(150,240,20); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(110, 290,20); line(150,240,110,290); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); line(150,240,70,350); circle(70, 350,20); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(130, 350,20); line(110,290,130,350); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(190, 350,20); line(200,300,190,350); setfillstyle(1,RED); line(150,240,200,300); setcolor(11); setlinestyle(0,0,2); circle(250, 350,20); line(200,300,250,350); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(200, 290,20); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(410, 290,20); line(410,290,445,240); setfillstyle(1,RED); setcolor(11); setlinestyle(0,0,2); circle(490, 290,20); line(490,290,445,240); setfillstyle(1,RED); } while(!kbhit()); //Si se pulsa alguna tecla, salimos del programa. closegraph(); //Cerramos el modo gráfico. }
por favor colabremem quw hasta aqui llegue ahora nesesito ingresarle los numeros al interior de circuferencencias, rellenar con color los circulos tal y como seria en un arbol binario , en los tres recorridos , inorden,postorden y preorden
10
« en: Miércoles 20 de Octubre de 2010, 16:51 »
me encantaria que esta funcion guardara el contenido de la memoria dinamica en un fichero de texto, no se por donde empezar void ingresar(void) { struct libro *b; char n; system("cls"); b = (struct libro *)malloc(sizeof(struct libro)); do { system("cls"); if(!b) { cout<<endl <<"no hay memoria"; return; } leecad("nIntroduce el nombre del libro: ", b->nomlib, 50); if(!b->nomlib[0]) break; //parar el proceso leecad("Introduce el autor del libro: ", b->autlib, 50); leecad("Introduce la editorial del libro: ", b->editlib, 50); leecad("Introduce el codigo ISBN: ", b->cod,30); dl_insert(b, &ppio, &final); gotoxy(5,15);cout<<"Para introducir otro libro intro S/N"<<endl; gotoxy(5,16);cin>>n; } while((n=='s')||(n=='S')); menu(); clrscr(); }
11
« en: Miércoles 20 de Octubre de 2010, 04:39 »
como les venia diciendo esta funcion hace parte de un progrma de una pila , pero el problema es que solo me muestra el primer elemento de la pila ingresada no importa si la pila tiene mas elementos, entoces me gustaria que me colaboraran optimizandolo void visualizar (void)// funcion de la pila que le permite visualizar datos { char n; p = (struct pila*) malloc(sizeof(struct pila)); if (cima==NULL)//si c esta vacio { do { clrscr(); cout<<"NO HAY ELEMENTOS A LISTAR";//entoces mostrar esto gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl; gotoxy(5,20);cin>>n; } while((n=='n')||(n=='N')); menu(); } else// si no { clrscr();//limpiar pantalla do { p=cima;//asignas inicio a p while (p!=NULL)//mientras la p no este vacia { printf("primer nombre : %sn", p->prinomb); printf("segundo nombre : %sn", p->segnomb); printf("primer apellido : %sn", p->priapel); printf("segundo apellido : %sn", p->segapel); printf("cedula : %dn", p->ced); printf("edad: %dn", p->edad); printf("tel : %dn", p->tel); printf("sexo : %sn", p->sex); printf("afiliacion: %sn",p->eps); printf("E_mail: %sn", p->mail); p=p->sig; free(cima); gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl; gotoxy(5,20);cin>>n; } } while((n=='n')||(n=='N')); menu(); } getch(); }
12
« en: Martes 12 de Octubre de 2010, 06:07 »
bueno es mi funcion visualizar de mi pila el problema es que nesesito parar la iteacion para decidir visualizar o seguir con introduccion de datos void visualizar (void)// funcion de la pila que le permite visualizar datos { char n; p = (struct pila*) malloc(sizeof(struct pila)); if (cima==NULL)//si c esta vacio { do { clrscr(); cout<<"NO HAY ELEMENTOS A LISTAR";//entoces mostrar esto gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl; gotoxy(5,20);cin>>n; } while((n=='n')||(n=='N')); menu(); } else// si no { clrscr();//limpiar pantalla do { p=cima;//asignas inicio a p while (p!=NULL)//mientras inicio no este vacia { clrscr(); printf("Nombre : %sn", p->nombre); printf("Edad : %dn", p->ced); printf("Edad : %dn", p->edad); printf("Edad : %dn", p->tel); printf("Nombre : %sn", p->sex); printf("Nombre : %sn",p->eps); printf("Nombre : %sn", p->mail); p=p->sig; free(cima); gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl; gotoxy(5,20);cin>>n; } } while((n=='n')||(n=='N')); menu(); } getch(); }
13
« en: Lunes 11 de Octubre de 2010, 22:18 »
hasta el momento solo llevo esto pero tengo problemas con la funcion insertar #include<iostream.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<dos.h> #include<string.h> struct pila { char nombre[40]; int ced; int edad; int tel; char sex[10]; char eps[50]; char mail[50]; struct pila *sig; }*cima=NULL,*p=NULL; void menu(); void portada(); void insertar(); void extraer(); void visualizar (); void main() { portada(); clrscr(); textcolor(8); menu(); } void portada() { system("color 13"); gotoxy(10,2);cout<<"ESTRUCTURA DE DATOS"<<endl; gotoxy(10,6);cout<<"TRABAJO COLABORATIVO NO 2"<<endl; gotoxy(10,9);cout<<"PROFESOR HERMES MOSQUERA"<<endl; gotoxy(10,14);cout<<"Powered By YAIR JOSE DIAZ GONZALEZ"<<endl; gotoxy(10,15);cout<<"UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA(UNAD)"<<endl; gotoxy(10,19);system("pause"); } void insertar() // Funcion que inserta datos a la pila { char n; struct pila *p; p = (struct pila*) malloc(sizeof(struct pila)); // reservamos // espacio para el nodo (dato, sig) clrscr(); if(cima==NULL) { do { p->sig = NULL; // hacemos que el nuevo nodo apunte a NULL cima = p; // Ahora el tope es el nuevo nodo clrscr(); gotoxy(5,5);printf("Escriba el nombre: "); gotoxy(5,6) ;scanf("%s",p->nombre); gotoxy(5,7);printf("Dame Edad: "); gotoxy(5,8);scanf("%d",&p->edad); gotoxy(5,9);printf("Dame su telefono: "); gotoxy(5,10);scanf("%d",&p->tel); gotoxy(5,11);printf("Dame el No de Cedula: "); gotoxy(5,12);scanf("%d",&p->ced); gotoxy(5,13);printf("Dame el sexo: "); gotoxy(5,14);scanf("%s",&p->sex); gotoxy(5,15);printf("Afiliacion a EPS o ARS: "); gotoxy(5,16);scanf("%s",&p->eps); gotoxy(5,17);printf("Deme su Email: "); gotoxy(5,18);scanf("%s",&p->mail); gotoxy(5,21);cout<<"Para introducir otro paciente intro S/N"<<endl; gotoxy(5,22);cin>>n; } while((n=='s')||(n=='S')); menu(); return; } else// si no { p->sig = cima; // hacemos que el nuevo nodo apunte al tope cima = p; // ahora el tope es el nuevo nodo } } void extraer() { if(cima == NULL) { printf("PILA VACIAn"); return; } struct pila *tmp; // temporal para almacenar la direccion del tope tmp = cima; // guardamos en tmp la ubicacion del tope cima = tmp->sig; // hacemos que el tope sea el anterior nodo ingresado // sacamos el dato del nodo que estaba como tope printf("Nombre : %sn", tmp->nombre); printf("Edad : %dn", tmp->ced); printf("Edad : %dn", tmp->edad); printf("Edad : %dn", tmp->tel); printf("Nombre : %sn", tmp->sex); printf("Nombre : %sn", tmp->eps); printf("Nombre : %sn", tmp->mail); free(tmp); // liberamos la memoria reservada para el tope } void visualizar (void)// funcion de la pila que le permite visualizar datos { char n; if (cima==NULL)//si c esta vacio { do { clrscr(); cout<<"NO HAY ELEMENTOS A LISTAR";//entoces mostrar esto gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl; gotoxy(5,20);cin>>n; } while((n=='n')||(n=='N')); menu(); } else// si no { clrscr();//limpiar pantalla do { p=cima;//asignas inicio a p while (p!=NULL)//mientras inicio no este vacia { clrscr(); printf("Nombre : %sn", p->nombre); printf("Edad : %dn", p->ced); printf("Edad : %dn", p->edad); printf("Edad : %dn", p->tel); printf("Nombre : %sn", p->sex); printf("Nombre : %sn",p->eps); printf("Nombre : %sn", p->mail); cima=p; p=p->sig; free(cima); gotoxy(5,19);cout<<"Desea regresar al menu principal S/N"<<endl; gotoxy(5,20);cin>>n; } } while((n=='n')||(n=='N')); menu(); } getch(); } void menu() { int opc=0; do { clrscr(); gotoxy(12,3);cout<<"ASIGNADOR DE CITAS "; gotoxy(15,7);cout<<"nnn"; gotoxy(15,8);cout<<"1. Insertarn"; gotoxy(15,9);cout<<"2. Extraern"; gotoxy(15,10);cout<<"3. Visualizarn"; gotoxy(15,11);cout<<"4. Salirnn"; gotoxy(15,13);cout<<"Digite la opcion: "; cin >>opc; switch (opc) { case 1: insertar(); break; case 2: extraer(); break; case 3: visualizar(); break; case 4: exit(1); } getch(); }while (opc!=4); }
14
« en: Martes 14 de Septiembre de 2010, 16:35 »
mi solucion es la siguiente #include<iostream.h> #include<cstdio> #include<conio.h> using namespace std; int main() { int n,i; struct computador { char marca[20]; char modelo[20]; int calma;// capacidad de alamcenamiento int ram; } cout<<"Datos del pc"<<endl; cout<<"cuantos pc desea ingresar"<<endl; cin>>n; computador*compu=new int; for(i=1;i<=n;i++) { cout<<"n Dame la marca"<<endl; cin>>compu[i].marca; cout<<"n dame el modelo"<<endl; cin>>compu[i].modelo; cout<<"n dame la cpacidad de almacenamiento"<<endl; cin>>compu[i].calma; cout<<"n Dame capacidad memoria Ram"<<endl; cin>>compu[i].ram; } clrscr(); cout<<"DATOS ALMACENADOS DE LOS PC"<<endl; for(i=1;i<=n;i++) { cout<<compu[i].marca<<endl; cout<<compu[i].modelo<<endl; cout<<compu[i].calma<<endl; cout<<compu[i].ram<<endl; } system("pause"); return 0; }
el ejercicio es el siguiente Implemente un programa en C++ usando memoria dinámica con los operadores New y Delete para que imprima los datos básicos de 5 marcas comerciales de computadores, es decir (Marca, modelo, capacidad de almacenamiento, capacidad de memoria RAM instalada) para lo cual se requiere hacer usando una estructura llamada computador, incluya variables de tipo apuntador. Como resultado se espera el código fuente debidamente documentado cada línea y la captura de pantalla de la imagen del resultado despues de la ejecución.
15
« en: Martes 13 de Julio de 2010, 02:04 »
no se si este tema estara un poco trillado, pero la documentacion que es visto por internetr es mas amplia refrente a los lenguajes pesacl, visual basic, pero poco en c++, me gustaria saber que funciones y que libreria me permiten utilizar el puerto parellelo tanto en linux como en windows, quiero prender un led
16
« en: Jueves 8 de Julio de 2010, 20:29 »
este es mi codigo estoy intentando implentar la funcion de la burbuja pero todavia no me da resultados , ya logre que no me diera errores en tiempo de compilacion , pero en tiempo de ejecucion todavia los errores persiten #include<iostream> #include<cstdio> using namespace std; int ordenar( int list[],int n); int main() { int p=3; int vi[3],i; for(i=1;i<=3;i++) { cout<<"introduce datos del vector"<<endl; cin>>vi[i]; } cout<<ordenar(vi,p)<<endl; system("pause"); return 0; } int ordenar(int list[],int n) { int i=1,j,aux; while(i<n) { j=i; while(j<=n-i); { if( list[j]>list[j+1]) { aux=list[j]; list[j]=list[j+1]; list[j+1]=aux; return list[j]; } j=j+1; } i=i+1; } }
17
« en: Martes 6 de Julio de 2010, 05:38 »
hay un acumlador en la funcion ingresar, que he ppuesto apunto me gustaria que me explicaran donde este el error, por que este acumulador me guarda, datos erroneos, se que tiene que ver con el do/while, pero si le cambio a for entoces las entradads de cadenas correspondiente al nombre no me funcionan, #include<iostream> #include<conio2.h> #include<cstdio> #include<string.h> using namespace std; void ingresar(); void portada(); void rectangulo(); int h=0,n=0,j; struct empleado{ char nombre[100]; int up[30]; }p[3]; int main() { int l=1; portada(); rectangulo(); do { l++; ingresar(); }while(l<=3); system("cls"); gotoxy(17,2);cout<<"ESTADISTICAS GLOBALES"<<endl; cout<<"total producido por todo los empleadosn"<<h<<"nn"; system("pause"); return 0; } void ingresar() { system("cls"); int i=0,k,j=0; system("color 70"); gotoxy(15,2);cout<<"POWERED BY LUIS ALFONSO JIMENEZ MEJIA"<<endl; gotoxy(5,9);cout<<"Ingrese Su Nombre: "; do { j++; fgets(p[j].nombre,100,stdin); p[j].nombre[strlen(p[j].nombre)-1]=' '; fflush(stdin); while(i<4) { i++; cout<<"ningrese las unidades producidas/dias"<<endl; cin>>p[j].up[i]; n=n + p[j].up[i];//este acumulador me ha dado dolores de cabeza } system("cls"); k=n/4; h=h+n; gotoxy(17,2);cout<<"ESTADISTICAS DEL EMPLEADO: "<<p[j].nombre<<endl; gotoxy(17,5);cout<<"Producion total mes : "<<n<<endl; gotoxy(17,6);cout<<"Promedio produccion diaria: "<<k<<endl; }while(j<3); gotoxy(17,15);system("pause"); } void portada() { system("color 0a"); gotoxy(17,2);cout<<"PROGRAMA ACTIVIDAD 1 UNIDAD 2"<<endl; gotoxy(17,3);cout<<"CURSO C++ NIVEL 2"<<endl; gotoxy(17,4);cout<<"POWERED BY LUIS ALFONSO JIMENEZ MEJIA"<<endl; gotoxy(17,8);cout<<"La fabrica de carton Ciudad de Paris desea obtener"<<endl; gotoxy(17,9);cout<<"la informacion de sus n empleados del departamento"<<endl; gotoxy(17,10);cout<<"de produccion para poder determinar al empleado mas"<<endl; gotoxy(17,11);cout<<"sobresaliente del mes y darle un bono de productividad de $3000,"<<endl; gotoxy(17,12);cout<<"Desarrollar un programa en C++ que lea el nombre del empleado y"<<endl; gotoxy(17,13);cout<<"las unidades producidas durante el mes y calcular el promedio"<<endl; gotoxy(17,14);cout<<"de produccion, total de dias arriba del promedio,"<<endl; gotoxy(17,15);cout<<"cantidad producida mas alta y el dia mas productivo."<<endl; gotoxy(17,16);cout<<"Mostrar en pantalla el nombre del empleado,"<<endl; gotoxy(17,17);cout<<"la produccion por dia, el promedio de produccion,"<<endl; gotoxy(17,18);cout<<"el total de días arriba del promedio,"<<endl; gotoxy(17,19);cout<<"la cantidad producida mas alta y el dia mas productivo.nn"<<endl; gotoxy(17,25);system("pause"); } void rectangulo() { system("cls"); system("color 75"); int height, width, tmp, tmp2; height=19; width=14; gotoxy(2,2);for(tmp=0; tmp!=(width+1); tmp++)cout << "***"; gotoxy(0,2);for(tmp=0; tmp!=(height); tmp++) {cout << "nx*a"; gotoxy(0,1);for(tmp2=0; tmp2!=(height+1); tmp2++) cout << " "; cout << "x*a";} cout << "n|"; for(tmp=0; tmp!=(width-5); tmp++) cout << "*l*u*"; gotoxy(15,6);cout<<"FABRICA DE CARTON"<<endl; gotoxy(18,7);cout<<"CIUDAD PARIS"<<endl; gotoxy(19,9);cout<<"Powered by"<<endl; gotoxy(12,15);cout<<"LUIS ALFONSO JIMENEZ MEJIA"<<endl; cout << "nn"; gotoxy(17,26);system("PAUSE"); }
18
« en: Martes 6 de Julio de 2010, 03:40 »
problemas en esta funcion a partir del segunda iteracion, la entrada a partir de la segunda iteracion salta void ingresar() { system("cls"); system("color 70"); int i=0,k; gotoxy(5,4);cout<<"Ingrese Su Nombre: ";//problema a patir de la segunda iteracion fgets(p[j].nombre,100,stdin); p[j].nombre[strlen(p[j].nombre)-1]=' '; fflush(stdin); while(i<3) { i=i+1; cout<<"ningrese las unidades producidas/dias"<<endl; cin>>p[j].up[i]; if(p[j].up[i]>p[j].up[i+1]) { int aux; aux=p[j].up[i]; p[j].up[i]=p[j].up[i]; aux=p[j].up[i+1]; } n=n + p[j].up[i]; } system("cls"); k=n/5; h=h+n; gotoxy(17,2);cout<<"ESTADISTICAS DEL EMPLEADO: "<<p[j].nombre<<endl; gotoxy(17,5);cout<<"Producion total mes : "<<n<<endl; gotoxy(17,6);cout<<"Promedio produccion diaria: "<<k<<endl; gotoxy(17,15);system("pause"); }
19
« en: Lunes 5 de Julio de 2010, 01:11 »
que pasara con este codigo,lo que quiero es definir el algoritmo de la burbuja en una funcion listo int orden(int v[p]) { int aux,i,p; for(i=1;i<p;i++) { int aux; if(v[k]>v[k+1]) { return aux=v[k]; v[k]=v[k+1]; v[k+1]=aux; } } }
20
« en: Sábado 3 de Julio de 2010, 19:54 »
estoy trabajndo en un codigo con vectores , donde tengo que introducir un valor tipo cadena , el problema es que la primera iteracion del ciclo for anda bien , pero cuando voy a introducir la cadena de caracteres en la segunda iteracion del ciclo for, salta en esta parte , no dejandome ingresar los valores tipo cadena de caracteres mejor les pongo el codigo y juzguen ud mismos; #include<iostream> #include<conio2.h> #include<cstdio> #include<string.h> using namespace std; void ingresar(); int l,j; struct empleado{ char nombre[25]; int up[30]; }p[30]; int main() { for(j=1;j<=30;j++) { system("cls"); ingresar(); } system("pause"); return 0; } void ingresar() { int i=0,k,n=0; cout<<"nningrese su nombre: "; cin.getline(p[j].nombre,70);//me gustaria reemplazar esta funcion por otra //que se funcional en todo el ciclo for while(i<5) { i=i+1; cout<<"ningrese las unidades producidas/dias"<<endl; cin>>p[j].up[i]; n=n + p[j].up[i]; } system("cls"); k=n/5; cout<<" producion total mes/empleado: "<<n<<endl; cout<<"promedio produccion dia/empleado: "<<k<<endl; system("pause"); }
21
« en: Jueves 1 de Julio de 2010, 21:40 »
aqui tengo este codigo , pero no se que puede estar mal, en realidad estoy comenzando a trabajr con clases ademas del codigo si no es mucha molestia le ruego me expliquen un poco #include<iostream> #include<cstdio> using namespace std; class rect { public: float calcarea(); void setlargo(float largo); void setancho(float ancho); float getlargo(); float getancho(); private: float ancho,largo; float rect::largo() { return ancho*largo; } void rect::setlargo( float la) { largo = la; } float rect::getlargo() { return largo; } void rect::setancho( float anc) { ancho = anc; } float rect::getancho() { return ancho; } // insert your code here } int main() { float lar,anch; cout<<"introduce el largo"<<endl; cin>>lar; cout<<"introduce el ancho"<<endl; cin>>anch; rect a; a.setancho(anch); a.setlargo(lar); cout<<"area del rectangulo "<<a.calcarea()<<endl; system("pause"); return 0; }
22
« en: Jueves 1 de Julio de 2010, 18:03 »
tengo una duda acerca de los arreglos unidimensionales como enlazar dos arreglos ejemplo arreglo nombre[] y sueldo[], yo conozco una forma con estruct , pero me gustaria emplearla, me gustaria que fueran solo arreglos y que sean unidimensionales
23
« en: Domingo 27 de Junio de 2010, 22:45 »
la verdad que navegando por ahi hice un salpicon de lo que encontre en la web sobre el problema d e las fechas ,este codigo lo que trata de hacer es decir la edad en base ala fecha d e nacimiento, yo utilice la fecha del sistema como referencia para sacar la edad(utilice la libreria time.h) , pero todavia tengo un inconveniente cuando la persona tiene menos de un año quiero que la edad en meses sea limpia pero todavia he tenido dificultades , la verdad es que el problema le invertido bastante tiempo, me gustaria que me echaran una manito para darle el toque final #include <string.h> #include <stdlib.h> #include<time.h> #include<stdio.h> #include <iostream> using namespace std; struct Time { int d,m,y; }; struct Time horalocal() { struct Time mt; struct tm *local; time_t t; t=time(NULL); local=localtime(&t); mt.d=local->tm_mday; mt.m=local->tm_mon+1; mt.y=local->tm_year+1900; return mt; } float fechanac(struct Time t) { struct Time h; float year; h=horalocal(); year=h.y-t.y; if(h.y-t.y>1) { if(h.m < t.m) year--; else if(h.m == t.m && h.d < t.d) year--; } else if((h.y-t.y>0)&&(h.y-t.y<=1)) { if(h.m>t.m) {year=h.m - t.m; cout<<"ntienes "<<year<<" mesesn";} else if(t.m>h.m) {year=t.m-h.m; cout<<"ntienes "<<year<<" mesesn"; } } return year; } void nombre() { system("color 75"); cout<<"nnn"; cout<<" ==========================="<<endl; cout<<" = Programa Para ="<<endl; cout<<" = Saber ="<<endl; cout<<" = LA Edad ="<<endl; cout<<" ==========================="<<endl; cout<<" By Powered Luis Alfonso Jimenez"<<"nnnn"<<endl; system("PAUSE"); system("cls"); } int main() { char res; do { nombre(); system("color 74"); struct Time fech; cout<<"nnintroduce el dia en que naciste"<<endl; cout<<"==================================="<<endl; cin>>fech.d ; cout<<"ahora el mes (un numero 1-12)"<<endl; cout<<"==================================="<<endl; cin>>fech.m ; cout<<"ahora el anio"<<endl; cout<<"==================================="<<endl; cin>>fech.y; if(fechanac(fech)<1) {cout<<"nnTienes "<<fechanac(fech)<<" meses........nnn"<<endl;} if((fechanac(fech)>0)&&(fechanac(fech)<30)) {cout<<"nnTienes "<<fechanac(fech)<<" años........nnn"<<endl;} else if((fechanac(fech)>30)&&(fechanac(fech)<40)) {cout<<"nnTienes "<<fechanac(fech)<<" años..... y estas en el tercer escalon picarooooon...nnn"<<endl;} else if((fechanac(fech)>=40)&&(fechanac(fech)<=50)) {cout<<"nnTienes "<<fechanac(fech)<<" anios..... y estas en el cuarto escalon picarooooon...n...Todo lo que sube tienen caer jajajajannn"<<endl;} else if(fechanac(fech)>=50) {cout<<"nnTienes "<<fechanac(fech)<<" anios..... y estas en la tercera edad picarooooon...n...Perdona que te lo diga pero hueles camajonnnn"<<endl;} getchar(); cout<<"nnnnn Si deseas continuar into S/N"<<endl; cin>>res; system("pause"); system("cls"); } while((res=='s')||(res=='S')); return 0; }
Páginas: [1]
|
|
|