You are on page 1of 8

INGENIERIA DE SISTEMAS

Lectura N° 1 EMPRESARIAL

Sesión 1: Conceptos Fundamentales y Representación de Algoritmos


Conceptos Fundamentales y Representación de Algoritmos
1. Diseño de Programas
El diseño de programas tiene como finalidad, resolver toda clase de problemas que forman parte del día
a día de las empresas de hoy. Estos problemas pueden ser simples o complejos, ello dependerá de la
clase de información que se esté manejando, de los tipos de operaciones que se deseen automatizar y
del volumen de información involucrada en cada operación.

El diseño de programas es un proceso creativo que lleva al programador a pasar por diversas etapas
con la finalidad de llegar a la solución del problema pero sin descuidar el tema de la complejidad del
diseño, pues determinará entre otras cosas:

 Facilidad en su mantenimiento
 Ahorro de recursos empleados para llegar a la solución
 Velocidad en los tiempos de respuesta, etc.
a. Pasos:
El proceso de diseño de un programa consta de los siguientes pasos o etapas:

Pasos Etapa Descripción


1 Análisis del problema Conducen al diseño detallado por medio un código escrito en
2 Diseño de algoritmo forma de un algoritmo
Se implementa el algoritmo en un código escrito en un lenguaje
3 Codificación de programación. Refleja las ideas desarrolladas en las etapas
de análisis y diseño
Compilación y Traduce el programa fuente a programa en código de maquina y
4
ejecución lo ejecuta.
5 Verificación
Busca errores en las etapas anteriores y los elimina.
6 Depuración
Son comentarios, etiquetas de texto, que facilitan la comprensión
7 Documentación
del programa

2. Algoritmos
En un sentido amplio, dado un problema y un dispositivo donde resolverlo, es necesario proporcionar un
método preciso que lo resuelva adecuado al dispositivo. A tal método lo denominamos algoritmo.

Hay dos aspectos muy importantes de los algoritmos, su diseño y su eficiencia. El primero se refiere a la
búsqueda de métodos o procedimientos, secuencias finitas de instrucciones adecuadas al dispositivo
que disponemos, que permitan resolver el problema. Por otra parte, el segundo permite medir de alguna
forma el coste (en tiempo y recursos) que consume un algoritmo para encontrar la solución y nos ofrece
la posibilidad de comparar distintos algoritmos que resuelven un mismo problema.

Un algoritmo debe de cumplir los siguientes requisitos:

 Preciso: implica el orden de realización de cada uno de los pasos


 Definido: si se sigue dos veces, se obtiene el mismo resultado.
 Finito: Tiene un numero determinado de pasos, lo que implica que tiene un fin.

Lectura Nº 1 – ( Pág. 1 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

Los algoritmos se pueden expresar de las siguientes formas:

Tipo de Expresión Ejemplos

Formulas

Inicio

Entero: a

“Ingrese un Núm ero”

Diagramas de flujo
a> 0
Norte-Sur / Top-Down
P=a/2 “Número debe
ser positivo”

“Resultado:” p

Fin

Inicio
Entero: a, b, c, perimetro
Leer a,b,c
Pseudocódigo
Calcular
Escribir perímetro
fin

3. Análisis del problema:

Requiere la clara definición del problema, donde se indique que va hacer el programa y cual va a ser el
resultado. Debe detallarse las especificaciones de entrada y salida,

Los requisitos que definen el análisis son:

Definición Especificaciones
Del de de
Problema entrada salida
Ejemplo:

Problema: Hallar las dos raíces x1 y x2 de una ecuación de segundo grado, conociendo el valor de
sus tres coeficientes a, b, c.

La ecuación de segundo grado se define algebraicamente como:

La solución general viene dada por la expresión algebraica:

Lectura Nº 1 – ( Pág. 2 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

Periférico
1 Análisis del problema
2 Def. del problema Hallar raíces ecuaciones 2do grado
3 Especif. de entrada coeficientes a, b, c Teclado
4 Especif. de salida X1, X2 Pantalla
Impresora

Entrada: por teclado


coef Descripción Codificación en Java
a Término cuadrático a = JOptionPane.ShowInputDialog("Coeficiente a");
b Término lineal b = JOptionPane.ShowInputDialog("Coeficiente b");
c Término independiente c = JOptionPane.ShowInputDialog("Coeficiente c");

Proceso:
Cálculo Expresión algebraica Codificación en Java

x1 X1=((-B+Math.sqrt(Math.pow(B,2)-4*A*C))/2a

x2 X2=((-B –Math.sqrt(Math.pow(B,2) -4*A*C))/2a

Salida: Visualización de:


- Datos de entrada: A, B, C
- Datos procesados: Raíces: X1, X2

Variable Significado Codificación en Java


JOptionPane.ShowMessageDialog("a=" + a);
A, B, C Coeficiente JOptionPane.ShowMessageDialog("b=" + b);
JOptionPane.ShowMessageDialog("c=" + c);
X1 Primera raíz JOptionPane.ShowMessageDialog("Raíz1=" + X1);
X2 Segunda raíz JOptionPane.ShowMessageDialog("Raíz2=" + X2);

4. Diseño del algoritmo.


 Análisis de proceso: implica determinar que hace el programa.
 Diseño: implica establecer como se hace o realiza la tarea para resolver el (problema) solicitado

En el diseño:

 El todo es la sumatoria de las partes.


 Divide el todo en varias partes.

En la resolución de un problema complejo, este se divide en varios sub problemas y seguidamente se


vuelven a dividir los sub problemas en otros más sencillos, hasta que puedan implementarse en el
computador.

Esta característica define lo que se entiende como Diseño Descendente ( Top-Down / Norte-Sur ) o
diseño modular.

El proceso de ruptura del problema en cada etapa se llama Refinamiento Sucesivo.

 Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo punto de entrada y
un solo punto de salida.
 Un programa bien diseñado consta de un programa principal (modulo de nivel mas alto) que
llama a subprogramas (módulos de nivel mas bajo), que a su vez pueden llamar otros sub
programas.

Lectura Nº 1 – ( Pág. 3 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

Los programas que se estructuran de esta forma, se dicen que tienen Diseño Modular y el método de
romper el programa en modos pequeños se llama Programación Modular.

Los módulos pueden ser planificados, codificados, compilados y depurados independientemente


pueden ser intercambiados entre si.

Este proceso implica la ejecución de los siguientes pasos:

Paso Descripción
1 Programar un modulo
2 Comprobar un modulo
3 Depurar el modulo
4 Combinar el modulo con módulos anteriores

Este proceso convierte el resultado del análisis del problema en un diseño modular con refinamientos
sucesivos que permiten una traducción a un lenguaje que se denomina diseño del algoritmo.

El algoritmo se puede representar por medio de dos formas:


 Pseudocódigo
 Diagrama de flujo

a. Pseudocódigo:

Es el lenguaje de especificación de algoritmos y tiene una estructura:

Las instrucciones se escriben en ingles o en palabras similares al ingles o español


que facilitan la escritura de programación

Para la resolución de una ecuación de segundo grado se escribiría:

Inicio
Ingresar coeficientes a, b y c
Mostrar títulos primera raíz, segunda raíz, no tiene solución,
Calcular raíz 1 y raíz 2
Mostrar raíz 1 y raíz 2
Fin

Instrucciones utilizadas:

Instrucción Descripción
Mostrar Escribe en pantalla.
Ingresar Introduce (entra datos)
Calcular Lleva acabo un proceso

Lectura Nº 1 – ( Pág. 4 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

b. Diagramas de flujo (flows charts):

Es la representación grafica del algoritmo; según la ANSI consta de una simbología, que tiene los
siguientes significados:

Nombre Símbolo Función


Terminal Representa en Inicio y Final de un Programa,
puede representar una parada o interrupción
programada.

Entrada/Salida Cualquier tipo de introducción de datos en la


memoria desde los periféricos de ”entrada” o
información mostrada en un periférico de “salida”

Proceso Cualquier tipo de operación que origine cambio de


valor, formato, posición de la información
almacenada en memoria.

Decisión: Indica operaciones lógicas o de comparación entre


datos - normalmente entre dos y en función del
resultado, determina cual de los dos caminos
alternativos se debe seguir; normalmente tiene dos
salidas- respuestas si o no.

Decisión En función del resultado de la comparación se


Múltiple: seguirá uno de los diferentes caminos de acuerdo a
dicho resultado.

Conector Sirve para enlazar dos partes cualesquiera de un


organigrama a través de un conector de salida y
otro en la entrada en la misma pagina del diagrama

Conector fuera Conexión entre dos puntos del organigrama


de página situados en paginas diferentes

Línea Conectora Sirve para la unión entre dos símbolos dentro del
diagrama

Indicador de Indica en sentido de la ejecución de las


dirección operaciones

Llamada a Es la llamada a un modulo, que recibe una entrada


subrutina, procedente del programa principal u otro módulo,
función o realiza una tarea y regresa al terminar al programa
procedimiento o módulo desde donde fue llamado.

Impresora Se utiliza para indicar la salida de datos a través de


la impresora

Monitor Se utiliza para indicar la salida de datos por la


pantalla

Teclado Se utiliza para indicar entrada de datos por teclado

Lectura Nº 1 – ( Pág. 5 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

5. Ejercicios:
a. Una madre de familia le pide a su hijo realizar la compra de 3 artículos. Luego de lo cual le solicita
que le indique el monto total que gastó por dichas compras.

Definición del Problema: Calcular la suma de 3 números


Entradas: 3 Números (por teclado)
Salidas: Resultado de la suma (por pantalla)

Pseudocódigo Diagrama Código


Inicio Inicio
Real: n1, n2, n3, suma
Mostrar: “Ingrese N1:” Real: n1, n2, n3, suma
Ingresar: n1
“Ingrese N1:”
Mostrar: “Ingrese N2:”
Ingresar: n2 n1
Mostrar: “Ingrese N3:”
Ingresar: n3 “Ingrese N2:”
Calcular: suma  n1+n2+n3
Mostrar: “Rpta: ” suma n2

Fin “Ingrese N3:”

n3

suma n1+n2+n3

“Rpta:” suma

Fin

b. En un viaje de excursión un maestro les pide a sus estudiantes que formen grupos para que lleven a
cabo la observación de la cima de las montañas que hay a su alrededor.

 L

H D

Para realizar esta tarea el maestro le proporciona a cada grupo un telescopio cuya altura es de 1m.
Adicionalmente el maestro les da a cada grupo los siguientes datos:
 Distancia (D): desde el punto de observación hasta el eje central de la montaña
 Altura (L): de la montaña
Formula para Calcular Ángulo () de un Triángulo Rectángulo a partir de 2 catetos:

Ángulo = ArcoTangente( Cateto Opuesto / Cateto Adyacente )

Nota: Cada grupo debe de ingresar en su telescopio el ángulo de observación.

Definición del Problema:...............................................................................................................


Entradas:........................................................................................................................................
Salidas: ..........................................................................................................................................

Lectura Nº 1 – ( Pág. 6 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

Pseudocódigo Diagrama Código

c. Una empresa esta realizando el cierre de mes y desea conocer la ganancia obtenida basándose
únicamente en 2 factores: los ingresos producto de las ventas y a los egresos como consecuencia
de la producción. Para realizar esta tarea se deben de considerar los siguientes datos:
 Ingresos:Total de Unidades Vendidas x Valor de Venta de cada unidad
 Egresos:Total de Unidades Producidas x Costo de Producción de cada unidad

Definición del Problema:...............................................................................................................


Entradas:........................................................................................................................................
Salidas: ..........................................................................................................................................

Pseudocódigo Diagrama Código

Lectura Nº 1 – ( Pág. 7 )
INGENIERIA DE SISTEMAS
EMPRESARIAL

Referencias Bibliográficas

Código de TEXTO
biblioteca
Castillo M. (2006). Trabajo de Programación Básica. Editorial: Ilustrados.com
Recuperado en Marzo del 2009 en:
http://site.ebrary.com/lib/biblioucvsp/docDetail.action?docID=10131226&p00=el+le
nguaje+c%2B%2B
005.133C D32
Deitel, H.”Cómo programar en C/C++ y Java”. México: D.F: Pearson Educación

005.133C J88
Joyanes A. (2006). Programación en C++, Un enfoque práctico (Serie Schaum).
2005 Editorial Mc Graw-Hill Interamericana.
005.1 J88F Joyanes A. (2008). Fundamentos de Programación. Algoritmos, Estructura de Datos y
Objetos. (4ta. ed.). Editorial Mc Graw-Hill Interamericana.
Ladrón de Guevara. (2011). Fundamentos de programación en Java. España:
Ediciones : Eme
Nell, D. (2007). Programación y Resolución de problemas con C++. (4ta. ed.). Editorial
Mc Graw-Hill Interamericana.
005.133J V71 Villalobos, L. (2008) Fundamentos de programación JAVA. Lima: Macro
005.133J W95 Wu, T (2008) Programación en Java. México, D.F: Mcgraw-hill interamericana

Lectura Nº 1 – ( Pág. 8 )

You might also like