Está en la página 1de 106

UNIVERSIDAD AUTNOMA DEL ESTADO DE HIDALGO

INSTITUTO DE CIENCIAS BSICAS E INGENIERA

MANUAL DE PRCTICAS GRAFICACIN

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

FECHA DE ELABORACIN:

ENERO 2012

ELABORARON : NOMBRE Mtro. Vctor Toms Toms Mariano FIRMA

Vo. Bo. ACADEMIA DE COMPUTACION PRESIDENTE

SECRETARIO

Vo. Bo.

FECHA DE PRXIMA REVISIN:

ENERO 2012

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NDICE:
Prcticas de Laboratorio Prctica 2 Uso de primitiva Caja (Box) Prctica 5 Prctica 6 Prctica 7 Practica 8 Practica 9 Practica 10 Practica 11 Practica 12 Practica 13 7 17 22 27 31 36 40 44 47 51

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA Introduccin al Lenguaje C++ No. DE LA PRCTICA: 1 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Conocer y Realizar el Algoritmo DDA para la realizacin de Lneas

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

Primero seleccionamos el rea en donde se quiere importar la imagen como se muestra en la figura siguiente.

Posteriormente se da clic en el men Views y se elige la opcin Viewport Background

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Nos mostrar una ventana el cual daremos clic en files para elegir la imagen que queremos importar

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Seleccionamos la imagen y damos clic en Abrir

A continuacin se configurara la ventana de la siguiente manera para que permita importar la imagen.

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se procede a dar clic en el botn ok y la imagen es importada

A Continuacin se elegir del men Splines la herramienta Line

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Con esta herramienta se va realizando los bordes de la imagen segn se requiera como se muestra en la siguiente ventana si se desea cerrar el Spline y se da clic en Si

Se realiza el mismo procedimiento para todo el contorno de la figura quedando de la siguiente manera

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Posteriormente se va al men Modifier List y se selecciona Line -Vertex. Esta accin nos permitir acomodar los vrtices de una forma ms exacta.

Una vez acomodado los nodos nos dirigimos a la herramienta attach para realizar los agujeros de los ojos y la parte fro

10

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se procede a dar clic en la herramienta extrude y para que nuestra lnea tenga grosor quedando la imagen de la siguiente manera

11

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES: Que observ y que significa el cuadro de dialogo al terminar de compilar un programa?

BIBLIOGRAFA:

Bsica: Complementaria:

12

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA Datos, tipos de variables y expresiones. No. DE LA PRCTICA: 2 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Identificar los diferentes tipos de datos, variables y expresiones que existen al resolver un problema mediante el uso de un programa de computadora.

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

13

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

Realizaremos una mesa con la primitiva Caja (Box) y le aplicaremos materiales.


Primero seleccionamos la primitiva caja (Box) como se muestra en la figura siguiente :

14

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se posiciona en el plano al seleccionar la herramienta box y se arrastra hasta forma dicha caja con los parmetros Length, Width, Height se modifica el tamao como se muestra en la figura anterior.

Se colocan las cajas de manera uniforme de tal manera que simule una mesa. Quedando la mesa de la siguiente manera.

15

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Proseguiremos a ponerle materiales a la mesa Oprimimos la tecla m nos aparecer la ventana siguiente, en ella seleccionamos una esfera y le damos clic en difuse la cual nos mandar la ventana de a lado. Y damos clic en Bitmap.

16

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Al dar clic en Bitmap nos arrojar la ventana siguiente. Nos ubicaremos en la unidad donde se instal el 3D MAX y seleccionamos la carpeta maps y damos clic en abrir.

Dentro de ella se encontraran varias carpetas con distintos materiales a utilizar, elegimos el que sea de nuestro agrado, como se muestra en la siguiente imagen.

17

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Una vez seleccionado el material damos clic en abrir y automticamente la esfera estar pintada del material que elegimos a utilizar y una vez ya seleccionado la imagen damos clic en el icono asignar el material (Assign Material to Selection) , como se muestra en la figura siguiente.

Una vez rende rizado la imagen queda de la siguiente manera

18

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: Complementaria:

19

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: Datos y expresiones. No. DE LA PRCTICA: 3 No. DE SESIONES: 1 1

No. DE INTEGRANTES MXIMO POR EQUIPO:

OBJETIVO:

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR: PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

20

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA: Para la realizacin de la casa nos dirigimos hacia la herramienta AEC Extended y seleccionamos la herramienta Pared (Wall), como se muestra en la siguiente:

Nos posicionamos en el plano y empezamos a trazar nuestras paredes dndole las dimensiones que deseamos.

21

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Ahora realizaremos las puertas con la primitiva doors (puertas), seleccionamos el tipo de puerta segn deseamos (pivot, sliding, BiFold) , nos dirigimos hacia el plano y agregamos la puerta para tener una mejor perspectiva de donde queremos colocarla presionamos F3. Como se muestra en la siguiente figura:

Ahora realizaremos las ventanas con la primitiva window (ventana), seleccionamos el tipo de ventana segn deseamos (Awning, Fixed, Projected, Casement, Pivoted, Sliding), nos dirigimos hacia el plano y agregamos la ventana para tener una mejor perspectiva de donde queremos colocarla presionamos F3. En la siguiente imagen se muestra como queda la imagen en la cual estn los parmetros Height y Width para modificar el tamao. 22

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Ahora para la realizacin de la otra ventana se realiza una instancia de la misma seleccionando el objeto, dando clic derecho nos aparecer una ventana de opciones y seleccionamos (Instance) como se muestra en la siguiente figura:

23

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Queda de la siguiente forma:

Ahora nos basaremos en el diseo colocamos el piso con una caja (box) quedando de la siguiente manera:

24

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Dibujamos una cerca con la herramienta lnea explicado en prcticas anteriores quedando de la siguiente manera.

CONCLUSIONES:

BIBLIOGRAFA: Bsica: Complementaria: NOMBRE DE LA PRCTICA: No. DE LA PRCTICA: 4 No. DE INTEGRANTES MXIMO POR EQUIPO: No. DE SESIONES: 1 1

OBJETIVO:

25

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

Se elige la herramienta lnea y se posiciona sobre el plano y se realiza un hexgono como se muestra en la figura siguiente:

26

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se selecciona la figura y nos colocamos en la lista de modificadores y le damos clic en Extrude.

27

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Ahora realizaremos las escaleras con la herramienta lnea y hacemos el diseo de la misma como se muestra en la siguiente imagen:

28

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se le aplica extrude como se explic en el tema anterior, quedando de la siguiente manera:

Y se coloca junto a la base hexagonal creada siguiente:

como se muestra en la figura

29

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se Selecciona la escalera y se da clic derecho en clonar y nos aparece una ventana y le damos clic en copiar para colocar las dems escaleras, como se muestra en la figura siguiente:

30

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se le aplican materiales en el en las escaleras como se explic en prcticas anteriores, y se procede a la realizacin de los barandales con la herramienta cilindros como se muestra en la figura siguiente:

Ahora realizaremos la cpula del kiosco para ellos seleccionamos la herramienta cilindro y presionamos F3 para ver los nodos de dicha figura como se muestra en la siguiente figura:

31

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se seleccionan los vrtices y se selecciona de la lista de modificadores Editable Poly -Vertex quedando de la siguiente manera:

A continuacin una vez seleccionado los nodos se da clic en mover y se procede a alargar z como se muestra en la figura siguiente :

32

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Y as sucesivamente se van seleccionando cada capa con sus nodos y se procede hacer crecer z como se muestran en las figuras siguientes:

33

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

34

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Una vez arreglado la estructura de la cpula se procede a acomodarla en la base del kiosco como se muestra en la figura siguiente:

35

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Ahora realizaremos una banca para nuestra plaza elegimos la herramientas lnea y realizamos la siguiente estructura:

Con la herramienta fillet curveamos la parte superior como se muestra en la figura anterior, posteriormente aplicamos la herramienta extrude como quedando de la siguiente manera:

A continuacin para la parte del asiento con la herramienta lnea realizamos un cuadro.

36

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Se le aplica extrude

Posteriormente juntamos las dos figuras de manera que simule una silla seleccionamos las dos partes y damos clic en Group y nos arrojara la siguiente pantalla damos clic en OK, y nuestros objetos quedaran agrupados.

Ahora realizaremos las patas de la silla con la herramienta lnea realizamos un rectngulo y aplicamos el modificador extrude quedando de la siguiente manera:

37

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Colocamos las patas en donde corresponde ocuparemos 4 patas realizamos una copia de esta.

CONCLUSIONES:

38

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Quedando nuestra silla de la siguiente manera:

Ahora colocaremos arboles en nuestras jardineras de la siguiente manera nos vamos al men AEC EXTENDED Y elegimos la herramienta follaje nos desplegara los rboles que deseemos utilizar, como se muestra en la siguiente figura:

39

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Quedando las jardineras de la siguiente manera:

Colocamos las bancas en nuestra plaza asi como los arboles y el resultado es el siguiente:

40

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Realizacin de una copa de vidrio y aplicacin de materiales Elegiremos de nuestra barra de herramientas el objeto lnea y trazamos en nuestro plano los siguientes vrtices como se muestra en la figura siguiente:

Posteriormente Seleccionamos Spline y damos clic en la opcin outline esto nos permitir duplicar nuestra lnea. Como se muestra en la figura siguiente:

41

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

A continuacin de nuestra lista de modificadores elegimos Lathe y le damos clic.

42

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Posteriormente seleccionamos la figura y damos clic en la opcin Center, y seleccionamos el eje Axis y arrastramos hasta formar la copa, como se muestra en las figuras siguientes.

43

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Ahora procederemos a aplicar los materiales de manera que la copa se vea cristalizada. Oprimimos la tecla m para que nos aparezca la siguiente ventana, damos clic en el botn None del apartado Difuse como se muestra en la figura siguiente:

44

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Nos aparecer la siguiente ventana en ella elegimos el material fallof.

45

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

A continuacin elegimos el color con las siguientes combinaciones que se muestran en la siguiente imagen:

46

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Posteriormente nos dirigimos hacia el apartado Transparencia y colocamos la misma combinacin utilizada en la imagen anterior.

Nos posicionamos en Shading y seleccionamos la opcin Anisotropic como se muestra en la siguiente imagen:

47

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Posteriormente seleccionamos Specular Lavel y colocamos el valor 105 y en Glossines 40 como se muestra en la figura siguiente:

48

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Nota: Para visualizacin de vrtices oprimir F3 A continuacin realizaremos el agua para ello trazamos la siguiente lnea como se muestra en la figura siguiente:

49

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Y aplicamos el modificador Lathe explicado anteriormente, despus seleccionamos la misma combinacin que ocupamos para la copa pero ahora seleccionaremos el color vino.

50

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Rende rizamos y el resultado es el siguiente:

51

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

52

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

BIBLIOGRAFA:

Bsica: Complementaria:

NOMBRE DE LA PRCTICA: No. DE LA PRCTICA: 5 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

53

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

OBJETIVO:

Aplicar y entender el funcionamiento de las sentencia switch case y do while dentro de un programa.

MARCO TERICO:

TRASLACIN La operacin de traslacin consiste en modificar la posicin de un punto en el plano definido por las coordenadas (x, y), mediante un movimiento en lnea recta desde la posicin actual (posicin inicial) a la posicin final. La traslacin no modifica la geometra del objeto, slo su posicin en el espacio.

54

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

55

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

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

void inicia_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void plano(void) //funcin crear plano { int i; int cmh, cmv; cmh= getmaxx(); cmv= getmaxy(); line(0,cmv/2,cmh,cmv/2); line(cmh/2,0,cmh/2,cmv); outtextxy(330,10,"y"); outtextxy(620,230,"x"); settextstyle(2,0,6); } 56

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

void traslacion() { int tx, ty; setcolor(12); outtextxy(240,10,"TRASLACION"); outtextxy(238,20,"------------"); printf("\nCOORDENADA TX: "); scanf("%d",&tx); printf("\nCOORDENADA TY: "); scanf("%d",&ty); cleardevice(); rectangle(100,150,150,100);

rectangle(100+tx,150+ty,150+tx,100+ty); } void main() { inicia_grafico(); traslacion(); rectangle(100,150,150,100);

plano(); getch(); }

57

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: Complementaria:

58

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: No. DE LA PRCTICA: 6 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Utilizar los principios de la Programacin Modular creando funciones que realicen tareas especficas.

MARCO TERICO:

ESCALA La operacin de escalado modifica la distancia de los puntos sobre los que se aplica, respecto a un punto de referencia. Para definir esta operacin son necesarios dos factores de escala, Sx y Sy, segn las direcciones x e y, y un punto o eje de referencia.

59

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02. 60

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

61

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

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

void inicia_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void plano(void) //funcin crear plano { int i; int cmh, cmv; cmh= getmaxx(); cmv= getmaxy(); line(0,cmv/2,cmh,cmv/2); line(cmh/2,0,cmh/2,cmv); outtextxy(330,10,"y"); outtextxy(620,230,"x"); } 62

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

void escala() { int sx,sy; setcolor(2); outtextxy(240,10,"ESCALANDO"); outtextxy(238,20,"--------"); printf("\nDIGITA ESCALA EN X : "); scanf("%d",&sx); printf("\nDIGITA ESCALA EN Y : "); scanf("%d",&sy); cleardevice(); rectangle(25,50,50,25); rectangle(25*sx,50*sy,50*sx,25*sy); }

void main() { inicia_grafico(); escala(); plano(); getch(); }

63

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: Complementaria:

64

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: No. DE LA PRCTICA: 7 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Utilizar los principios de la Programacin Modular creando funciones que realicen tareas especficas, pasando como argumento la direccin de memoria de un valor a la funcin.

MARCO TERICO:

La operacin de rotacin o giro desplaza un punto a travs de la circunferencia definida sobre un centro determinado, es decir, siguiendo un movimiento circular. Igual que en la traslacin, esta operacin no modifica la geometra del objeto, slo su posicin.

65

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

66

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

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

void inicia_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void plano(void) //funcin crear plano { int i; int cmh, cmv; cmh= getmaxx(); cmv= getmaxy(); line(0,cmv/2,cmh,cmv/2); line(cmh/2,0,cmh/2,cmv); outtextxy(330,10,"y"); outtextxy(620,230,"x"); settextstyle(2,0,6); } 67

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

void rotacion() { float theta; int x1,x2,x3,x4; int y1,y2,y3,y4; int ax1,ax2,ax3,ax4,ay1,ay2,ay3,ay4; int refx,refy; printf("\nDIGITA EL ANGULO DE ROTACION: "); scanf("%f",&theta); theta=theta*(3.14/180); cleardevice(); setcolor(2); outtextxy(240,10,"ROTACION"); outtextxy(238,20,"-------"); refx=100; refy=100; x1=100; y1=100; x2=150; y2=100; x3=150; y3=150; x4=100; y4=150; ax1=refy+(x1-refx)*cos(theta)-(y1-refy)*sin(theta); ay1=refy+(x1-refx)*sin(theta)+(y1-refy)*cos(theta); ax2=refy+(x2-refx)*cos(theta)-(y2-refy)*sin(theta); ay2=refy+(x2-refx)*sin(theta)+(y2-refy)*cos(theta); ax3=refy+(x3-refx)*cos(theta)-(y3-refy)*sin(theta); ay3=refy+(x3-refx)*sin(theta)+(y3-refy)*cos(theta); ax4=refy+(x4-refx)*cos(theta)-(y4-refy)*sin(theta); ay4=refy+(x4-refx)*sin(theta)+(y4-refy)*cos(theta); rectangle(100,150,150,100); line(ax1,ay1,ax2,ay2); line(ax2,ay2,ax3,ay3); line(ax3,ay3,ax4,ay4); 68

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

line(ax4,ay4,ax1,ay1); } void main() { inicia_grafico(); setcolor(6);

rotacion(); rectangle(100,150,150,100); plano(); getch(); }

69

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

70

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

BIBLIOGRAFA:

Bsica: Complementaria: .

71

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: No. DE LA PRCTICA: 8 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Ser capaz de manipular estructuras

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

72

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

#include <conio.h> #include <graphics.h> #include <math.h> #include <stdlib.h> #include <stdio.h> int xp[2],yp[2],z; void display(int xp[2],int yp[2]); void traslacion(); void matrixmul(int [4][4]); void modo_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void main() { int i,ch; modo_grafico(); for(i=0;i<2;i++) { printf("\nDigita coordenada en el vertice X %d :",i+1); scanf("%d",&xp[i]); printf("\nDigita coordenada en el vertice Y %d :",i+1); scanf("%d",&yp[i]); } 73

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

clrscr(); cleardevice(); display(xp,yp); getch(); traslacion(); getch(); } void traslacion() { int p[4][4]; int tx,ty,tz,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) p[i][j]=(i==j); printf("\nDigita la Traslacion en Tx : "); scanf("%d",&tx); printf("\nDigita la Traslacion en Ty : "); scanf("%d",&ty); clrscr(); cleardevice(); display(xp,yp); p[0][3]=tx; p[1][3]=ty; matrixmul(p); } void display(int xp[2],int yp[2]) { int x3,y3,x4,y4; line(getmaxx()/2,0,getmaxx()/2,getmaxy()); line(0,getmaxy()/2,getmaxx(),getmaxy()/2); rectangle(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+xp[1],getmaxy()/2yp[1]);

74

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

if(z>=xp[0]) { x3=z+xp[0]; y3=z+yp[0]; x4=z+xp[1]; y4=z+yp[1]; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } else { x3=xp[0]-z; y3=yp[0]-z; x4=xp[1]-z; y4=yp[1]-z; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } } void matrixmul(int a[4][4]) { float res[4][1],b[4][1]; int i,j,k,l; for(i=0;i<2;i++) { b[0][0]=xp[i]; b[1][0]=yp[i]; b[2][0]=z; b[3][0]=1; for(j=0;j<4;j++) { for(k=0;k<1;k++) { res[j][k]=0; 75

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

for(l=0;l<4;l++) { res[j][k]=res[j][k]+(a[j][l]*b[l][k]); } } } xp[i]=res[0][0]; yp[i]=res[1][0]; } z=res[2][0]; display(xp,yp); }

76

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: Complementaria:

77

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: No. DE LA PRCTICA: 9 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02. 78

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

#include <conio.h> #include <graphics.h> #include <math.h> #include <stdlib.h> #include <stdio.h> int xp[2],yp[2],z; void display(int xp[2],int yp[2]); void escala(); void matrixmul(int [4][4]); void modo_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void main() { int i,ch; modo_grafico(); for(i=0;i<2;i++) { printf("\nDigita coordenada en el vertice X %d :",i+1); scanf("%d",&xp[i]); printf("\nDigita coordenada en el vertice Y %d :",i+1); 79

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

scanf("%d",&yp[i]); } clrscr(); cleardevice(); display(xp,yp); getch(); escala(); getch(); } void escala() { int p[4][4]; int sx,sy,sz,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) p[i][j]=(i==j); printf("\nDigita Escala en sx : "); scanf("%d",&sx); printf("\n Digita Escala en sy : "); scanf("%d",&sy); printf("\n Digita Escala en sz: "); scanf("%d",&sz); if(sx==0) sx=1; if(sy==0) sy=1; if(sz==0) sz=1; cleardevice(); p[0][0]=sx; sy; p[1][1]=sy; p[2][2]=sz; p[3][3]=1; matrixmul(p); } 80

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

void display(int xp[2],int yp[2]) { int x3,y3,x4,y4; line(getmaxx()/2,0,getmaxx()/2,getmaxy()); line(0,getmaxy()/2,getmaxx(),getmaxy()/2); rectangle(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+xp[1],getmaxy()/2yp[1]); if(z>=xp[0]) { x3=z+xp[0]; y3=z+yp[0]; x4=z+xp[1]; y4=z+yp[1]; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } else { x3=xp[0]-z; y3=yp[0]-z; x4=xp[1]-z; y4=yp[1]-z; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } } void matrixmul(int a[4][4]) { float res[4][1],b[4][1]; int i,j,k,l; for(i=0;i<2;i++) { b[0][0]=xp[i]; b[1][0]=yp[i]; 81

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

b[2][0]=z; b[3][0]=1; for(j=0;j<4;j++) { for(k=0;k<1;k++) { res[j][k]=0; for(l=0;l<4;l++) { res[j][k]=res[j][k]+(a[j][l]*b[l][k]); } } } xp[i]=res[0][0]; yp[i]=res[1][0]; } z=res[2][0]; display(xp,yp); }

82

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: Complementaria: 83

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: Apuntadores No. DE LA PRCTICA: 1 0 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Ser capaz de declarar y manipular variables de tipo apuntador.

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

84

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

#include <conio.h> #include <graphics.h> #include <math.h> #include <stdlib.h> #include <stdio.h> int xp[2],yp[2],z; void display(int xp[2],int yp[2]); void rotacion(); void matrixmul(int [4][4]); void modo_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void main() { int i; modo_grafico(); for(i=0;i<2;i++) { printf("\nDigita el vertice en la coordenada x %d : ",i+1); scanf("%d",&xp[i]); printf("\nDigita el vertice en la coordenada y %d : ",i+1); scanf("%d",&yp[i]); } 85

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

display(xp,yp); getch(); rotacion(); getch(); }

void rotacion() { float res[4][1],p[4][4],t[4][1]; int ang,i,j,k,l,rch; float rad; for(i=0;i<4;i++) for(j=0;j<4;j++) p[i][j]=(i==j); printf("\nDigita la Rotacion del angulo : "); scanf("%d",&ang); rad=ang*0.0174; printf("\nEscoge el area de rotacion "); printf("\n1.X-"); printf("\n2.Y-"); printf("\n3.Z-"); scanf("%d",&rch); switch(rch) { case 1 : p[1][1]=cos(rad); p[1][2]=(-1)*sin(rad); p[2][1]=sin(rad); p[2][2]=cos(rad); break; case 2 : p[0][0]=cos(rad); p[2][0]=(-1)*sin(rad); p[0][2]=sin(rad); p[2][2]=cos(rad); break; 86

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

case 3: p[0][0]=cos(rad); p[0][1]=(-1)*sin(rad); p[1][0]=sin(rad); p[1][1]=cos(rad); break; default : printf("\nInvalid Choice !"); } clrscr(); cleardevice(); for(i=0;i<2;i++) { t[0][0]=xp[i]; t[1][0]=yp[i]; t[2][0]=z; t[3][0]=1; for(j=0;j<4;j++) { for(k=0;k<1;k++) { res[j][k]=0; for(l=0;l<4;l++) { res[j][k]=res[j][k]+(p[j][l]*t[l][k]); } } } xp[i]=res[0][0]; yp[i]=res[1][0]; z=res[2][0]; } display(xp,yp); } void display(int xp[2],int yp[2]) { int x3,y3,x4,y4; line(getmaxx()/2,0,getmaxx()/2,getmaxy()); line(0,getmaxy()/2,getmaxx(),getmaxy()/2); 87

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

rectangle(getmaxx()/2+xp[0],getmaxy()/2yp[0],getmaxx()/2+xp[1],getmaxy()/2-yp[1]); } void matrixmul(int a[4][4]) { float res[4][1],b[4][1]; int i,j,k,l; for(i=0;i<2;i++) { b[0][0]=xp[i]; b[1][0]=yp[i]; b[2][0]=z; b[3][0]=1; for(j=0;j<4;j++) { for(k=0;k<1;k++) { res[j][k]=0; for(l=0;l<4;l++) { res[j][k]=res[j][k]+(a[j][l]*b[l][k]); } } } xp[i]=res[0][0]; yp[i]=res[1][0]; } z=res[2][0]; display(xp,yp); }

CONCLUSIONES:

BIBLIOGRAFA:

88

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Bsica: Complementaria:

NOMBRE DE LA PRCTICA: Apuntadores 2 No. DE LA PRCTICA: 1 1 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Ser capaz de declarar y manipular variables de tipo apuntador.

MARCO TERICO:

contenidos de las variables que se usan para llamar a la funcin. Se debe llamar a la funcin que utilice punteros con las direcciones de los argumentos (&).

EQUIPO Y SOFTWARE A UTILIZAR:

89

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

#include <conio.h> #include <graphics.h> #include <math.h> #include <stdlib.h> #include <stdio.h> int xp[2],yp[2],z; void display(int xp[2],int yp[2]); void traslacion(); void escala(); void rotacion(); void matrixmul(int [4][4]);

void modo_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void main() { modo_grafico(); int i,ch; for(i=0;i<2;i++) { printf("\nDigita el vertice en la coordenada x %d : ",i+1); 90

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

scanf("%d",&xp[i]); printf("\nDigita el vertice en la coordenada y %d : ",i+1); scanf("%d",&yp[i]); } printf("\nfigura 3d : "); scanf("%d",&z); clrscr(); cleardevice(); display(xp,yp); getche(); do { printf("----- MENU -----"); printf("\n1.traslacion."); scanf("%d",&ch); clrscr(); cleardevice(); display(xp,yp); switch(ch) { case 1 : traslacion(); break; default: outtextxy(1,66,"-selecciona la opcion-"); } } while(ch!=1); getch(); closegraph(); } void traslacion() { int p[4][4]; int tx,ty,tz,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) p[i][j]=(i==j); printf("\nDigita traslacion en Tx: "); scanf("%d",&tx); printf("\ndIgita Traslacion en Ty: "); scanf("%d",&ty); 91

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

clrscr(); cleardevice(); display(xp,yp); p[0][3]=tx; p[1][3]=ty; matrixmul(p); }

void display(int xp[2],int yp[2]) { int x3,y3,x4,y4; line(getmaxx()/2,0,getmaxx()/2,getmaxy()); line(0,getmaxy()/2,getmaxx(),getmaxy()/2); outtextxy(getmaxx()/2+5,getmaxy()/2+5,"(0,0)"); outtextxy(getmaxx()-50,getmaxy()/2+10,"X-Axis"); outtextxy(getmaxx()/2+10,20,"Y-Axis"); outtextxy; outtextxy(10,getmaxy()/2+10,"X'-Axis"); outtextxy(getmaxx()/2+10,getmaxy()-20,"Y'-Axis"); rectangle(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+xp[1],getmaxy()/2yp[1]); if(z>=xp[0]) { x3=z+xp[0]; y3=z+yp[0]; x4=z+xp[1]; y4=z+yp[1]; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } else { x3=xp[0]-z; y3=yp[0]-z; x4=xp[1]-z; 92

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

y4=yp[1]-z; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } } void matrixmul(int a[4][4]) { float res[4][1],b[4][1]; int i,j,k,l; for(i=0;i<2;i++) { b[0][0]=xp[i]; b[1][0]=yp[i]; b[2][0]=z; b[3][0]=1; for(j=0;j<4;j++) { for(k=0;k<1;k++) { res[j][k]=0; for(l=0;l<4;l++) { res[j][k]=res[j][k]+(a[j][l]*b[l][k]); } } } xp[i]=res[0][0]; yp[i]=res[1][0]; } z=res[2][0]; display(xp,yp); }

93

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: 94

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Complementaria:

NOMBRE DE LA PRCTICA: Archivos Secunciales No. DE LA PRCTICA: 1 2 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Utilizar las funciones de apertura, lectura, escritura de datos y cierre de un archivo. En este proceso se pretende solamente crear un archivo secuencial en disco.

MARCO TERICO:

EQUIPO Y SOFTWARE A UTILIZAR:

95

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

#include <conio.h> #include <graphics.h> #include <math.h> #include <stdlib.h> #include <stdio.h> int xp[2],yp[2],z; void display(int xp[2],int yp[2]); void escala(); void matrixmul(int [4][4]);

void modo_grafico() { int drivergrafico,modografico; int codigoerror; drivergrafico = DETECT; initgraph(&drivergrafico, &modografico, "c:\\bc5\\bgi"); codigoerror= graphresult(); if(codigoerror!=grOk) { printf("la activacion del modo grafico no se llevo a cabo de forma correcta"); } } void main() { modo_grafico(); int i,ch; for(i=0;i<2;i++) 96

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

{ printf("\nDigita el vertice en la coordenada x %d : ",i+1); scanf("%d",&xp[i]); printf("\nDigita el vertice en la coordenada y %d : ",i+1); scanf("%d",&yp[i]); } printf("\nfigura 3d : "); scanf("%d",&z); clrscr(); cleardevice(); display(xp,yp); getche(); do { printf("----- MENU -----"); printf("\n1.Escala."); scanf("%d",&ch); clrscr(); cleardevice(); display(xp,yp); switch(ch) { case 1 : escala(); break; default: outtextxy(1,66,"-selecciona la opcion-"); } } while(ch!=1); getch(); closegraph(); } void escala() { int p[4][4]; int sx,sy,sz,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) p[i][j]=(i==j); printf("\nescala x : "); scanf("%d",&sx); 97

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

printf("\nescala y : "); scanf("%d",&sy); if(sx==0) sx=1; if(sy==0) sy=1; cleardevice(); p[0][0]=sx; sy; p[1][1]=sy; matrixmul(p); }

void display(int xp[2],int yp[2]) { int x3,y3,x4,y4; line(getmaxx()/2,0,getmaxx()/2,getmaxy()); line(0,getmaxy()/2,getmaxx(),getmaxy()/2); rectangle(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+xp[1],getmaxy()/2yp[1]); if(z>=xp[0]) { x3=z+xp[0]; y3=z+yp[0]; x4=z+xp[1]; y4=z+yp[1]; rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } else { x3=xp[0]-z; y3=yp[0]-z; x4=xp[1]-z; y4=yp[1]-z; 98

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

rectangle(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[0],getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+xp[1],getmaxy()/2-yp[1],getmaxx()/2+x4,getmaxy()/2-y4); line(getmaxx()/2+xp[0],getmaxy()/2-yp[1],getmaxx()/2+x3,getmaxy()/2-y4); line(getmaxx()/2+xp[1],getmaxy()/2-yp[0],getmaxx()/2+x4,getmaxy()/2-y3); } } void matrixmul(int a[4][4]) { float res[4][1],b[4][1]; int i,j,k,l; for(i=0;i<2;i++) { b[0][0]=xp[i]; b[1][0]=yp[i]; b[2][0]=z; b[3][0]=1; for(j=0;j<4;j++) { for(k=0;k<1;k++) { res[j][k]=0; for(l=0;l<4;l++) { res[j][k]=res[j][k]+(a[j][l]*b[l][k]); } } } xp[i]=res[0][0]; yp[i]=res[1][0]; } z=res[2][0]; display(xp,yp); }

99

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

void escala() { int p[4][4]; int sx,sy,sz,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) p[i][j]=(i==j); printf("\nEnter The Scaling Factor sx : "); scanf("%d",&sx); printf("\nEnter The Scaling Factor sy : "); scanf("%d",&sy); printf("\nEnter The Scaling Factor sz : "); scanf("%d",&sz); if(sx==0) sx=1; if(sy==0) sy=1; if(sz==0) sz=1; cleardevice(); p[0][0]=sx; sy; p[1][1]=sy; p[2][2]=sz; p[3][3]=1; matrixmul(p); }

100

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

CONCLUSIONES:

BIBLIOGRAFA:

Bsica: Complementaria:

101

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

NOMBRE DE LA PRCTICA: Archivos Secunciales 2 No. DE LA PRCTICA: 1 3 No. DE INTEGRANTES MXIMO POR EQUIPO: 1 No. DE SESIONES: 1

OBJETIVO:

Aplicar las funciones de grabar una estructura en un archivo creado en disco.

MARCO TERICO:

fwrite(&persona,sizeof(alumno),1,archdisco); Como se observa ocupa 4 parmetros que son: Con apuntadores se manejan dos operadores diferentes que son ( * y &) el asterisco como ya se indico se usa para crear una variable apuntador, es decir variables que almacenaran direcciones fsicas de algn lugar de la memoria del computador. Por supuesto tambin que en ese espacio o bodega en memoria se almacenaran datos o informacin, es el operador &(ampersand) quien se usa para accesar a esos datos, ejemplo: Float *pi; // aqui se crea una variable apuntador que guardara la direccin donde se almacenara un valor de tipo float. Si en ese programa, se usa: pi= 3.1416, el compilador protesta porque se esta pretendiendo almacenar un valor float en una variable que solo puede almacenar direcciones de memoria. Pero si es valido &pi=3.1416, es decir cuando usamos el operador ampersand 102

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

estamos trabajando con el contenido de una direccin de memoria, es por eso que: 1.-PRIMER PARAMETRO: fwrite() ocupa primero conocer cuales datos va a almacenar en disco, aqu se le esta indicando que es el dato que se tiene en la direccin de memoria donde esta el registro "alumno". 2.- SEGUNDO PARAMETRO: fwrite(), ocupa conocer cuantos bytes de informacin debe grabar, para esto se tienen dos opciones o se le da el valor exacto por ejemplo 64 bytes o 39 bytes o mas fcil aun se usa sizeof() que regresa el tamao del dato. 3.- TERCER PARAMETRO: fwrite(), necesita conocer tambin cuantas estructuras o registros a la vez debe grabar por lo general es un solo registro, pero mas adelante estudiaran que es posible grabar mas de un registro a la vez y esto es de mucho provecho, porque por ejemplo si en un sistema se ocupa grabar 1000 registros y usamos fwrite() de uno en uno, quiere decir que habra mil accesos a disco. 4.-CUARTO PARAMETRO: fwrite() tambin ocupa conocer exactamente en que cluster, sector y byte exacto del disco duro debe grabar el registro, la primera opcin seria desarmar el disco duro y ver donde hay lugar para poner el archivo o mejor aun usar la variable archdisco que ya tiene esa direccin fsica del archivo en disco.

EQUIPO Y SOFTWARE A UTILIZAR:

PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.

PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:

103

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

1. PROBLEMA: Grabacin de una estructura a un archivo en disco. 2. ANLISIS DEL PROBLEMA: Crear una estructura, entrada de datos, grabar a disco los datos capturados, crear una variable apuntador con el nombre de archdisco que almacenara la direccin fsica de el archivo en disco, en algn cilindro, track sector, donde deber quedar el archivo, posteriormente utilizar la funcin fwrite para la escritura del registro, cerrar el archivo y enviar un mensaje al usuario que ha sido registrado. 3. DISEO DEL ALGORITMO: Con base a la variable apuntador, el programa ha de grabar un registro en el archivo en disco y determinar la salida como sigue: algoritmo 1. Inicio 2. Escribir dame matricula? Leer matricula 3. Escribir nombre? Leer nombre 4. Escribir dame edad? Leer edad Crear archivo archdisco abrir fichero Escribir registro Cerrar fichero(archdisco) Escribir alumno insertado Fin

5. 6. 7. 8. 9.

4. CODIFICACIN. Capture el siguiente cdigo:


#include <iostream.h> #include <stdio.h> #include <conio.h> #include <string.h> struct { int matricula; char nombre[30]; int edad;} alumno; void main() { clrscr(); // captura de campos cout<<"dame matricula :";cin>>(alumno.matricula); cout<<"dame nombre :";gets(alumno.nombre); cout<<"dame edad :";cin>>(alumno.edad);

104

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

// grabando a disco FILE *archdisco; archdisco = fopen("a:\\alumnos.dat","at+"); fwrite(&alumno,sizeof(alumno),1,archdisco); fclose(archdisco); //avisando usuario cout<<"alumno insertado"; getchar(); }

5. Ejecute (correr) el cdigo eligiendo los iconos Compile y Run de la Barra de Herramientas. NOTA: Corregir los errores mostrados por el compilador. 6. Elija del men File la opcin Save as, y escriba el nombre de programa9.cpp en su disco de trabajo (unidad a:) NOTA: Al finalizar todas sus prcticas deber apagar el equipo de cmputo.

CONCLUSIONES:
1. Con apuntadores se manejan dos operadores diferentes que son ( * y &) y

Para que sirve cada uno?


2. Qu inconvenientes tiene el de trabajar con archivos secunciales? 3. Mencione 3 ventajas de los archivos secunciales

BIBLIOGRAFA:

Bsica: Lenguaje de Programacin C B. Kerningham & D. Ritchie Ed. Prentice Hall Complementaria: C++ Iniciacin y referencia Luis Joyanes Aguilar Hctor Castn Rodrguez Ed. Mc. Graw Hill. 105

LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero

Borland C++ Builder 4 Gerard Leblanc Ed. Ediciones

106

También podría gustarte