Académique Documents
Professionnel Documents
Culture Documents
Ing. Alexis Rocha H., MGTI Ingeniero en Sistemas Computacionales Magster en Gerencia de Tecnologas de la Informacin Email: alefroch22@hotmail.com La Libertad, Santa Elena, Ecuador Fundamentos y Lenguaje C
Docente:
Evaluacin de la Materia
Evaluacin: Exmenes Lecciones Deberes Participacin en Clase Proyecto Talleres
50%
20%
10%
10%
10%
Bibliografa Bsica JOYANES AGUILAR Luis, FUNDAMENTOS DE PROGRAMACIN, 1era. Edicin, Ed. McGraw Hill, 1991. Bibliografa Recomendada: LPEZ Gustavo, ANLISIS Y DISEO DE ALGORITMOS, 1era. Edicin, Ed. Alfaomega, 2009. Universidad Pontificia COMILLAS, MUOZ FRAS Jos Daniel, PALACIOS HIELSCHER Rafael, FUNDAMENTOS DE PROGRAMACIN UTILIZANDO EL LENGUAJE C, 1era. Edicin, Ed. R.B. Servicios Editoriales S.L. Espaa, 2006. LLANOS FERRARIS Diego Rafael, FUNDAMENTOS DE INFORMTICA Y PROGRAMACIN EN C, 1era. Edicin, Ed. Paraninfo Espaa, 2010. RABASA DOLADO Alejandro, SANTAMARA ARANA Laureano, METODOLOGA DE PROGRAMACIN, PRINCIPIOS Y APLICACIONES, 1era. Edicin, Ed. Club Universitario, 2004.
Qu se quiere aprender al finalizar el Captulo 1? Definir conceptos previos sobre los Lenguajes de Programacin existentes y el Lenguaje de Mquina. Definir conceptos sobre la Informacin y sus formas de representacin. Realizar ejercicios sobre sistemas de numeracin, aplicando sus distintos teoremas.
LOGO
Captulo 1
Unidad 1 Conceptos de Programacin CONTENIDOS 1.1. Lenguaje de Programacin y Lenguaje de Mquina. 1.2. Lenguajes de bajo y alto nivel. 1.3. Traductores de Lenguaje, Intrpretes y Compiladores. 1.4. La Informacin y su representacin. 1.5. Sistemas de Numeracin. 1.6. Ejercicios de Aplicacin. 1.7. Evaluacin de la Unidad.
Tipos y Ejemplos
Los Lenguajes de programacin se clasifican en: Segn el Nivel de Abstraccin Lenguajes de Mquina Lenguajes de Bajo Nivel Lenguajes de Medio Nivel Lenguajes de Alto Nivel Segn la Forma de Ejecucin Lenguajes Compilados Lenguajes Interpretados Segn el paradigma de programacin Paradigma Imperativo Paradigma Funcional Paradigma Lgico Paradigma Orientado a Objetos
Traductores de Lenguaje
Qu es un Traductor? Son programas que traducen los programas fuente, escritos en lenguaje de alto nivel a Cdigo Mquina. Los traductores se dividen en: Intrpretes. Compiladores.
Intrpretes
Es un traductor de lenguajes de programacin de alto nivel, los intrpretes ejecutan un programa lnea por lnea.
El programa siempre permanece en su forma original (programa fuente) y el intrprete proporciona la traduccin al momento de ejecutar cada una de las instrucciones. Un intrprete es un programa que procesa los programas escritos en un lenguaje de alto nivel, sin embargo, est diseado de modo que no existe independencia entre la etapa de traduccin y la etapa de ejecucin.
Un intrprete traduce cada instruccin o sentencia del programa escrito a un lenguaje mquina e inmediatamente se ejecuta.
Encuentran su mayor ventaja en la interaccin con el usuario, al facilitar el desarrollo y puesta a punto de programas, ya que los errores son fciles de detectar y sobre todo de corregir.
Compiladores
Un Compilador es un programa que traduce los programas fuente escritos en lenguaje de alto nivel (Pascal, Fortran, etc.) a lenguaje de mquina. Los programas escritos en lenguaje de alto nivel se llaman Programas Fuente y el programa traducido Programa Objeto o Cdigo Objeto, el compilador traduce sentencia a sentencia el programa fuente.
La Compilacin
La Compilacin es el proceso de traduccin de Programas Fuente a Programas Objeto. El programa objeto obtenido de la compilacin ha sido traducido normalmente a cdigo mquina. Para conseguir el programa mquina real se debe utilizar un programa llamado Montador Enlazador (Linker). El proceso de montaje conduce a un programa en Lenguaje Mquina directamente ejecutable.
Fases de la Compilacin
Existen diversas fases de compilacin o tambin llamadas Etapas de la Compilacin que se ilustran en la siguiente imagen:
El proceso de ejecucin de un programa en PASCAL, por ejemplo, tiene los siguientes pasos:
La Informacin y su representacin
Un Computador es una mquina que procesa informacin, la ejecucin de un programa implica el tratamiento de los datos, para que el computador ejecute un programa es necesario darle 2 tipos de informacin: Las instrucciones que forman el programa, y Los datos con los que debe operar ese programa. Los aspectos ms importantes de la Informtica relacionados con la informacin son: Cmo <representarla>, y Cmo <materializarla> o <registrarla> fsicamente.
Toda comunicacin con un computador convencional se realiza segn los caracteres que admitan sus dispositivos de E/S. Toda instruccin o dato se representar por un conjunto de caracteres, tomados del alfabeto definido en el sistema a utilizar. El diseo de un sistema informtico resulta ms fcil, su realizacin menos compleja y su funcionamiento muy fiable, si se utilizan solo 2 valores o estados posibles, estos valores conceptualmente se representan por: Cero (0), Apagado, 0 voltios Uno (1), Encendido, 5 voltios Estos 0 y 1 representa un BIT.
Codificacin y Decodificacin
Al traducir toda la informacin suministrada al computador a ceros y unos, es necesario establecer una correspondencia entre el conjunto de todos los caracteres: = { A, B, C, D, , Z, a, b,, z, 0, 1, 2, 3, , 9, /, +, (, ), } Y el conjunto binario: = { 0, 1 } CODIFICACIN O representacin de los elementos de un conjunto () mediante los de otro (), de forma tal que a cada elemento de le corresponda un elemento distinto de (n bits). Estos cdigos de transformacin se denominan Cdigos de Entrada/Salida (E/S) o Cdigos Externos. Las operaciones aritmticas con datos numricos se suelen realizar en una representacin ms adecuada, para este objetivo que la obtenida con el cdigo de E/S.
DATO: Caracterstica de una informacin expresada en forma adecuada para su tratamiento. Representacin de los datos (valores): Valores analgicos. Valores discretos o digitales. Necesidad de convertir los valores analgicos a discretos. Sistema Digital: Sistema de N estados estables. Dgito: Variable capaz de asumir un estado. Los dgitos se agrupan para representar ms estados.
Cdigo: Ley de correspondencia entre valores de informacin y combinaciones de dgitos de un sistema digital utilizadas para representarlos. Codificacin: Informacin -> Cdigo azul ---> 0 azul ---> 100 verde ---> 1 verde ---> 101 rojo ---> 2 rojo ---> 111 Decodificacin: Cdigo -> Informacin azul <--- 0 azul <--- 100 verde <--- 1 verde <--- 101 rojo <--- 2 rojo <--- 111 Cdigo Binario: Cuando el sistema digital utilizado tiene slo 2 estados (0, 1).
Sistemas de Numeracin
Un Sistema de Numeracin es un conjunto ordenado de smbolos llamados Dgitos, los ms comunes son: los Sistemas Binarios, Octales, Decimales y Hexadecimales. SISTEMA DECIMAL El sistema decimal tambin conocido como Sistema de Base 10, es un sistema de valor posicional, en el cual el valor de un dgito depende de su posicin. Sistema de Base 10 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Parte Entera (+ significativa) 2745.632 Parte Decimal (- significativa)
SISTEMA BINARIO Es aquel en el cual hay solo 2 smbolos o posibles valores de dgitos: 0 y 1, tambin se lo conoce como Sistema de Base 2, se puede utilizar para representar cualquier cantidad que se denote en sistema decimal o algn otro sistema numrico. Bit + significativo 1011.1012 Bit - significativo
5 voltios
SISTEMA OCTAL Este sistema tiene una base de 8, lo cual significa que tiene 8 posibles dgitos. De esta manera, cada dgito de un nmero octal puede tener cualquier valor de 0 a 7, el dgito octal mayor es el 7; as que, cuando se cuenta se incrementa 1 dgito hacia arriba de 0 a 7, una vez que llega al 7, se regresa a 0 en el siguiente conteo y ocasiona que se incremente el dgito de la izquierda. Sistema Octal = 0, 1, 2, 3, 4, 5, 6, 7 Ejemplo: 64, 65, 66, 67, 70 275, 276, 277, 300
SISTEMA HEXADECIMAL El sistema hexadecimal emplea una base de 16, as tiene 16 posibles smbolos digitales, utiliza los dgitos del 0 al 9 ms las letras A, B, C, D, E, F. Cada dgito hexadecimal representa un grupo de 4 dgitos binarios.
2n n = nmero de dgitos n=3 23 = 8 combinaciones 000 0 Ejemplo: 36, 37, 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40 001 1 (combinacin hexadecimal) 010 2 011 3 100 4 101 5 110 6 111 7
Ejercicios (Conversiones)
Convertir (4310.3)5 a (?)8 Determinar el Cdigo Gray de: 4210, 9710 Encuentre el resultado de: (4310.3)5 (1032.2)4 Represente los siguientes nmeros en cdigos BCD, Binario, XS3, Gray (4 bits): (24.21)10, (5379)10 Cul es el valor decimal mayor que se puede representar con un nmero binario de 16 bits? (110 100 111)2 + (258)10 + (453)10
Operaciones Binarias
SUMA BINARIA Para realizar la suma de nmeros binarios se debe tomar en cuenta la siguiente tabla:
Ejercicios:
RESTA BINARIA Para realizar la resta de nmeros binarios (de arriba hacia abajo), se debe tomar en cuenta la siguiente tabla:
MULTIPLICACIN BINARIA Todo nmero multiplicado por 0 es igual a 0 y todo nmero multiplicado por 1 es el elemento neutro del producto. Para realizar la multiplicacin de nmeros binarios se debe tomar en cuenta la siguiente tabla:
DIVISIN BINARIA Igual que el producto, la divisin es fcil de realizar, porque no son posibles en el cociente otras cifras que UNOS y CEROS. Consideremos la siguiente regla y ejemplo, 42 / 6 = 7, en binario:
Ejercicios (Binarios)
Sumas Binarias 1011 + 111 111 + 1001 110 + 1110 110111 + 1011 + 10011 1100110 + 1001011 1010 + 1011 Restas Binarias 11 01 11 10 111 100 101 010 1011 0101 1000 101 100 + 10 11 + 11 1111 + 111 110 + 100 1100 + 1000 1001 + 1011 1+1+1+1+1 1+1+1+1+1+1 1110001 + 11101 1001010 + 1101
1100 - 1000 101010 - 1001 1110001 - 111 1011 101 10000000 - 110111 00111111 - 00011100
Multiplicaciones Binarias 1011 x 10 10011 x 111 101011 x 101 1111 x 1101 1110001 x 111 101010 x 1001 Divisiones Binarias 110 / 11 1101100 / 100 1100 / 100 101100 / 100 100100 / 11 110000 / 110
Informacin en la Web
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n http://jorgesaavedra.wordpress.com/2007/05/05/lenguajes-de-programacion/ http://catedraprogramacion.foroactivos.net/t83-definicion-de-lenguaje-de-programaciontipos-ejemplos http://learningsystemsbyshirlid.bligoo.es/media/users/26/1335090/files/420542/48.pdf http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html http://www.slideshare.net/zamanthag_una/traductores-de-lenguaje-13201633 http://www.suigeneris.org/UCABTI/Definiciones%20Basicas.html http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unida d_III/Unidad%20III_6.htm http://www.iseron.com/wp-content/uploads/2008/02/informacion-y-su-representacion.pdf http://www.monografias.com/trabajos16/representacion-informacion/representacioninformacion.shtml http://www.slideshare.net/gugaslide/representacion-de-informacion-en-computadoraspresentation http://platea.pntic.mec.es/~lgonzale/tic/binarios/aritmetica.html http://arantxa.ii.uam.es/~ig/practicas/enunciados/prac3/divisionbinaria.pdf
LOGO
Fundamentos de Programacin