viernes, 20 de noviembre de 2015

Estructuras en C

ESTRUCTURAS EN C



ESTRUCTURAS

Una estructura contiene varios datos. La forma de definir una estructura es haciendo uso de la palabra clave struct


struct  Punto;
struct  Punt2 {int x; int y; int z; };


un ejemplo aquí de estructuras


ejercicio:

realizar un programa que solicite los datos personales de una persona donde y despliegue los datos con sus respectiva dirección de memoria


1. creación del programa

PROGRAMA DATOS PERSONALES





































2. corrida de escritorio
pide los datos informativos




















3. despliega los datos pedidos con su respectivo espacio de memoria.

Correcion de la Prueba

ACTIVIDAD:trabajo en Clase 
NOMBRE: David Guanoluisa 
F.INICIO:15-11-19

OBJETIVO: Realizar La correcion de la pruba mediante los conocimientos ya acquiridos en la clase para poder ver en lo q nos equvocamos y de eso no volverlos a cometer


1.-Determinar el valor que tendrán las variables después de cada operación de asignación
int A;
A=5;
A=A+7;
A=A-10;
A=A2;
A=4
int A;
int B;
A=1;
B=2;
A=A+B;
A=3
int X;
Int y;
X=3;
Y=X;
Y=X+3;
Variable mal declarada
int A;
int B;
B=12;
A=B+1;
A=B-7;
B=A+5
A=A*A
A=25
int X;
int Y;
X=2;
Y=X+6;
X=X+1;
Y=X-5
Y=-2
int HOLA;
int NO_SE;
int OTRA;
HOLA=2;
NO_SE=12;
OTRA=HOLA+NO_SE;
NO_SE=HOLA+NO_SE;
HOLA=NO_SE+OTRA;
HOLA=28
int A;
int B;
A=0;
B=5;
B=a+b;
B=A;
Variable mal declarada
int A;
int B;
int C;
A=1;
B=A-1;
B=C-B;
Basura


2.-Definir cual seria la salida de pantalla del siguiente código de C++

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
char ced[9];
char *ptrced;
main (){
     printf ("Ingrese su num de ced");
     gets(ced);
     printf ("%s\n",ced);
     for (int i=0;i<10;i++){
         ptrced=&ced[i];
     //printf ("\n%p\n",&ptrced);
     printf ("%d\n",*ptrced);
     }
     getch ();
     }

Ingrese número de ced

è 1,2,3,4,5,6,7,8,9,0

49
50
51
52
53
54
55
56
57
48
"Realiza un casting"

    
3.-Subraye la respuesta correcta
¿Qué es una matriz?
a)      Es una zona de almacenamiento contiguo
b)      Es un tipo de dato que asigna valor de memoria de un solo tipo char
c)       Es una estructura dinámica
d)      Ninguna de las anteriores
¿Qué es un puntero?
a)      Es una matriz que hacer referencia a una región de memoria
b)      Es un valor entero que da referencia a una región de memoria
c)       Ninguna de las anteriores
d)      Es una variable independiente de memoria que sirve para apuntar a un puntero
¿Qué es una estructura dinámica?
a)      Son estructuras cuya dimensión puede crecer o disminuir durante la creación de un un programa
b)      Son estructuras que cuya dimensión puede crecer o disminuir durante el diseño del programa
c)       Son estructuras cuya dimensión puede crecer o disminuir durante la ejecución del programa
d)      Ninguna de las anteriores
¿Qué es una lista?
a)      Es un puntero de datos que nos permite agrupar elementos de una manera organizada
b)      Es un dominio de datos que nos permite agrupar elementos de una manera organizada
c)       Es una estructura de datos que nos permite agrupar elementos de una manera organizada
d)      Ninguna de las anteriores
¿Qué es una pila?
a)      Es un tipo de lista en la que solo se pueden insertar y eliminar nodos en uno de sus extremos
b)      Es un tipo de punteros en la que solo se pueden insertar y eliminar nodos en uno de los extremos
c)       Es un tipo de dato int que solo se puede insertar y eliminar nodos en uno de los extremos de la lista


4.-Realizar el siguiente ejercicio en C++ en el computador
a)      Dado por el usuario un valor de numero de tipo int que corresponda al año de nacimiento, calcular el número de la suerte que será la sumatoria del mismo , utilizar punteros
b)      Ingresando valores a una matriz de cuatro elementos de tipo flotante calcular el mayor de os elementos utilizar punteros

Librerias

TU PROPIA LIBRERÍA



SEGUNDO PASO

El fichero creado anteriormente, guárdalo con extensión .h  por ejemplo milibreria.h (importante no ejecutarlo para que no le pueda cambiar sola la extensión).


Se deberá guardar en la carpeta include del compilador. Esta carpeta se puede encontrar facilmente en la misma carpeta del compilador., accediendo a Mi PC (Equipo) y en la carpeta donde se guardan todos los programas.

TERCER PASO

Llamar a la biblioteca en el programa. Deberemos colocar en la cabecera del programa, junto a los llamamiento de otras bibliotecas:




CUARTO PASO

mandamos a correr el programa y listo eso es todo.


NET GRAFIA
http://cypascal.blogspot.com/2012/11/crea-tu-propia-biblioteca-en-cc.html

Graficos en C++

graficos en C++

ICOMO HACERLO:

Para realizar gráficos en C++ necesitamos poner el sistema en modo gráfico. Para ello debemos incluir a nuestro programa la biblioteca de gráficos GRAPHICS.H 
#include <graphics.h>

Para inicializar el modo gráfico se utiliza la función initgraph() y para detenerlo la función closegraph(). A la función initgraph se le deben pasar 3 argumentos que permitirán detectar de forma automática la placa de video y fijar el modo de video más alto posible: int driver=DETECT, 
modo; initgraph(&driver,&modo,”C:\\TC\\BGI”); 

El primer parámetro (&driver) es asignado a DETECT, por la tanto la función detectgraph() es llamada, y un dispositivo y modo gráfico (segundo parámetro) apropiados serán seleccionados. 

El tercer parámetro especifica el directorio donde los dispositivos gráficos están localizados. 
Si la función initgraph() falla, puede interceptarse un código de error e informar al usuario de dicho problema: if (graphresult()!= grOk) { cout << “Error al iniciar el modo gráfico, el programa finalizará”; getch(); exit (1); } De ahora en adelante es posible utilizar cualquier función gráfica en nuestro programa. Para finalizar el modo gráfico ejecutamos la siguiente instrucción: closegraph(); Generalmente al iniciar el modo gráfico se dispone de una resolución de 640x480. 

Es decir disponemos de 640 pixeles en el eje x y 480 pixeles en el eje y. 

Para comprobar esto, podemos hacer uso de la funciones getmaxx() y getmaxy() que devuelven el máximo píxel del eje x e y respectivamente. cout<<”Resolución: “ << getmaxx() << “x” << getmaxy(); En caso de contar con una resolución de 640x480, la línea de código anterior mostraría en pantalla lo siguiente: Resolución: 639x479 Esto se debe a que el último píxel de eje x es 639, y el último píxel del eje y es 479, ya que ambos ejes comienzan en el píxel 0.

COMO ESTABLECER COLORES:

Para seleccionar el color de fondo en modo grafico debemos utilizar la función setbkcolor() y para establecer el color de dibujo setcolor(). Para limpiar la pantalla en modo gráfico se utiliza la función cleardevice() que dejará la pantalla con el color establecido en setbkcolor().

FUNCIONES QUE PODEMOS UTILIZAR:

rectangle (int X1, int Y1, int X2, int Y2); 
Dibuja un rectángulo sin relleno en la pantalla marcado por los puntos (X1, Y1) y (X2, Y2), donde X1 es el extremo izquierdo del rectángulo, Y1 es el extremo superior, X2 es el extremo derecho e Y2 el extremo inferior del rectángulo. rectangle (100, 200, 300, 400); 

circle (int X, int Y, int radio); Dibuja un circulo (cuyo tamaño de radio está dado por la variable radio) en la pantalla con centro en los puntos (X, Y). circle (100, 100, 10);

line (int X1, int Y1, int X2, int Y2); Dibuja una línea recta iniciando en los puntos X1, Y1; concluyendo en X2, Y2. line (100, 200, 300, 400); 

ellipse (int X, int Y, int stangle, int endangle, int xradius, int yradius); Dibuja un elipse con centro en los puntos X, Y. stangle y endangle indican el ángulo inicial y final del arco elíptico a dibujar. Para ello se toma como referencia la siguiente figura: C++ Guía Práctica: Modo Gráfico. Desarrollo de Aplicaciones y Manipulación de Datos. Prof: Mileti 100 200 400 300 100 100 100 200 400 300 0 grados 90 grados 180 grados 270 grados 360 grados

ESTRUCTURA DEL PROGRAMA

#include <graphics.h>  
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
   VARIABLES PARA INICIALIZAR MODO GRAFICO
   int gdriver = DETECT, gmode, errorcode;

   INICIALIZAR MODO GRAFICO
   initgraph(&gdriver, &gmode, "");

  DETECTA SI HAY ALGUN ERROR PARA USAR MODO GRAFICO
   errorcode = graphresult();
  
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   }

   line(0, 0, 50,50 ); DIBUJA UNA LINEA

   getch();
   closegraph(); CERRAR MODO GRAFICO
   return 0;
}

FUNCIONES PARA DIBUJAR

cleardevice(void); LIMPIA LA PANTALLA

setcolor(int color); COLOR DE LINEA

setbkcolor(int color); COLOR DE FONDO (PANTALLA)

CREAR ANIMACIONES:

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
#include <math.h> 

void main(){ 
int driver=DETECT, modo, i; 
clrscr(); 
initgraph(&driver,&modo,"C:\\TC\\BGI"); 
if (graphresult()!=grOk)
{ 
cout<<"Error al iniciar modo gráfico."; 
getch(); 
 exit(1); 
} 
setfillstyle(SOLID_FILL,BLUE); 
for(i=300;i>1;i--)
{
setcolor(RED); 
line(getmaxx()/2,getmaxy()/2,0, getmaxy()); 
line(getmaxx()/2,getmaxy()/2,getmaxx(),getmaxy()); 
 setcolor(BLACK); 
 fillellipse(getmaxx()/2,getmaxy()/2,i,i); 
 delay(50); 
 //cleardevice();
 } 
closegraph(); 
} 

OTRO PROGRAMA:

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
#include <math.h> 

int main(void) 
{ 
/* request auto detection */ 
int gdriver = DETECT, gmode, errorcode; 
int x; 
float pi=3.1416; 
float grados,y; 
grados=(2*pi)/360; 

/* initialize graphics and local variables */ 
initgraph(&gdriver, &gmode, ""); 

/* read result of initialization */ 
errorcode = graphresult(); 
if (errorcode != grOk) /* an error occurred */ 
{ 
printf("Graphics error: %s\n", grapherrormsg(errorcode)); 
printf("Press any key to halt:"); 
getch(); 
exit(1); /* terminate with an error code */ 
} 

for(x=0;x<360;x++){ 

y=sin(x*grados); 
y=y*100; 

putpixel(x+100,y+100,5); 
} 

/* clean up */ 
getch(); 
closegraph(); 
return 0; 
} 

CONCLUCIONES:

* La manera de crear gráficas sirven como un metodo de ayuda para falicitarnos hacer planos y varias figras con o sin movimiento ademas nos ayudan a mejorar nuestra precicion en el plano cartesiano. 

WEBGRAFIA:

http://www.mileti.com.ar/apuntes/modo_grafico_c.pdf
http://www.tonahtiu.com/notas/metodos/Graficos_C.htm