SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Historia del Lenguaje C
   C es un lenguaje de programación
    creado en 1972 por Dennis M. Ritchie
    en los Laboratorios Bell de AT&T. C
    es apreciado por la eficiencia del
    código que produce y es el lenguaje
    de programación más popular para
    crear software de sistemas, aunque
    también se utiliza para crear
    aplicaciones.
   El antecesor del Lenguaje C fue el
    Lenguaje B, que fue creado en 1970,
    por Ken Thompson, con la finalidad de
    reestructurar al sistema UNIX, que
    originalmente había sido escrito y
    producido en lenguaje ensamblador.

      El Lenguaje B, sucedió al Lenguaje
    BCPL, que fue escrito éste último por el
    programador Martín Richard en 1967, el
    lenguaje   B    era     un      lenguaje
    evolucionado e independiente de la
    máquina.
   Dennis Ritchie, modifica el Lenguaje B,
    para así crear el Lenguaje C, para
    posteriormente rescribir el sistema UNÍS en
    éste lenguaje. La diferencia entre el
    Lenguaje B y el Lenguaje C, es que este C
    permitía el diseño de nuevos tipos de datos,
    es decir daba la libertad al usuario de
    diseñar sus propios tipos de datos para el
    manejo que mejor le convenga , esta utilidad
    es muy utilizada en la actualidad por que
    permite al programador a tener un pleno
    control del programa que realiza y así poder
    adaptar cada circunstancia que se le
    presente     a    las    necesidades     que
    independientemente        provocan      cada
    situación.
     Unas de las peculiaridades de C es
  su riqueza de operadores. También
  existen toda una serie de operaciones
  que pueden hacerse con el Lenguaje C,
  que realmente no están incluidas en el
  compilador, si no que las realiza un pre-
  procesador     justo     antes   de    la
  compilación.
 Las dos más importantes son # define
  (directriz de sustitución simbólica o de
  definición), esta directriz es utilizada
  cuando declaramos una constante en
  algún programa, dentro del editor del
  Lenguaje C; y también          # Include
  (Directriz de inclusión en el fichero
Qué es un
algoritmo?
   Un algoritmo es un método para
    resolver un problema.
                Diseño del   Programa de
     Programa
                algoritmo    Computadora
Los pasos para la resolución de un
problema son:
◦ I . Diseño del algoritmo que describe la
  secuencia ordenada de pasos que
  conducen a la solución de un problema
  dado. (Análisis del problema y desarrollo
  del algoritmo.)

◦ 2. Expresar el algoritmo como         un
  programa       en un  lenguaje        de
  programación adecuado. (Fase          de
  codificación.)

◦ 3. Ejecución y validación del programa
Características de los algoritmos
 Un algoritmo debe ser preciso e
  indicar el orden de realización de
  cada paso.
 Un algoritmo debe estar definido. Si
  se sigue un algoritmo dos veces, se
  debe obtener el mismo.
 Un algoritmo debe ser finito. Si se
  sigue un algoritmo, se debe terminar
  en algún momento; es decir, debe
  tener un número finito de pasos.
Ejemplo:
   Un cliente ejecuta un pedido u una fábrica.
    La fábrica examina en su banco de datos la
    ficha del cliente, si el cliente es solvente
    entonces la empresa acepta el pedido; en
    caso contrario, rechazará el pedido.
    Redactar el algoritmo correspondiente.

    ◦ 1. Inicio.
    ◦ 2. Leer el pedido.
    ◦ 3. Examinar la ficha del cliente.
    ◦ 4. Si el cliente es solvente, aceptar pedido; en
      caso contrario, rechazar pedido.
    ◦ 5. Fin.
Ejercicios en Clase.
 Diseñar una solución para resolver
  cada uno de los siguientes problemas
  en algoritmos adecuados:
 a) Realizar una llamada telefónica
  desde un teléfono público.
 b) Cocinar un pastel.
 c) Cambiar una llanta a un auto.
 d) Hacer una suma.
EL SOFTWARE (LOS PROGRAMAS)




Relación entre programas de aplicación y programas del
sistema.
LENGUAJES DE PROGRAMACIÓN
     Para que un procesador realice un proceso se le
      debe suministrar en primer lugar un algoritmo
      adecuado. El procesador debe ser capaz de
      interpretar el algoritmo, lo que significa:
      ◦ Comprender las instrucciones de cada paso.
      ◦ Realizar las operaciones correspondientes.

     Cuando el procesador es una computadora, el
      algoritmo se ha de expresar en un formato que se
      denomina programa. Un programa se escribe en un
      lenguaje de programación y las operaciones que
      conducen a expresar un algoritmo en forma de
      programa se llaman programación. Así pues, los
      lenguajes utilizados para escribir programas de
      computadoras son los lenguajes de programación y
      programadores son los escritores y diseñadores de
      programas.
   Los principales tipos de lenguajes
    utilizados en la actualidad son tres:

    ◦ Lenguajes máquina.
    ◦ Lenguaje de bajo nivel (ensamblador).
    ◦ Lenguajes de alto nivel.
   Los lenguajes máquina son aquellos
    que están escritos en lenguajes
    directamente inteligibles por la máquina
    (computadora), ya que sus instrucciones
    son cadenas binarias (cadenas o series
    de caracteres -dígitos- 0 y 1) que
    especifican una operación, y las
    posiciones (dirección) de memoria
    implicadas   en     la    operación   se
    denominan instrucciones de máquina o
    código máquina. El código máquina es el
 Las ventajas de programar en lenguaje
  máquina son la posibilidad de cargar
  (transferir un programa a la memoria) sin
  necesidad de traducción posterior, lo que
  supone una velocidad de ejecución
  superior a cualquier otro lenguaje de
  programación.
 Los inconvenientes son:
    ◦ Dificultad y lentitud en la codificación.
    ◦ Poca fiabilidad.
    ◦ Dificultad grande de verificar y poner a punto
      los programas.
    ◦ Los programas sólo son ejecutables en el
      mismo procesador (UPC, unidad Central de
   Los lenguajes de bajo nivel son más
    fáciles de utilizar que los lenguajes
    máquina, pero, al igual, que ellos,
    dependen de la máquina en particular. El
    lenguaje de bajo nivel por excelencia es
    el ensamblador(assembly languaje). Las
    instrucciones en lenguaje ensamblador
    son instrucciones conocidas como
    nemotécnicos       (mnemonics).      Por
    ejemplo, nemotécnicos típicos de
    operaciones aritméticas son: en inglés,
    ADD, SUB, DIV, etc.
Ejemplo
 Una instrucción típica de suma sería:
     ADD M, N, P
 su equivalente en código máquina:
     0110 1001 1010 1011



Hay que traducir al lenguaje de
 máquina.
Los     lenguajes   ensambladores
presentan la ventaja frente a los
lenguajes máquina de su mayor
facilidad de codificación y, en
general, su velocidad de cálculo.
   Los inconvenientes más notables de los
    lenguajes ensambladores son:

    ◦ Dependencia total de la máquina, lo que
      impide la transportabilidad de los programas
      (posibilidad de ejecutar un programa en
      diferentes    máquinas).      El     lenguaje
      ensamblador del PC es distinto del lenguaje
      ensamblador del Apple Macintosh.
    ◦ La formación de los programas es más
      compleja que la correspondiente a los
      programadores de alto nivel, ya que exige no
      sólo las técnicas de programación, sino
      también el conocimiento del interior de la
      máquina.
   Los lenguajes de alto nivel son los
    más utilizados por los programadores.
    Están diseñados para que las
    personas escriban y entiendan los
    programas de un modo mucho más
    fácil que los lenguajes máquina y
    ensambladores. Otra razón es que un
    programa escrito en lenguaje de alto
    nivel es independiente de la máquina;
    esto es, las instrucciones del
    programa de la       computadora no
    dependen del diseño del hardware o
    de una computadora en particular.
 Los lenguajes de alto nivel presentan las siguientes
  ventajas:
  ◦ El tiempo de formación de los programadores es
    relativamente corto comparado con otros lenguajes
  ◦ La escritura de programas se basa en reglas
    sintácticas similares a los lenguajes humanos.
  ◦ Las modificaciones y puestas a punto de los
    programas son más fáciles.
  ◦ Reducción del coste de los programas.
  ◦ Transportabilidad.
 Los inconvenientes se concretan en:
  ◦ Incremento del tiempo de puesta a punto, al
    necesitarse diferentes traducciones del programa.
  ◦ No se aprovechan los recursos internos de la
    máquina, que se explotan mucho mejor en lenguajes
    máquina y ensambladores.
  ◦ Aumento de la ocupación de memoria.
Traductores de lenguaje
   Los traductores se dividen en:
    ◦ Intérpretes.
    ◦ Compiladores.
La compilación y sus fases
Ventajas de C
 El lenguaje C es poderoso y flexible, con órdenes,
  operaciones y funciones de biblioteca que se pueden
  utilizar para escribir la mayoría de los programas que
  corren en la computadora.
 C se utiliza por programadores profesionales para
  desarrollar software en la mayoría de los modernos
  sistemas de computadora.
 Se puede utilizar C para desarrollar sistemas
  operativos, compiladores, sistemas de tiempo real y
  aplicaciones de comunicaciones.
 Un programa C puede ser escrito para un tipo de
  computadora y trasladarse a otra computadora con
  pocas o ninguna modificación -propiedad conocida
  como portabilidad-.
Características técnicas de C
   Una nueva sintaxis para declarar funciones. Una
    declaración de función puede añadir una descripción
    de los argumentos de la función. Esta información
    adicional sirve para que los compiladores detecten
    más fácilmente los errores causados por argumentos
    que no coinciden.
   Asignación      de    estructuras     (registros)    y
    enumeraciones.
   Preprocesador más sofisticado.
   Una nueva definición de la biblioteca que acompaña
    a C. Entre otras funciones se incluyen: acceso al
    sistema operativo (por ejemplo, lectura y escritura de
    archivos), entrada y salida con formato, asignación
    dinámica de memoria, manejo de cadenas de
    caracteres.
   Una colección de cabeceras estándar que
Versiones actuales de C
 En la actualidad son muchos los fabricantes de
  compiladores C, aunque los más populares entre
  los fabricantes de software son: Microsoft,
  Imprise, etc.
 Una evolución de C, el lenguaje C++ (C con
  clases) que contiene entre otras, todas las
  características de ANSI C. Los compiladores
  más empleados Visual C++ de microsoft. Builder
  C++, Borland, C++ bajo UNIX y LINUX.
 En el 2000, Microsoft patentó una nueva versión
  de C++, que es C#, una evolución del C++
  estándar, con propiedades de Java y diseñado
  para aplicaciones en línea, Internet (on line) y
 fuera de línea.

Weitere ähnliche Inhalte

Was ist angesagt?

Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)YJGG
 
Comunicaciones y protocolos industriales
Comunicaciones  y protocolos industrialesComunicaciones  y protocolos industriales
Comunicaciones y protocolos industrialesDocumentosAreas4
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje cwuaro1
 
Estructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorEstructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorJose Diaz Silva
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacionguestd5974a6
 
Bus de datos, dirección y control
Bus de datos, dirección y controlBus de datos, dirección y control
Bus de datos, dirección y controlJulian1784
 
Conceptos Basicos Programacion
Conceptos Basicos ProgramacionConceptos Basicos Programacion
Conceptos Basicos ProgramacionMichele André
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpuIsaí Beto Matz Mijes
 
Estructura de las computadoras digitales
Estructura de las computadoras digitalesEstructura de las computadoras digitales
Estructura de las computadoras digitalesvikijudith
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumannvictor medra
 
Sintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensambladorSintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensambladornaye torres
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificialwarrionet
 
Lenguajes de bajo nivel
Lenguajes de bajo nivelLenguajes de bajo nivel
Lenguajes de bajo nivelfelipehhg
 

Was ist angesagt? (20)

Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Sensores analogicos
Sensores analogicosSensores analogicos
Sensores analogicos
 
Comunicaciones y protocolos industriales
Comunicaciones  y protocolos industrialesComunicaciones  y protocolos industriales
Comunicaciones y protocolos industriales
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Estructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorEstructura y funcionamiento del procesador
Estructura y funcionamiento del procesador
 
4.usabilidad
4.usabilidad4.usabilidad
4.usabilidad
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 
Bus de datos, dirección y control
Bus de datos, dirección y controlBus de datos, dirección y control
Bus de datos, dirección y control
 
Conceptos Basicos Programacion
Conceptos Basicos ProgramacionConceptos Basicos Programacion
Conceptos Basicos Programacion
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
 
Presentacion
PresentacionPresentacion
Presentacion
 
Estructura de las computadoras digitales
Estructura de las computadoras digitalesEstructura de las computadoras digitales
Estructura de las computadoras digitales
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Sintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensambladorSintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensamblador
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificial
 
Tipos de Memoria
Tipos de MemoriaTipos de Memoria
Tipos de Memoria
 
Lenguajes de bajo nivel
Lenguajes de bajo nivelLenguajes de bajo nivel
Lenguajes de bajo nivel
 
LA CPU
LA CPULA CPU
LA CPU
 

Andere mochten auch

Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacionnmqy28
 
Diseño estructurado de algoritmos
Diseño estructurado de algoritmosDiseño estructurado de algoritmos
Diseño estructurado de algoritmosGalo Fabara Vargas
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoGermania Rodriguez
 
Automatas Infinitos
Automatas Infinitos Automatas Infinitos
Automatas Infinitos Orlando
 
Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Vikky Moscoso
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticasRobin Pena
 
Estructuras algoritmicas representación
Estructuras algoritmicas representaciónEstructuras algoritmicas representación
Estructuras algoritmicas representaciónBenjamin Medina Ramirez
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.guestdf1874
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6UTN-FRT Tucumán Argentina
 
Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Moises Morales
 
Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Yamid Navea
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmosYulyana López
 
Cuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCamilo Garcia
 

Andere mochten auch (20)

Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacion
 
Introduccion a los algoritmos
Introduccion  a los algoritmosIntroduccion  a los algoritmos
Introduccion a los algoritmos
 
Diseño estructurado de algoritmos
Diseño estructurado de algoritmosDiseño estructurado de algoritmos
Diseño estructurado de algoritmos
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Automatas Infinitos
Automatas Infinitos Automatas Infinitos
Automatas Infinitos
 
Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticas
 
Estructuras algoritmicas representación
Estructuras algoritmicas representaciónEstructuras algoritmicas representación
Estructuras algoritmicas representación
 
1.1. afn. conocer
1.1. afn. conocer1.1. afn. conocer
1.1. afn. conocer
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6
 
Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)
 
Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Solución de problemas con algoritmos
Solución de problemas con algoritmosSolución de problemas con algoritmos
Solución de problemas con algoritmos
 
Fase De Analisis Del Problema
Fase De Analisis Del ProblemaFase De Analisis Del Problema
Fase De Analisis Del Problema
 
Cuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en Scratch
 
Diseño y elaboración de algoritmos
Diseño y elaboración de algoritmosDiseño y elaboración de algoritmos
Diseño y elaboración de algoritmos
 

Ähnlich wie Diseño de Algoritmos

Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacionmichelledelgado97
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONKathGon1
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónKatherine Gonzales
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Facultad de Ciencias y Sistemas
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgarjimsaso
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdfNancyHerrera88
 
Universidad de panamá kathia j
Universidad de panamá kathia jUniversidad de panamá kathia j
Universidad de panamá kathia jJoel Boya
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senadejuansi2
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senazeepulveediita20
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senazeepulveediita20
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senaNat Alia
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOadark
 

Ähnlich wie Diseño de Algoritmos (20)

Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgar
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Universidad de panamá kathia j
Universidad de panamá kathia jUniversidad de panamá kathia j
Universidad de panamá kathia j
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 

Kürzlich hochgeladen

Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 

Kürzlich hochgeladen (20)

PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 

Diseño de Algoritmos

  • 1. Historia del Lenguaje C  C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell de AT&T. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
  • 2. El antecesor del Lenguaje C fue el Lenguaje B, que fue creado en 1970, por Ken Thompson, con la finalidad de reestructurar al sistema UNIX, que originalmente había sido escrito y producido en lenguaje ensamblador.  El Lenguaje B, sucedió al Lenguaje BCPL, que fue escrito éste último por el programador Martín Richard en 1967, el lenguaje B era un lenguaje evolucionado e independiente de la máquina.
  • 3. Dennis Ritchie, modifica el Lenguaje B, para así crear el Lenguaje C, para posteriormente rescribir el sistema UNÍS en éste lenguaje. La diferencia entre el Lenguaje B y el Lenguaje C, es que este C permitía el diseño de nuevos tipos de datos, es decir daba la libertad al usuario de diseñar sus propios tipos de datos para el manejo que mejor le convenga , esta utilidad es muy utilizada en la actualidad por que permite al programador a tener un pleno control del programa que realiza y así poder adaptar cada circunstancia que se le presente a las necesidades que independientemente provocan cada situación.
  • 4. Unas de las peculiaridades de C es su riqueza de operadores. También existen toda una serie de operaciones que pueden hacerse con el Lenguaje C, que realmente no están incluidas en el compilador, si no que las realiza un pre- procesador justo antes de la compilación.  Las dos más importantes son # define (directriz de sustitución simbólica o de definición), esta directriz es utilizada cuando declaramos una constante en algún programa, dentro del editor del Lenguaje C; y también # Include (Directriz de inclusión en el fichero
  • 6. Un algoritmo es un método para resolver un problema. Diseño del Programa de Programa algoritmo Computadora
  • 7. Los pasos para la resolución de un problema son: ◦ I . Diseño del algoritmo que describe la secuencia ordenada de pasos que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo.) ◦ 2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación.) ◦ 3. Ejecución y validación del programa
  • 8. Características de los algoritmos  Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.  Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo.  Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; es decir, debe tener un número finito de pasos.
  • 9. Ejemplo:  Un cliente ejecuta un pedido u una fábrica. La fábrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Redactar el algoritmo correspondiente. ◦ 1. Inicio. ◦ 2. Leer el pedido. ◦ 3. Examinar la ficha del cliente. ◦ 4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido. ◦ 5. Fin.
  • 10. Ejercicios en Clase.  Diseñar una solución para resolver cada uno de los siguientes problemas en algoritmos adecuados:  a) Realizar una llamada telefónica desde un teléfono público.  b) Cocinar un pastel.  c) Cambiar una llanta a un auto.  d) Hacer una suma.
  • 11. EL SOFTWARE (LOS PROGRAMAS) Relación entre programas de aplicación y programas del sistema.
  • 12.
  • 13. LENGUAJES DE PROGRAMACIÓN  Para que un procesador realice un proceso se le debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo que significa: ◦ Comprender las instrucciones de cada paso. ◦ Realizar las operaciones correspondientes.  Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato que se denomina programa. Un programa se escribe en un lenguaje de programación y las operaciones que conducen a expresar un algoritmo en forma de programa se llaman programación. Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación y programadores son los escritores y diseñadores de programas.
  • 14. Los principales tipos de lenguajes utilizados en la actualidad son tres: ◦ Lenguajes máquina. ◦ Lenguaje de bajo nivel (ensamblador). ◦ Lenguajes de alto nivel.
  • 15. Los lenguajes máquina son aquellos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres -dígitos- 0 y 1) que especifican una operación, y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el
  • 16.  Las ventajas de programar en lenguaje máquina son la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.  Los inconvenientes son: ◦ Dificultad y lentitud en la codificación. ◦ Poca fiabilidad. ◦ Dificultad grande de verificar y poner a punto los programas. ◦ Los programas sólo son ejecutables en el mismo procesador (UPC, unidad Central de
  • 17. Los lenguajes de bajo nivel son más fáciles de utilizar que los lenguajes máquina, pero, al igual, que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador(assembly languaje). Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos (mnemonics). Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés, ADD, SUB, DIV, etc.
  • 18. Ejemplo  Una instrucción típica de suma sería: ADD M, N, P  su equivalente en código máquina: 0110 1001 1010 1011 Hay que traducir al lenguaje de máquina.
  • 19. Los lenguajes ensambladores presentan la ventaja frente a los lenguajes máquina de su mayor facilidad de codificación y, en general, su velocidad de cálculo.
  • 20. Los inconvenientes más notables de los lenguajes ensambladores son: ◦ Dependencia total de la máquina, lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh. ◦ La formación de los programas es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no sólo las técnicas de programación, sino también el conocimiento del interior de la máquina.
  • 21. Los lenguajes de alto nivel son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Otra razón es que un programa escrito en lenguaje de alto nivel es independiente de la máquina; esto es, las instrucciones del programa de la computadora no dependen del diseño del hardware o de una computadora en particular.
  • 22.  Los lenguajes de alto nivel presentan las siguientes ventajas: ◦ El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes ◦ La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. ◦ Las modificaciones y puestas a punto de los programas son más fáciles. ◦ Reducción del coste de los programas. ◦ Transportabilidad.  Los inconvenientes se concretan en: ◦ Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del programa. ◦ No se aprovechan los recursos internos de la máquina, que se explotan mucho mejor en lenguajes máquina y ensambladores. ◦ Aumento de la ocupación de memoria.
  • 23.
  • 24. Traductores de lenguaje  Los traductores se dividen en: ◦ Intérpretes. ◦ Compiladores.
  • 25. La compilación y sus fases
  • 26. Ventajas de C  El lenguaje C es poderoso y flexible, con órdenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.  C se utiliza por programadores profesionales para desarrollar software en la mayoría de los modernos sistemas de computadora.  Se puede utilizar C para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.  Un programa C puede ser escrito para un tipo de computadora y trasladarse a otra computadora con pocas o ninguna modificación -propiedad conocida como portabilidad-.
  • 27. Características técnicas de C  Una nueva sintaxis para declarar funciones. Una declaración de función puede añadir una descripción de los argumentos de la función. Esta información adicional sirve para que los compiladores detecten más fácilmente los errores causados por argumentos que no coinciden.  Asignación de estructuras (registros) y enumeraciones.  Preprocesador más sofisticado.  Una nueva definición de la biblioteca que acompaña a C. Entre otras funciones se incluyen: acceso al sistema operativo (por ejemplo, lectura y escritura de archivos), entrada y salida con formato, asignación dinámica de memoria, manejo de cadenas de caracteres.  Una colección de cabeceras estándar que
  • 28. Versiones actuales de C  En la actualidad son muchos los fabricantes de compiladores C, aunque los más populares entre los fabricantes de software son: Microsoft, Imprise, etc.  Una evolución de C, el lenguaje C++ (C con clases) que contiene entre otras, todas las características de ANSI C. Los compiladores más empleados Visual C++ de microsoft. Builder C++, Borland, C++ bajo UNIX y LINUX.  En el 2000, Microsoft patentó una nueva versión de C++, que es C#, una evolución del C++ estándar, con propiedades de Java y diseñado para aplicaciones en línea, Internet (on line) y  fuera de línea.