View
187
Download
1
Embed Size (px)
Citation preview
UNIVERSIDAD TECNOLOGICA DE PANAMAFACULTAD DE INGENIERIA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADOR AS PLAN DE CONTENIDO PROGRAMACIÓN APLICADA II
REDESDE SISTEMAS COMPUTACIONALESDEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
• PLAN DE CONTENIDO PROGRAMACIÓN APLICADA II
• PRESENTADO POR:
• Profesor: Ing.Emilio Batista Him
• Código de Asignatura: 8358, horas laboratorios 2
• Horas de clases 3
12/18/2013 1Programación II Universidad Tegnológica de Panamá Prof E Batista
12/18/2013Programación II Universidad Tegnológica de Panamá Prof E Batista 2
PLAN DE CONTENIDO PROGRAMACIÓN
APLICADA II
Código de Asignatura: 8358, horas laboratorios 2
I. ARREGLOS, ESTRUCTURAS Y UNIONES
1.1. Arreglos1.1.1 Definición de un arreglo
1.1.2. Procesamiento de un arreglo1.1.3. Paso arreglos a funciones1.1.4. Arreglos y cadenas de caracteres
1.2. Estructuras y Uniones1.2.1. Definición de una estructura
1.2.2. Procesamiento de una estructura1.2.3. Tipos de datos definidos por el usuario
1.2.4. Paso de estructura a una función1.2.5. Estructura auto referenciadas
1.2.6. Uniones1.2.7. Arreglos de estructuras
12/18/2013 3Programación II Universidad Tegnológica de Panamá Prof E Batista
2. PUNTEROS2.1 Conceptos básicos2.2 Declaración de punteros2.3 Paso de funciones a punteros2.4 Punteros y arreglos unidimensionales2.5 Operaciones con punteros2.6 Puntero y arreglos multidimensionales2.7 Punteros a estructuras2.8 Paso de funciones a otras funciones2.9.Asignación dinámica de memoria
12/18/2013 4Programación II Universidad Tegnológica de Panamá Prof E Batista
3. CONCEPTOS BÁSICOS DE LA MEMORIA3.1 Estructura de Memoria3.2 Segmentación de la Memoria3.3 Pila
� Retorno� Argumentos de funciones� Variables locales
12/18/2013 5Programación II Universidad Tegnológica de Panamá Prof E Batista
4. PROGRAMACIÓN A BAJO NIVEL
4.1 Estructura de los registros4.2 Interrupciones del BIOS
�Interrupciones de video�Interrupciones de teclado�Interrupciones de disco�Interrupciones de base del disco�Interrupciones de Comunicación Serial
4.3Sub-Rutinas Misceláneas�Manejo de cadenas�Manejo de Memoria�Entrada / Salida (archivos)�Impresión
4.4. Función MK_FK12/18/2013 6
Programación II Universidad Tegnológica de Panamá Prof E Batista
5. GRAFICOS CON C A BAJO NIVEL 5.1 Introducción5.2 Estructura de un programa gráfico5.3 Modalidad de video5.4 Colores modo texto / gráfico5.5 Especificaciones de coordenadas5.6 Funciones gráficas5.7 Concepto
�Relativas a la configuración�Relativas a las coordenadas�Referente al uso de paletas�Para obtener o poner atributos
5.8 Creación de una máscara
12/18/2013 7Programación II Universidad Tegnológica de Panamá Prof E Batista
Arreglos:Un arreglo o array (en inglés) es una colección de variables relacionadas a las que se hace referencia por medio de un nombre común. Otra definición válida es que un arreglo es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo nombre y para diferenciar los elementos de un arreglo se utiliza un índice. En el lenguaje C un arreglo se le conoce como un tipo de dato compuesto. Los arreglos pueden tener una o varias dimensiones.
12/18/2013 9Programación II Universidad Tegnológica de Panamá Prof E Batista
REPRESENTACION GRAFICA DE ARREGLOS
12/18/2013 10Programación II Universidad Tegnológica de Panamá Prof E Batista
Índice de unarreglo:Todo arreglo está compuesto por un número deelementos. El índice es un número correlativo queindica la posición de un elemento del arreglo. Los índicesen C van desde la posición 0 hasta laposición tamaño – 1.
Elemento de unarregloUn elemento de un arreglo es un valor particular dentrode la estructura del arreglo. Para acceder a unelemento del arreglo es necesario indicar la posición oíndice dentro del arreglo. Ejemplo:• arreglo[0] //Primer elemento del arreglo
USO DE CADENAS OTRAS FORMASUSO DE CADENAS OTRAS FORMAS
ARREGLO DE UNA DIMENSION EJEMPLOARREGLO DE UNA DIMENSION EJEMPLOcharchar texto [8] = "texto [8] = "abcdddddabcddddd";"; Pero NO se puede hacer una Pero NO se puede hacer una
asignación de ese tipo en una sentencia:asignación de ese tipo en una sentencia:texto = "texto = "xyzxyz";";/* ERROR *//* ERROR */ En su lugar, hay que emplear En su lugar, hay que emplear
ciertas funciones de biblioteca.ciertas funciones de biblioteca.Tres formas equivalentes de inicializar una cadena:Tres formas equivalentes de inicializar una cadena:
charchar hola [5] = { 'h', 'o', 'l', 'a', 0 }; // TIENE 5 ELEMETOShola [5] = { 'h', 'o', 'l', 'a', 0 }; // TIENE 5 ELEMETOScharchar hola [5] = “ hola ” ;hola [5] = “ hola ” ;
CharChar utputp [30] = “Universidad Tecnológica de Panamá“ ;[30] = “Universidad Tecnológica de Panamá“ ;mainmain()(){{
charchar hola [5] ; // tiene 5 elementos ejemplo if24hola [5] ; // tiene 5 elementos ejemplo if24hola[0] = ‘h’ ;hola[0] = ‘h’ ;hola[1] = ‘o’ ;hola[1] = ‘o’ ;hola[2] = ‘l’ ;hola[2] = ‘l’ ;hola[3] = ‘a’ ;hola[3] = ‘a’ ;hola[4] = 0 ;hola[4] = 0 ;
}}
#include <stdio.h>#include <string.h>#include<math.h>#include<graphics.h>// producto a x b dos matrices // E Batista programa axbvoid MultiplyAB() {int i ;int j ;int k ;// 1 2 3 --- filasint aMatrix[3][2] = {{1, 1}, {2, 2}, {1, 1}};// 2 2 2 --- columnasint bMatrix[2][3] = {{1, 1, 1}, {1, 1, 2}};int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};for ( i = 0; i < 3; i++) {for ( j = 0; j < 3; j++) {
for ( k = 0; k < 2; k++) {product[i][j] += aMatrix[i][k] * bMatrix[k][j];
}printf (" %d", product[i][j] );
}printf (" \n");
}}
void main() {MultiplyAB();getchar( );
}
#include <stdio.h>#include <string.h>#include<math.h>// producto AxB dos matrices, A+B, A-B // E Batistavoid MultiplyAB() {int i, j, k;// 1 2 3 --- filasint aMatrix[3][3] = {{1,1,1 }, {1,1,1 }, {1,1,1 }};int bMatrix[3][3] = {{1,1,1 }, {1,1,1 }, {1,1,1 }};int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};int restaAB[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}; // resta o suma: iniciarizamos en cero
int sumaAB[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};printf (" Universidad Tecnologica de Panama \n");printf (" Producto matriz A*B\n");for ( i = 0; i < 3; i= i+1) {for ( j = 0; j < 3; j= j+1) {
for ( k = 0; k < 3; k= k+1) {product[i][j] += aMatrix [i] [k] * bMatrix [k] [j];
}printf (" %d", product [i] [j] );
}printf (" \n");
}// A continuaci¢n se realiza la suma matricialprintf (" suma de matriz A + B\n" );for (i =0 ; i <3 ; i=i+1){for (j =0 ; j <3 ; j=j+1){restaAB[i][j] = aMatrix [i ][j] – bMatrix [i] [j];sumaAB[i][j] = aMatrix [i] [j] + bMatrix [i] [j];printf (" %d", sumaAB [i] [j] );}printf (" \n"); }
// A continuaci¢n se imprime restaprintf (" Resta de matriz A - B\n" );for (i =0 ; i <3 ; i= i+1) {for (j =0 ; j <3 ; j= j+1) {
restaAB[i][j] =0;sumaAB[i][j] = 0;product[i][j] = 0;printf (" %d", restaAB [i] [j] );
}printf (" \n");
}}
//-------------void main() {
MultiplyAB();getchar( );}
12/18/2013 18Programación II Universidad Tegnológica de Panamá Prof E Batista
#include <stdio.h>#include <string.h>#include<math.h>// uso ampliado de cadenas. y su formato para impresion// varias forma de definir. PROGRAMA IF24char hola [5] = { 'h', 'o', 'l', 'a', 0 };// char hola [5] = "hola ";
char utp [35] = "Universidad Tecnológica de Panamá" ;char estudiante [30] = "Blanca azucar gonzalez" ;char cedula [15] = "1234567890" ;char grupo [15] = "I703 o i702" ;char faculta [30] = "facultad de ing. industrial " ;
main(){char hola [5]; // TIENE 5 ELEMETOShola[0] = 'h';hola[1] = 'o';hola[2] = 'l';hola[3] = 'a';hola[4] = 0;printf ( "El texto Hola .... %s\n", hola );printf ( "texto utp....... %s\n", utp );printf ( "texto cedula.... %s\n", cedula);printf ( "texto grupo..... %s\n", grupo);printf ( "texto estudiante.... %s\n", faculta);system("PAUSE");}
Escritura en disco
� Definir el puntero� Utilizar el fopen� Definir la extensiontipo .txt� Utilizar el comando fprint (con formatos)� FORMATO:�archivo = fopen("C:\\DATO.TXT","w+");
12/18/2013 20Programación II Universidad Tegnológica de Panamá Prof E Batista
COMO ESCRIBIR EN DISCO Y COMO LEER DATOSEN FORMATOS DE TEXTOS.
fgets
• (texto tipo chart)
• Tiene L/R longitud registro
Puntero• Tiene un fichero * Puntero
fclose
• Y se utiliza con fclose, para cerrar el archivo
12/18/2013 21Programación II Universidad Tegnológica de Panamá Prof E Batista
VER EJEMPLO: LECTURA DE TEXTOS
// formato fgets(texto, 80, fichero);#include<stdio.h>// file * , donde * es un puntero para acceder al archivo de texto – ruta del archivoFILE * fichero; // debe estar en mayúscula y un espaciochar texto[80];main(){// fichero = fopen("c:\\autoexec.txt", "rt"); // Historicos de fact Fiscal - rutafichero = fopen("c:\\BLANCA.txt", "rt"); // TEXTO DE PRUEBAif (fichero == NULL){printf("No existe el fichero ? o file ubicado disco C: raiz \n");exit(1);
}while (! feof(fichero)) // repetimos la lectura hasta encontrar fin de archivo{fgets(texto, 80, fichero);printf("%s", texto);}
fclose(fichero);} 12/18/2013 22
Programación II Universidad Tegnológica de Panamá Prof E Batista
Ejemplo como escribir en disco: prog texto3.c#include <stdio.h>#include <stdlib.h>#define pi 3.14int main (void){FILE *archivo; // la palabra File en mayusculaarchivo = fopen("C:\\DATO3.TXT","w+"); // ruta del archivoprintf("UNIVERSIDAD TECNOLOGIA DE PANAMA\n");fprintf(archivo, "UNIVERSIDAD TECNOLOGICA DE PANAMA\n");printf("ESTUDIANTE Juan Perez de prueba\n");fprintf(archivo, "ESTUDIANTE Juan Perez de prueba\n");printf("CEDULA 8-99999-77\n");fprintf(archivo, "CEDULA 8-99999-77");printf("prueba de impresion en disco C: \n");fprintf(archivo,"prueba de impresion en disco C:\n");
printf("FIN DEL PROGRAMA texto3 \n");fprintf(archivo,"FIN DEL PROGRAMA texto3 \n");fclose(archivo);getch();} 12/18/2013 23
Programación II Universidad Tegnológica de Panamá Prof E Batista
Escribir en disco programa texto4#include<stdio.h>#include<conio.h>#include<math.h>#include <string.h>
int main(void){FILE *archivo;int i = 100;char c = 'C';float f = 1.234;
archivo = fopen("C:\\DATO.TXT","w+");fprintf(archivo,"AGREGAR VARIABLES\n");fprintf(archivo, "%d %c %f", i, c, f);
fprintf(archivo, "\nCREAR TEXTO");fclose(archivo);return 0;}
12/18/2013 24Programación II Universidad Tegnológica de Panamá Prof E Batista
Usos de estructuras y unionesUsos de estructuras y unionesTipos estructuradosSe pueden definir tipos compuestos de varios elementos o camposde tipos más simples.La sintaxis es:struct nombre_del_tipo { campo1; campo2;…..campoN;}; Las variables de ese tipo se declaran así:
struct nombre_de_tipo variable;y para acceder a un campo de una variable estructurada,se utiliza esta sintaxis:variable.campo Ejemplo: if16.exe DATOS ESTRUCTURADOS
#include<stdio.h> // lectura por pantalla : (teclado)main(){int matriz[4][3], i, j;printf("\n Visualización de la matriz:");printf("\n===========================\n");printf("\n entre los valor i,j matriz =\n");for(i=0;i<4;i=i+1)
{for(j=0;j<3;j=j+1)
{// comentario leemos la matriz (i+j)
scanf("%d", &matriz[i][j]);}
printf("\n");}printf("\n Fin del programa. matriz 4x3..\n");
12/18/2013 26Programación II Universidad Tegnológica de Panamá Prof E Batista
Lectura de un arreglo de dos dimensiones x pantalla con scanf (matriz)
12/18/2013Programación II Universidad Tegnológica de Panamá Prof E Batista 27
archivo = fopen("C:\\DATO.TXT","w+");
12/18/2013Programación II Universidad Tegnológica de Panamá Prof E Batista 28
Que el estudiante aplique los conceptos de manipulación de arreglos en dos dimensiones de la forma AB[i][j], cargar los datos en forma fija, o en forma de entrada de datos por medio del scanf, la utilización del :
for ( i = 0; i < n; i=i+1).Confeccione un programa en lenguaje C,
que pueda sumar los arreglos de A+ B, Restar A-B, y realizar el producto de A* B, y al final imprimir los datos en pantalla,y por ultimo, generar los datos en disco c:
archivo = fopen("C:\\DATO.TXT","w+");
12/18/2013Programación II Universidad Tegnológica de Panamá Prof E Batista 29
Continuación del laboratorio no. 1Utilizar las rutinas:#include<math.h> // producto a x b dos matrices, programa: AXB
void MultiplyAB() {int i , j , k ;int aMatrix[3][2] = {{1, 1}, {1, 1}, {1, 1}};int bMatrix[2][3] = {{1, 1, 1}, {1, 1, 2}};int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};// creamos el archivo para texto// FILE *archivo ;// archivo = fopen("C:\\arreglo5.TXT","w+");printf("UNIVERSIDAD TECNOLOGIA DE PANAMA\n");// 1 2 3 --- filas// 2 2 2 --- columnasfor ( i = 0; i < 3; i++) {for ( j = 0; j < 3; j++) {
for ( k = 0; k < 2; k++) {product[i][j] += aMatrix[i][k] * bMatrix[k][j];
}printf (" %d", product[i][j] );
}printf (" \n");
}}
Void main ( ) {MultiplyAB( );getchar( ); }
12/18/2013Programación II Universidad Tegnológica de Panamá Prof E Batista 30
Continuación del laboratorio no. 1
#include <stdio.h>#include <string.h> // producto AxB dos matrices, A+B, A-Bvoid MultiplyAB() {int i ,j ,k ;// 1 2 3 --- filas// 2 2 2 --- columnasint aMatrix[3][3] = {{1,1,1 }, {1,1,1 }, {1,1,1 }};int bMatrix[3][3] = {{1,1,1 }, {1,1,1 }, {1,1,1 }};int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};// resta o suma: iniciarizamos en ceroint restaAB[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};int sumaAB[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};// -------------------------------------printf (" Universidad Tecnologica de Panama\n");printf (" Producto matriz A*B\n");
for ( i = 0; i < 3; i=i+1) {for ( j = 0; j < 3; j=j+1) {
for ( k = 0; k < 3; k=k+1) {product[i][j] += aMatrix[i][k] * bMatrix[k][j];
}printf (" %d", product[i][j] );
}printf (" \n") ; }
// A continuacion se realiza la suma matricialprintf (" suma de matriz A + B\n" );for (i =0 ; i <3 ; i=i+1) {for (j =0 ; j <3 ; j=j+1) {
restaAB[i][j] = aMatrix[i][j] - bMatrix[i][j];sumaAB[i][j] = aMatrix[i][j] + bMatrix[i][j];
printf (" %d", sumaAB[i][j] );}
printf (" \n");}
// A continuacion se imprime la resta de matrizprintf (" Resta de matriz A - B\n" );for (i =0 ; i <3 ; i=i+1) {for (j =0 ; j <3 ; j=j+1) {
printf (" %d", restaAB[i][j] );}printf (" \n");}}
//-------------void main ( ) {
MultiplyAB();getchar( ); // esperamos el intro
}
12/18/2013Programación II Universidad Tegnológica de Panamá Prof E Batista 31
Continuación del laboratorio no. 1
Presentación del informe o taller de laboratorio:
� Primera hora de presentación, Universidad Tecnológica de Panamá, Nombre del estudiante, cedula, numero del grupo y código de materia, fecha completa, nombre del curso, nombre del profesor, año académico.� Introducción: explicación y objetivo del laboratorio.� Materiales utilizados, y equipos� Descripción de variables utilizadas en el programa.� Copia del código fuente en lenguaje C, con sus respectivos comentarios� Copia de las imágenes de corrida del programa, pantallas de entradas de datos, salidas de pantallas de datos, y copia de salida del texto generado en disco en formato txt, utilizando la instrucción file open para uso de disco.� Glosario de 10 palabras relacionadas con arrays, vectores, del capitulo 1� Conclusión del proyecto de laboratorio.