Vous êtes sur la page 1sur 52

LOGO

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.

Lenguaje de Programacin y Lenguaje de Mquina


Qu son los Lenguajes de Programacin? Es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina (computadora o PC), consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado, de sus elementos y expresiones respectivamente. Generalmente nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis, que pone a disposicin del programador para que pueda comunicarse con los dispositivos Hardware y Software existentes. Los lenguajes informticos engloban a los lenguajes de programacin y otros ms, por ejemplo. HTML.

1.1. Lenguaje de Programacin y Lenguaje de Mquina

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

Segn su Nivel de Abstraccin


Lenguajes de Mquina: Estn escritos en lenguajes directamente entendibles por la mquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). Lenguajes de Bajo Nivel: Son lenguajes de programacin que se acercan al funcionamiento de una computadora, el lenguaje de ms bajo nivel por excelencia es el cdigo mquina. Lenguajes de Medio Nivel Lenguajes de Alto Nivel: Son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls.

1.2. Lenguajes de bajo y alto nivel

Segn la Forma de Ejecucin


Lenguajes Compilados: Naturalmente un programa se escribe en un lenguaje de alto nivel, tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Lenguajes Interpretados: Se pueden utilizar como alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la compilacin para utilizarlo en una ejecucin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar.

Segn el Paradigma de Programacin


Representa un enfoque particular o filosofa para la construccin del software, no es mejor uno que otro, sino que cada uno tiene ventajas y desventajas, dependiendo de la situacin un paradigma resulta ms apropiado que el otro. Se clasifican en: Paradigma Imperativo: O por Procedimientos es considerado el ms comn y est representado por C o BASIC. Paradigma Funcional: Est representado por la familia de lenguajes LISP (Scheme), ML o Haskell. Paradigma Lgico: Un ejemplo es PROLOG. Paradigma Orientado a Objetos: Un lenguaje completamente orientado a objetos es Smalltalk.

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.

1.3. Traductores de Lenguaje, Intrpretes y 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:

El proceso de ejecucin se ilustra en la siguiente imagen:

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.

1.4. La Informacin y su representacin

Cmo se da la Informacin a un Computador?


Se la da en la forma usual escrita que utilizan los seres humanos. Con ayuda de un alfabeto o conjunto de smbolos, denominados Caracteres. Categoras de los Caracteres Caracteres Alfabticos: Son las maysculas y minsculas del abecedario. Ejemplo: A, B, C, D, E, . . ., X, Y, Z, a, b, c, . . . . . , x, y, z Caracteres Numricos: Estn constituidos por las 10 cifras decimales. Ejemplo: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Caracteres Especiales: Son los smbolos no incluidos en los grupos anteriores, entre otros los siguientes: Ejemplo: ) ( , * / ; : = ! ? . & > # < { } Caracteres de Control: Representan rdenes de control, como el caracter indicador de fin de lnea o el caracter indicador de sincronizacin de una transmisin, de que se emita un pitido en un terminal, etc. Ejemplo: Inicio, Fin, AvPag, RePag, Ins, Sup Caracteres Grficos: Son smbolos o mdulos con los que se pueden representar figuras o conos elementales. Ejemplo: ,

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)

2745.632 = (2*103) + (7*102) + (4*101) + (5*100) + (6*10-1) + (3*10-2) + (2*10-3)


1.5. Sistemas de Numeracin

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

1011.101 = 1162510 1 = Si (5 voltios) 0 = No (0 voltios) 0 voltios

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

Relacin entre Sistemas Binario, Octal, Decimal y Hexadecimal


Cuente en sistema hexadecimal desde 6F8 hasta 700. 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700 Liste los nmeros hexadecimales en secuencia del 280 al 2A0. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 28A, 28B, 28C, 28D, 28E, 28F, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 29A, 29B, 29C, 29D, 29E, 29F, 2A0

1a-Conversin de Decimal a Binario


Mtodo de divisin y multiplicacin por la base
Este mtodo emplea la divisin repetida para 2, la conversin requiere que se divida repetidamente en nmero decimal para 2, y que se escriban los residuos despus de cada divisin hasta que se obtenga un cociente de 0 (cero), luego el resultado binario se obtiene escribiendo el primer residuo como el menos significativo y el ltimo como el ms significativo; esto en lo que respecta a la parte entera. En lo referente a la parte decimal o fraccionaria, multiplicamos por la base a la cual queremos llevar, hasta que la respuesta sea igual a 0 (cero).

1.6. Ejercicios de Aplicacin

1b-Conversin de Binario a Decimal


Para determinar su equivalencia en el sistema decimal, simplemente tomamos la suma de los productos de cada valor digital (0 1) y su valor posicional, expresada como potencia de 2.

2a-Conversin de Decimal a Octal


Un entero decimal se puede convertir a octal con el mismo mtodo de divisin repetida que se usa en la conversin de decimal a binario pero con un factor de divisin de 8 en lugar de 2, en la parte fraccionaria se multiplicar por la base a la cual queremos llevar, hasta que la parte fraccionaria d la respuesta de 0 (cero).

2b-Conversin de Octal a Decimal


Un nmero octal puede convertirse fcilmente a decimal por cada dgito octal por su valor posicional.

3a-Conversin de Octal a Binario


La conversin de octal a binario se lleva a cabo convirtiendo cada dgito octal con su equivalente binario de 3 bits individualmente. Los 8 dgitos posibles se convierten como se indica a continuacin: Dgito Octal Binario 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111

3b-Conversin de Binario a Octal


Los bits del nmero binario se agrupan en conjunto de 3, comenzando por el bit menos significativo de derecha a izquierda, algunas veces el nmero binario no tendr grupos de 3 bits.+ En unos casos podemos agregar 1 2 ceros a la izquierda del bit ms significativo, a fin de completar el ltimo grupo en la parte entera, pues en la parte fraccionaria aumento 1 cero a la derecha del bit menos significativo, a fin de completar el grupo de 3.

4a-Conversin de Hexadecimal a Decimal


Un nmero hexadecimal se puede convertir a su equivalente decimal utilizando el hecho de que cada posicin de los dgitos hexadecimales tienen el valor de una potencia de 16.

4b-Conversin de Decimal a Hexadecimal


La conversin de decimal a hexadecimal se la efecta por divisin repetida para 16 en la parte entera y en la parte fraccionaria se multiplica por 16 hasta tener un residuo de 0.

5a-Conversin de Hexadecimal a Binario


Para convertir a binario, cada dgito hexadecimal se convierte en su equivalente binario de 4 bits.

5b-Conversin de Binario a Hexadecimal


Para convertir a hexadecimal, el nmero binario se agrupa en conjuntos de 4 bits y cada grupo se convierte a su dgito hexadecimal equivalente, cuando es necesario se aaden ceros (0) para completar un grupo de 4 bits desde el punto base.

6a-Conversin de Binario a Cdigo Gray


Para realizar una conversin de un nmero binario, agrupo los bits de 2 en 2 de derecha a izquierda; si los 2 escogidos son iguales, entonces coloco 1 cero y si no son iguales coloco 1 uno. Para hallar el ltimo bit, ponemos un 0 adicional.
2 nmeros iguales = 0 2 nmeros desiguales = 1

6b-Conversin de Cdigo Gray a Binario


Siempre copiamos el primer bit, luego analizamos 1 a 1 cada bit del nmero gray dado; si tenemos un 1, entonces invertimos el bit anterior del nmero binario que se est formando, si tenemos un 0, copiamos el dgito igual al anterior.
Si es 1 = cambia el bit anterior Si es 0 = copiamos el bit anterior

7-Cdigo BCD (Decimal a BCD)


Si cada dgito de un nmero decimal se representa con su equivalente binario, el resultado es un cdigo llamado decimal codificado binario, ya que el dgito decimal mayor es el 9, se necesitan 4 bits para codificar cada dgito.

8-Cdigo de Exceso 3 (Decimal a XS3)


El Cdigo de Exceso 3 para un nmero decimal, se efecta de la misma forma que el BCD, excepto que se suma el nmero 3 a cada dgito decimal antes de codificarlo a binario.

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

1011 x 101 1100 x 101 1011 x 11 1001111 x 0110

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

Vous aimerez peut-être aussi