Taller De Programación En C 550380-0 - Udec.cl

Transcription

Taller de Programacion en C 2008-22-2008Introducción y horarioTaller deProgramación en C550380 0550380-0Daniel Herrera P.danherrera@udec.cl Código: 550380-0 Carrera: Ing. Civil Biomédica Clases: 13 de Agosto al 8 de Septiembre Horario clases)Miércoles, 17:10 a 20:00, Lab 2 Sistemas)Jueves, 18:10 a 21:00, Lab 2 Sistemas)Viernes, 17:10 a 20:00, Lab 2 SistemasMario Medina C.AdministrativaMateriales del curso Profesor: Daniel Herrera P. Laboratorio de Visualización y TI Teléfono: 2203520 Correo electrónico: danherrera@udec.cl Blog (http://tallerc2008.blogspot.com))Enlaces a software)Transparencias)Otros materiales)Notas)ForosMario Medina C.Mario Medina C.Horario y lugar de las clasesSoftware Horario de prácticas En la misma sesión de clases Ayudante Compilador C Dev-C (http://www.bloodshed.net/dev/))No tendrá (por ahora) Prácticas en el laboratorio)Experiencias pasadas indican que prácticas seaprovechan mejor si se hacen frente al PCMario Medina C. Daniel Herrera P.)Bueno, bonito y barato (gratis!))Disponible a través de enlaces en InfoAlumno)Instalado en los laboratorios de la Facultad deIngeniería Otros compiladores)A su cuenta y riesgo)Tareas serán revisadas usando Dev-C Mario Medina C.1

Taller de Programacion en C 2008-22-2008ContenidosContenidos Modulo 1 Modulo 3)Introducción, Conceptos básicos)Tipos de Datos, Algebra binaria/)Sentencias de Entrada/Salida Modulo 2)Argumentos por valor, Argumentos por referencia)Manejo de memoria, Depuracióngde línea de comandos, Funciones de tiempop)Argumentos)Listas enlazadas, Manejo archivos, Macros)Definiciones, Control de flujo)Estructuras de datos, Funciones)Manejo de vectores y matrices, PunterosMario Medina C.Política de copiasEvaluaciones 3 Exámenes de Programación (Acumulativos))Modulo 1 - 25%)Modulo 2 - 35%)Modulo 3 - 40% Copia en un examen)1 para todos los involucrados No se contempla examen de recuperación)En caso de existir, reemplazará peor calificación “Se me perdió el pendrive” “SeSe me olvidó la tarea en un PC del laboratoriolaboratorio” “No sé cómo pasó” Copia en el segundo examen)1 en la asignaturaMario Medina C.Bibliografía a usarEscójala Ud.!Mario Medina C.Pero qué texto escojo? Curso no tiene texto guía)Libro clásico: B. Kernighan y D. Ritchie, “Ellenguaje de programación C”, 2da. Edición “El nuevo testamento” OtrosOtapuntest y tutorialest t i l)“Aprenda lenguaje ANSI C comosi estuviera en primero”)http://c.conclase.net)Apuntes C, Ricardo Sanchez.)Google!Mario Medina C. Daniel Herrera P.Mario Medina C.2

Taller de Programacion en C 2008-22-2008Objetivos del cursoLenguajes de programación Aprender a programar Aprender sobre estructuras de datos Aprender sobre algoritmos Aprender a escribir programas Aprender lenguaje C Objetivo: indicarle al computador lo quedeseamos que haga “Calcula el promedio de las tareas”)LenguajeLj naturalt l)Computador no lo entiende! Computador sólo entiende código binario)Secuencia de 1s y 0s)00110110111011011 . . . .Mario Medina C.Programación de computadores Computadores sólo hacen lo que se les pide Operaciones sumamente básicas)Sumar 2 números)VerificarV ifisii un ddato es iiguall a 0)Saltar de una instrucción a otra)Programar un computador implica expresar lasolución a un problema en términos que ésteentiendaMario Medina C.Ejemplo: Es n par ó impar? 1.2.33.4.Algoritmo:Dividir n por 2Verificar el restoSi es 11, n es imparSi es 0, n es parProgramas y algoritmos Programa: colección de instrucciones decomputador necesarias para resolver unproblema determinado Algoritmo: método utilizado para resolver elproblema)Un algoritmo dado puede expresarse de miles demaneras, dependiendo del Lenguaje de programación Sistema computacional ProgramadorMario Medina C.Brecha linguísticaPrograma en C:if Ân%2 Ã; Cómo pasar del algoritmo al programa? Brecha linguísticaMario Medina C. Daniel Herrera P.Mario Medina C.traducción Lenguajes de programación ayudan a cerrar labrecha linguística entre lo que queremos decir y loque el computador entiendeMario Medina C.3

Taller de Programacion en C 2008-22-2008Lenguaje natural y lenguaje formalNiveles de lenguajes Lenguaje natural Lenguajes de programación)Usado para comunicación oral y escrita)Producto de evolución, no invención)Lenguajes formales para expresar computaciones Lenguajes de alto y bajo nivel LenguajeL g j formalfl)RelaciónR l ió entre ell lenguajelj ded programaciónió y elllenguaje binario de la máquina)Diseñado para un propósito específico Matemáticas: usa lenguaje formal para hablar derelaciones entre símbolos y números Química: lenguaje formal para átomos y moléculas Computación: lenguaje formal para expresarprocedimientos (algoritmos) Bajo nivel: correspondencia 1-a-1 entre instruccionesde programa y código binario Alto nivel: correspondencia 1-a-muchosMario Medina C.Mario Medina C.Lenguajes de bajo nivelLenguajes de alto nivel Distintos niveles de abstracciónLenguaje ensamblador o assemblyEl más cercano al código binarioCorrespondencia 1-a-1 )Más lejos de la máquina)Más cerca de las personas 0101000100011001 0101001100010010 0101110100100100 0101001001001010LOAD R1, DatoADD R1, R2MULT R2, R4STORE R4, Result MásMá fáfácilesil ded programarg Portables entre sistemas)Deben ser traducidos a código binario Lenguajes interpretados y compilados Lenguajes mixtosMario Medina C.Mario Medina C.Ventajas de la compilaciónLenguajes compiladosFuncionesBibliotecas Ejecución de código es más rápida)Traducción a lenguaje de máquina ya fue rProgramaEjecutable Compilador traduce código fuente a códigoobjeto Ejecutor carga el programa y lo ejecutaMario Medina C. Daniel Herrera P. Código generado es más eficiente)CompiladorCil d tieneiacceso a todod ell código,ódi lol quefacilita la optimización del código Principal desventaja es el ciclo de trabajoEditar-Compilar-Depurar)Lento y tediosoMario Medina C.4

Taller de Programacion en C 2008-22-2008Algunos lenguajes de alto nivelQué es un programa? Compilados Interpretados Mixtos Secuencia de instrucciones que realizan unacomputación, que puede ser:)C)C n)Perl)PHP)Java)Matemática: maneja números)Simbólica: maneja texto Programar consiste en expresar una tareagrande y compleja en subtareas cada vez máspequeñas, hasta finalmente expresar la tareausando las instrucciones del computadorMario Medina C.Mario Medina C.Instrucciones de un lenguajecomputacionalQué es la depuración? Todo lenguaje computacional poseeinstrucciones de Programación es un proceso complejo)Entrada de datos)Salida de datos)Operaciones matemáticas)Verificación de condiciones)Repetición)Errar es humano! Proceso de eliminar errores de un programase llama depuracióndep ración (debugging))Consume el 80% del tiempo! Errores detectados por el compilador Errores detectados por el ejecutor Errores no detectados!Mario Medina C.Mario Medina C.Sintaxis de un lenguajeEl compilador revisa la sintaxis Todo lenguaje tiene una sintaxis Lenguajes de programación tienen más reglassintácticas que lenguajes hablados Compilador interpreta literalmente todo loescrito)Sintaxis: reglas sobre la estructuras válidas en ellenguaje Castellano:)Tilde en palabras agudas terminadas en n, s ovocal)Sustantivos propios llevan mayúsculas Lenguaje C:)Estudiaremos su sintaxis en este cursoMario Medina C. Daniel Herrera P.)No perdona errores Ej: C A//B;)Entrega mensajes indicando posible causa Saber interpretar estos mensajes Errores de tiempo de compilaciónMario Medina C.5

Taller de Programacion en C 2008-22-2008Errores pueden ser detectadosal ejecutarErrores de lógica del programa Errores de tiempo de ejecución Error no aparece hasta ejecutar el programa Ejemplo: Programa compila y se ejecuta sin problemas Programa no hace lo que queremos)C A/B;)Código es válido)Qué pasa si B 0?)Pero, programa sólo hace lo que le decimos quehaga!)Error en la lógica del programa Depurador ayuda a encontrar errores logicos)Requiere bastante intervención humana! Programa “se cae” al ejecutarse (A veces) indica que hubo una división por ceroMario Medina C.Mario Medina C.Primer programa en C Primer programa clásicoCómo se ejecuta unprograma)Almacenado en archivo hello.c#include stdio.h int mainÂÃÄprintf“hello, world\n”Ã;ÅDaniel Herrera P.danherrera@udec.clPrograma fuenteLenguajes llo chello.chello llo.exeEnlazadorProgramaEjecutable Compuesto por cadenas de caracteres Almacenado en la memoria del computadorcomo una secuencia de bytes)MemoriaMi es vectort lilineall dde bbytest)1 byte 8 bits (bit dígito binario) Codificado en ASCII extendido)Cada byte tiene un valor numérico Tabla ASCII Expresado en bases 10, 16 y 8Mario Medina C. Daniel Herrera P.6

Taller de Programacion en C 2008-22-2008Código ASCIITabla ASCII Texto es almacenado en ASCII 7 bits: b7b6b5b4b3b2b1 Byte: 8 bits)ASCII: American Standard Code for InformationInterchange)Representa mayúsculas,mayúsculas minúsculas,minúsculas números ycaracteres de control usando 7 bits)Normalmente, bit 8 es 0 Ejemplos)M: 10011012, 7710, 4D16, 1158)j: 11010102, 10610, 6A16, 1528)DEL: 11111112, 12710, 7F16, 1778 128 caracteres Extendido a 8 bits por IBM, Apple, etc.)Representación de lenguajes europeos Representación en 16 bits (Unicode) ASCII 0010 a 3110 son caracteres especialesPrograma fuente en memoriaPrograma fuente# i n c l u d e35105117100108h \n\ni n tSPm a i n  Ã\nÄ1046210101051103210910123\nSPSPSPSPp r i n t f  " h e 1Å1004040105\n108102110100101114116105116w o r l d \ n " à ;11111097115SP4410560l o ,11111432 s t d i o .99116101SP11059Cómo ve la memoria la CPU Detalles:)Valores ASCII dados en decimalSP indica espacio)SP)\n indica caracter de control de avance de línea(newline))No confundir con \ n, que son dos caracteresdiferentesInformación bits contextoUn byte CPU ve la memoria comoun vector lineal de bytes La secuencia de bits 00110101 1101100111011110 11000010 puede representar:Dirección 0Dirección 1Dirección 2)Un número entero)Un número decimal)Una secuencia de 4 caracteres)Una instrucción de código de máquina)Una imagen en blanco y negro)Cada byte tiene unadirección asociada)Es la unidad mínimadireccionable No es posible direccionarun bitDir. 2n-1Memoria(2n bytes) Daniel Herrera P. Toda información se almacena como bits)Significado depende del contexto7

Taller de Programacion en C 2008-22-2008El ComputadorElementos de un ComputadorCPURegistrosPC CPUALUBus desistemaMemoriaRAMPuenteI/OInterfaz de Bus Memoria RAMBus de E/SControladorUSBMouse TecladoAdaptadorGráficoControladorDiscoRanuras deExpansión)Transferencia de datossólo entre CPU y RAMProgramaejecutablePantallaDisco Entrada/Salida)Unidad Aritmética/Lógica(ALU))Registros)Contador de Programa(PC)Bus de Memoria BusesLeyendo el Teclado)Controlador USB Mouse Teclado)TarjetaT j t GráficaG áfi Pantalla)Controlador de disco Discos magnéticos Discos ópticos)Interfaz RedesLeyendo el tecladoCPURegistrosPCALUBus desistemaBus de MemoriaMemoriaRAMPuenteI/OInterfaz de Bus“hello”Bus de E/SControladorUSBMouse TecladoAdaptadorGráficoControladorDiscoRanuras iscoUsuario escribe “hello” Usuario escribe “hello” Intérprete de comandos recibe los caracteresy los carga en registros de CPU Luego, los caracteres son almacenados enmemoria RAM La tecla “enter” indica al intérprete que seterminó de escribir un comandoCarga del programaCarga del programaCPURegistrosPCALUBus desistemaBus de MemoriaMemoriaRAMPuenteI/OInterfaz de BusBus de E/SControladorUSBMouse sco Daniel Herrera P.Ranuras deExpansión“hello” El intérprete de comandos solicita al sistemaoperativo la ejecución del programa “hello” El sistema operativo localiza el programa endisco y lo carga en memoria RAM)No hay intervención de la CPU)Transferencia de datos via DMAProgramaEjecutable“hello”8

Taller de Programacion en C 2008-22-2008Escribiendo a pantallaEscribiendo a pantallaCPURegistrosPCALUBus desistemaBus de MemoriaMemoriaRAMPuenteI/OInterfaz de Bus“hello”Bus de PantallaMouse Teclado“hello, world\n”DiscoRanuras deExpansiónProgramaEjecutable“hello” La CPU lee secuencialmente el programa“hello” en memoria RAM, y ejecuta lasinstrucciones leídas La ejecución del programa consiste endesplegar el mensaje “hello, world\n”en la pantalla, por lo que la CPU envía loscaracteres correspondientes al adaptadorgráficoEn resumen Archivos se almacenanen disco)Discos magnéticos)Discos ópticos)Memorias flash Sistema operativo)Windows, Linux, Mac OS X)Interpreta comandos delusuario)Invoca aplicaciones Compilador Editor Cargador Programas se ejecutanen memoria)Transferencias disco memoria)Cargador (loader))Interactúa con elhardwareÁlgebra binariaDaniel Herrera P.danherrera@udec.clNúmeros en base 10Porqué usar base 2? Base usada día a día 10 dígitos Notación posicional Computadores digitales usan base 2)Valor del dígito dado por la posición)123410 1000 200 30 4)123410 1 103 2 102 3 101 4 100)3.45810 3 100 4 10-1 5 10-2 8 10-3 Daniel Herrera P.)Toda información se traduce a código binario)Fácil detección de estados)Fácil de implementar Sólo requiere 2 dígitos: 0 y 1 Compuerta está abierta / cerrada Corriente circula / no circula Transistor conduce / no conduce9

Taller de Programacion en C 2008-22-2008Números en base 2Números en base 16 Sólo 2 dígitos, 0 y 1 Valor del dígito dado por la posición Equivalente a base 2)Representación más fácil y compacta)Usa dígitos 0-9, A-F)36F016 3 163 6 162 15 161 1406410)110012 100002 10002 12)11001110012 1 24 1 23 1 20)110012 16 8 1 25 Fácil conversión entre base 2 y base 16)0011 1101 1010 01102 3DA616)Agrupar bits de derecha a izquierda de 4 en 4 Operaciones aritméticas: , -, * Operaciones lógicas: AND, OR, XORRepresentación binaria úmeros en base 11Representación binaria y octalDecimal01234567Octal01234567 Daniel Herrera 1415Octal1011121314151617Binario001 000001 001001 010001 011001 100001 101001 110001 111 Equivalente a base 2)Representación más fácil y compacta)Usa dígitos 0-7)36708 3 83 6 82 7 81 197610 Fácil conversión entre base 2 y base 8)001 101 010 1102 15268)Agrupar bits de derecha a izquierda de 3 en 3Potencias de 2 20 1 21 2 22 4 23 8 24 16 25 32 26 64 27 128 28 256 29 512 210 1024 (1 Kilo) 220 1024K (1 Mega) 230 1024M (1 Giga) 240 1024G (1 Tera) 250 1024T (1 Peta) 260 1024P (1 Eta) 270 1024E (1 Zetta) 280 1024Z (1 Yotta)10

Taller de Programacion en C 2008-22-2008Conversión de base 10 a base 2Conversión de fracciones Divisiones sucesivas Proceso de multiplicaciones sucesivas Convertir 28910 a base 2)Proceso termina cuandoresultado es 0)Retener los restos delas divisiones)El primer restocalculado es el bitmenos significativo b0 Cómo convertir de base10 a otras bases?)289:2 144 1/2)144:2 72 0/2) 72:2 36 0/2) 36:236 2 18 0/2) 18:2 9 0/2) 9:2 4 1/2) 4:2 2 0/2) 2:2 1 0/2) 1:2 0 1/2 Resultado: 1001000012)Proceso termina cuando la precisión del resultadoes equivalente Ejemplo: convertir 0.7880 78810 a base 2)Precisión original: 10-3)Precisión deseada: 2-xlog 10x 3 9.96log 2)Se busca el entero superior: x 10Conversión de fraccionesPrefijos estándar IEC Multiplicacionessucesivas No confundir 1 Kilo (1000) con 1 Kilo (1024) Convertir 0.78810 a base 2)Procesa terminacuando se alcanza laprecisión buscada)El primer rebalsecalculado es el bitmás significativo b-1 Resultado es11001001002)0.788*2 1.576 1 0.576)0.576*2 1.152 1 0.152)0.152*2 0.304 0 0.304)0.304*20 304*2 00.608608 0 0.6080 608)0.608*2 1.216 1 0.216)0.216*2 0.432 0 0.432)0.432*2 0.864 0 0.864)0.864*2 1.728 1 0.728)0.728*2 1.456 0 1.456)0.456*2 0.912 0 0.912)1 Kilo de papas 1000 gramos 103 gramos)1 Kilo de bytes 1024 bytes 210 bytes)En computación,computación Kilo se usa para 1024 Prefijos estándares IEC)210: Kibi (Ki))220: Mebi (Mi))230: Gibi (Gi))240: Tebi (Ti)Operaciones aritméticas suma ymultiplicaciónOperaciones lógicas AND y OR Suma de dígitosbinarios AND ( ))0 0 0)0 1 1)1 0 1)1 1 10 Esta última suma generaun “acarreo” Daniel Herrera P. Multiplicación de dígitosbinarios)0 0 0)0 1 0)1 0 0)1 1 1)Es 1 si ambos bits son 1)0 0 0)0 1 0)11 0 0)1 1 1 OR (v))Es 1 si al menos 1 bit es 1)0 v 0 0)0 v 1 11v0 1)1)1 v 1 1)OR “inclusivo”11

Taller de Programacion en C 2008-22-2008Operaciones lógicas XOR yNEXORUso de máscaras de bits para saberel valor de un bit XOR (OR Exclusivo) Cómo saber si el 3er. bit de A es 1? NEXOR)Es 1 si sólo 1 bit es 1)O bien, es 1 si ambosbits son distintos)0 XOR 0 0)0 XOR 1 1)1 XOR 0 1)1 XOR 1 0)Es 1 si ambos bits soniguales)0 NEXOR 0 1)0 NEXOR 1 0)1 NEXOR 0 0)1 NEXOR 1 1Uso de máscaras de bits para fijarvalores Cómo hacer 1 el 3er. bit de A?)Solución: OR de A con una máscaraAORa7a6a5a4a3a2a1a000 001 000a7a6a5a41 a2a1a0 Cómo hacerlo 0?)Solución: AND de A con una máscaraAa7a6a5a4a3a2a1a0AND 1 1 1 1 0 1 1 1a7a6a5a40 a2a1a0 Bits se numeran de derecha a izquierda, comenzandocon 0)Solución: AND de A con una máscaraAa7a6a5a4a3a2a1a0AND 0 0 0 0 1 0 0 00 0 0 0 a3 0 0 0Ahora, comparar resultado con 0Rango de representación de n bits Número binario de n bits puede representar2n números enteros, de 0 a 2n –1) 4 bits: 0 – 15) 8 bits: 0 – 255)16 bits: 0 – 65535)24 bits: 0 – 16777215)Qué pasa con los números negativos? Notación complemento a 2Notación complemento a 2: [n]2Representación de números consigno Codificación usada para representarnúmeros con signo Número de n bits representa 2n-1 númerospositivos y 2n-1 números negativos 4 bits puedenrepresentar 16 valores)Rango: -2n-1 a (2n-1 – 1)) 4 bits: -8 a 7) 8 bits: -128 a 127)16 bits: -32768 a 32767 Daniel Herrera P.)01112 710)00002 010)11112 -1110)10002 -810 8 bits puedenrepresentar 256 valores)011111112 12710)000000002 010)111111112 -1110)100000002 -12810 En notación con signo usando complemento a 2,01 .11 es siempre 2n-1-1, 11 11 es siempre –1y 10 .00 es siempre –2n-112

Taller de Programacion en C 2008-22-2008Representación de númerosnegativos complemento a 110100010101100111Rango de números en notacióncon signo Bit más significativo indica el signo)0: positivo)1: negativo Entonces,E tn bitsbit puedend representart)2n enteros positivos, (notación sin signo))2n-1 enteros positivos y 2n-1 enteros negativos(notación con signo) 0 es un entero positivo Bit más significativo indica el signoConversión a complemento a 2Negación de bits Cómo convertir un número a sucomplemento a 2? También llamado Complemento a 1: (n)2 Consiste en invertir todos los bits de unasecuencia1. Copiar el número de derecha a izquierda hastaencontrar el primer 1.2. Luego, invertir el resto de los bits410 01002 11002 -410) 011011011002 100100101002)00 1)1 0) 0010101102 1101010012Relación entre complemento a 1 ycomplemento a 2Porqúe usar complemento a 2? Complemento a 2 de n es equivalente aobtener complemento a 1 y sumar 1 Complemento a 2 simplifica la resta denúmeros binarios Convierte la resta de dos números en unasuma X2 – Y2 X2 [Y]2)[n]2 (n)2 1[1001011]2 (1001011)2 1 0110100 1 0110101 Daniel Herrera P.)Pero, hay dos casos dependiendo de la presenciade rebalses13

Taller de Programacion en C 2008-22-2008Cómo se resta usandocomplemento a 2?Qué pasa si no hay rebalse? 1110112 – 1001102 es equivalente a sumar1110112 [100110]2 1001102 – 1110112 es equivalente a sumar1001102 [111011]2)1110112 [100110]2 es 1110112 0110102 loque es igual a 10101012)Hubo un rebalse, por lo que 0101012 es elresultado correcto y el rebalse se ignora)Comprobación: 1110112 – 1001102 , lo que es5910 – 3810 2110 que en base 2 es 101012)Esto es 1001102 0001012 lo que da 1010112)No hubo rebalse: el resultado correcto es elcomplemento del resultado con signo negativo, esdecir,- [101011]2 -0101012)Comprobación: 1001102 – 1110112, lo que es3810 – 5910 -2110 que en base 2 es -101012Desplazamiento de bitsDivisión mediante desplazamiento Desplazamiento a la izquierda Desplazamiento lógico)Equivalente a multiplicar por 2 01102 11002 (610 1210) 01012 10102 (510 1010) Desplazamiento a la derecha)Equivalente a dividir por 2 01102 00112 (610 310) 01012 00102 (510 210))enteros positivos 11102 01112 (1410 710) 10012 01002 (910 410))enteros con signo 11102 01112 (-210 710) 10012 01002 (-710 410))Se pierde el signo!)División aproxima resultados a entero inferiorDivisión mediante desplazamiento Desplazamiento aritmético)enteros positivos 01102 00112 (610 310) 01012 00102 (510 210)El lenguaje deprogramación C)enteros con signo 11102 11112 (-210 -110) 10012 11002 (-710 -410))Se conserva el signo! Daniel Herrera P.Daniel Herrera P.danherrera@udec.cl14

Taller de Programacion en C 2008-22-2008Introducción al lenguaje CHistoria Uno de los lenguajes de programación másusados C fue creado por)Alto nivel)“Cercano)Cercano a la máquinamáquina”)Programador tiene control sobre el computador)Usado para tanto para sistemas operativos comopara aplicaciones Eficiencia PortabilidadHistoria)Dennis M. Ritchie Bell Labs Entre 1969 y 1973)Brian Kernighan y Dennis Ritchie, “El lenguaje deprogramación C”, Prentice-Hall, 1978 Describe informalmente la primera versión del lenguaje El “antiguo testamento”Historia C desciende de)BCPL)B (BCPL en 8KB) UsadoU d para escribiribi ell sistemai toperativoti UNIX Desarrollado en computadoresDennis Ritchiey KenThompsondesarrollandoUNIX en unPDP-11)DEC PDP-7)DEC PDP-11HistoriaHistoria American National Standards Institute generacomité X3J11 para estandarizar lenguaje C El lenguaje de programación C”, 2da. Ed.)ANSI C estándar X3.159-1989 (C89) Adoptado por la International StandardsOrganization como ISO/IEC 9899:1990 (C90))Básicamente igual a C89)Versión más usada Daniel Herrera P.)Publicado en 1988) Describe ANSI C)El “nuevo testamento” Revisión del estándar ISO)ISO 9899:1999 Conocido como C99 Agrega tipos de datos como long long, Bool Agrega nuevas bibliotecas y funciones15

Taller de Programacion en C 2008-22-2008Lenguaje de programación CEscritura de programas en C Lenguaje procedural Formato libre)Orientado a las funciones Conjunto básico de funciones)FuncionesFicomplejasl j vienenien bibliotecasbibli Es fácil escribir un compilador C)Generalmente es el primer compilador escritopara un computador nuevo Compiladores muy buenos disponibles)Interpretación del código no depende del formatodel texto Distingue entre mayúsculas y minúsculas Permite comentarios entre /* y */ C99: comentarios comienzan con ///* Este es un comentario */// Este tambienTópicos a tratar en el curso Tipos de datos de C Declaraciones Proposiciones Operadores Punteros Vectores Ristras de caracteres Daniel Herrera P. Funciones Manejo de memoria Preprocesador Funciones de E/S Estructuras de datos .16

)Relación entre e l lenguaje de programac ión y el lenguaje binario de la máquina Bajo nivel: correspondencia 1-a-1 entre instrucciones de programa y código binario Alto nivel: correspondencia 1-a-muchos Lenguajes de bajo nivel Lenguaje ensamblador o assembly El más cercano al código binario Correspondencia 1-a-1 Mario Medina C. LOAD .