Вы находитесь на странице: 1из 33

Algoritmos y estructura de datos

Sesin de Aprendizaje: La computadora Fundamentos sobre Algoritmos

Dr. Frank Edmundo Escobedo Bailn

Quin eres?
Presentacin personal

QU ES UNA COMPUTADORA?

La computadora
Una computadora es un dispositivo capaz de realizar clculos y tomar decisiones lgicas a velocidades hasta miles de millones de veces ms rpidas que las alcanzables por los seres humanos

CULES SON LAS PARTES DE UNA COMPUTADORA?

Partes del Hardware


1. Unidad de entrada. Que es la seccin de recepcin de la computadora: obtiene informacin (datos y programas de computadora) y lo coloca a disposicin de las dems unidades para que sea procesada. La informacin se introduce por medio del teclado o del Mouse (ratn). Otros dispositivos pueden ser los escneres, los lpices pticos, las pantallas touch screen, cmaras, etc.

Partes del Hardware


2. Unidad de salida. La computadora muestra las respuestas a travs de esta unidad, estas respuestas son el resultado del procesamiento que realiza la computadora con los datos que hemos introducido. Por ejemplo mediante un dispositivo de entrada como el teclado, podemos escribir palabras la cuales las podremos observar por un dispositivo de salida como el monitor o la pantalla. Otros dispositivos de salida son tambin la impresora, los parlantes, tarjetas de video.

Partes del Hardware


3. Unidad de memoria. Tambin se la conoce como memoria RAM, es el almacn primario de la computadora por lo que es relativamente de baja capacidad. Esta memoria es la ms importante de la computadora, porque guarda informacin necesaria para que la computadora pueda arrancar y funcionar, en otras palabras guarda informacin de todos los programas que se ejecutan en una computadora incluyendo al Sistema Operativo.

Partes del Hardware


4. Unidad aritmtica y lgica (ALU). Esta es la parte de la computadora en donde se realizan los clculos. sumas o restas. Aqu estn tambin los mecanismos de decisin que permiten a la computadora, por ejemplo, comparar dos elementos de la unidad de memoria para determinar si son iguales o no.

Partes del Hardware


5. Unidad central de procesamiento (CPU). Es el cerebro de la computadora, pues es el coordinador de la mquina y la parte encargada de supervisar el funcionamiento de las otras secciones. La CPU le dice a la unidad de entrada cundo debe leerse informacin para introducirla en la unidad de memoria, le dice a la ALU cuando la informacin de la unidad de memoria debe utilizarse en los clculos y le dice la unidad de salida cuando debe enviar la informacin que est es la unidad de memoria a ciertos dispositivos de salida.

Partes del Hardware


6. Unidad de almacenamiento secundario. Esta es el almacn de largo plazo y de alta capacidad de la computadora. Los programas y datos que nos estn siendo utilizados por las otras unidades normalmente se colocan en dispositivos de almacenamiento secundario hasta que necesiten, posiblemente horas, das, meses o incluso aos despus. El acceso es ms lento comparado con el de la memoria primaria o memoria RAM.

Partes del Software


Programa Un programa es un conjunto de instrucciones lgicas que le dicen a la computadora que debe hacer, adems un programa debe satisfacer las necesidades de los usuarios utilizando eficientemente los recursos disponibles.

Partes del Software


Los programas que escribiremos ms adelante sern utilizando un lenguaje de programacin muy popular como lo es el C++. Cdigo Fuente Le daremos el nombre de cdigo fuente a los programas que escribamos en un determinado lenguaje de programacin, que simplemente estar compuesto por instrucciones escritas por un programador. El cdigo fuente no constituye software propiamente dicho pero es una instancia mediante la cual se llega al Software.

Partes del Software


Sistema Operativo Es el programa ms importante que se ejecuta en una computadora. Cualquier computadora de propsito general debe operar con un sistema operativo para lograr ejecutar otros programas. El sistema operativo ejecuta las tareas bsicas, como de reconocer entradas desde el teclado, enviar mensajes a pantalla, manteniendo rastro de los archivos y directorios en el disco, y controlar los dispositivos perifricos como las impresoras.

Lenguajes de alto nivel y lenguajes de bajo nivel


1. Lenguaje mquina Una computadora slo puede entender el lenguaje mquina. El lenguaje de mquina ordena a la computadora realizar sus operaciones fundamentales una por una. Dicho lenguaje es difcil de usar para lar persona porque trabajar con nmeros no es muy cmodo adems estos nmeros estn en formato binario. 2. Lenguajes de bajo nivel (ensamblador) Para facilitar y agilizar su labor a los programadores, se buscaron nuevos lenguajes. El lenguaje ensamblador consiste en pequeas abreviaturas de palabras en ingles. Se crearon los programar traductores para convertir los programas escritos en lenguaje ensamblador a lenguaje mquina a velocidades de computadora. Estos lenguajes aun requeran muchas instrucciones para realizar simples operaciones. 3. Lenguajes de alto nivel Para acelerar, an ms, el proceso de programacin se desarrollan los lenguajes de alto nivel en los que se poda escribir un enunciado para realizar tareas sustanciales. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que asemejan el ingles cotidiano y contiene notaciones matemticas de uso comn.

Diferencia entre Compilador e Interprete


El lenguaje intrprete es un programa que lee lnea a lnea un programa escrito en un lenguaje; en lenguaje fuente y lo va traduciendo a un cdigo intermedio, para ejecutarlo. El lenguaje compilador es un programa que lee totalmente un programa escrito en un lenguaje; el lenguaje fuente, y lo traduce a un programa equivalente a otro lenguaje, lenguaje objeto. La ventaja del intrprete es que dado cualquier programa se puede interpretarlo en cualquier plataforma (sistema operativo), en cambio el archivo generado por el compilador solo funciona en la plataforma en donde se lo ha creado. Pero por otro lado un archivo compilado puede ser distribuido fcilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el interprete. Hablando de la velocidad de ejecucin una archivo compilado es de 10 a 20 veces ms rpido que un archivo interpretado.

Modelos de compilacin

MODELOS DE COMPILACIN
PREPROCESADOR Acepta el cdigo fuente como entrada y es responsable de: - Quitar los comentarios - Interpretar las directivas del preprocesador (#)

COMPILADOR El compilador traduce cdigo fuente en cdigo ensamblador, el cdigo fuente lo recibe del preprocesador. El compilador de C es uno de los ms eficientes que existen, el cdigo generado es compacto y consume pocos recursos. El cdigo ensamblador puede ser obtenido directamente con la opcin s, luego el archivo puede ser abierto con un editor ASCII y puede ser ledo y modificado normalmente.

MODELOS DE COMPILACIN
ENSAMBLADOR Permite tomar el cdigo en lenguaje ensamblador y generar un cdigo denominado objeto. El cdigo objeto es binario y posee todas las instrucciones assembler traducidas a cero y unos, salvo las instrucciones que forman parte de las libreras utilizadas en el programa.
ENLAZADOR El enlazador es el encargado de tomar el cdigo objeto y agregarle el cdigo relativo a las libreras utilizadas en el programa, el cdigo generado en esta etapa es llamado ejecutable. Hay dos tipos principales de enlazado (linkado):

Definicin de algoritmo
Qu es Algoritmo? Se deriva de la traduccin al latn de la palabra rabe Alkhowarismi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Algoritmos Un algoritmo es un procedimiento a seguir, para resolver un problema en trminos de: 1. Las acciones por ejecutar; y el 2. El orden en que dichas acciones deben ejecutarse

Qu debe tener un algoritmo?


ROBUSTEZ DE UN ALGORITMO CORRECTITUD DE UN ALGORITMO COMPLETITUD DE UN ALGORITMO EFICIENCIA Y EFICACIA DE UN ALGORITMO

Caractersticas
preciso, tiene que indicar el orden de realizacin en cada paso. definido, es decir, si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado. finito, es decir, que el algoritmo tiene que tener un nmero determinado de pasos. Debe producir un resultado en un tiempo finito.

Fases para la Resolucin de Problemas


Anlisis Diseo Implementacin
Codificacin Compilacin y ejecucin Verificacin Depuracin Documentacin

Al ejecutar un programa se pueden producir tres tipos de errores: Errores de Compilacin Errores de Ejecucin Errores Lgicos

Herramientas de programacin
Diagramas de flujo Pseudocdigos Diagrama NASSI-SCHNEIDERMAN(N-S).

Diagramas de Flujo

Pseudocdigo

Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil. El pseudocdigo naci como un lenguaje similar al ingls y era un medio representar bsicamente las estructuras de control de programacin estructurada. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. Cabe sealar que el pseudocdigo no puede ser ejecutado por una computadora.

El diagrama N-S de NassiLas palabras reservadas ms Schneiderman utilizadas son:


Inicio Fin Leer Escribir Mientras Repita Hasta Para Incrementar Decrementar Hacer Funcin Entero Real Caracter Cadena Lgico Retornar

El diagrama N-S o tambin conocido como diagrama de Chapn es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo. El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas.

Simbologa utilizada en los diagramas de flujo

Representa el inicio y el final

Entrada y Salida

Procesos de Cualquier Tipo

Decisin

El diagrama de flujo de datos

Simbologa utilizada en los diagramas de flujo


Lnea de Flujo

Decisin Mltiple

Lnea

Conector entre dos puntos del organigrama

Llamada a una subrutina o un Proceso

Conector Pantalla

Impresora

Teclado

El diagrama de flujo de datos

Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al salario bruto en concepto de impuestos (20 por 100).

El diagrama de flujo de datos

El diagrama N-S de Nassi-Schneiderman

Ejemplo: Se desea calcular el salario neto semanal de un trabajador en funcin del nmero de horas trabajadas y la tasa de impuestos.

El diagrama N-S de Nassi-Schneiderman

Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al sueldo bruto en concepto de impuestos (20 por 100).

El diagrama N-S de Nassi-Schneiderman

Вам также может понравиться