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.
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.