Tema 01: ALGORITMOS, REPRESENTACIÓN DEL ALGORITMO Y PROGRAMACIÓN ESTRUCTURADA
Dirección de Calidad Educativa Estructura de Datos - Edson Raúl Lazo Alvarez
Propósito El estudiante será capaz de conocer los algoritmos y representarlos. Conoce los conceptos de la programación estructurada. Estructura de Datos - Edson Raúl Lazo Alvarez
Algoritmo Conjunto ordenado y finito de pasos (acciones, instrucciones) ordenados que conducen a la solución de un problema. Por ejemplo: Al instalar un equipo de sonido ejecutamos las instrucciones (algoritmo) contenidas en el manual del equipo. Algoritmo matemático de Euclides para la obtención del máximo común divisor de dos números.
Si un algoritmo puede ser ejecutado por una computadora, se dice que es un algoritmo computacional; en caso contrario, se dice que es un algoritmo no computacional.
Estructura de Datos - Edson Raúl Lazo Alvarez
Algoritmo : se expresa en instrucciones a través de un lenguaje de programación, teniendo como resultado un programa.
Todo algoritmo puede ser descompuesto en tres partes:
E= Entrada de datos. Proceso. S=Salida de resultados. En cada uno de ellos se necesita el uso de variables. Variable: Localización de memoria principal que almacena un valor que puede cambiar en el transcurso de la ejecución del programa. Tiene un nombre, un tipo de dato y un valor. Ejemplo 1: Entero edad
18 Entero edad (direccion en memoria 00BF)
Ejemplo 2: Real peso, talla Estructura de Datos - Edson Raúl Lazo Alvarez
Características de un algoritmo Ser preciso: los pasos del algoritmo deben desarrollarse en un orden estricto, obedecer a un orden lógico. Ser definido. El computador solo desarrollará las tareas programadas y con los datos suministrados; no puede improvisar el dato que necesite para realizar un proceso. Ser finito: implica que el número de pasos de un algoritmo, debe ser limitado.
Presentación formal: para que el algoritmo sea entendido se exprese en alguna de las formas comúnmente aceptadas: el pseudocódigo, diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras. Corrección: Para garantizar que el algoritmo logre el objetivo, es necesario ponerlo a prueba: verificación o prueba de escritorio. Eficiencia: es evaluar los recursos que requiere para almacenar datos y para ejecutar operaciones frente al beneficio que ofrece.
Estructura de Datos - Edson Raúl Lazo Alvarez
Módulos o Secciones de un Algoritmo ALGORITMO
DATOS DE ENTRADA
PROCESAMIENTO DE LOS DATOS
Estructura de Datos - Edson Raúl Lazo Alvarez
IMPRESIÓN DE RESULTADOS
Instrucciones Algorítmicas Básicas a. Entrada Consiste en obtener un dato de un dispositivo de entrada, como el teclado, y almacenarlo en una variable. En general, la acción de ingresar un dato a una variable se expresa en el pseudocódigo mediante la palabra LEER, de la siguiente forma: LEER variable Ejemplo: LEER edad
b. Salida Consiste en mostrar el valor de una variable en un dispositivo de salida, como la pantalla. En general, la acción de mostrar el valor de una variable se expresa en el pseudocódigo mediante la palabra IMPRIMIR (ESCRIBIR) de la siguiente forma: IMPRIMIR variable Ejemplo: IMPRIMIR TotalCompra
c. Asignación Consiste en dar a una variable el valor de una expresión. La asignación se expresa en el pseudocódigo de la siguiente forma: variable = expresión ó variable expresión Donde variable y el valor de expresión deben tener el mismo tipo de dato. Ejemplo: resultado numero1 + numero 2
Estructura de Datos - Edson Raúl Lazo Alvarez
Representación del Algoritmo Pseudocódigo Es la representación del algoritmo en lenguaje natural. Ejemplo: sumar dos números enteros. Ejemplo: sumar dos números.
Estructura de Datos - Edson Raúl Lazo Alvarez
Diagrama de Flujo Estructurado Representación con flujos entre los procesos a realizar. Los principales símbolos de representación para este diagrama son:
Estructura de Datos - Edson Raúl Lazo Alvarez
Diagrama Nassi/Schneiderman (N-S)
RepresentaciĂłn en bloques, es decir cada uno de los procesos como ingreso/salida de datos, decisiones, acciones, repeticiones; estĂĄn representados en bloques de tareas consecutivos.
Estructura de Datos - Edson RaĂşl Lazo Alvarez
Actividades
Elaborar el algoritmo y su respectiva representación, identificando los elementos de entrada y los elementos de salida, para los siguientes casos: El proceso de asistir a clases a un centro de estudios. El proceso de solicitar un libro en la biblioteca de una universidad. El proceso de un punto de ventas de un supermercado. El proceso de intercambiar dos valores numéricos.
El proceso de calcular la regla de tres simple. El proceso de matrícula para elaborar una lista de contactos digital. El proceso de Matrícula en una universidad.
Estructura de Datos - Edson Raúl Lazo Alvarez
Como ejercitar una Mente Abierta: http://es.wikihow.com/ejercitar-una-mente-abierta
Estructura de Datos - Edson RaĂşl Lazo Alvarez
Programación en el Computador 2.1 Programa Secuencia de instrucciones que especifican las operaciones que debe realizar la computadora, en la cual cada paso del algoritmo está expresado por medio de una instrucción. 2.2 Lenguaje de Programación
Conjunto de sentencias utilizadas para escribir secuencias de instrucciones que para que ejecute un programa en una computadora. Tipos de Lenguaje de Programación • Lenguaje Máquina: Lenguaje de programación que la computadora interpreta y ejecuta directamente, y está compuesto de instrucciones codificadas en binario (0, 1). • Lenguaje de Bajo Nivel: también llamados lenguajes ensambladores, permiten al programador escribir instrucciones de un programa usando abreviaturas del lenguaje natural (inglés), también llamadas palabras nemotécnicas (ADD, DIV, SUB, etc). • Lenguaje de Alto Nivel: permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintácticas muy similares al lenguaje natural (inglés). Estructura de Datos - Edson Raúl Lazo Alvarez
2.3 Programas Traductores
Traducen los programas fuente de a código máquina. Pueden ser:
Intérprete: Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
PROGRAMA FUENTE
INTERPRETE
Estructura de Datos - Edson Raúl Lazo Alvarez
PROGRAMA EJECUTABLE
Compilador:
es un traductor que toma un programa fuente, y lo traduce sentencia por sentencia.
PROGRAMA FUENTE
COMPILADOR
PROGRAMA EJECUTABLE
La compilación es el proceso de traducción del programa fuente a programa objeto (traducido a código máquina), a través de un programa enlazador, para conducir al programa ejecutable. COMPILADOR
PROGRAMA FUENTE
PROGRAMA OBJETO
Estructura de Datos - Edson Raúl Lazo Alvarez
PROGRAMA ENLAZADOR
PROGRAMA EJECUTABLE
2.4 Programación Estructurada Conjunto de técnicas para escribir, verificar, depurar, y mantener los programas. Es una metodología de desarrollo de programas llamada refinamientos sucesivos: - Se plantea una operación como un todo. - Se divide en segmentos más sencillos o de menor complejidad. - Luego unificar las aplicaciones. Técnicas de la Programación estructurada: Éste conjunto de técnicas permite elaborar programas en cualquier lenguaje de programación. A) Recursos Abstractos Descomponer una determinada acción compleja en acciones más simples, para ser ejecutadas y que serán instrucciones. B) Diseño Descendente El problema se descompone en niveles o pasos sucesivos: que hace? como lo hace? C) Estructuras Básicas Son estructuras de control para el programa:
Secuenciales Selectivas Repetitivas Estructura de Datos - Edson Raúl Lazo Alvarez
2.5 Resolución de un Problema Los siguientes pasos propuestos para la resolución de problemas están basados en el Ciclo de Vida Clásico en la Construcción de un Software.
Análisis del Problema:
Diseño del Algoritmo
Expresar el algoritmo en un programa.
examinar cuidadosamente el problema , obtener una idea clara sobre lo que se solicita y de lo que se necesita necesarios para solucionarlo.
secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema.
escribir el algoritmo usando la sintaxis de un lenguaje de programación.
Ejecución y Validación del programa.
corregir el programa y ejecutarlo con las validaciones.
Estructura de Datos - Edson Raúl Lazo Alvarez
ACTIVIDAD N° 1 Investigar y presentar: Tipos de Datos, Variables, Constantes,
Operadores y Jerarquía de Operadores en el lenguaje C++. Trabajo Individual Fecha de Presentación: Martes 23 de agosto 2016 Formato: Impreso
Estructura de Datos - Edson Raúl Lazo Alvarez
Síntesis Algoritmo es:
Conjunto de pasos, ordenados y finitos, para resolver un problema.
No Computacional Computacional Programa
Se representa: PSeudocódigo Diagrama de Flujo Diagrama N-S Tipos de Programas Traductores:
Técnicas de Programación Estructurada:
Intérprete Compilador 1. Recursos Abstractos 2. Diseño Descendente 3. Sentencias Básicas a. Secuencial b. Selectivas c. Repetitivas Estructura de Datos - Edson Raúl Lazo Alvarez
Estructura de Datos - Edson RaĂşl Lazo Alvarez
Propósito de la Clase (Laboratorio)
Reconoce un entorno de lenguaje de programación.
Estructura de Datos - Edson Raúl Lazo Alvarez
Iniciando en el Lenguaje de Programación 0. Crear la carpeta Programas y Librerías en alguna unidad de trabajo.
Estructura de Datos - Edson Raúl Lazo Alvarez
1. Iniciando con Visual C++
Estructura de Datos - Edson RaĂşl Lazo Alvarez
2. Se visualiza la ventana de bienvenida.
Estructura de Datos - Edson RaĂşl Lazo Alvarez
3. Crear nuevo un proyecto:
File -> New Proyect
Estructura de Datos - Edson RaĂşl Lazo Alvarez
4. Seleccionar el Tipo del Proyecto: Visual C++ y la Plantilla: Win32 Console Application
Estructura de Datos - Edson RaĂşl Lazo Alvarez
5. Asignarle nombre al proyecto: PrimerProyecto y la ruta de la carpeta creada: Programas.
Estructura de Datos - Edson RaĂşl Lazo Alvarez
6. Seccionar NEXT para asignar característica al proyecto
Estructura de Datos - Edson Raúl Lazo Alvarez
7. Seleccionar EMPTY PROJECT para darle característica de Proyecto Vacío, y luego seleccionar FINISH
Estructura de Datos - Edson Raúl Lazo Alvarez
8. Se visualiza el Explorador de Proyecto al lado derecho de la pantalla
Estructura de Datos - Edson RaĂşl Lazo Alvarez
9. Crear un archivo fuente
Estructura de Datos - Edson RaĂşl Lazo Alvarez
10. Seleccionar la plantilla para el cĂłdigo fuente: C++ File (.cpp) , luego asignarle un nombre Programa1 y seleccionar ADD
Estructura de Datos - Edson RaĂşl Lazo Alvarez
11. Crear la estructura general de un programa en C
LibrerĂas de Cabecera Programa Principal
Estructura de Datos - Edson RaĂşl Lazo Alvarez
12. Crear líneas de código dentro del programa principal
Declaración de Variables Mensaje por pantalla Ingreso de Datos por teclado Proceso de Cálculo Mensaje por pantalla Salida de Datos por pantalla
Estructura de Datos - Edson Raúl Lazo Alvarez
13. Depurar y Ejecutar el Programa1.cpp, seleccionando el botón START DEBUGGING
Estructura de Datos - Edson Raúl Lazo Alvarez
14. Obtenemos el Programa Ejecutable
Estructura de Datos - Edson RaĂşl Lazo Alvarez
A) En la Carpeta Programas, se ha creado el archivo de Solution
Estructura de Datos - Edson RaĂşl Lazo Alvarez
B) En la Carpeta del Proyecto, se ha creado el archivo PrimerProyecto.vcproj y el archivo Programa1.cpp
Estructura de Datos - Edson RaĂşl Lazo Alvarez
C) Se puede visualizar el Programa Objeto
Estructura de Datos - Edson RaĂşl Lazo Alvarez
D) Se puede visualizar el Programa Enlazador y el Programa Ejecutable
Estructura de Datos - Edson RaĂşl Lazo Alvarez
Estructura de Datos - Edson RaĂşl Lazo Alvarez