Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a la programación en lenguaje C




Enviado por Pablo Turmero



    Monografias.com

    Evolución del Computador
    Antecedentes históricos
    Máquinas mecánicas: las computadoras de Charles Babbage
    Máquinas electromecánicas: el computador de Konrad Zuse
    Generaciones tecnológicas
    Primera generación: válvulas
    Segunda generación: transistores
    Tercera generación: circuitos integrados
    Cuarta generación: microprocesadores
    ¿Quinta generación?: el microprocesador como
    elemento básico

    Monografias.com

    Antecedentes históricos
    Primer reto: operaciones básicas

    El ábaco: primer instrumento
    para calcular.

    Tablilla dividida en varias
    columnas. Cada una con un
    conjunto de cuentas
    engarzadas en una varilla.

    Su origen se remonta a los
    siglos III o IV a. de C.

    Sigue en uso

    Monografias.com

    Máquina aritmética
    Desarrollada por Blas Pascal (1642, a los 18 años)
    Constaba de un conjunto de ruedas dentadas, cada una de ellas numerada del 0 al 9. Al pasar una rueda del 9 al 0 avanzaba un diente
    de rueda a la siguiente.

    Máquina Mecánica. Charles Babbage (1791-1871)
    “Uno de los padres del computador actual”
    “Adelantado” para la tecnología de la época
    Consta de una memoria, una unidad aritmética, sistema de engranajes para transferir datos entre memoria y la unidad aritmética y un dispositivo para introducir y sacar datos de la máquina
    Empleaba tarjetas perforadas para Programarse
    Antecedentes históricos

    Monografias.com

    Máquina Electromecánicas
    Herman Hollerith (1860-1929). Censo de los Estados Unidos
    Tarjetas perforadas
    Crea la empresa (TMC) que da lugar a IBM
    Konrad Zuse
    Construye (1941) el primer calculador universal programable (Z3).
    Trabaja en binario.
    Computador MARK-I Howard Aiken
    Evolución:
    Mark-II máquina de relés
    Mark-III y Mark-IV máquinas de tubos de vacío con
    programa almacenado.
    Antecedentes históricos

    Monografias.com

    1ª Generación: válvulas de vacío
    Velocidad de proceso en ms.
    Disipación calorífica muy elevada
    Gran tamaño y poca capacidad
    Lenguaje máquina
    Monoprogramación
    Sin sistema operativo

    Monografias.com

    1ª Generación: válvulas de vacío
    Colossus: grupo de científicos ingleses con Alan
    Turin (1943). Ayudó a descifrar el código
    enigma de los alemanes.
    ENIAC Electronic Numerical Integrator and Calculator.
    Eckert y Mauchly (1941)
    1er computador electrónico de propósito general.
    Programa cableado
    Cálculo de tablas de fuego de artillería
    Operativo durante la II Guerra Mundial. Conocido en 1946

    Monografias.com

    1ª Generación: válvulas de vacío
    ENIAC Características:

    30 Tm
    18.000 tubos de vacío
    100 Kw
    100 Khz
    Operaciones: suma,
    resta, multiplicación y
    división (suma: 200µs)
    20 registros de 10
    dígitos (2 pies/registro)
    Entrada/Salida de datos:
    Tarjetas perforadas

    Monografias.com

    1ª Generación: válvulas de vacío
    EDVAC (Electronic Discrete Variable Automatic Computer)
    Eckert-Mauchly-von Neumann
    Bases de la Arquitectura von Neumann
    Programa almacenado
    Tubos de vacío
    Aritmética binaria
    5 unidades: Entrada, Memoria, UAL, Control, Salida
    UNIVAC I – Remington-Rand Co. (Eckert-Mauchly Computer Co.)
    1er computador comercial con éxito. 1951
    48 sistemas, 250.000 $

    Monografias.com

    2ª Generación: transistores (1948)
    Menor tamaño, menor disipación de calor, mayor fiabilidad

    Primeros lenguajes de alto nivel:
    FORTRAN
    COBOL
    ALGOL

    Sistema Operativo

    Extensión de los computadores comerciales

    Monografias.com

    2ª Generación: transistores
    Innovadores, con poca repercusión comercial:
    UNIVAC LARC
    IBM STRETCH (o 7030)
    Burroughs D-825
    ATLAS
    Comerciales:
    CDC 1604 y 3600
    IBM 1410
    PDP 1 de DEC
    Serie 1100 de Univac

    Monografias.com

    3ª Generación: circuitos integrados
    Menor tamaño, más baratos, menor consumo de energía

    Primera familia de computadores, compatibles a nivel de
    arquitectura: IBM360

    Supercomputadores: 6600 de Control Data (Cray).

    Minicomputadores:
    PDP-8 y PDP-11

    Sistemas Operativos:
    Multiprogramación, tiempo compartido

    Lenguajes: alto nivel estructurado (Dijkstra, 1968)

    Monografias.com

    4ª Generación: microprocesadores VLSI
    Microprocesadores y
    memorias de
    semiconductor.

    1971: 1er microprocesador,
    INTEL 4004 (4 bits)

    8 bits: Intel 8080-85,
    Motorola 6800 y Zilog Z-80

    16 bits: Intel 8086-88,
    Motorola 68000 y Z-8000

    32 bits: Intel 80386,
    Motorola 68030

    Computadores personales y
    estaciones de trabajo

    Válvula, transistor, circuito integrado, microprocesador

    Monografias.com

    4ª Generación: microprocesadores VLSI
    Otras aplicaciones: electrodomésticos, equipos de
    música y vídeo, etc.

    Arquitectura RISC (MIPS R2000, SPARC)

    Supercomputadores: computadores paralelos

    Lenguajes de programación: C y Ada

    Sistemas Operativos. Estandarización: UNIX

    Interfaces gráficas

    Generalización de las redes de computadores

    Monografias.com

    ¿5ª Generación?: microprocesadores
    El microprocesador como elemento básico

    La computación masivamente paralela

    Inteligencia artificial

    La comunicación y las conexiones entre
    computadores como algo generalizado.

    Internet. Correo electrónico. World Wide
    Web….

    Monografias.com

    Los ordenadores actuales
    Integrados con millones de transistores

    Velocidades > GHz

    UAL y UC Microprocesador o CPU

    Memoria Principal (capacidad > Giga)

    Unidad de E/S en chipsets

    Diversidad y compatibilidad de periféricos (USB)

    Interconectividad de sistemas

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    Cualquier computadora es parte de un sistema, Un sistema de computo consta de cuatro partes:
    HARDWARE, conocido como la computadora
    SOFTWARE, conocido como los programas
    DATOS, los cuales son convertidos por el sistema en información, los datos computarizados son digitales (dígitos o números). Un archivo es un conjunto de datos que se le ha dado un nombre: trabajo.doc, foto.jpg, musica.mp3, programa.c, datos.txt
    PERSONAS, conocidos como los usuarios

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    HARDWARE, tiene muchas partes, pero cada pieza cae en una de las siguientes:
    Procesador (CPU : Central Processing Unit )
    Memoria
    Dispositivos de entrada y salida
    Dispositivos de almacenamiento

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    HARDWARE, “Arquitectura de von Neumann” :
    Soporta el concepto del programa almacenado, un concepto teórico muy importante que fue establecido por el matemático John von Neumann el 30 de junio de 1945, tanto el programa como sus datos son almacenados en la memoria del computador.
    Estos elementos están interconectados a través de un conjunto de líneas que llevan instrucciones (control bus), datos (data bus) y que permiten dar los valores de direcciones de memoria y dispositivos (memory bus).

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    HARDWARE, “Arquitectura de von Neumann” :
    Soporta el concepto del programa almacenado, un concepto teórico muy importante que fue establecido por el matemático John von Neumann el 30 de junio de 1945, tanto el programa como sus datos son almacenados en la memoria del computador.
    Estos elementos están interconectados a través de un conjunto de líneas que llevan instrucciones (control bus), datos (data bus) y que permiten dar los valores de direcciones de memoria y dispositivos (memory bus).

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    PROCESADOR (CPU) es el cerebro de la computadora, organiza y lleva a cabo las instrucciones del usuario o del software
    Pueden ser uno o mas microprocesadores conectados a una tarjeta de circuitos , todos sobre una tarjeta denominada Madre, que los conecta entre si.

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    PROCESADOR (CPU)
    Consiste de tres unidades principales:
    Unidad Aritmética/Lógica (ALU): La ALU es donde se realizan todas las operaciones que involucran un procesamiento matemático (particularmente aritmético) o lógico (operaciones booleanas).
    Registros: Los registros permiten el almacenammiento de datos para estas operaciones y sus resultados.
    Unidad de Control (CU): En la CU es donde se ejecutan todo el resto de las operaciones (decisión, control, movimiento de datos).

    Una CPU con todos estos elementos implementada en un solo chip recibe el nombre de microprocesador.

    Cada 18 meses se duplica el poder de computo de los micro procesadores basados en la tecnología del silicio

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    PROCESADOR (CPU) Velocidad de procesamiento – Poder de computo

    Ley de Moore: Honor a Gordon Moore, fundador de Intel.
    El poder de computo se duplica cada 18 meses

    Esto es debido a que cada 18 meses, el avance en la tecnología de silicio ha permitido colocar mas transistores en chips mas pequeños, hoy día se cuentan por millones, versus, a principios de los 70’s de solo miles.

    http://www.intel.com

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    PROCESADOR (CPU) Velocidad de procesamiento – Poder de computo

    Ley de Moore: Honor a Gordon Moore, fundador de Intel.
    El número de transistores de un chip se duplica cada dos años.

    Si el Hierro fue la materia prima del siglo XIX, .. el Silicio es la del siglo XX….

    Pero la Ley de Moore también significa costes en descenso. A medida que los ingredientes de las plataformas y los componentes basados en el silicio obtienen más rendimiento, resulta exponencialmente más barato fabricarlos y, por consiguiente, son más abundantes, más potentes y están más integrados en nuestra vida cotidiana.

    Los microprocesadores de hoy día equipan todo tipo de artículos, desde juguetes hasta semáforos. Una tarjeta de cumpleaños musical que cuesta unos cuantos bolívares hoy día tiene más capacidad de proceso que los grandes ordenadores más rápidos de hace décadas.

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    PROCESADOR (CPU) Velocidad de procesamiento – Poder de computo

    Ley de Moore: Honor a Gordon Moore, fundador de Intel.
    El número de transistores de un chip se duplica cada dos años.

    Esto ha dado como resultado ganancias en el desempeño e incremento en la velocidad. Pero no solo esto determina la velocidad de un chip, sino otros factores como el Reloj, los buses de datos la memoria caché y el coprocesador matemático.

    La velocidad de un procesador se mide en Megahertz, los megahertz indican la velocidad del reloj interno que posee todo microprocesador.

    Un Pentium 4 tiene una velocidad de 3.0 GHz (GHz = 1000 MHz )

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR

    DATOS: son convertidos por el sistema en información,
    los datos computarizados son digitales (dígitos o números).

    Los datos se representan utilizando únicamente los símbolos ‘0’ y ‘1’

    ‘0’ y ‘1’ son llamados BITS ( BInary digiTS )

    Un conjunto de 8 bits se denomina byte (octeto, de ocho)

    Con “8” bits, pueden representarse 2 a la 8, combinaciones:
    podemos crear 256 combinaciones diferentes de octetos con 0 y 1

    El código ASCII (American Standard Code for Information Interchange):

    representación de caracteres y símbolos de forma electrónica, en combinaciones de 8 bits.
    Incluye códigos para las letras del alfabeto (minúsculas y mayúsculas), los dígitos decimales, 32 caracteres especiales y caracteres de control.

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    DATOS: los datos computarizados son digitales (dígitos o números).

    Usar estándares requiere disciplina y a veces restringe la creatividad. Sin embargo, es muy útil para la comunicación entre usuarios. Internet requiere aún más enfoque en estándares, porque se trata en muchos casos de usuarios de idiomas diferentes. Las personas que tuvieron la visión de internet, trataron de establecer un plataforma de comunicación global. Usar estándares es una forma de cumplir este objetivo
    Ejemplo:
    Código ASCII carácter o símbolo que representa byte
    64 @ 00100000
    65 A 00100001

    Recuerden, en el sistema numérico decimal:

    123 base 10 = 1x 10^2 + 2 x 10^1 + 3 x 10^0 = 100 + 20 + 3

    De igual manera en el sistema numérico binario:

    100000 base 2 = 1 x 2^6 + 0 x 2^5 + 0 x 2^4 + 0 x 2 ^3 + 0 + 0 + 0 = 64

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    MEMORIA, Los programas se cargan y se corren desde la memoria.

    Los datos usados por el programa también se cargan en memoria para un acceso rápido.
    La unidad de medición para describir la memoria es el byte ( 8 bits )
    Es decir la capacidad de almacenar datos se mide en el numero de bytes que puede almacenar

    Kilobyte (KB) = 2 ^ 10 bytes = 1024 bytes, aprox 1000 bytes
    Megabyte (MB)= 2 ^ 20 bytes = 1048576 bytes, aprox 1000 KB
    Gigabyte (GB)= 2 ^ 30 bytes = 1073741824 bytes, aprox 1000 MB

    Hay dos tipos de memoria:
    RAM ( Random Access Memory)
    Se usa para cargar programas y datos mientras están en uso, pues permite un acceso mas rápido entre ella y el CPU.
    Son chips volátiles, al apagar el computador se borran los datos
    ROM ( Read Only Memory )
    Se usa para mantener información de manera permanente, esto se realiza en fabrica, y no son volátiles, por ejemplo, datos de arranque del computador.

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    DISPOSITIVOS DE ENTRADA Y SALIDA.

    Los dispositivos de entrada aceptan los datos del usuario:

    Teclado, ratón, escaners, cámaras digitales, micrófonos, etc

    Los dispositivos de salida devuelven los datos procesados por el usuario:

    Pantalla o monitor, la impresora, cornetas

    Los dispositivos de entrada/salida:

    Permiten la comunicación en las dos vías: módems, conectividad en redes, etc.

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    ALMACENAMIENTO.

    El propósito del almacenamiento, es guardar de manera permanente nuestros datos o programas.

    Diferencias entre almacenamiento y memoria:
    1 Hay mas lugar en el almacenamiento que en la memoria
    2 Los contenidos son conservados en el almacenamiento cuando la computadora se apaga
    3 El almacenamiento es mucho mas barato que la memoria

    El dispositivo que contiene un disco se llama unidad de disco
    Ejemplos:
    Disco duro : disco construido dentro del computador no removible, con gran capacidad
    Unidad de diskettes: permite leer/grabar datos en discos flexibles de diferentes formatos.
    Unidad de CD RW: permite leer/grabar datos en unidades de CD
    Unidades de diferentes formatos de discos ópticos, microdrive, flashcard, etc.

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    SOFTWARE: Permite a la computadora realizar una tarea determinada

    Programa: conjunto especifico de instrucciones electrónicas que dirigen a una computadora a realizar una tarea especifica.

    SOFTWARE DEL SISTEMA:
    Sistema Operativo: Le dice a la computadora como interactuar con el usuario y como usar los dispositivos

    SOFTWARE DE APLICACIÓN:
    Otros programas que ayudan a la gente a realizar tareas especificas, desde procesamiento de palabras (Word), hasta para interactuar en la WEB !!

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    SISTEMA OPERATIVO S.O.

    Conjunto de programas que se encargar de realizar la administración de todos los recursos que posee un computador
    Permiten que el desarrollo de nuevos programas o aplicaciones se independice del tipo de Hardware, Portabilidad

    COMANDO: Significa mandato, orden

    El usuario interactúa con el S.O a través de Comandos !!
    Pueden ser:
    Líneas de Comando: como en UNIX, DOS, LINUX
    Entorno TEXTO-GRAFICO: como en MS-WINDOWS, OPENWINDOWS, AMBIENTES GRAFICOS DE LINUX DE LA COMUNIDAD DE OPEN SOURCE

    Tareas del S.O.
    ORGANIZA Y ADMINISTRA LOS MEDIOS DE ALMACENAMIENTO
    DIRECTORIOS: Entidades logicas para organizar jerarquicamente la ubicación de la informacion. Se usan comandos para crear Directorios
    ARCHIVOS: Entidades logicas que contiene informacion diversa, creada por la aplicación o el usuario. Como archivos de texto, imágenes, musica, video. Con comandos del S.O las guardamos en Directorios

    Monografias.com

    ARQUITECTURA DEL COMPUTADOR
    SOFTWARE DE APLICACION:

    Aplicaciones: es un conjunto de programas que llevan a cabo tareas especificas tales como: Manejo de base de datos, Procesadores de texto, Diseño grafico, control de procesos, sistemas de finanzas, planillas de calculo, etc.

    Sistemas de desarrollo: Son conjuntos de programas, que implementan una tecnología de desarrollo, para generar nuevas aplicaciones.

    – Implementados usando Lenguajes de programación

    LENGUAJES DE PROGRAMACION

    Nivel de abstracción
    – Lenguajes de 1er nivel (bajo nivel): código de maquina
    – Lenguajes de 2do nivel (bajo nivel): Uso de Ensamblador
    – Lenguajes de 3er nivel (alto nivel): Uso de traductores tipo “interpretadores o compiladores. ( Lenguajes Pascal, Fortran, C, Basic, C++, Prolog, Lisp, Cobol, PL1, Ada, Java, HTML, XML, etc)

    Monografias.com

    Lenguajes de 1er Nivel
    Lenguaje de máquina, binario
    Ejecuta acciones directas en el CPU
    Instrucciones del tipo “1001001100101”
    Como recordar esto?
    Prácticamente nadie trabaja hoy a este nivel, excepto los diseñadores de "chips" procesadores.

    Lenguajes de Programación

    Monografias.com

    Lenguajes de 2do Nivel
    lenguaje más comprensible: por el hombre consiste por lo tanto en establecer la equivalencia de bloques binarios con signos de nuestro lenguaje habitual
    Comandos del tipo “ADC” (ADd with Carry)
    Se llama ENSAMBLADOR, el prog que traduce los comandos al lenguaje de máquina
    Progreso en la redacción de comandos
    Muy atado al tipo de CPU de la máquina

    Lenguajes de Programación

    Monografias.com

    Lenguajes de 3er Nivel
    Lenguajes de "alto nivel", es decir más cercanos al modo de expresar del hombre que de la operación de la máquina.
    El programador manipula entidades lógicas abstractas, sin los detalles de su implementación a nivel de maquina
    Más fáciles de manejar y más independientes de las características técnicas de los procesadores
    Redactar un programa, sin tener que preocuparse por el código binario o de ensamble

    Lenguajes de Programación

    Monografias.com

    Lenguajes de 3er Nivel
    Necesita un programa “traductor”, que transforma los bloques del lenguaje en bloques binarios
    El avance en el desarrollo de "compiladores" e "intérpretes" (los dos tipos de programas traductores) ha sido por lo tanto fundamental en el desarrollo de los lenguajes de alto nivel
    Ventajas: facilidad de aprendizaje, lectura/escritura, corrección, transformación y conversión de un lenguaje a otro.

    Lenguajes de Programación

    Monografias.com

    FORTRAN ( FORmula TRANslation)
    1953, Job Backus, un empleado de IBM propuso el desarrollo de un nuevo lenguaje de programación, el Fortran. Por aquella época, todos los programadores escribían en ensamblador
    Fue el primer lenguaje de alto nivel: fue desarrollado por IBM y su primera versión se lanzo en 1957.
    Se caracteriza por su potencia en los cálculos matemáticos pero está limitado en lo relativo al tratamiento de datos no numéricos

    Lenguajes de Programación

    Monografias.com

    ALGOL ( ALGOrithmic Lenguage)
    Primer lenguaje creado por un comité internacional (GAMM y ACM).
    En 1960 se reunieron representantes de varios países europeos y de Estados Unidos para crear un lenguaje destinado a "describir procesos" mediante instrucciones de control (iteraciones y alternaciones) de nivel más elevado que las existentes en las versiones existentes de su predecesor, el FORTRAN.

    Lenguajes de Programación

    Monografias.com

    Lenguajes de Programación

    Monografias.com

    Lenguajes de Programación

    Monografias.com

    C ( después de B …)

    Creado en 1972 por Dennis Ritchie, que junto con Ken Thompson habían diseñado anteriormente el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la máquina para utilizarlo en la implementación del sistema operativo UNIX .

    Se creó para superar las limitaciones del lenguaje B, utilizado por Ken Thompson para producir la versión original de UNIX en 1970.

    Lenguaje de Programación C

    Monografias.com

    El C es un lenguaje moderno de propósito general que combina las características de un lenguaje de alto nivel (programación estructurada, tipos y registros de datos, recursividad, etc.) con una serie de características más propias de lenguajes de mas bajo nivel

    Su definición apareció en 1978 en el libro
    "The C programming Language"
    Brian W. Kernighan y Dennis M. Ritchie
    (Ed. Prentice-Hall)

    Lenguaje de Programación C

    Monografias.com

    En 1983 se establece un comité para resolver las discrepancias de varias versiones de C, el cual empezó a trabajar en un estándar ANSI C, la cual fue completada en 1988. Este estándar incluye una enorme biblioteca de funciones para entrada/salida, tratamiento de textos, funciones matemáticas, etc

    Documentada en:
    1988. "The C Programming Language-Reference Manual”
    Dennis M. Ritchie (Lab.Bell)

    ANSI ( American National Standard Institute)

    Lenguaje de Programación C

    Monografias.com

    Lenguaje de Programación C
    CARACTERISTICAS

    Programación estructurada
    Economía de las expresiones
    Abundancia de operadores y tipos de datos
    Codificación en alto nivel y bajo nivel.
    No esta orientado a ningún área en especial
    Producción de código objeto altamente optimizado

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter