Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero
FECHA DE ELABORACIN:
ENERO 2012
SECRETARIO
Vo. Bo.
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:
MARCO TERICO:
LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero
Primero seleccionamos el rea en donde se quiere importar la imagen como se muestra en la figura siguiente.
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
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
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:
13
LIC. EN INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES MANUAL DE PRCTICAS Programacin Estructurada Semestre Primero
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.
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
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
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:
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
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
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
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
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
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
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
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
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
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);
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
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
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); }
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
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
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
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:
MARCO TERICO:
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
#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
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:
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
#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:
MARCO TERICO:
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
#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
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:
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 (&).
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.
#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
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:
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.
#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:
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.
PC Pentium II con 256 Mb en RAM Borland C++ Versin 5.0 Versin 5.02.
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.
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
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
106