ET1032 Informática Industrial
|
|
|
- Juan Francisco Ortega Paz
- hace 7 años
- Vistas:
Transcripción
1 ET1032 Informática Industrial 7 de julio de 2017 Soluciones al examen. NOTA: El nivel de detalle con que se responde a las preguntas en este documento no es el que se requiere ni se espera para la calificación de los ejercicios. Al redactar este documento se pretende dar información más amplia y completa con fines documentales y didácticos. Pregunta 1. (1,5 puntos) Indica justificadamente el valor de la variable res después de ejecutar el código que aparece a continuación. char *res, *el = "el" char *txt = "La frase del ejemplo y el ejercicio"; res = txt; while (*res!= '\0') if (res == el) break; res++; res = res - txt; El ejercicio propuesto incide en la diferencia entre las variables tipo puntero, que almacenan una dirección de memoria, y el contenido de la memoria en dichas direcciones, lo que se suele llamar dato al que apunta el puntero. Para obtener fácilmente el valor de res basta con constatar que la comparación (res == el) está comparando las direcciones almacenadas en las variables, no los datos a los que apuntan. De esta manera, como el contiene la dirección de memoria en que se encuentra la cadena el, mientras que res recorre las direcciones en que se almacena la otra cadena, cuyo inicio se encuentra en txt, la igualdad nunca será verdadera y el bucle terminará cuando res apunte al carácter nulo final de cadena. Luego a res, que contiene la dirección final de la cadena larga, se le resta txt que contiene la inicial, con lo que finalmente res guarda la longitud de la cadena, 35 según los datos del problema.
2 Pregunta 2. (1,5 puntos) Indica justificadamente los cuatro valores, expresados en hexadecimal con todos sus bits, que devolvería la siguiente función cuando recibe como parámetros, respectivamente, los enteros 0xFFFFFFFF, 0x , 0x638DB060 y 0xABCDEF01. Se consideran enteros de 32 bits. int problema(int val) int aux; aux = ~val; aux++; return val + aux; La función problema que se presenta implementa calcula en sus dos líneas centrales el complemento a 2 del parámetro que recibe. Efectivamente, la sentencia aux = ~val realiza el complemento a 1 del valor de entrada, cambiando sus unos por ceros y viceversa, y la sentencia siguiente suma 1 a aux, con lo que se implementa la operación complemento a 2. En la aritmética que utilizan los ordenadores, aplicando esta operación sobre un entero se obtiene su valor cambiado de signo, de manera que al sumar val y aux siempre se obtiene 0, que es el valor que por tanto devuelve siempre la función, sea cual sea el parámetro de entrada. Veamos para constatarlo una tabla con los valores significativos que se van sucediendo para obtener este cero a partir de los valores de entrada: val aux = ~val aux++ val + aux (32 bits) 0xFFFFFFFF 0x x x x x7FFFFFFF 0x x x638DB060 0x9C724F9F 0x9C724FA0 0x xABCDEF01 0x543210FE 0x543210FF 0x
3 Pregunta 3. (2 puntos) Programa en lenguaje C una función relenteros que, dado un vector de n enteros, devuelva un puntero a una matriz de nxn caracteres, cuyos elementos tengan que ver con la relación entre los enteros, tal y como se indica en la siguiente tabla. Las relaciones están ordenadas y priorizadas, es decir, si se cumple la superior no se verifica la siguiente, y así sucesivamente. Elemento (i, j) Relación 0 Alguno de los enteros v[i] o v[j] es 0 = Ambos enteros v[i] y v[j] son iguales m El entero v[i] es múltiplo del entero v[j] d El entero v[i] es divisor del entero v[j] - No se da ninguna de las relaciones anteriores El prototipo de la función pedida sería char *relenteros(int *v, int n). En su programación se deben utilizar las simetrías propias de las relaciones, de forma que no se realicen cálculos innecesarios. Por ejemplo, si el entero v[i] es múltiplo de v[j], v[j] será divisor de v[i]. La función, tras reservar memoria para la matriz de salida simplemente debe ir comparando cada elemento del vector con los siguientes, en busca de las relaciones de la lista. Esto se consigue con dos bucles anidados, de manera que el interior comienza por el elemento siguiente al externo. Dentro de este bucle interno se verifican las condiciones en el orden de la tabla, mediante if else concatenados, y se actualiza el valor de la fila y la columna correspondiente. Dos casos merecen ser comentados: si el elemento inicial es 0 directamente se completarán su fila y columna con ceros; por otra parte, todos los elementos de la diagonal comparten fila y columna y, o bien son 0 o son iguales, por lo que se tratan antes del bucle interno. Las verificaciones de múltiplo o divisor se harán de manera sencilla con el operador módulo %. Con esto, veamos a continuación una posible implementación de esta función.
4 // Constantes para las marcas de salida #define CERO #define IGUAL #define MULTIPLO #define DIVISOR #define NADA '0' '=' 'm' 'd' '-' char *relenteros(int *v, int n) int i, j; char *res; // Verificación del tamaño y de la memoria if (n < 1) return NULL; if ((res = malloc(n * n)) == NULL) return NULL; // El bucle externo. Se deja el último elemento para el final // pues no requerirá comparar con otros. for (i = 0; i < n - 1; i++) // Si el elemento es 0 no compara y llena fila y columna // con ceros. Antes del for se pone el valor en la diagonal if (v[i] == 0) res[i * n + i] = CERO; for (j = i + 1; j < n; j++) res[i * n + j] = CERO; res[j * n + i] = CERO; // Si no es 0 se pone igual en la diagonal y se va comparando con // todos los demás elementos siquientes else res[i * n + i] = IGUAL; for (j = i + 1; j < n; j++) // Si el otro es 0 se pone en fila y columna if (v[j] == 0) res[i * n + j] = CERO; res[j * n + i] = CERO; // Si es igual, se pone igual else if (v[i] == v[j]) res[i * n + j] = IGUAL; res[j * n + i] = IGUAL; // Si es múltiplo se pone en fila, y divisor // en la columna else if (v[i] % v[j] == 0) res[i * n + j] = MULTIPLO; res[j * n + i] = DIVISOR; // Si es divisor se pone al revés que antes else if (v[j] % v[i] == 0) res[i * n + j] = DIVISOR; res[j * n + i] = MULTIPLO; // Y si no, se pone nada en fila y columna else res[i * n + j] = NADA; res[j * n + i] = NADA; // El último elemento será 0 o igual if (v[i] == 0) res[i * n + i] = CERO; else res[i * n + i] = IGUAL; return res;
5 Pregunta 4. (2 puntos) Programa en lenguaje C una función bittrans que reciba como entrada un vector de 32 enteros sin signo y devuelva un puntero a otro vector de 32 enteros sin signo, de manera que el primer elemento de este nuevo vector esté formado por los bits 0 bits de menor peso- de todos los elementos del vector de entrada, siendo el peso de cada bit el índice del entero en el vector original. El segundo elemento estaría formado por los bits 1, el tercero por los bits 2 y así sucesivamente. Si las b de la expresión que aparece abajo son bits; los superíndices indican el índice del elemento del vector de entrada de donde sale tal bit; y los subíndices el número de bit comenzando por 0 a la derecha- que se obtiene de tal elemento, el elemento i ésimo del vector de salida se expresaría en binario como: El prototipo de la función pedida sería unsigned int *bittrans(unsigned int *v). Se considera que la arquitectura trabaja con enteros de 32 bits. La función consistirá en dos bucles anidados. El externo fijará el bit a extraer y el índice del resultado, mientras que el interno obtendrá dicho bit para cada elemento de la entrada y lo desplazará según el índice de este para añadirlo con el operador or al resultado. Veamos una posible implementación de la función: unsigned int *bittrans(unsigned int *v) int i, j; unsigned int *res, val, bit; // Se reserva memoria if ((res = malloc(32 * sizeof(int))) == NULL) return NULL; // Bucle para cada bit. Inicia val a 0 for (i = 0; i < 32; i++) val = 0; // Bucle para cada elemento de entrada: // lee el bit i-ésimo del elemento j de entrada // y lo desplaza j posiciones para ponerlo en // val for (j = 0; j < 32; j++) bit = (v[j] >> i) & 1; val = val (bit << j); // Se actualiza el elemento del vector de salida res[i] = val; return res;
6 Pregunta 5. (3 puntos) El conversor analógico digital ADC, como la mayor parte de los dispositivos del microcontrolador PIC18F4685, puede gestionarse mediante consulta de estado o mediante interrupciones. Sin tener en cuenta la configuración del dispositivo, pero sí los bits que permiten configurar el modo de gestionarlo por interrupciones o consulta de estado-, indica qué bits de control y estado será necesario considerar, tanto para la configuración del modo como durante la ejecución del programa, según la gestión quiera hacerse de una u otra forma. (0,6 puntos) Escribe dos fragmentos de código que realicen 8 conversiones de un mismo canal se supone ya configurado- y las almacenen en un vector de enteros. Uno de ellos lo hará mediante consulta de estado (1 punto) y el otro mediante interrupciones. (1,4 puntos) A continuación aparece el único registro de control y estado del conversor AD que es necesario utilizar para realizar este ejercicio. Los 10 bits del resultado, que se considera justificado a la derecha, se guardan en ADRESH y ADRESL. Registro ADCON0 - - CHS3 CHS2 CHS1 CHS0 GO/DONE ADON bit 7 bit 0 Para tratar el conversor analógico digital del PIC18F4685 mediante interrupciones es obligado habilitarlas poniendo a 1 el bit PIE1bits.ADIE. Además se podría asignar prioridad a la interrupción mediante el bit IPR1bits.ADIP si RCONbits.IPEN está a 1. Tanto en este caso como en el de gestión por consulta de estado, el ADC debe haber sido activado escribiendo un 1 en ADCON0bits.ADON. Los anteriores son bits de control. A la hora de determinar, dentro de la rutina de tratamiento de la interrupción, si la causa ha sido el conversor, hay que consultar el bit de estado PIR1bits.ADIF y ponerlo a 0 al terminar el tratamiento. Si se va a tratar mediante consulta de estado basta con gestionar el bit de control y estado ADCON0bits.GO -o bit GO/DONE según aparece en la documentación-. Este bit debe ponerse a 1 para comenzar una conversión y se pone a 0 automáticamente cuando ésta ha terminado. Aunque el bit PIR1bits.ADIF también se pone a 1, lo más eficaz es ignorarlo y usar solo GO/DONE en la consulta de estado. Por supuesto, en el caso de gestión mediante interrupciones también se debe poner a 1 este bit para comenzar una nueva conversión, sea en la rutina de tratamiento, sea en el programa principal. Veamos a continuación un sencillo ejemplo de conversión mediante consulta de estado, en que se considera que toda la configuración del ADC ya se ha efectuado, y se toman 8 muestras del canal actual. // Variables a usar int conv[8], i; // Conversión y almacenamiento de 8 muestras for (i = 0; i < 8; i++) ADCON0bits.GO = 1; while (ADCON0bits.GO == 1); conv[i] = (ADRESH << 8) + ADRESL; // 8 conversiones // Empezamos a convertir // Y esperamos que termine // Guardamos el valor de 10 bits // Terminado
7 En el caso de usar interrupciones hay que tomar más decisiones. En el ejemplo que aparece a continuación la rutina de tratamiento solo genera el entero tras la conversión e indica que esta ya se ha llevado a cabo. El programa principal se encarga de guardar el valor y comenzar una nueva conversión. Veámoslo a continuación. // Variables globales para la sincronización volatile int adval; volatile byte dato; // Programa principal main() int conv[8], idx; // Iniciamos las variables a 0 dato = 0; idx = 0; // Configuración de ADC (solo lo relativo al ejercicio) PIR1bits.ADIF = 0; // Limpiamos el flag PIE1bits.ADIE = 1; // y habilitamos la interrupcion ADCON0bits.ADON = 1; // Lo activamos ADCON0bits.GO = 1; // E iniciamos la primera conversión while(1) while (dato == 0); // Esperamos que termine la conversion conv[idx++] = adval; // Guardamos el valor generado en la ISR if (idx == 8) break; // Si hemos tomado 8 muestras salimos ADCON0bits.GO = 1; // Empezamos una nueva conversion dato = 0; // Marcamos que no hay nuevo dato. // Posiblemente el programa haga algo más // // Rutina de tratamiento void highisr() // Gestión del ADC. Componemos el valor y lo ponemos en // la variable adval. Luego ponemos dato a 1. if (PIR1bits.ADIF == 1) // Verificamos el flag adval = (ADRESH << 8) + ADRESL; PIR1bits.ADIF = 0; // Se pone el flag a 0 dato = 1;
Se recomienda consultar el siguiente enlace y el datasheet del PIC18F2550.
Se recomienda consultar el siguiente enlace y el datasheet del PIC18F2550. http://picfernalia.blogspot.com.es/2012/07/conversor-adc.html ADCON0: - ADON: Habilita el módulo convertidor A/D. - GO/DONE: Con
Conversores Análogo-Digital
Conversores Análogo-Digital mc PIC Preparado por : jhuircan Depto. Ingeniería Eléctrica Universidad de La Frontera Proceso de Conversión Código Correspondiente a la muestra j S(t) S(k) 0010..0011 ADC t
Laboratorio de Arquitectura de Redes. Operadores y expresiones en lenguaje C
Laboratorio de Arquitectura de Redes Operadores y expresiones en lenguaje C Operadores y expresiones en lenguaje C Expresiones numéricas y operadores Operadores aritméticos Operadores lógicos y de relación
Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.
1.6. EXPRESIONES CONCEPTO: Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. Los operandos pueden ser constantes, variables, otras expresiones e incluso funciones.
Apuntadores (Punteros)
Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable
Segundo Parcial Programación en Mikro C PIC16F877
Segundo Parcial Programación en Mikro C para microcontroladores PIC PIC16F877 Operadores a nivel de bits Operador operacion & AND; compara pares de bits y regresa 1 si ambos son 1 s, de otra manera regresa
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Expresiones y Operadores
Lenguaje C Expresiones y Departamento de Electrónica Fundación San Valero básicos: Operador de asignación: = No es del todo equivalente al igual matemático. A la derecha siempre estará el valor a asignar,
Lección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Lenguaje de Programación: C++ Repaso de Material C++
UG Lenguaje de Programación: C++ Repaso de Material C++ Universidad de Guanajuato Octubre 2010 Variables Tipos de Variables Operadores Variable Para poder leer algo, necesitamos un lugar donde poner lo
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 6 Cuáles son las estructuras básicas de C? Estas estructuras son las que le dan inteligencia
Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real
7.1 Operadores aritméticos Operadores aritméticos operadores Operación + Suma operandos pueden ser enteros o reales - Resta operandos pueden ser enteros o reales * Multiplicación operando enteros o reales
TEMA 7. ARRAYS (LISTAS Y TABLAS).
TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir
Memoria Estática Punteros, Vectores y Matrices
Memoria Estática Punteros, Vectores y Matrices Organización del Computador II 1 o Cuatrimestre 2017 28 de Marzo Organización del Computador II Memoria Estática / Punteros / Vectores / Matrices 1 / 29 Repaso
Memoria Estática Punteros, Vectores y Matrices
Memoria Estática Punteros, Vectores y Matrices Organización del Computador II 2 o Cuatrimestre 2017 29 de Agosto Organización del Computador II Memoria Estática / Punteros / Vectores / Matrices 1 / 31
ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES
ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES 1.1 Introducción 1.2 Fundamentos de los procesadores digitales secuenciales 1.2.1 Introducción 1.2.2 Arquitectura interna 1.2.2.1 Procesadores digitales
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.
Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
CONVERTIDOR ANÁLOGICO-DIGITAL (ADC)
Aplicar los conocimientos básicos de electrónica de manera teórica (lenguaje ANSI-C) y práctica (montaje de circuitos). Conocer las funciones que gobiernan las entradas y salidas del microcontrolador PIC18F47J53.
LENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Tema 05: Elementos de un programa en C
Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Tipos de Datos en C. Palabras reservadas en C
Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual
Tipos de datos y Operadores Básicos
Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?
Nelson David Muñoz Politécnico CJIC TUTORIAL DISPLAYS
1 TUTORIAL DISPLAYS OBJETIVOS Familiarizarse con el manejo de displays de 7 segmentos por medio de microcontroladores. Crear y manipular variables y vectores de constantes. Realizar la implementación física
FUNDAMENTOS DE INFORMÁTICA
PRIMER CURSO. INGENIERO QUÍMICO FUNDAMENTOS DE INFORMÁTICA Curso 2007-2008 Departamento de Ingeniería de Sistemas y Automática 1. PROFESORADO Manuel López Martínez (Coordinador) Amparo Núñez Reyes José
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Práctica 6. El procesador
Práctica 6 El procesador Material: PC y Visual Studio 2013 Duración: 2 horas Lugar: Laboratorios de prácticas (Laboratorio de Redes-Hardware) La herramienta que vamos a utilizar para el desarrollo de las
directamente indirectamente
PUNTEROS EN C PUNTEROS Permiten simular el pasaje de parámetros por referencia. Permiten crear y manipular estructuras de datos dinámicas. Su manejo es de fundamental importancia para poder programar en
Tema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
Introducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera [email protected] (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1
Solución al Ejercicio de Autocomprobación 1 PREGUNTA 1 (1 punto) Señale razonadamente la veracidad o falsedad de las afirmaciones siguientes: A. La diferencia fundamental entre los lenguajes ensamblador
Codificador Decodificador ISBN EAN13 (GTK2.0,GdkPixbuf,GDK & GCC)
(GTK2.0,GdkPixbuf,GDK & GCC) Jose Alberto Benítez Andrades 2ºIngeniería Informática, DNI:71454586A Índice INTRODUCCIÓN 1.DESCRIPCIÓN DEL MÉTODO: CODIFICACIÓN DECODIFICACIÓN 2.ALGORITMOS DE RESOLUCIÓN 3.PROGRAMACIÓN
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Guía práctica de estudio 06: Lenguaje binario
Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario
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 31 de agosto de 2012 Disponer sobre la mesa en lugar visible un documento de identificación
Programación I Teoría I.
Programación I Teoría I http://proguno.unsl.edu.ar Horarios Teorías: Jueves 8:00 10:00; aula 58 (Bloque 2) Prácticas: Comisión 1: Licenciatura Martes de 10 a 13 en sala 7, bloque 2 jueves de 10 a 13 en
V = 3,4567 V M:4,45V m:0,23v
Práctica 10 Módulo de conversión A/D: voltímetro digital Fecha: 28 de Abril de 2005 Se pretende realizar un programa que se encargue de efectuar la medida continua de una tensión analógica comprendida
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
EJERCICIO 1 (2 puntos, 30 minutos):
APELLIDOS NOMBRE NIA EJERCICIO 1 (2 puntos, 30 minutos): Diseñe un microprocesador de arquitectura Von Neumann, con una memoria de 8 bits x 64K, indicando: a) Tamaño del bus de datos: bits y del bus de
Nota: Los siguientes ejercicios se refieren a programas ANSI-C modularizados/modularizables.
Algoritmos y Programación I - 75.02 Guía de Ejercicios Nº 4 Programas lineales - Operadores de Bits Nota: Los siguientes ejercicios se refieren a programas ANSI-C modularizados/modularizables. 1) Calcular
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones
Operadores aritméticos
Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2016-2017. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Acceso Directo a Memoria
Tema 7: Acceso Directo a Memoria 7.1 El concepto Qué es una transferencia por acceso directo a memoria? El modelo de transferencia de información visto en los capítulos anteriores se denomina transferencia
Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani
Informática JavaScript: Lenguaje de programación Fco J. Martín Mateos Carmen Graciani Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Literales Enteros Con base decimal:
Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Representación de la información Ejercicios resueltos
Representación de la información Ejercicios resueltos Ejercicio 1. Indique la representación de los siguientes números, razonando su respuesta: a) -16 en complemento a 2 con 5 bits b) -16 en complemento
Práctica 2 - Manejo de estructuras de datos y punteros
Práctica 2 - Manejo de estructuras de datos y punteros Organización del Computador 2 1er Cuatrimestre 2017 1. Estructuras estáticas: Vectores y Matrices Ejercicio 1 Para cada uno de los siguientes ítems,
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.
Universidad Nacional Autónoma de México Facultad de Ingeniería ARREGLOS Y ESTRUCTURAS Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan
Práctica 2: Estructuras/Uniones/Campos de bits
Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática Aplicada Práctica 2: Estructuras/Uniones/Campos de bits Contenido: Esta
Guia#9: Punteros en C#.
Guia#9: Punteros en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos. Conocer el concepto de punteros y su aplicación en C#. Desarrollar aplicaciones en
Decimal Binario Hexadecimal Octal
Decimal Binario Hexadecimal Octal El Sistema Decimal es el sistema es que todos utilizamos sin darnos cuenta del porqué. El Sistema Decimal utiliza 10 cifras (del 0 al 9). Al combinar estas cifras se consigue
INTRODUCCION A LA CONFIGURACION DEL CONVERSOR ANALOGICO DEL PIC16F876A
Rev. 24/09/2018 : Se realizó algunas correcciones. INTRODUCCION A LA CONFIGURACION DEL CONVERSOR ANALOGICO DEL PIC16F876A La teoría que se presenta es válida para los micro controladores de la empresa
EL módulo conversor A/D. (c) Domingo Llorente
EL módulo conversor A/D (c) Domingo Llorente 2010 1 Características del conversor A/D Ocho entradas de señal analógica. (5 para el 16F876x) Resolución de la conversión de 10 bits. (0-1024) Distintas fuentes
TAD CONJUNTOS Y MULTICONJUNTOS
TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados
TEMA 20 EL CONVERSOR A/D
TEMA 20 EL CONVERSOR A/D Introducción Al Conversor Analógico/Digital Los microcontroladores PIC de la familia 16F78x, poseen un conversor A/D de 10 bits de resolución, y con 5 entradas para los dispositivos
Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda
Programación (PRG) Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia 1. Introducción El objetivo de esta práctica es estudiar el comportamiento
Datos Elementales y formato de un programa en Java
Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:
Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
TEMA 8. ESTRUCTURAS Y UNIONES.
TEMA 8. ESTRUCTURAS Y UNIONES. Este capítulo examina estructuras, uniones, enumeraciones y s definidos por el usuario que permite a un programador crear nuevos s de datos. La capacidad para crear nuevos
Objetivos. El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes.
Objetivos El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes. Al final de esta práctica el alumno podrá: 1. Utilizar las herramientas para
PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I
PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I Table of contents 1 INFORMACIÓN GENERAL...2 2 INTRODUCCIÓN... 2 3 OBJETIVOS GENERALES DE LA ASIGNATURA... 3 4 OBJETIVOS, TEMAS Y SUBTEMAS... 3 5 PLAN TEMÁTICO...6
abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.
Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una
Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno
1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->
