Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida"

Transcripción

1 Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación + ejecución). Debe anotar su solución por escrito en el espacio disponible en este cuestionario. Tiempo para realizar la prueba: 90 minutos. Calificación Enunciado Construya, utilizando ANSI C estándar, dos ejecutables que modelen el siguiente sistema. La simulación constará de un proceso manager que cargará una cadena de la línea de órdenes y encargará su traducción a un conjunto de procesos traduccion. El usuario ejecutará un proceso manager indicándole tres argumentos:./manager <cadena> <num_proc_trad> <tam_max_subv> Este proceso manager cargará cadena en un array de caracteres empleando el punto como separador de elementos. Esta cadena estará formada por números enteros (entre 1 y 57) que tendrán que traducir a caracteres los procesos de traducción (con ayuda de los procesos de puntuación). En num_proc_trad se indicará el número de procesos de traduccion que se lanzarán para traducir el array y tam_max_subv será el tamaño máximo de cada subvector (cada proceso traduccion traducirá del array original suministrado por el cliente un máximo de tamsv elementos). La correspondencia de traducción se resume en la siguiente tabla (la última fila de la tabla es la correspondencia del carácter con su código ASCII necesario para realizar la traducción): Entero Traducción a b... y z A B... Y Z.,!? _ Código ASCII El sistema contará con un único proceso de puntuación que se encargará de traducir los símbolos de puntuación que se corresponderán con los valores enteros del 53 al 57 inclusive. Así, cuando un proceso de traducción encuentre uno de estos valores despertará al proceso de puntuación que escribirá en una variable de memoria compartida el resultado de traducir ese signo de puntuación, volviendo a dormir después de realizar su trabajo. El proceso de traducción leerá ese valor y lo usará en el array del cliente. Los procesos traduccion atenderán peticiones de traducción hasta que el manager les envíe la señal de terminación. En cada petición el proceso manager les indicará el índice de inicio y fin de cada subvector. Los procesos de traducción actualizarán directamente el resultado en el array creado por el manager. Por ejemplo, ante una llamada como:./exec/manager El proceso cliente lanzará dos procesos de traducción que traducirán en 3 partes la cadena de entrada (2 subvectores de tamaño 2, y un subvector de 1 elemento). El resultado de la traducción será el siguiente array de salida en ASCII, con representación en cadena de caracteres "Hola!": Array de entrada Array de salida (ASCII) Representación como caracteres 'H' 'o' 'l' 'a' '!'

2 Resolución Utilice el código fuente suministrado a continuación como plantilla para resolver el ejercicio. Este código no debe ser modificado (salvo la inicialización de los semáforos en el proceso manager). Únicamente debe incorporar su código en la sección indicada. No realice comprobación de errores en los parámetros. El proceso manager se encarga de enviar la señal de terminación a los procesos de traducción y al proceso de puntuación cuando éstos han calculado el sumatorio final. Preste especial atención a lograr el máximo paralelismo posible en la solución. Indique a continuación el valor de inicialización de los semáforos (código en manager.c): Línea de Código Semáforo Uso Inicialización 199 ordenlista Despierta a un proceso de traducción 200 ordenleida Indica al manager que la orden fue leida 201 fin La traducción de un subvector fue realizada 202 mutex Uso exclusivo del proceso de puntuación 203 iniciopun Despierta al proceso de puntuación 204 finpun Espera fin del proceso de puntuación Test de Resultado Correcto Una vez resuelto el ejercicio, si ejecuta el manager con los siguientes argumentos (make test),./exec/manager el resultados debe ser algo similar a (naturalmente cambiará el PID de los procesos de traducción y probablemente el orden de atención de las peticiones):./exec/manager [PID 15245] Ini 0 Fin 1 Traduccion Subvector Ho [PID 15245] Ini 4 Fin 4 Traduccion Subvector! [PID 15246] Ini 2 Fin 3 Traduccion Subvector la Resultado de la Traduccion: Hola! Complete el resultado obtenido de la ejecución con la siguiente lista de argumentos (make solucion):./exec/manager Resultado:

3 Esqueleto de Código Fuente A continuación se muestra el esqueleto de código fuente para resolver el ejercicio. Sólo debe modificar la inicialización de los semáforos e incluir la parte que falta del proceso traductor y el proceso de puntuación. Makefile 1 DIROBJ := obj/ 2 DIREXE := exec/ 3 DIRHEA := include/ 4 DIRSRC := src/ 5 6 CFLAGS := I$(DIRHEA) c Wall std=c99 7 LDLIBS := pthread lrt lm 8 CC := gcc 9 10 all : dirs manager traduccion puntuacion dirs: 13 mkdir p $(DIROBJ) $(DIREXE) manager: $(DIROBJ)manager.o $(DIROBJ)semaforoI.o 16 $(CC) lm o $^ $(LDLIBS) traduccion: $(DIROBJ)traduccion.o $(DIROBJ)semaforoI.o 19 $(CC) o $^ $(LDLIBS) puntuacion: $(DIROBJ)puntuacion.o $(DIROBJ)semaforoI.o 22 $(CC) o $^ $(LDLIBS) $(DIROBJ)%.o: $(DIRSRC)%.c 25 $(CC) $(CFLAGS) $^ o test: 28./exec/manager prueba: 31./exec/manager clean : 34 rm rf *~ core $(DIROBJ) $(DIREXE) $(DIRHEA)*~ $(DIRSRC)*~ globaltp.h 35 #define _POSIX_SOURCE 36 #define _BSD_SOURCE 37 #include <stdio.h> 38 #include <errno.h> 39 #include <string.h> 40 #include <stdlib.h> 41 #include <unistd.h> 42 #include <fcntl.h> 43 #include <math.h> 44 #include <signal.h> 45 #include <sys/mman.h> 46 #include <sys/stat.h> 47 #include <sys/types.h> #include <semaforoi.h> #define SEMORDENLISTA "s_ordenlista" 52 #define SEMORDENLEIDA "s_ordenleida" 53 #define SEMFIN "s_fin" 54 #define MUTEX "s_mutex" #define MEMVECTOR "mc_vector" 57 #define MEMORDEN "mc_orden" #define MEMPUNTUACION "mc_puntuacion" 60 #define SEMPUNTUINI "s_puntuini" 61 #define SEMPUNTUFIN "s_puntufin" #define MAXARRAY struct TDatos_t { 66 char cadena[maxarray]; 67 }; struct TOrden_t { 70 int inicio; 71 int fin; 72 }; enum TipoProceso_t {TRADUCCION, PUNTUACION}; struct TProceso_t { semaforoi.h 1 #ifndef SEMAFOROI_H 2 #define SEMAFOROI_H 3 #include <semaphore.h> 4 5 sem_t *crear_sem (const char *name, 6 unsigned int valor); 7 sem_t *get_sem (const char *name); 8 void destruir_sem (const char *name); 9 void signal_sem (sem_t *sem); 10 void wait_sem (sem_t *sem); 11 #endif 77 enum TipoProceso_t tipo; /* Tipo del proceso: TRADUCCION, PUNTUACION */ 78 pid_t pid; /* PID del proceso hijo */ 79 };

4 semaforoi.c Escuela Superior de Informática 80 #include <stdio.h> 81 #include <errno.h> 82 #include <string.h> 83 #include <stdlib.h> 84 #include <unistd.h> 85 #include <fcntl.h> #include <semaforoi.h> sem_t *crear_sem (const char *name, unsigned int valor) { 90 sem_t *sem; sem = sem_open(name, O_CREAT, 0644, valor); 93 if (sem == SEM_FAILED) { 94 fprintf(stderr, "Error al crear el sem. <%s>: %s\n", 95 name, strerror(errno)); 96 exit(exit_failure); 97 } return sem; 100 } sem_t *get_sem (const char *name) { 103 sem_t *sem; sem = sem_open(name, O_RDWR); 106 if (sem == SEM_FAILED) { 107 fprintf(stderr, "Error al obtener el sem. <%s>: %s\n", 108 name, strerror(errno)); 109 exit(exit_failure); 110 } return sem; 113 } void destruir_sem (const char *name) { 116 sem_t *sem = get_sem(name); /* Se cierra el sem */ 119 if ((sem_close(sem)) == 1) { 120 fprintf(stderr, "Error al cerrar el sem. <%s>: %s\n", 121 name, strerror(errno)); 122 exit(exit_failure); 123 } /* Se elimina el sem */ 126 if ((sem_unlink(name)) == 1) { 127 fprintf(stderr, "Error al destruir el sem. <%s>: %s\n", 128 name, strerror(errno)); 129 exit(exit_failure); 130 } 131 } void signal_sem (sem_t *sem) { 134 if ((sem_post(sem)) == 1) { 135 fprintf(stderr, "Error al modificar el sem.: %s\n", 136 strerror(errno)); 137 exit(exit_failure); 138 } 139 } void wait_sem (sem_t *sem) { 142 if ((sem_wait(sem)) == 1) { 143 fprintf(stderr, "Error al modificar el sem. : %s\n", 144 strerror(errno)); 145 exit(exit_failure); 146 } 147 }

5 manager.c 148 #include "globaltp.h" /* Funciones de soporte */ 151 void crearvector (char *datos, char *arg, int *n); 152 void controlador (int senhal); 153 void liberarrecursos (void); 154 void finalizarprocesos (void); int g_nprocesos; /* Número total de procesos creados */ 157 struct TProceso_t *g_pids; /* Tabla de procesos **/ int main (int argc, char *argv[]) { 160 struct TDatos_t *datos; 161 struct TOrden_t *orden; 162 pid_t pid; int shmmcdatos, shmmcorden, shmmcpunt; 165 sem_t *ordenlista, *ordenleida, *fin; 166 int i, nelementrada, nproctraduccion, tammaximosubvector; 167 int nsubvectores, nsubvectoresprocesados = 0, subvectoractual = 0; /* Instalación del manejador de Control C */ 170 if (signal(sigint, controlador) == SIG_ERR) { 171 fprintf(stderr, "Error al instalar manejador en %s: %s\n", argv[0], strerror(errno)); 172 exit(exit_failure); 173 } nproctraduccion = atoi(argv[2]); /* Numero de procesos de traduccion */ 176 tammaximosubvector = atoi(argv[3]); /* Tamano maximo del subvector */ g_nprocesos = nproctraduccion + 1; 179 g_pids = malloc(sizeof(struct TProceso_t) * (g_nprocesos)); /* Inicialización de la tabla de procesos */ 182 for (i = 0; i < g_nprocesos; i++) { 183 g_pids[i].pid = 0; 184 } shmmcdatos = shm_open(memvector, O_CREAT O_RDWR, 0644); /* Creación de v.m.c. */ 187 ftruncate(shmmcdatos, sizeof(struct TDatos_t)); 188 datos = mmap(null, sizeof(struct TDatos_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcdatos, 0); crearvector(datos >cadena, argv[1], &nelementrada); shmmcorden = shm_open(memorden, O_CREAT O_RDWR, 0644); 193 ftruncate(shmmcorden, sizeof(struct TOrden_t)); 194 orden = mmap(null, sizeof(struct TOrden_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcorden, 0); shmmcpunt = shm_open(mempuntuacion, O_CREAT O_RDWR, 0644); 197 ftruncate(shmmcpunt, sizeof(char)); ordenlista = crear_sem(semordenlista, /* VALOR SEMÁFORO */); /* Creación de semáforos*/ 200 ordenleida = crear_sem(semordenleida, /* VALOR SEMÁFORO */); 201 fin = crear_sem(semfin, /* VALOR SEMÁFORO */); 202 crear_sem(mutex, /* VALOR SEMÁFORO */); 203 crear_sem(sempuntuini, /* VALOR SEMÁFORO */); 204 crear_sem(sempuntufin, /* VALOR SEMÁFORO */); for (i = 0; i < nproctraduccion ; i++) { /* Creación de procesos de traducción */ 207 switch (pid = fork()) { 208 case 1 : /* Código de error */ 209 fprintf(stderr, "Error en creación de proceso TRADUCCION: %s\n", strerror(errno)); 210 finalizarprocesos(); 211 liberarrecursos(); 212 exit(exit_failure); 213 case 0 : /* Proceso hijo */ 214 if (execl("./exec/traduccion", "traduccion", NULL) == 1) { 215 fprintf(stderr, "Error al usar execl() en proceso TRADUCCION: %s\n", strerror(errno)); 216 exit(exit_failure); 217 } 218 break; 219 default: /* Proceso padre */ 220 g_pids[i].tipo = TRADUCCION; 221 g_pids[i].pid = pid; 222 } 223 } 224 printf ("Se han lanzado %d procesos TRADUCCION\n", nproctraduccion); 225 sleep(1); /* Esperamos 1 seg. */ switch (pid = fork()) { /* Creación de proceso de puntuación */ 228 case 1 : /* Código de error */ 229 fprintf(stderr, "Error en creación de proceso PUNTUACION: %s\n", strerror(errno)); 230 finalizarprocesos(); 231 liberarrecursos(); 232 exit(exit_failure);

6 233 case 0 : /* Proceso hijo */ 234 if (execl("./exec/puntuacion", "puntuacion", NULL) == 1) { 235 fprintf(stderr, "Error al usar execl() en proceso PUNTUACION: %s\n", strerror(errno)); 236 exit(exit_failure); 237 } 238 break; 239 default: /* Proceso padre */ 240 g_pids[nproctraduccion].tipo = PUNTUACION; 241 g_pids[nproctraduccion].pid = pid; 242 } 243 printf ("Se ha lanzado 1 proceso PUNTUACION\n"); 244 sleep(1); /* Esperamos 1 seg. */ nsubvectores = ceil(nelementrada / (float) tammaximosubvector); /* Nº subvectores */ while (subvectoractual < nsubvectores) { 249 orden >inicio = (subvectoractual * tammaximosubvector); 250 orden >fin = orden >inicio + tammaximosubvector 1; 251 if (orden >fin > (nelementrada 1)) { 252 orden >fin = nelementrada 1; 253 } subvectoractual++; 256 signal_sem(ordenlista); 257 wait_sem(ordenleida); 258 } while (nsubvectoresprocesados < nsubvectores) { /* Esperar a que todos los subvectores */ 261 wait_sem(fin); /* hayan sido calculados. */ 262 nsubvectoresprocesados++; 263 } printf ("\nresultado de la Traduccion: "); 266 for (i=0; i<nelementrada; i++) { 267 printf ("%c", datos >cadena[i]); 268 } 269 printf("\n"); close(shmmcdatos); /* Cierre de v.m.c. */ 272 close(shmmcorden); 273 close(shmmcpunt); finalizarprocesos(); 276 liberarrecursos(); return EXIT_SUCCESS; 279 } /* Inicializa datos a partir de arg */ 282 void crearvector (char *datos, char *arg, int *n) { 283 int i = 0; 284 char *cad; datos[i] = atoi(strtok(arg, ".")); 287 while ((cad = strtok(null, "."))!= NULL) { 288 datos[++i] = atoi(cad); 289 } *n = ++i; 292 } /* Manejador de señal SIGINT */ 295 void controlador (int senhal) { 296 printf("\nfin del programa (Control + C)\n"); 297 finalizarprocesos(); 298 liberarrecursos(); 299 exit(exit_success); 300 } /* Liberación de recursos */ 303 void liberarrecursos (void) { 304 printf("\n Liberando recursos \n"); 305 free(g_pids); 306 destruir_sem(mutex); destruir_sem(semfin); destruir_sem(semordenlista); 307 destruir_sem(semordenleida); destruir_sem(sempuntuini); destruir_sem(sempuntufin); 308 shm_unlink(memvector); shm_unlink(memorden); shm_unlink(mempuntuacion); 309 } /* Terminación de procesos hijos */ 312 void finalizarprocesos (void) { 313 int i; printf("\n Finalización de procesos hijos vivos \n"); 316 for (i = 0; i < g_nprocesos; i++) { 317 if (g_pids[i].pid!= 0) { /* Proceso hijo vivo */ 318 switch (g_pids[i].tipo) { 319 case TRADUCCION: 320 printf("finalizando proceso TRADUCCION [%d]...\n", g_pids[i].pid); 321 break; 322 case PUNTUACION: 323 printf("finalizando proceso PUNTUACION [%d]...\n", g_pids[i].pid); 324 break; 325 }

7 326 kill(g_pids[i].pid, SIGINT); 327 } 328 } 329 } traduccion.c 330 #include "globaltp.h" int main (int argc, char *argv[]) { 333 int shmmcvec, shmmcorden, shmmcpun; 334 struct TDatos_t *datos; 335 struct TOrden_t *orden; 336 char *ordenpuntuacion; 337 sem_t *ordenlista, *ordenleida, *fin, *mutex; 338 sem_t *iniciopun, *finpun; 339 int i, indiceinicio, indicefin; shmmcvec = shm_open(memvector, O_RDWR, 0644); 342 datos = mmap(null, sizeof(struct TDatos_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcvec, 0); shmmcorden = shm_open(memorden, O_RDWR, 0644); 345 orden = mmap(null, sizeof(struct TOrden_t), PROT_READ PROT_WRITE, MAP_SHARED, shmmcorden, 0); shmmcpun = shm_open(mempuntuacion, O_RDWR, 0644); 348 ordenpuntuacion = mmap(null, sizeof(char), PROT_READ PROT_WRITE, MAP_SHARED, shmmcpun, 0); ordenlista = get_sem(semordenlista); 351 ordenleida = get_sem(semordenleida); 352 fin = get_sem(semfin); 353 mutex = get_sem(mutex); 354 iniciopun = get_sem(sempuntuini); 355 finpun = get_sem(sempuntufin); Incluya aquí el bucle para atender peticiones (Longitud aprox. 25 Líneas de código) Muestre en pantalla información sobre el PID del proceso que ha calculado cada subvector, el inicio y el fin y el resultado parcial de traducción, como en el siguiente ejemplo: [PID 276] Ini 0 Fin 1 Traduccion Subvector Ho 356 return EXIT_SUCCESS; 357 }

8 puntuacion.c Escuela Superior de Informática 358 #include "globaltp.h" int main (int argc, char *argv[]) { Incluya aquí el código del proceso puntuación (Longitud aprox. 20 Líneas de código) 361 return EXIT_SUCCESS; 362 }

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Introducción a Sistemas Operativos: Concurrencia

Introducción a Sistemas Operativos: Concurrencia Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso

Más detalles

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }

Más detalles

Taller de Sistemas Operativos Introducción

Taller de Sistemas Operativos Introducción Taller de Sistemas Operativos Introducción Escuela de Ingeniería Civil en Informática Universidad de Valparaíso, Chile http:// Conceptos generales 2 Proceso stdin Descriptor Flujo (FILE*) 0 stdout 1 Proceso

Más detalles

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria. Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea

Más detalles

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele

Más detalles

Examen Principios de Programación Febrero 2012

Examen Principios de Programación Febrero 2012 Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. / OBJETIVOS Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. LABORATORIO 6 MANEJO DE ARCHIVOS DE TEXTO Y BINARIOS Msc. Walter Fernandez

Más detalles

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente: (3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores

Más detalles

Ejercicios de la sesión 4 de C resueltos

Ejercicios de la sesión 4 de C resueltos Ejercicios de la sesión 4 de C resueltos 1. Usando el procedimiento del ejercicio 2 del seminario anterior, escribe un programa que multiplique dos matrices A y B leídas de ficheros, la primera de tamaño

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

Más detalles

Práctica 8: Barreras

Práctica 8: Barreras Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Objetivos Aprender a utilizar las variables condición y las barreras de la biblioteca Pthreads. Diseñar e implementar una barrera: Barrera

Más detalles

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Anjuta es un entorno de desarrollo de C que podemos encontrar en cualquier distribución de GNU/Linux. Si nuestra distribución no dispone de ella,

Más detalles

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado); Práctica de gsoap Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: http://atc.ugr.es/pedro/docencia/irhc/irhc.html

Más detalles

Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C.

Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C. Práctica 2: Realización de una Alarma Temporizada David Jesús Horat Flotats Índice I. Explicación del Programa desarrollado... 2 Programa Principal... 2 Variables Tarea que realiza Parámetros Movimiento

Más detalles

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular.

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular. : Programación 2 Curso 2014-2015 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación

Más detalles

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio. 1. Cuestiones Enunciado Febrero 04. Ejercicio Tercero. (2 puntos 30 minutos) Resolver los siguientes problemas indicando, en la parte inferior, cual es el resultado de cada programa. En caso de que el

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Tema 9. Vectores y Matrices

Tema 9. Vectores y Matrices Tema 9. Vectores y Matrices OBJETIVO En temas anteriores hemos declarado variables simples de tipo int, float, o de cualquier otro tipo simple. A menudo necesitaremos declarar una colección de variables,

Más detalles

Problemas de Redes de Computadores. Conjunto de problemas 1

Problemas de Redes de Computadores. Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

Esquema de un programa en C: bloques básicos

Esquema de un programa en C: bloques básicos Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Se ha desarrollado el siguiente programa principal. Se pide: arquitectura que permita una fácil extensión

Se ha desarrollado el siguiente programa principal. Se pide: arquitectura que permita una fácil extensión APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial ASIGNATURA: SISTEMAS

Más detalles

ARQUITECTURA DE REDES Laboratorio

ARQUITECTURA DE REDES Laboratorio 1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 4: Ejercicios de aplicación de HTTP 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados

Más detalles

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN 4.1 Definiciones y palabras reservadas básicas del C El lenguaje C++ está compuesto por: 32 palabras clave (estándar ANSI), comunes a todos los compiladores de

Más detalles

Funciones POSIX (I): Introducción

Funciones POSIX (I): Introducción Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria

Más detalles

Introducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada.

Introducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada. Grupo de Sistemas y Comunicaciones gsyc-profes@gsyc.es Febrero 2008 C 1 C Características: Programación imperativa estructurada. Relativamente de bajo nivel. Lenguaje simple, la funcionalidad está en las

Más detalles

Programación I Funciones

Programación I Funciones 1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad

Más detalles

Arquitectura de Computadores: Exámenes y Controles

Arquitectura de Computadores: Exámenes y Controles 2º curso / 2º cuatr. Grado en Ing. Informática Doble Grado en Ing. Informática y Matemáticas Arquitectura de Computadores: Exámenes y Controles Examen de Prácticas AC 05/07/2013 resuelto Material elaborado

Más detalles

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8 TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN

Más detalles

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)

Más detalles

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de

Más detalles

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas: 1 Introducción LABORATORIO 2 En esta tarea se desea implementar un servicio sincronización de procesos a través de semáforos binarios con prioridad para el sistema operativo Linux. Para esto se deberá

Más detalles

!! Identificar las señales que llegan a la consola.

!! Identificar las señales que llegan a la consola. Objetivos TEMA 9 Gestión de Errores y Excepciones!! Describir el mecanismo de gestión de señales en Windows API y la gestión de excepciones.!! Identificar las señales que llegan a la consola. Estudio de

Más detalles

Seminario 1. Conexión a Oracle

Seminario 1. Conexión a Oracle Seminario 1. Conexión a Oracle Laboratorio de Programación Curso 2007/2008 Fran J. Ruiz Emilio Sobreviela Diseño E/R usuario contrasena Usuarios 1:1 es id_cliente nombre 1:1 Clientes apellidos edad 1 Creación

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

Más detalles

Ejercicio Sockets Suma Resta. Descripción

Ejercicio Sockets Suma Resta. Descripción Ejercicio Sockets Suma Resta Siguiendo con nuestra propuesta de construir embriones de servicios, como hemos hecho en la práctica programando un embrión de Telnet, un embrión de cliente de un servidor

Más detalles

Diagrama de transiciones del autómata. Tabla de transiciones

Diagrama de transiciones del autómata. Tabla de transiciones Universidad Nacional Autónoma de México Facultad de Ingeniería Compiladores Grupo 4, Semestre 2016-1 Analizador Léxico en C Diagrama de transiciones del autómata letra letra 1 0 3 e 4 5 6 e 2 espacio Tabla

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Cálculo

Más detalles

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución

Más detalles

El lenguaje C: Elementos básicos del lenguaje

El lenguaje C: Elementos básicos del lenguaje Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática II El lenguaje C: Elementos básicos del lenguaje Este material debe utilizarse

Más detalles

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato Contenido Introducción...1 Dato...1 Valor...1 Tipo de Dato...2 Tipo Abstracto

Más detalles

EDITRAN/TR. Windows/Unix. Manual de referencia

EDITRAN/TR. Windows/Unix. Manual de referencia EDITRAN/TR Windows/Unix Manual de referencia INDRA 30 de octubre de 2014 ÍNDICE 1. INTRODUCCIÓN.... 1-1 2. INTERFAZ DE PROGRAMACIÓN.... 2-1 2.1. DESCRIPCION... 2-1 2.2. FUNCIONES DE ENVIO Y RECEPCION...

Más detalles

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática Tema 7 Fundamentos de Informática Índice 1. Qué es un vector? 2. Vectores unidimensionales 3. Cadenas de caracteres 4. Paso de vectores unidimensionales a funciones. 5. Vectores multidimensionales: matrices

Más detalles

Reglas básicas de la programación en lenguaje C

Reglas básicas de la programación en lenguaje C 0. Introducción Reglas básicas de la programación en lenguaje C ISO - SO Departament d'arquitectura de Computadors Universitat Politècnica de Catalunya C es un lenguaje de programación de propósito general.

Más detalles

Sistemas Operativos Práctica 4

Sistemas Operativos Práctica 4 Sistemas Operativos Práctica 4 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Programación en Paralelo con MPI en Clusters Linux

Programación en Paralelo con MPI en Clusters Linux Programación en Paralelo con MPI en Clusters Linux Francisco Javier Rodríguez Arias 13 de marzo de 2006 Problema y Motivación En física se requiere hacer muchos cálculos. Para eso se hacen programas de

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas Ejercicios Tema 4 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira SOLUCIONES 1. Escriba un programa en C que

Más detalles

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1 Grupos Realización Entrega/Evaluación Lunes 22 de Febrero, 1, 8, 15 de Marzo 22 de Marzo Martes 23 de Febrero, 2, 9 y 16 de Marzo 23 de Marzo Miércoles 24 de Febrero, 3, 10 y 17 de Marzo 24 de Marzo Viernes

Más detalles

Tema: Arreglos de Objetos en C++.

Tema: Arreglos de Objetos en C++. Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.

Más detalles

Bloque I: Principios de sistemas operativos

Bloque I: Principios de sistemas operativos Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTOS DE PROGRAMACIÓN FUNDAMENTOS DE PROGRAMACIÓN Sabino Miranda Jiménez Universidad Autónoma del Estado de México (UAEM) Apuntadores (1) Un apuntador es una variable que contiene la dirección de una ora variable Generan código

Más detalles

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0 1 er Cuatrimestre de 2011 FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0 Índice 1. Objetivo 2 2. Preparación del software 2 2.1. Instalación.......................................

Más detalles

Objective C (Desarrollo con Apple)

Objective C (Desarrollo con Apple) 1 Objective C (Desarrollo con Apple) para programación en Iphone SDK: Similitudes y Diferencias entre Objective C con C/C++ y Java Dr. Moisés Alencastre Miranda, malencastre@itesm.mx 2 Introducción al

Más detalles

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

Tema 5 Sentencias de control de flujo. Fundamentos de Informática Tema 5 Fundamentos de Informática Sentencias de Control Tipos de sentencias de control: Comprobación lógica para bifurcar el flujo de un programa. Sentencias de control condicional o alternativo Comprobación

Más detalles

Contenido. Capítulo 1. Introducción a lenguaje C 1

Contenido. Capítulo 1. Introducción a lenguaje C 1 Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje

Más detalles

Instituto Politécnico Nacional

Instituto Politécnico Nacional Instituto Politécnico Nacional Secretaria Académica Dirección de Estudios Profesionales Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan Ingeniería en Comunicaciones y Electrónica Academia

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Programación estructurada Estructuras condicionales La sentencia if La cláusula else Encadenamiento y anidamiento El operador condicional?: La sentencia switch Estructuras repetitivas/iterativas

Más detalles

Práctica 0 Introducción a la programación en C

Práctica 0 Introducción a la programación en C DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES OBJETIVO Grado en Ingeniería de Computadores COMPUTACIÓN DE ALTAS PRESTACIONES Práctica 0 Introducción a la programación en C Se pretende

Más detalles

Arrays y Cadenas en C

Arrays y Cadenas en C Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Lenguaje C Funciones Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Qué es una función o rutina/subrutina? Se presenta como un subalgoritmo

Más detalles

APRENDE A CREAR UNA PÁGINA WEB CON HTML

APRENDE A CREAR UNA PÁGINA WEB CON HTML APRENDE A CREAR UNA PÁGINA WEB CON HTML Introducción a PHP INTRODUCCIÓN PHP es una lenguaje de programación del lado del servidor. En este curso, lo usaremos para recibir los datos de un formulario, realizar

Más detalles

LENGUAJE ANSI C Guía de referencia

LENGUAJE ANSI C Guía de referencia Apéndice W2 LENGUAJE ANSI C Guía de referencia C.1. Elementos básicos de un programa El lenguaje C fue desarrollado en Bell laboratories para su uso en investigación y se caracteriza por un gran número

Más detalles

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Procesos 1 / 31 Concepto de proceso Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Un proceso es un programa en ejecución Una instancia de un programa corriendo en un

Más detalles

[Cuestión 1.]Resuelva con una orden UNIX las siguientes tareas:

[Cuestión 1.]Resuelva con una orden UNIX las siguientes tareas: [Cuestión 1.]Resuelva con una orden UNIX las siguientes tareas: Apartado a.- Copie todas las rutas de los directorios donde el intérprete de comandos busca los programas ejecutables al final del fichero

Más detalles

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura.

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura. FICHEROS El sistema de archivos de C está diseñado para secuencias que son independientes del dispositivo. Existen dos tipos se secuencias: de texto que es una ristra de caracteres organizados en líneas

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Informática I. While & do While

Informática I. While & do While Asignatura: Informática I Trabajo práctico Nº5 While & do While Estructura repetitiva MIENTRAS o while En C la sentencia while (condición o expresión) instrucciones; es seguramente la más utilizada. La

Más detalles

Una introducción al compilador C de GNU

Una introducción al compilador C de GNU Una introducción al compilador C de GNU Héctor Adrián Valdecantos Departamento de Ciencias de Computación Facultad de Ciencias Exactas y Tecnología - UNT Materia: Programación Carrera: Programador Universitario

Más detalles

ARCHIVOS. 1. Introducción. 2. Definición de archivo. 3. Archivos de acceso secuencial. 4. Gestión de un archivo secuencial de estructuras

ARCHIVOS. 1. Introducción. 2. Definición de archivo. 3. Archivos de acceso secuencial. 4. Gestión de un archivo secuencial de estructuras ARCHIVOS 1. Introducción 2. Definición de archivo 3. Archivos de acceso secuencial 3.1. fopen 3.2. fclose 3.3. fcloseall 3.4. putc 3.5. getc 3.6. fscanf 3.7. fprintf 4. Gestión de un archivo secuencial

Más detalles

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I Vectores y matrices Fundamentos de Programación Fundamentos de Programación I 1 Ejemplo de utilización n de vectores: gráfico de producción En una compañía nos han encargado escribir un programita que

Más detalles

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos.

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. 1.-Considerar los siguientes procesos con los tiempos de llegadas, prioridades y ráfagas de cpu. Proceso Ráfaga de CPU Prioridad Tiempo

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Proyecto I Autores: Lairon Acosta. Carnet: 09-10927 Jueves

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 11 Nombre: Manejo de archivos Contextualización En los lenguajes de programación estructurada como C, que carecían de una conexión a base

Más detalles

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Estructuras de Datos y Algoritmos Tecnólogo en Informática Estructuras de Datos y Algoritmos Tecnólogo en Informática INSTRUCTIVO DEL COMANDO MAKE ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 Contenido Introducción... 3 El archivo makefile...

Más detalles

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Informática I Código 2547100 Semestre 2014-2 Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Programming tools Editor de texto (gedit, kate, vim, wordpad, etc):

Más detalles

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL Clase No. 5: Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL MAT 251 Dr. Alonso Ramírez Manzanares CIMAT, A.C. e-mail: alram@ cimat.mx

Más detalles

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10)

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10) Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10) Calendario Comienzo: Lunes 19 de octubre y miércoles 21 de octubre. Entrega: 2 de noviembre y 4 de noviembre,

Más detalles

Llamadas al sistema básicas de control de procesos

Llamadas al sistema básicas de control de procesos Actividad 7 (v. 16046) Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos lsi.vc.ehu.es/pablogn Llamadas al sistema básicas de control de procesos Observa, analiza y prueba los programas:

Más detalles

//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) {

//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) { Solución 4: /******************************************************** * * Este programa permite visualizar ficheros iv (vrml) * ********************************************************/ //Según el sistema

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Preguntas cortas Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde

Más detalles

Codificación en C. Como pasar de Pseudocódigo a C (con pequeños trucos de C++)

Codificación en C. Como pasar de Pseudocódigo a C (con pequeños trucos de C++) Codificación en C Como pasar de Pseudocódigo a C (con pequeños trucos de C++) Plantilla Librerias Constantes Algoritmo #include #include #define PI 3.1416 int main(void){ /*Variables*/

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles