Transcription of Fundamentos de programación Ejercicios
1 Fundamentos de programaci nEjerciciosCurso 2017/18123 Ejercicios de Fundamentos de programaci n - revisi n 01/05/2017 Copyleft Alejandro Cast n SalinasSe otorga el permiso para copiar, distribuir y/o modificar este documento bajolos t rminos de la licencia de documentaci n libre GNU, versi n ocualquier otra versi n posterior publicada por la Free Software consultar dicha licencia en contenido de este documento puede cambiar debido a ampliaciones ycorrecciones enviadas por los lectores. Encontrar s siempre la ltima versi ndel documento en ~acastan/textos/. ndice de contenidoPr ctica 1: Arquitectura del ctica 2: Codificaci n de la informaci ctica 3: Lenguajes de programaci n, compiladores e int rpretes, y entornos de ctica 4: Algoritmos ctica 5: Estructuras de control ctica 6: Estructuras de control ctica 7: Estructuras de almacenamiento homog neas unidimensionales (vectores y strings)..30Pr ctica 8: Estructuras de almacenamiento homog neas multidimensionales (matrices).
2 34Pr ctica 9: Estructuras de almacenamiento heterog neas (registros)..37Pr ctica 10: Funciones y ctica 11: Almacenamiento en ctica 12: Apuntadores y estructuras din micas de Fin!..724Pr ctica 1: Arquitectura del computadorObjetivos de la pr ctica Introducci n a la arquitectura y funcionamiento interno del ordenador. Conocimiento de los diferentes dispositivos de la m quina. Comprensi n de los t rminos: CPU, memoria, bus, perif rico, sistema operativo, fichero. Identificaci n y soluci n de peque os problemas de hardware y Escribe en una hoja en blanco dos o tres t rminos relacionados con el mundo de la inform ticaque no llegues a entender bien. Durante cinco minutos busca informaci n en Internet o entre loscompa eros sobre uno de estos t rminos. A continuaci n haz una puesta en com n de losresultados obtenidos, intentando resolver las dudas de los compa eros (y pidiendo su ayuda y ladel profesor en las dudas que todav a tengas). Haz un dibujo o esquema de la arquitectura de un ordenador.
3 A continuaci n, en grupos de trespersonas poned en com n vuestros esbozos y realizad un esquema final conjunto, donde debeconstar: Nombre de los diferentes componentes. Funci n de cada componente. Qu componentes son imprescindibles y cu les ltimo, abrid uno o m s ordenadores, e identificad las partes que aparecen en el Imagina que eres vendedor/a de una tienda de inform tica. Aconseja a los siguientes tresclientes que llegan a la vuestra tienda sobre cual es el ordenador que se ajusta a susnecesidades, es decir, qu componentes y accesorios necesitaran, como deben ser stos y elporqu . Como lista de componentes tenemos: microprocesador, memoria RAM, disco duro,m dem, tarjeta de red, tarjeta de v deo, tarjeta de sonido, caja y Cliente 1: Javi es un chico que ya tiene un ordenador. Lo utiliza sobretodo para jugar: es unapasionado de los videojuegos. El problema es que los ltimos juegos que ha comprado yavan un poco lentos en su ordenador.
4 Qu componentes de su ordenador cambiar ais paramejorar el rendimiento en los juegos? Adem s Javi tambi n utiliza el ordenador como aasistente a la hora de componer m sica. Cliente 2: Julia es una ingeniera. En el trabajo necesita un ordenador para hacersimulaciones de din micas de fluidos (c lculos muy costosos y much simos datos). El restode ordenadores del trabajo acceder n constantemente a este ordenador mediante su red localpara consultar los resultados de les simulaciones. Imagina:5 Cliente 3: Juan trabaja en una oficina. Quiere un ordenador para poder escribir en casainformes y llev rselo del trabajo a casa. Y t ? C mo es el ordenador que necesitas? Ejercicios de intensificaci Busca informaci n y haz un breve resumen sobre cu les han sido los cambios m s importantesen la historia de los microprocesadores de la familia Intel 80x86, desde el 8086 hasta el Qu caracter sticas diferencian los sistemas operativos Windows y Linux?
5 6ordenadorJuliaordenador 4ordenador 5ordenador 6ordenador 1ordenador 2ordenador 3 InternetInternetPr ctica 2: Codificaci n de la informaci nObjetivos de la pr ctica Cambios de base (binario, hexadecimal y decimal). Codificaci n de n meros enteros con signo. Aritm tica binaria. Codificaci n de n meros reales en simple y doble precisi n. Memoria y precisi n. C digos detectores y correctores de errores. Capacidad del c n S lo existen 10 tipos de personas: las que entienden binario y las que no. El ordenador debe trabajar con informaci n de diferentes tipos: instrucciones de programas,n meros, letras y s mbolos, etc. Las diferentes tecnolog as que utiliza el ordenador(almacenamiento ptico en DVD, almacenamiento magn tico en discos duros, almacenamientoel ctrico en transistores, etc.) hacen que dicha informaci n s lo se pueda almacenar utilizandosecuencias de dos estados (bits), a los que llamamos estado 0 y estado 1. Por lo tanto, debemosencontrar la manera de codificar la informaci n como secuencias de ceros y s, en las tecnolog as que almacenan o transportan la informaci n se pueden producir erroresque alteren dicha informaci n.
6 Para subsanar este problema, a los datos a almacenar o transportar seles a ade un peque o porcentaje de informaci n redundante que permite detectar si se ha producidoerror, e incluso corregirlo. Estamos hablando de los c digos detectores y correctores de las siguientes direcciones podemos aprender estos conceptos (aviso: la informaci n en laWikipedia inglesa actualmente es m s completa): n n_de_caracteres n_de_errores 7 Cambios de Competa la siguiente n de n meros enteros con Representa los n meros 223 y -223 en binario en los diferentes c digos para la representaci nde enteros con signo:BinarioBinario natural223-223 Signo y magnitud223-223 Complemento a 2223-223 Exceso ( 256 ) Calcula el valor decimal del n mero binario 10100111 representado en los diferentes c natural10100111 (2 Signo y magnitud10100111 (2 Complemento a 210100111 (2 Exceso ( 128 )10100111 (2 Aritm tica Realiza las siguientes sumas en 8 bits y complemento a 2, dando el valor del resultado + 24 = -15 + 82 = 84 + 69 = -46 + (-10) =Codificaci n de n meros Representa seg n la norma IEEE 754 de simple precisi n.))))
7 Utilizar truncado o redondeosi fuera y precisi En un microprocesador de 16 bits deseamos ejecutar un programa que ocupa 20000 posiciones8de memoria y que adem s necesita espacio para: 10000 n meros enteros (16 bits), 5000n meros reales de simple precisi n (32 bits), 2000 n meros reales de doble precisi n (64 bits) y1000 alarmas binaries (1 bit). Indica la capacidad m nima de la memoria necesaria enposiciones de memoria, bits, bytes y digos detectores y correctores de Queremos enviar por una l nea telef nica una informaci n en paquetes de 8+1 bits. Aplica unc digo de paridad par y otro impar para enviar la cadena de caracteres Alumno (sin lascomillas) en c digo ASCII de 8 bits. Discute la posibilidad de detectar transmisiones err ctica 3: Lenguajes de programaci n, compiladores e int rpretes, y entornos de desarrolloObjetivos de la pr ctica Conocer la historia de los lenguajes de programaci n m s importantes. Entender los conceptos de c digo fuente, c digo m quina, compilador e int rprete.
8 Familiarizaci n con un entorno integrado de desarrollo. Familiarizaci n con la estructura de un programa en lenguaje C. Familiarizaci n con las funciones de entrada y salida del lenguaje C. Familiarizaci n con los tipos de datos en C y comprensi n de los errores debidos al rango deprecisi n de los tipos num tmicaAlgoritmo es la exposici n, paso a paso, de la secuencia de instrucciones que se ha de seguir pararesolver un determinado de datos es una representaci n en forma l gica de la informaci n, una manera deorganizar una determinada informaci de programaci n son el conjunto de instrucciones que permiten controlar una m programa es la descripci n de un algoritmo en un determinado lenguaje de programaci n. n Diagramas de flujoEl diagrama de flujo es un lenguaje visual de descripci n de algoritmos. La representaci n gr ficanos permite entender f cilmente el proceso, aunque para procesos muy complejos los diagramas deflujo se vuelven demasiado extensos y, por lo tanto, intratables.
9 10 Ejemplo: descripci n mediante diagrama de flujo del proceso a seguir un domingo por la ma NPEDIR DATOSDAR RESULTADOSENLAZAR OPERACIONESLas cajas con forma de elipse indican el inicio y el final del algoritmoLas cajas con forma de rect ngulo indican una operaci n, c lculos en cajas con forma de rombos indican una decisi n. Seg n sea el resultado de evaluar la expresi n l gica el codigo se bifurcar hacia un camino o hacia cajas con forma de trapecios indican una petici n de datos o una salida de flechas enlazan los diferentes pasos del algoritmo y nos indican el orden de NCIERTOE jemplo: descripci n mediante diagrama de flujo del proceso a seguir para calcular una ra digoPseudoc digo es un lenguaje escrito de descripci n de algoritmos, con una sintaxis m s coloquial ymenos r gida que la de los lenguajes de programaci n. digo Ejemplo: descripci n mediante pseudoc digo del proceso a seguir para calcular una ra z RaizCuadrada pedir n mero x sea b = x mientras x/b sea muy diferente de b, hacer lo siguiente: actualizar el nuevo valor de b = (b + x/b) / 2 fin del mientras decir b es la ra z cuadrada de x fin del programa12 Lenguaje de programaci nLos lenguajes de programaci n han evolucionado con el tiempo.
10 Para hacernos una idea de dichaevoluci n y de las caracter sticas que han ido incorporando podemos consultar las siguientesdirecciones: n Como curiosidad, en las siguientes direcciones pod is encontrar un mismo programa ( Hello,world! y 99 Bottles of Beer ) escrito en centenares de lenguajes de programaci n diferentes: 13Un compilador es el programa encargado en traducir un programa escrito en lenguaje deprogramaci n de alto nivel (c digo fuente) al lenguaje que es capaz de ejecutar un ordenador(c digo m quina). Para aprender m s podemos consultar las siguientes direcciones: rprete_inform tico Los Ejercicios de este documento se pueden resolver en el lenguaje de programaci n que se dar soluciones y alguna peque a explicaci n yo he escogido lenguaje C. Para aprenderlopod is encontrar innumerables cursos de lenguaje C en Internet. Ah van tres direcciones paracomenzar: Historia de C: n_C Curso de C: n_en_C Normas de estilo de programaci n en C: nPara trabajar vamos a utilizar un Entorno Integrado de Desarrollo (IDE), donde podemos escribirnuestro programa, compilarlo y ejecutarlo, recibir ayuda sobre errores y sintaxis, y ejecutarinstrucci n a instrucci n visualizando los valores que toman las variables ( depuraci n ).