Intro Prog1

  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Intro Prog1 as PDF for free.

More details

  • Words: 1,053
  • Pages: 7
Introducción a la programación Contenidos 1. Definición de algoritmo 2. Técnicas de representación 3. Algoritmos de ejemplo © 2002 Juan J. Martínez <[email protected]>

Se permite la copia textual y distribución de este documento en su totalidad, por cualquier medio, siempre y cuando se mantenga esta nota de copyright.

1. Definición de algoritmo Un programa es un algoritmo que emplea una estructura de datos. Algoritmo: Descripción precisa de una sucesión ordenada de instrucciones no ambiguas que permiten resolver un problema. Los algoritmos son independientes del lenguaje de programación y de la máquina en la que se ejecuta. El desarrollo de un programa se puede dividir en fases: 1. Análisis del problema 2. Diseño del algoritmo 3. Implementación Los programas deben estar escritos en un lenguaje comprensible por la máquina, ya sea: a. Lenguaje máquina b. Código comprensible por un intérprete (que traduce el programa a la máquina). Lenguaje máquina Para obtener el código que comprende la máquina (ceros y unos) es necesario someter al código fuente, código comprensible por el ser humano, a un proceso de traducción: 1. Compilar: analizar sintaxis, conversión a código objeto. 2. Enlazado (o linkado): unir el código objeto a las librerías y datos necesarios para que el sistema operativo sepa ejecutar el programa y convertirlo en un proceso (programa en ejecución). Ejemplo de lenguajes habitualmente compilables: Pascal, C, C++, Ada, ASM.

Código interpretable El código comprensible por el ser humano es convertido en tiempo de ejecución (equivalente a una traducción simultánea) a código comprensible por la máquina. Se diferencia del código compilado en que: a. Es más lento (necesita traducirse en cada ejecución). b. Es más fácil de mantener (modificar, corregir errores), ya que siempre es comprensible por el ser humano. c. Es más flexible ya que los lenguajes interpretados permiten mayores abstracciones que los lenguajes compilados. d. Es portable a cualquier plataforma que posea un intérprete. El programa compilado solo funciona en la plataforma para la que fue compilado. Ejemplo de lenguaje habitualmente interpretado: Perl, VBS, Basic, Javascript, PHP. Existen soluciones intermedias al código compilado o interpretado. Ejemplo: Java, posee bytecodes que es código compilado intermedio que requiere ser interpretado parcialmente. 2. Técnicas de representación Existen diferentes técnicas de representación de algoritmos: a. Pseudocódigo. b. Diagrama de flujo de datos. b. Diagrama de cajas (o de Chapín). Pseudocódigo Se trata de un lenguaje informal que describe el proceso. Ejemplo: repetir 5 veces: lee un dato numérico (di) sumar di para i desde 1 hasta 5 (resultado) mostrar resultado No existe reglas que definan al pseudocódigo. Básicamente debe ser: claro, inequívoco e informal (empleando lenguaje natural).

Diagrama de flujo de datos Se trata de un diagrama visual con una serie limitada de elementos con significado que permiten formalizar de forma gráfica un algoritmo. Los diagramas de flujo definen el concepto de flujo de datos, que nos indica la dirección que siguen los datos en el proceso (de arriba hacia abajo, como si se tratara de líquido que fluye de arriba abajo). Los elementos de un diagrama de flujo son:

Ejemplo de diagrama de flujo:

Diagrama de Cajas Los diagramas de cajas proponen una representación alternativa a la del diagrama de flujo. Nos vamos a centrar en el pseudocódigo y los diagrámas de flujo de datos.

3. Algoritmos de Ejemplo a. media aritmética media: entrada a y b resultado de dividir entre 2 la suma de a y b fin b. desarrollo de un programa desarrollo: estudiar el problema realizar el algoritmo en pseudocódigo realizar diagrama flujo de datos elección del lenguaje para la implementación implementación fin c. Amuentar o no plazas para un curso Inicializar variables. Inicializar los aprobados (aprobados) en 0 Inicializar los suspensos (suspensos) en 0 Inicializar el número de estudiantes (estudiantes) en 0 Introducir las primeras 10 calificaciones y contar los aprobados y los suspensos. Mientras (while) el contador estudiantes es menor o igual que 10 entonces Introducir el siguiente resultado de examen Si el estudiante aprobó Sumar 1 a aprobados Si no Sumar 1 a suspensos FinSi Sumar 1 al contador estudiantes FinMientras Imprimir un resumen de los resultados de exámenes y decidir si se debe aumentar o no las plazas. Imprimir el número de aprobados Imprimir el número de suspensos Si estudiantes es más 8 entonces Imprimir "Aumentar plazas". FinSi

d. Comprobación de contraseña

e. Cálculo de una nómina

Ejercicios a. Enumerar las diferencias entre un lenguaje compilado y un lenguaje interpretado. b. Clasificar entre lenguaje compilado y lenguaje interpretado (emplear Internet para buscar información en caso de ser necesario). Justifica tu respuesta. − Pascal −C − ADA − COBOL − Python − BASH c. Diseñar un diagrama de flujo para ’desarrollo de un programa’. d. Escribir el pseudocódigo y el diagrama de flujo para resolver los siguientes problemas: d.1. Un video club necesita un programa para gestionar los alquileres. El programa consta de diferentes módulos y se nos ha encargado diseñar el referente a la introducción de nuevos clientes. d.2. En un proceso industrial es necesario un sistema tolerante a fallos. El proceso consiste en llenar botellas de de un refresco mediante el uso de un robot que emplea una pipeta. Es posible que el robot falle y la pipeta no se introduzca adecuadamente, con lo que hay que repetir la operación de introducir la pipeta. En determinados casos la pipeta se rompe y hay que detener el proceso y llamar al servicio técnico. d.3. Un cliente desea un sistema de mensajería para sus empleados en las distintas sedes alrededor del mundo. En el momento que un empleado recibe un mensaje, éste es almacenado hasta que el destinatario consulta su buzón. En determinados casos el mensaje es urgente y debe enviarse un mensaje SMS al móvil del empleado. A veces un mensaje se extravía (el nombre del destinatario no coincide con ninguno almacenado en la base de datos), en esos casos es necesario enviar el mensaje de vuelta al remitente. Describir el proceso a seguir para tratar los mensajes. d.4. Describir el proceso a seguir para descargar una película empleando edonkey. Tener en cuenta que no disponemos del programa (pero sí de conexión a internet), que es posible que la película no esté disponible en el primer servidor al que conectamos e incluso que la película no esté disponible en ningún servidor (se advierte del problema y el proceso falla). Última modificación: 8/02/03

Related Documents

Intro Prog1
April 2020 1
Prog1
November 2019 6
Prog1.pdf
June 2020 1
Intro
November 2019 8
Intro
November 2019 11
Intro
July 2020 4