sábado, 4 de diciembre de 2010

EJEMPLO DE GRAFICO EN C

Programa que muestra un dibujo de un carrito en c con la libreria graphics.h.

#include "stdafx.h"
#include"conio.h"
#include"stdlib.h"
#include"stdio.h"
#include"graphics.h"
using namespace std;
int main()
{
    int pantalla=DETECT,modo,error;
    printf("presione una tecla iniciar el modo grafico!");
    _getch();
    initgraph(&pantalla,&modo,"");
    error=graphresult();
    if(error!=grOk)
    {
        printf("error al iniciar el modo grafico!");
        _getch();
        exit(0);
    }
    int y,x,w,x1,y1,x2,y2;
    int x3,y3,stangle,endangle,xradius,yradius;
   
        setcolor(WHITE);
        circle(x=50,y=420,w=25);
        floodfill(x,y,WHITE);
        circle(x=250,y=420,w=25);
        floodfill(x,y,WHITE);
        setfillstyle(SOLID_FILL,BLACK);
        setcolor(BLUE); 
        line( x1=75, y1=420,x2=225,y2=420 );
        ellipse(x3=120,y3=400,stangle=45,endangle=180,xradius=90,yradius=80 );
        ellipse(x3=-8,y3=400,stangle=340,endangle=30,xradius=300,yradius=55 );
        line( x1=175, y1=340,x2=251,y2=372 );
        line( x1=50, y1=380,x2=190,y2=380 );
        line( x1=120, y1=330,x2=120,y2=420 );
        line( x1=190, y1=380,x2=190,y2=420 );
        setcolor(BROWN);
        ellipse(x3=120,y3=380,stangle=0,endangle=180,xradius=70,yradius=50 );
   
        delay(100);
        

    _getch();
    return 0;
}

GRAFICOS EN C


GRAPHICS.H

La calidad de los monitores es medida por la resolución ó nitidez que presentan. El manejo de pantalla para modo gráfico se utiliza esta resolución, imprimiendo en PIXELES. La resolución normal del monitor mide 640 x 480, 640 columnas por 480 renglones.

Los archivos necesarios en disco para el manejo de modo gráfico son <GRAPHICS.H> , los archivos *.BGI y los archivos *.CHR. Los archivos BGI son los dispositivos detectores del monitor y los CHR son los distintos archivos de FONTS ó tipos de letras. La librería GRAPHICS es una utilería de Turbo C que cuenta con una serie de instrucciones reservada para el manejo de gráficos.

Dentro de las opciones de configuración debe estar marcado con (X) la opción de Gráficos, seleccione la opción dentro del submenú OPTIONS, la de LINKER, y luego opción LIBRARIES.


INICIALIZACIÓN DE GRÁFICOS.

Para la activación del modo gráfico se procede a su inicialización con las siguientes instrucciones:

graphDriver = DETECT;

graphDriver y graphMode son variables tipo int ( valores numéricos enteros ) declaradas por el usuario para detectar el tipo de monitor y su resolución. DETECT es palabra reservada en mayúsculas que realiza la detección del monitor automáticamente. Para inicializar la pantalla se utiliza la instrucción reservada:

initgraph(&graphDriver, &graphMode, driverPath);

graphDriver y graphMode nos dan las características físicas del monitor y el driverPath indica donde se localizan los archivos de gráficos, si se colocan comillas <" "> indica en el directorio en que estamos localizados.

Para colocar el directorio donde se encuentran los BGI y CHR se añade el camino: "C:\\TURBOC\\BGI" Para regresar a modo texto contamos con la instrucción: restorecrtmode( ); Asimismo contamos con la instrucción de terminación de modo gráfico, necesaria al finalizar nuestro programa: closegraph( );

FUNCIONES DE LA LIBRERIA GRAPHICS.H




ESTRUCTURA DE DATOS DINAMICA Y CON FUNCIONES

Este programa muestra una estructura de datos de n cantidad de alumnos,matricula y 3 calificaciones.
Con el uso de memoria dinamica con la funcion "new" para asignar memoria.

#include<stdio.h>
#include<iostream.h>
#include<conio.h>

struct estructura_alumno{
/*definimos la estructura_alumno*/
char nombre[30];
char matricula[10];
int cal;
int cal1;
int cal2;

void datos(){
clrscr();
int i;
 cout<<"Escribe el nombre del alumno:\n";
  cin>>nombre;
    cout<<"Escribe la matricula del alumno:\n";
      cin>>matricula;     
       cout<<"Escribe la primera calificacion del alumno:\n";
         cin>>cal;
          cout<<"Escribe la segunda calificacion del alumno:\n";
           cin>>cal1;
            cout<<"Escribe la tercer calificacion del alumno:\n";
             cin>>cal2;
clrscr();
}
void impr(){
cout<<"El alumno se llama" <<" : "<<nombre<<"  \n"<<"Con la matricula"<<" : "<<matricula<<"\n"<<"Sus calificaciones son :"<<cal<<","<<cal1<<","<<cal2;
}
};

struct estructura_alumno *al;
void main()
{
int i,tm;
cout<<"cuantos alumnos anexara\n";
cin>>tm;
al=new estructura_alumno[tm];
for(i=0;i<tm;i++){
cout<<"\n";
al[i].datos();}
for(i=0;i<tm;i++){
cout<<"\n";
al[i].impr();}
getch();
}


ESTRUCTURA DE DATOS CON ARREGLO Y FUNCIONES

Este programa es una estrcutura que captura 3 alumnos, 3 de sus calificaciones y su matricula.


#include<stdio.h>
#include<iostream.h>
#include<conio.h>

struct estructura_alumno{
/*definimos la estructura_alumno*/
char nombre[30];
char matricula[10];
int cal;
int cal1;
int cal2;

void datos(){
clrscr();
int i;
 cout<<"Escribe el nombre del alumno:\n";
  cin>>nombre;
    cout<<"Escribe la matricula del alumno:\n";
      cin>>matricula;     
       cout<<"Escribe la primera calificacion del alumno:\n";
         cin>>cal;
          cout<<"Escribe la segunda calificacion del alumno:\n";
           cin>>cal1;
            cout<<"Escribe la tercer calificacion del alumno:\n";
             cin>>cal2;
clrscr();
}
void impr(){
cout<<"El alumno se llama" <<" : "<<nombre<<"  \n"<<"Con la matricula"<<" : "<<matricula<<"\n"<<"Sus calificaciones son :"<<cal<<","<<cal1<<","<<cal2;
}
};

struct estructura_alumno al[3];

void main()
{
int i;

clrscr();
for(i=0;i<3;i++){
cout<<"\n";
al[i].datos();}
for(i=0;i<3;i++){
cout<<"\n";
al[i].impr();}
getch();
}

viernes, 3 de diciembre de 2010

USO DE MEMORIA DINAMICA

Programa que muestra el uso de memoria dinamica en una matriz con el uso de la funcion new y delete.


#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int fil,col,i,j;
int **matriz;

cout<<"¿Cantidad de filas ??  ";
 cin>>fil;
  cout<<"¿Cantidad de Columnas ??  ";
   cin>>col;

matriz = new int*[fil];

for (i=0;i<fil;i++){
  matriz[i] = new int[col];
}
for (i=0;i<fil;i++){
  for (j=0;j<col;j++){
    cin>>matriz[i][j];
}
}
cout<<"\n";
cout <<"\nLos valores de la matriz son: \n ";
 for(i=0;i<fil;i++){
   for(j=0;j<col;j++){

cout<<matriz[i][j]<<" ";
}
cout<<"  \n ";
}
for(i=0;i<fil;i++){
delete [] matriz[i];
delete [] matriz;
}
getch();
}




USO DE MEMORIA DINAMICA

La asignación dinámica de memoria es una característica de C. Le permite al usuario crear tipos de datos y estructuras de cualquier tamaño de acuerdo a las necesidades que se tengan en el programa. 
Programa que muestra el uso de memoria dinamica en un vector con el uso de la funcion new y delete.




#include<conio.h>
#include<iostream.h>
int main(void)
{
clrscr();

int *vector,tm,i;
int indice=0;

cout<<"cuantos elementos\n";
cin>>tm;

vector = new int[tm];

for(indice=0;indice<tm;indice++){
  cout<<"introduzca el vector"<<": ";
   cin>>vector[indice];
}
cout<<"\n";
  for(i=0;i<tm;i++){
     cout<<"el vector es "<<": "<<vector[i]<<"\n";
}
getch();
}