PDF de programación - TEMA 5: Algoritmos y programas

Imágen de pdf TEMA 5: Algoritmos y programas

TEMA 5: Algoritmos y programasgráfica de visualizaciones

Publicado el 9 de Abril del 2019
689 visualizaciones desde el 9 de Abril del 2019
1,6 MB
11 paginas
Creado hace 18a (03/03/2006)
TEMA 5: Algoritmos y programas

Fundamentos de Informática
(Ingeniería Técnica Industrial)

Escuela Universitaria Politécnica

Índice de contenidos

1. Introducción. Conceptos básicos
2. Representación de algoritmos.
3. Metodología de diseño.
4. Lenguajes de programación.

2

1

1.

Introducción. Conceptos básicos.

• Programación

– Establecer una secuencia de acciones que:
• puedan ser ejecutadas por el procesador


realicen una determinada tarea

– Fases:

1. Resolución del problema propuesto =>

determinación de un algoritmo.

2. Adaptación del algoritmo a la computadora
=> codificar el algoritmo en un lenguaje que
el ordenador pueda comprender

1.

Introducción. Conceptos básicos.

• Acción

– Etapa en la realización de un trabajo

• Acción primitiva

1.1 Concepto de
algoritmo

– Acción que el procesador puede ejecutar sin necesidad de

información suplementaria

• Algoritmo

– Secuencia ordenada de acciones primitivas que realizan un trabajo

Ejemplos de algoritmos:

Ir al trabajo

1.
2.
3.
4.
5.

Levantarse
Darse una ducha
Vestirse
Desayunar
Coger el coche

Cálculo de la media aritmética de
dos números con una calculadora
1.
2.
3.
4.
5.
6.
7.
8.

Pulsar la tecla AC
Teclear el primer número
Pulsar la tecla +
Teclear el segundo número
Pulsar la tecla +
Pulsar la tecla /
Teclear el número 2
Pulsar la tecla =

3

4

2

1.

Introducción. Conceptos básicos.

1.1 Concepto de
algoritmo

• Aspectos que se deben considerar a la hora de

escribir un algoritmo
– Determinación de las primitivas de las que partimos
– Lenguaje simbólico a utilizar para desarrollar el algoritmo
– Representación de los datos
– Establecer datos de entrada
– Establecer datos de salida
– Establecer las relaciones entre los datos de entrada y los de salida
• Condiciones que debe cumplir un algoritmo

• El algoritmo debe acabar tras un número finito de pasos

– Ser finito

– Estar bien definido



Todas las ejecuciones del algoritmo con los mismos datos de entrada
deben devolver los mismos datos de salida

• Diferencias entre un algoritmo y un programa

– Los algoritmos no son directamente interpretables por la computadora =>

deben ser traducidos a un lenguaje de programación concreto

1.

Introducción. Conceptos básicos.

1.1 Concepto de
algoritmo

• Ejemplo de realización de un algoritmo:

– Problema: calcular la longitud de una circunferencia y el área del círculo

que limita dada la longitud de su radio
• Determinación de las primitivas de las que partimos



– Operaciones aritméticas simples
Lenguaje simbólico a utilizar para desarrollar el algoritmo


Lenguaje de representación de expresiones aritméticas

• Representación de los datos

– Cadenas de caracteres para las incógnitas
– Números reales

• Establecer datos de entrada

– Radio de la circunferencia (radio)

• Establecer datos de salida

Longitud de la circunferencia (longitud)


– Área del círculo (area)

• Establecer las relaciones entre los datos de entrada y los de salida

1.
longitud = 2 * 3.1416 * radio
2. area = 3.1416 * radio * radio

5

6

3

1.

Introducción. Conceptos básicos.

• Fases de creación de un programa

1.2. Ciclo de vida del
software

1. Definición

• Descripción detallada de:

– Programa que se va a realizar
– Recursos necesarios
– Costes
– Plan de trabajo

2. Desarrollo

• Creación de programas y documentación asociada.

2.1. Diseño

» Solución al problema (algoritmo)

2.2. Codificación

» Traducción del algoritmo a un lenguaje de programación

2.3. Prueba

» Comprobar si el programa desarrollado se corresponde con el que

queríamos realizar

3. Mantenimiento

• Realización de mejoras y correcciones en el programa desarrollado

1.

Introducción. Conceptos básicos.

• Fases de creación de un programa

1.2. Ciclo de vida del
software

DEFINICIÓN

DESARROLLO
Diseño
Codificación
Prueba

Fallos de
definición

MANTENIMIENTO

Errores

Modificaciones y adaptaciones

7

8

4

– Pseudolenguaje
– Diagramas de flujo

• Pseudolenguaje

– Es un lenguaje específico de descripción de algoritmos
– La traducción de un algoritmo escrito en pseudolenguaje a un

programa en un lenguaje de programación determinado es
relativamente simple

• Herramientas de un pseudolenguaje para representar los

elementos básicos de un algoritmo
– Conjunto de palabras clave que proporcionan:





las estructuras de control
declaraciones de variables
características de modularidad

2. Representación de algoritmos

2.1. Pseudolenguaje

• Existen varios métodos para representar un algoritmo

– Sintaxis libre de un lenguaje natural que describe las características

del proceso

– Elementos para la definición y llamada a subprogramas

2. Representación de algoritmos

2.1. Pseudolenguaje

• Ejemplo de un algoritmo escrito usando un pseudolenguaje

– Sumar los n (n>0) primeros números naturales

ALGORITMO SumaNaturales
VARIABLES:

Naturales num, contador, suma

INICIO

LEER num
suma = 0
contador = 1
HACER

suma = suma + contador
contador = contador + 1

MIENTRAS (contador != num + 1)
ESCRIBIR “La suma resultante es”
ESCRIBIR suma

FIN

9

10

5

3. Representación de algoritmos

2.2. Diagramas de flujo

• Ejemplo de un algoritmo

representado con un diagrama
de flujo
– Sumar los n (n>0) primeros

números naturales

3. Metodología de diseño

DEFINICIÓN

DESARROLLO
Diseño
Codificación
Prueba

Fallos de
definición

MANTENIMIENTO

Errores

Modificaciones y adaptaciones

Fases de creación de

un programa

– La fase de diseño es la fase de resolución del problema, es aquí

donde el programador debe diseñar un algoritmo

– Es necesario emplear una metodología, prescindir de ella puede

acarrear problemas como:

• Rigidez e inflexibilidad de los programas
• Pérdida excesiva de tiempo en la corrección de errores
• Documentación deficiente
• Imposibilidad de reutilización de código

11

12

6

siguientes características:
– Eficiencia
– Legibilidad
– Modularidad
– Portabilidad
– Estructuración
– Modificabilidad
• Programación estructurada

– Conjunto de técnicas que aumentan la productividad de un programa,

reduciendo el tiempo para:

• Depurar
• Mantener el programa

• Escribir
• Verificar

3. Metodología de diseño

3.1. Características de los
programas. Programación
estructurada

• Un problema => muchos algoritmos para resolverlo
• ¿Cómo elegir el más adecuado? Basándonos en las

– Utiliza un número limitado de estructuras de control que minimizan la

complejidad de los problemas
– Teorema de BOHM-JACOPINI

• Cualquier programa, por complejo que sea, puede escribirse utilizando

sólo tres estructuras de control:

– Secuencial
– Selectiva
– Repetitiva

13

3. Metodología de diseño

3.2. Diseño descendente
(Top-down)

• Diseño descendente (refinamientos sucesivos o programación

modular)
– Metodología de diseño que consiste en:

• Dividir un problema en subproblemas manejables.
• Cada subproblema se divide a su vez en otros subproblemas.
• El proceso se repite hasta que ya no se pueda dividir más
• La solución de todos los subproblemas constituye la solución

global.

– Se crea una estructura jerárquica de problemas con distintos niveles

de refinamiento:

• Nivel 0: descripción del problema
• Nivel i: refinamientos sucesivos

14

7

3. Metodología de diseño

Abstracto (descripción “funcional” del problema)

3.2. Diseño descendente
(Top-down)

Jerarquía de
subproblemas
en un diseño
descendente

Nivel 0

Nivel 1

Nivel 2

Nivel 3

Particular (código en Lenguaje de Programación)

15

3. Metodología de diseño

3.2. Diseño descendente
(Top-down)

• Ejemplo de diseño descendente

– Algoritmo que calcule la media de notas de una clase

Cálculo de media de la clase

Obtener notas de la clase Cálculo de la media

Imprimir resultado

Suma de todas las notas

Dividir la suma
por el total de
calificaciones

Nivel 0

Nivel 1

Nivel 2

16

8

4. Lenguajes de programación

4.1. Clasificación de los
lenguajes de programación

• Lenguaje de programación

– Conjunto de símbolos y reglas utilizados para construir un programa

• Clasificación de los lenguajes de programación

– Atendiendo al nivel de proximidad al sistema utilizado por el

procesador, de más bajo nivel a más alto:

• Lenguaje máquina
• Lenguaje ensamblador
• Lenguajes de alto nivel

17

4. Lenguajes de programación

– Lenguaje máquina

5.1. Clasificación de los
lenguajes de programación

• Utiliza código binario
• Cada procesador posee su propio lenguaje máquina
• Una instrucción se compone de:

– Código de operación
– Operandos

• Ventajas

– Directamente “entendible” por el ordenador
– Es muy eficiente

• Inconvenientes

– Es complicado trabajar con código binario
– El programador debe conocer la arquitectura física del ordenador
– Lenguaje dependiente de la máquina
– No se pueden introducir comentarios
– Conjunto de instrucciones muy reducido

18

9

5. Lenguajes de programación

– Lenguaje ensamblador

4.1. Clasificación de los
lenguajes de programación

• Cada instrucción en ensamblador se corresponde con una

instrucción en lenguaje máquina a la que luego será traducida

• Cada procesador posee su propio lenguaje ensamblador
• NO es necesario que el programador conozca la arquitectura

física del ordenador

• Características:

– Código de operación es una palabra con pocas letras

» ADD, MOV,...

– Direcciones de memoria y operandos se pueden escribir de forma

simbólica mediante identificadores

– Se pueden incluir comentarios

19

4. Lenguajes de programación

– Lenguajes de alto nivel

4.1. Clasificación de los
lenguajes de programación

• Se aproxima al lenguaje natural
• Cada instrucción de un lenguaje de alto nivel se corresponde con

varias instrucciones máquina

• No dependen de la arquitectura de la máquina
• Son menos eficientes
• FORTRAN, COBOL, C, C++, Pascal, etc.

20

10

4. Lenguajes de programación

• Traductores de lenguajes

4.2. Traductores de
lenguajes: Compiladores e
Intérpretes

– Programas que traducen un programa escrito en un l
  • Links de descarga
http://lwp-l.com/pdf15694

Comentarios de: TEMA 5: Algoritmos y programas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad