Your SlideShare is downloading. ×
Programacion redes lengueje C
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Programacion redes lengueje C

163
views

Published on

Programacion redes lengueje C

Programacion redes lengueje C

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
163
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UNIVERSIDAD TECNOLOGICA DE PANAMA FACULTAD DE INGENIERIA DE SISTEMAS COMPUTACIONALES DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS PLAN DE CONTENIDO PROGRAMACIÓN APLICADA II REDES DE SISTEMAS COMPUTACIONALES DEPARTAMENTO 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 Programación II Universidad Tegnológica de Panamá Prof E Batista 1
  • 2. PLAN DE CONTENIDO PROGRAMACIÓN APLICADA II Código de Asignatura: 8358, horas laboratorios 2 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 2
  • 3. I. ARREGLOS, ESTRUCTURAS Y UNIONES 1.1. Arreglos 1.1.1 Definición de un arreglo 1.1.2. Procesamiento de un arreglo 1.1.3. Paso arreglos a funciones 1.1.4. Arreglos y cadenas de caracteres 1.2. Estructuras y Uniones 1.2.1. Definición de una estructura 1.2.2. Procesamiento de una estructura 1.2.3. Tipos de datos definidos por el usuario 1.2.4. Paso de estructura a una función 1.2.5. Estructura auto referenciadas 1.2.6. Uniones 1.2.7. Arreglos de estructuras 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 3
  • 4. 2. PUNTEROS 2.1 Conceptos básicos 2.2 Declaración de punteros 2.3 Paso de funciones a punteros 2.4 Punteros y arreglos unidimensionales 2.5 Operaciones con punteros 2.6 Puntero y arreglos multidimensionales 2.7 Punteros a estructuras 2.8 Paso de funciones a otras funciones 2.9.Asignación dinámica de memoria 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 4
  • 5. 3. CONCEPTOS BÁSICOS DE LA MEMORIA 3.1 Estructura de Memoria 3.2 Segmentación de la Memoria 3.3 Pila Retorno Argumentos de funciones Variables locales 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 5
  • 6. 4. PROGRAMACIÓN A BAJO NIVEL 4.1 Estructura de los registros 4.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_FK 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 6
  • 7. 5. GRAFICOS CON C A BAJO NIVEL 5.1 Introducción 5.2 Estructura de un programa gráfico 5.3 Modalidad de video 5.4 Colores modo texto / gráfico 5.5 Especificaciones de coordenadas 5.6 Funciones gráficas 5.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 Programación II Universidad Tegnológica de Panamá Prof E Batista 7
  • 8. 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 8
  • 9. 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 Programación II Universidad Tegnológica de Panamá Prof E Batista 9
  • 10. REPRESENTACION GRAFICA DE ARREGLOS 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 10
  • 11. Representación de gráfica del arreglo de 3 dimensiones
  • 12. Índice de un arreglo: Todo arreglo está compuesto por un número de elementos. El índice es un número correlativo que indica la posición de un elemento del arreglo. Los índices en C van desde la posición 0 hasta la posición tamaño – 1. Elemento de un arreglo Un elemento de un arreglo es un valor particular dentro de la estructura del arreglo. Para acceder a un elemento del arreglo es necesario indicar la posición o índice dentro del arreglo. Ejemplo: • arreglo[0] //Primer elemento del arreglo
  • 13. USO DE CADENAS OTRAS FORMAS ARREGLO DE UNA DIMENSION EJEMPLO char texto [8] = "abcddddd"; Pero NO se puede hacer una "abcddddd"; asignación de ese tipo en una sentencia: texto = "xyz"; /* ERROR */ En su lugar, hay que emplear "xyz";/* ciertas funciones de biblioteca. Tres formas equivalentes de inicializar una cadena: char hola [5] = { 'h', 'o', 'l', 'a', 0 }; // TIENE 5 ELEMETOS char hola [5] = “ hola ” ; Char utp [30] = “Universidad Tecnológica de Panamá“ ; main() main() { char hola [5] ; // tiene 5 elementos ejemplo if24 hola[0] = ‘h’ ; hola[1] = ‘o’ ; hola[2] = ‘l’ ; hola[3] = ‘a’ ; hola[4] = 0 ; }
  • 14. #include <stdio.h> #include <string.h> #include<math.h> #include<graphics.h> // producto a x b dos matrices // E Batista programa axb void MultiplyAB() { int i ; int j ; int k ; // 1 2 3 --- filas int aMatrix[3][2] = {{1, 1}, {2, 2}, {1, 1}}; // 2 2 2 --- columnas int 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( ); }
  • 15. #include <stdio.h> #include <string.h> #include<math.h> // producto AxB dos matrices, A+B, A-B // E Batista void MultiplyAB() { int i, j, k; // 1 2 3 --- filas int 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*Bn"); 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 matricial printf (" suma de matriz A + Bn" ); 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 resta printf (" Resta de matriz A - Bn" ); 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 Programación II Universidad Tegnológica de Panamá Prof E Batista 18
  • 16. #include <stdio.h> #include <string.h> #include<math.h> // uso ampliado de cadenas. y su formato para impresion // varias forma de definir. PROGRAMA IF24 char 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 ELEMETOS hola[0] = 'h'; hola[1] = 'o'; hola[2] = 'l'; hola[3] = 'a'; hola[4] = 0; printf ( "El texto Hola .... %sn", hola ); printf ( "texto utp....... %sn", utp ); printf ( "texto cedula.... %sn", cedula); printf ( "texto grupo..... %sn", grupo); printf ( "texto estudiante.... %sn", faculta); system("PAUSE"); }
  • 17. Escritura en disco Definir el puntero Utilizar el fopen Definir la extension tipo .txt Utilizar el comando fprint (con formatos) FORMATO: archivo = fopen("C:DATO.TXT","w+"); 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 20
  • 18. COMO ESCRIBIR EN DISCO Y COMO LEER DATOS EN FORMATOS DE TEXTOS. fgets Puntero fclose • (texto tipo chart) • Tiene L/R longitud registro • Tiene un fichero * Puntero • Y se utiliza con fclose, para cerrar el archivo 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 21
  • 19. 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 archivo FILE * fichero; // debe estar en mayúscula y un espacio char texto[80]; main() { // fichero = fopen("c:autoexec.txt", "rt"); // Historicos de fact Fiscal - ruta fichero = fopen("c:BLANCA.txt", "rt"); // TEXTO DE PRUEBA if (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); Programación II Universidad 12/18/2013 Tegnológica de Panamá Prof E Batista } 22
  • 20. Ejemplo como escribir en disco: prog texto3.c #include <stdio.h> #include <stdlib.h> #define pi 3.14 int main (void) { FILE *archivo; // la palabra File en mayuscula archivo = fopen("C:DATO3.TXT","w+"); // ruta del archivo printf("UNIVERSIDAD TECNOLOGIA DE PANAMAn"); fprintf(archivo, "UNIVERSIDAD TECNOLOGICA DE PANAMAn"); printf("ESTUDIANTE Juan Perez de prueban"); fprintf(archivo, "ESTUDIANTE Juan Perez de prueban"); printf("CEDULA 8-99999-77n"); 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 } Programación II Universidad Tegnológica de Panamá Prof E Batista 23
  • 21. 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 VARIABLESn"); fprintf(archivo, "%d %c %f", i, c, f); fprintf(archivo, "nCREAR TEXTO"); fclose(archivo); return 0; } 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 24
  • 22. Usos de estructuras y uniones Tipos estructurados Se pueden definir tipos compuestos de varios elementos o campos de 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
  • 23. Lectura de un arreglo de dos dimensiones x pantalla con scanf (matriz) #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 Programación II Universidad Tegnológica de Panamá Prof E Batista 26
  • 24. archivo = fopen("C:DATO.TXT","w+"); 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 27
  • 25. 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 AB, 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/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 28
  • 26. Continuación del laboratorio no. 1 Utilizar 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 PANAMAn"); // 1 2 3 --- filas // 2 2 2 --- columnas 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( ); } 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 29
  • 27. Continuación del laboratorio no. 1 #include <stdio.h> #include <string.h> // producto AxB dos matrices, A+B, A-B void MultiplyAB() { int i ,j ,k ; // 1 2 3 --- filas // 2 2 2 --- columnas int 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 cero int 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 Panaman"); printf (" Producto matriz A*Bn"); 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 matricial printf (" suma de matriz A + Bn" ); 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 matriz printf (" Resta de matriz A - Bn" ); 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/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 30
  • 28. 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. 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 31
  • 29. 12/18/2013 Programación II Universidad Tegnológica de Panamá Prof E Batista 32