Unidad 2

2.1 Análisis de problemas
El aprender a programar y utilizar técnicas de programación tiene como fin el utilizar a la computadora como una herramienta para resolver problemas. La solución de un problema nos exige al menos los siguientes pasos:

  1. Definición o análisis del problema
  2. Diseño del algoritmo
  3. Transformación del algoritmo en un programa
  4. Ejecución y validación del programa.
Para crear una aplicación de software hay que describir el problema y las necesidades o requerimientos (en qué consiste el problema y qué debe hacerse).
Entendido el problema, para resolverlo es preciso analizar:
  • Los datos o resultados que se esperan.
¿Qué información debe proporcionar la resolución del problema?
  • Los datos de entrada que nos suministran.
¿Qué datos se necesitan para resolver el problema?
  • El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados.
  • Áreas de trabajo, fórmulas y otros recursos necesarios.

El análisis se centra en una investigación del problema, no en la manera de definir una solución. Es el primer paso a seguir para encontrar la solución.
En el análisis del problema se requiere del máximo de creatividad e imaginación, debido a que se busca una solución se debe examinar cuidadosamente el problema a fin de identificar qué tipo de información es necesaria producir. En seguida se deben identificar aquellos elementos de información ofrecidos por el problema y que resulten útiles para obtener la solución al problema. Finalmente, un procedimiento para producir los resultados deseados a partir de los datos, es decir, el algoritmo.


 
2.2 Representación de algoritmos: gráfica y pseudocódigo
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Esto nos permite codificar el algoritmo en cualquier lenguaje. Para conseguir esto, es necesario que el algoritmo sea representado gráfica o numéricamente, de tal forma que pueda ser fácilmente transformado en un programa, es decir de fácil codificación.
Los métodos más usuales para representar un algoritmo son:

  1. Diagrama de flujo
  2. Diagrama N-S (Nassi-Schneiderman)
  3. Lenguaje de especificación de algoritmos: pseudocódigo
  4. Lenguaje español
  5. Fórmulas
DIAGRAMA DE FLUJO (Flowchart)
Un diagrama de flujo utiliza símbolos estándar en el que cada paso del algoritmo se visualiza dentro del símbolo y en el orden en que estos pasos se ejecutan, se indica conectándolos con flechas llamadas líneas de flujo, ya que indican el flujo lógico del algoritmo.
Los símbolos utilizados en los diagramas de flujo han sido estandarizados por la ANSI (American National Institute) y por la ISO (International Standard Organization).

Los simbolos más utilizados son:

  1. Proceso
  2. Decisión
  3. Conectores
  4. Fin
  5. Entrada/Salida
  6. Dirección de Flujo
Un diagrama de flujo debe de cumplir con:
  • Tener una elipse etiquetada “inicio”
  • Tener otra etiquetada “fin”
  • Se puede escribir más de un paso del algoritmo en una sola caja rectangular, pero no se debe abusar para no crear diagramas de flujo complicados e ininteligibles.

DIAGRAMAS DE NASSI-SCHNEIDERMAN (N-S)
El diagrama N-S de Nassi-Schneiderman, es como un diagrama de flujo en el que se omiten las flechas de unión y las figuras son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.
Un algoritmo se escribe de la siguiente forma:
Insertar tabla nvu2
 La estructura condicional:




  Se representa por:




PSEUDOCÓDIGO
El pseudocódigo es la redacción rápida del algoritmo, es escribir con un lenguaje común la secuencia de pasos que habrá de seguirse para resolver el problema. Algunas palabras utilizadas en el pseudocódigo:

  • Inicio
  • Fin
  • Leer
  • Escribir
  • Asignar (x← y+z)
El pseudocódigo nació como un lenguaje similar al inglés y era un método de representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene traducirse posteriormente a un lenguaje de programación. El pseudocódigo no puede ser ejecutado por una computadora. La ventaja del pseudocódigo es que en su uso, en la planificación de un programa, el programador se puede concentrar en la lógica y en estructuras de control y no debe preocuparse de las reglas de un lenguaje específico.

2.3 Diseño de algoritmos aplicados a problemas
EJEMPLO 1
Se desea obtener el salario neto de un trabajador conociendo el número de horas trabajadas, el salario por hora y la tasa de impuestos que se le debe deducir.
Las entradas del algoritmo son: Horas trabajadas, salario_hora, tasas
Las salidas del algoritmo son:Paga bruta, total de impuestos y paga neta

Pseudocódigo
Inicio
   Obtener valores de horas trabajadas, salario_hora y tasas.
   Calcular salario_bruto, total de impuestos y salario_neto
   Visualizar salario_bruto, total de impuestos y salario_neto
Fin

Diagrama de flujo





EJEMPLO 2
Calcular el valor de la suma de los números naturales comprendidos entre el 1 y 100

Variables: CONTADOR (almacena los números a sumar: 1, 2, 3, ….)
SUMA (Total de suma)

Pseudocódigo
1.    Inicio
2.    Establecer CONTADOR a 1
3.    Establecer SUMA a 0
4.    Mientras CONTADOR <= 100 hacer lo siguiente:
       4.1    Sumar CONTADOR a SUMA
       4.2    Incrementar CONTADOR en 1
       Fin_mientras
5.    Visualizar SUMA
6.    Fin

Diagrama de Flujo





EJEMPLO 3
Un corredor de maratón (distancia = 42.195 km) ha recorrido la carrera en 2 horas 25 minutos. Se desea un algoritmo que calcule el tiempo medido en minutos por kilómetro.

Entradas: Cantidad total del tiempo empleado en la carrera; se establece el número de kilómetros en 42.195, ya que es igual para todos.
Salida: Número medio de minutos por kilómetro, transformando previamente el tiempo total a minutos.
Proceso: Dividir el tiempo total en minutos entre el número de kilómetros.

Pseudocódigo
Inicio
    Introducir el tiempo total
    Verificar entrada correcta
    Establecer distancia = 42.195 km
    Pasar tiempo total a minutos
    Calcular media = tiempo/kilómetros
    Escribir resultado
Fin

Diagrama de flujo


EJEMPLO 4
Definir el algoritmo para intercambiar los valores de dos variables numéricas.

Análisis
Para realizar este análisis se utiliza una variable auxiliar que de modo temporal toma uno de los valores dados.

Variables: A, B, AUX
El método consiste en asignar una de las variables a la variable auxiliar:
AUX ← A
A continuación se le asigna el valor de la otra variable B a A:
A ← B
Por último se asigna el valor de la variable auxiliar a la variable B
B ← AUX

Pseudocódigo

Inicio
    Leer (A, B)
     AUX ← A
    A ← B
    B ← AUX
    Escribir (A, B)
Fin

Diagrama de Flujo




EJEMPLO 5
Escribir un algoritmo para calcular el área de un triángulo dada la base y la altura.

Análisis
La fórmula geométrica del área de un triángulo es:
A= (b•h)/2        b = base    h = altura
Variables: BASE, ALTURA, AREA

Pseudocódigo
Inicio
    Asignar los valores de las variables BASE y ALTURA
    Asignar a la variable AREA  la mitad del producto de la BASE por la ALTURA
    Imprimir el resultado
Fin

Diagrama de flujo




No hay comentarios:

Publicar un comentario