• No se han encontrado resultados

ANÁLISIS DE SISTEMAS 2

N/A
N/A
Protected

Academic year: 2018

Share "ANÁLISIS DE SISTEMAS 2"

Copied!
42
0
0

Texto completo

(1)

DEPARTAMENTO DE

PUBLICACIONES

GUIA DE TRABAJO

DE INGENIERIA DEL SOFTWARE I

SEGUNDA SESIÓN

Elaborada por

JOSE GILBERTO MOLINA

(2)

DATOS DEL ESTUDIANTE

NOMBRE DEL ESTUDIANTE

: ________________________

_________________________

CARRERA

: ________________________

JORNADA

: MARTES Y MIERCOLES ( )

JUEVES Y VIERNES

( )

SABADOS

( )

DOMINGOS

( )

NOMBRE DEL PROFESOR

: ________________________

FECHA

: DEL __________ AL _______

(3)

_____________________

FIRMA DEL PROFESOR

MANÁLISIS DE SISTEMAS

GUÍA DE TRABAJO

SESION No 2

OBJETIVOS

Dar a conocer al estudiante las técnicas, metodologías y herramientas que le

permita realizar un apropiado análisis de cualquier sistema de información.

Realizar un análisis claro y viable del nuevo sistema con base en la

información recopilada del sistema actual.

METODOLOGÍA

(4)

BIBLIOGRAFÍA

Kendall Edgard, Kendall Julia. Análisis y Diseño de Sistemas. Ed Pearson

Education. México. 997.

Senn James. Análisis y Diseño de Sistemas. Ed. Mc Graw Hill. México. 2001.

Martin, James y Odell James. Análisis y Diseño Orientado por Objetos. Ed.

Prentice Hall. México. 1995.

ALLEN WEIS, Mark. Estructuras de datos y algoritmos. Wilmington E.U.A:

Addison – Wesley Iberoamericana, 1995. 486 p.

BECERRA SANTAMARÍA, Cesar. Algoritmos conceptos básicos. Bogotá:

Kimpres, 1993. 391 p.

BRASSARD Y BRATLEY. Fundamento de algoritmia. España: Prentice-All,

1997. 579 p.

CAIRO BATTISTUTTI, Osvaldo. Metodología de la programación. México:

Alfaomega, 1995. 1009 p.

CHAVES TORRES, Anívar. Algoritmos: pseudocódigo, diagama de flujo y

diagrama N-S. Pasto – Colombia: Multigráfico impresores, 2004. 297p.

CORREA URIBE, Guillermo. Desarrollo de algoritmos 3ra ed. Bogotá:

McGraw-Hill, 1998. 248 p.

(5)

JOYANES AGUILAR, Luis. Programación en C++ algoritmos, estructuras de

datos y objetos. España: McGraw-Hill. 2000. 710 p.

CONTENIDO DE LA SESION No. 02

1. Definición de Análisis de Sistemas.

2. Herramientas para documentar procedimientos y decisiones.

3. Técnicas para Análisis de Sistemas

Algoritmos

Pseudocódigo

(6)

DESARROLLO DE LA SESION No. 02

1. DEFINICION DE ANALISIS DE SISTEMAS

El análisis estructurado, como todos los demás métodos de análisis de

requisitos, es una actividad de construcción de modelos. Mediante una

notación que es única de este método, se crean modelos que reflejan el flujo

y el contenido de la información (datos y control); se parte el sistema

funcionalmente y, según los distintos comportamientos, se establece la

esencia de lo que se debe construir.

La tarea del análisis de sistemas, conlleva más que sólo realizar análisis de

requisitos, pero es en eso donde se focalizará la discusión.

(7)

2. Herramientas para documentar procedimientos y

decisiones.

Seguir procedimientos y tomar decisiones son aspectos importantes de

cualquier empresa. De hecho, la administración misma es, esencialmente,

toma de decisiones. Algunas, como aceptar o no ofertas, afectan a todas las

organizaciones. Otras, como decidir cuándo volver a pedir materiales para el

almacén, de penden de pocas personas y siguen procedimientos paso a

paso. Sin embargo, las decisiones y procedimientos son de importancia para

el analista cuando éste conduce una investigación de sistemas dentro de la

empresa. (El desarrollo de un sistema para reabastecer el inventario, por

ejemplo, sin examinar la decisión sobre qué cantidad de un determinado

artículo incluir en el pedido, puede conducir a un desastre.

Hay varias herramientas para el estudio de procedimientos de operación y de

los pasos a seguir para la toma de decisiones junto con los medios para

documentar estos aspectos en el estudio.

(8)

Las herramientas ayudan al analista a integrar los datos recopilados por los

diversos métodos (encuestas, entrevistas, observación de operaciones y

revisión de documentos).

Entre las metodologías para documentar procedimientos se encuentran:

Algoritmos, Pseudocódigo, Diagramas de Yourdon, Diagramas de Gane y

Sarson, Diagramas de Nassi-Schneiderman, Diagramas de Flujo de Datos,

Diagramas de Procesos, Diagramas HIPO, Diagramas de Warnier-Orr,

Árboles de Decisión, Tablas de Decisión, Herramientas CASE, Modelo

Entidad-Relación, Diccionario de Datos.

(9)

3. TECNICAS DE ANALISIS DE SISTEMAS

A. Algoritmos

Se sabe que la palabra algoritmo se dio en honor del matemático persa del

siglo IX,

Khowârizmî

. Con éste término se hace referencia a un conjunto de

reglas, ordenadas de forma lógica, para desarrollar un cálculo o para

solucionar un problema, ya sea de forma manual o utilizando una máquina.

Actualmente es frecuente hablar de algoritmo como paso previo al desarrollo

de un programa de computador.

Los algoritmos están, con mayor o menor complejidad, en todas las

actividades desarrolladas por el hombre y han sido utilizados por todos,

infinidad de veces, sin embargo, cuando se aborda el tema como parte de la

educación formal se mitifica y se difunde el prejuicio sobre que es un tema

complicado.

Desde los primeros años de escolaridad se trabaja con algoritmos, en

especial en el campo de las matemáticas. Los métodos utilizados para

sumar, restar, multiplicar y dividir son algoritmos que cumplen perfectamente

las características de precisión, finitud, definición y eficiencia.

Para que la solución de un problema sea llevada hasta un lenguaje de

programación, los pasos expresados en el algoritmo deben ser lo más

detallados posible, de manera que cada uno de ellos implique una operación

trivial; es decir, que los pasos no impliquen procesos que requieran de una

solución algorítmica. En caso de presentarse esta situación, el algoritmo

debe ser refinado, lo que equivale a desarrollar nuevamente el algoritmo para

la tarea concreta a la que se hace mención.

(10)

y que resulten más sencillas de solucionar. A esto se le llama diseño

modular.

Características de un algoritmo

Un algoritmo debe tener al menos las siguientes características:

Ser preciso

: esto significa que las operaciones o pasos del algoritmo

deben desarrollarse en un orden estricto, ya que el desarrollo de cada

paso debe obedecer a un orden lógico.

Ser definido

. Ya que en el área de programación, el algoritmo se

desarrolla como paso fundamental para desarrollar un programa, es

necesario tener en cuenta que el computador solo desarrollará las

tareas programadas y con los datos suministrados; es decir, no puede

improvisar y tampoco se inventará o adivinará el dato que necesite para

realizar un proceso. Por eso, el algoritmo debe estar plenamente

definido; esto es, que cuantas veces se ejecute, el resultado depende

estrictamente de los datos suministrados. Si se ejecuta con un mismo

conjunto de datos de entrada, el resultado será siempre el mismo.

Ser finito

: esta característica implica que el número de pasos de un

algoritmo, por grande y complicado que sea el problema que soluciona,

debe ser limitado. Todo algoritmo, sin importar el número de pasos que

incluya, debe llegar a un final. Para hacer evidente esta característica,

en la representación de un algoritmo siempre se incluyen los pasos

inicio y fin.

(11)

Las formas de presentación de algoritmos son: el pseudocódigo,

diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras.

Corrección

: el algoritmo debe ser correcto, es decir debe satisfacer la

necesidad o solucionar el problema para el cual fue diseñado. Para

garantizar que el algoritmo logre el objetivo, es necesario ponerlo a

prueba; a esto se le llama verificación o prueba de escritorio.

Eficiencia

: hablar de eficiencia o complejidad de un algoritmo es

evaluar los recursos de cómputo que requiere para almacenar datos y

para ejecutar operaciones frente al beneficio que ofrece. En cuanto

menos recursos requiere será más eficiente el algoritmo.

La vida cotidiana está llena de soluciones algorítmicas, algunas de ellas son

tan comunes que no se requiere pensar en los pasos que incluye la solución.

La mayoría de las actividades que se realizan diariamente están compuestas

por tareas más simples que se ejecutan en un orden determinado, lo cual

genera un algoritmo. Por ejemplo, son tareas comunes, realizar una llamada

telefónica, buscar un número en el directorio telefónico, buscar un anuncio

en las páginas amarillas del directorio, preparar café, regar las plantas, poner

en funcionamiento un automóvil, cambiar una llanta, entre muchas otras.

Muchos de los procedimientos utilizados para desarrollar tareas cotidianas

son algorítmicos, sin embargo, esto no significa que todo lo que se hace está

determinado por un algoritmo. El cumplimiento de las características

mencionadas anteriormente permitirá determinar si un procedimiento es o no

es algorítmico.

(12)

forma “aplicar 20 gramos de sal”, en cuyo caso no se requiere del gusto

(subjetivo) de quien lo aplica y por tanto no contradice el principio de la

algoritmia.

El primer paso en el diseño de un algoritmo es conocer la temática a tratar, el

segundo será pensar en las actividades a realizar y el orden en que deben

ejecutarse para lograr el objetivo, el tercero y no menos importante es la

presentación formal.

Al algoritmo expresado en un determinado lenguaje de programación, se

denomina

programa

. Puesto de otra manera, podemos decir que, un

programa es la implementación o expresión de un algoritmo en un

determinado lenguaje de programación siguiendo las reglas establecidas por

el lenguaje elegido. En la Figura 2.1 que sigue se muestra la relación entre

problema, algoritmo y programa.

Figura 1.1

Problema, algoritmo y programa

Todo algoritmo debe tener las siguientes características:

 Debe ser

preciso

, es decir, cada instrucción debe indicar de forma inequívoca que se tiene que hacer.

 Debe ser

finito

, es decir, debe tener un número limitado de pasos.

 Debe ser

definido

, es decir, debe producir los mismos resultados para las mismas condiciones de entrada.

Todo algoritmo puede ser descompuesto en tres partes:

 Entrada de datos.

 Proceso.

(13)

SIMBOLOS DE UN DIAGRAMA DE FLUJO

Con la colaboración del profesor, dibuje y escriba el propósito de

cada uno de los símbolos de un diagrama de flujo:

Nombre del

Símbolo

Grafico

Propósito

Inicio / Fin

Proceso

(14)

Nombre del

Símbolo

Grafico

Propósito

Reporte

Dirección

Conector

Interno

Conector

externo

(15)

Con base en los símbolos de un diagrama de flujo realice los

algoritmos para dar solución a los siguientes ejercicios

planteados:

1. Leer dos números (a y b), calcular su suma ( c ) y mostrar su resultado

2. Leer un número y escribir si es mayor o menor que 100.

3. Dado como dato la calificación de un alumno en un examen, escriba

“aprobado” en caso de que la calificación fuese mayor que 3.5 o “reprobado”

en caso contrario.

4. Desarrollar un algoritmo que capture un carácter y determine si es carácter

numérico.

5. Elaborar un programa que lea un carácter y determine si es mayúscula.

6. Elaborar un programa que lea un carácter y determine si es alfabético.

7. Elaborar un programa que lea un carácter y determine si esta entre ‘a’ y

‘p’.

B. Pseudocódigo

El pseudocódigo o seudocódigo es una manera genérica de describir un

algoritmo.

El pseudocódigo describe un algoritmo utilizando una mezcla de frases en

lenguaje común, instrucciones de programación y palabras clave que definen

las estructuras básicas.

(16)

El pseudocódigo es un lenguaje de pseudoprogramación utilizado para

escribir

algoritmos computacionales

. Como lenguaje de

pseudoprogramación, el pseudocódigo es una imitación de uno o más

lenguajes de programación. De esta manera podemos encontrar

pseudocódigos orientados a lenguajes de programación como Pascal, Java,

C, C++, etc.

Variables

Una variable es una localización o casillero en la memoria principal que

almacena un valor que puede cambiar en el transcurso de la ejecución del

programa. Cuando un programa necesita almacenar un dato, necesita una

variable. Toda variable tiene un

nombre

, un

tipo de dato

y un

valor

. Antes

de poder utilizar una variable es necesario declararla especificando su

nombre

y su

tipo de dato

. Para declarar declarar variables usaremos los

siguientes formatos:

Declaración de una variable:

tipo nombre

Declaración de varias variables con el mismo tipo de dato:

tipo nombre1, nombre2, nombre3, ..., nombren

Donde:

Tipo

Es el tipo de dato de la variable que puede ser: ENTERO (si la variable almacenará un número entero) , REAL (si la variable almacenará un número decimal) , CARACTER (si la variable almacenará un carácter), CADENA (si la variable almacenará un conjunto de carácteres) o LOGICO (si la variable almacenará el valor verdadero o el valor falso).

Nombre1, nombre2, ...,

nombren

(17)

Ejemplo :- Declaración de variables.

La siguiente instrucción declara la variable

edad

de tipo

ENTERO

y la variable

descuento

de tipo REAL..

ENTERO edad

REAL descuento

Esto crea los casilleros de memoria

edad

y

descuento

. Luego de la creación,

las variables están indefinidas ( ? ).

Edad

?

descuento

?

La siguiente instrucción declara las variables

nota1

,

nota2

y

nota3

, todas de tipo

ENTERO

.

ENTERO nota1, nota2, nota3

Esto crea los casilleros de memoria

nota1

,

nota2

y

nota3

. Luego de la

creación, las variables están indefinidas ( ? ).

nota1

?

nota2

?

nota3

?

Literales

Se denominan literales a todos aquellos

valores

que figuran en el

pseudocódigo y pueden ser:

Literales enteros

12, 20300, 15, etc.

Literales reales

3.1416, 2345.456, etc.

(18)

'a', 'B', ';', '<', '+', etc.

Literales de cadena

"Hola", "Algoritmos Computacionales", etc.

Literales lógicos

verdadero, falso

Instrucciones Algorítmicas Básicas

Existen tres instrucciones algorítmicas básicas que son las siguientes

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

Por ejemplo, la instrucción:

LEER

estatura

Solicita el ingreso de un valor, desde algún dispositivo de entrada (como el

teclado), para la variable

estatura

.

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

de la

siguiente forma:

IMPRIMIR

variable

Por ejemplo, la instrucción:

(19)

Muestra, en algún dispositivo de salida (como la pantalla), el valor de la

variable

importeCompra

.

Asignación

Consiste en asignar a una

variable

el valor de una

expresión

. La expresión

puede ser una simple variable, un simple literal o una combinación de

variables, literales y operadores. La asignación se expresa en el

pseudocódigo de la siguiente forma:

Variable = expresión

Donde

variable

y el valor de

expresión

deben tener el mismo tipo de dato.

Cuando se asigna un valor

ENTERO

a una variable

REAL

, entonces el valor

ENTERO

se convertirá en

REAL

antes de almacenarse. Así, al asignar el

valor ENTERO

25

a una variable REAL, se almacenará

25.0

.

Ejemplo

Pseudocódigo para expresar en centímetros y pulgadas una

cantidad dada en metros.

Esta es una solución en pseudocódigo del ejemplo 1.2 utilizando conceptos

computacionales de variable, entrada de datos y salida de resultados. La

solución considera que 1 metro = 100 centímetros y que 1 pulgada = 2.54

centímetros.

INICIO

// Declara las variables M, C y P REAL M, C, P

// Solicita el ingreso de la cantidad en metros LEER M

// Calcula la cantidad en centímetros y lo asigna a la variable C C = M*100

// Calcula la cantidad en pulgadas y lo asigna a la variable P P = C/2.54

// Muestra los valores de las variables C y P IMPRIMIR C, P

FIN

(20)

Una expresión aritmética es una combinación de variables, literales y

operadores aritméticos.

Operadores Aritméticos

En la tabla que sigue se muestran los operadores aritméticos que vamos a

utilizar.

Tabla 1.1

Operadores aritméticos

Operador

Significado

Ejemplo

+ Suma a+b

- Resta a-b

* Multiplicación a*b

/ División a/b

% Residuo a%b

Los operadores aritméticos pueden utilizarse con tipos enteros y reales. Si en

una operación con dos operandos, ambos operandos son enteros, el

resultado es un entero; si alguno de ellos es real, el resultado es real. Así,

15/4 es 3 y no 3.75; en cambio, 15.0/4 es 3.75.

Reglas de jerarquía de los operadores aritméticos

Cuando una expresión aritmética tiene más de un operador aritmético, el

orden de aplicación de los operadores sigue un orden preciso determinado

por las

reglas de jerarquía de los operadores aritméticos

, que se

muestran en la siguiente tabla:

Tabla 1.2

Reglas de jerarquía de los operadores aritméticos

Operador

Orden de evaluación

() Se evalúan en primer lugar

*, /, % Se evalúan en segundo lugar +, - Se evalúan en tercer lugar

(21)

Ejemplo:- ¿Cuál es el equivalente en pseudocódigo de la siguiente expresión algebraica?

Solución

e = a/b/c

Como todos los operadores tienen la misma jerarquía, la evaluación será de

izquierda a derecha:

Primero,

se

dividirá

a

entre

b.

Segundo, el resultado ya obtenido de a/b se dividirá entre c.

Note que el orden de ejecución esta de acuerdo con la expresión algebraica,

por lo que no se requiere ninguna pareja de paréntesis.

Ejemplo:- ¿Cuál es el equivalente en pseudocódigo de la siguiente expresión algebraica?

Solución

e = a*b*c/d/e

Como todos los operadores tienen la misma jerarquía, la evaluación será de

izquierda a derecha:

Primero,

se

multiplicará

a

por

b.

Segundo, el resultado ya obtenido de a*b se multiplicará por c.

Tercero, el resultado ya obtenido de a*b*c se dividirá entre d.

Cuarto, el resultado ya obtenido de a*b*c/d se dividirá entre e.

Note que el orden de ejecución esta de acuerdo con la expresión algebraica,

por lo que no se requiere ninguna pareja de paréntesis.

(22)

Solución

e = 4/((a+b)/(c/d)) + v/w/p + 5*m*n*q

Aplicando las reglas de jerarquía de los operadores aritméticos:

Primero, se sumará a más b.

Segundo, se dividirá c entre d.

Tercero, el resultado ya obtenido de a+b se dividirá entre el resultado ya

obtenido de c/d.

Cuarto, se dividirá 4 entre el resultado ya obtenido de ((a+b)/(c/d))

Quinto, se dividirá v entre w.

Sexto, se dividirá el resultado ya obtenido de v/w entre p.

Séptimo, se multiplicará 5 por m.

Octavo, se multiplicará el resultado ya obtenido de 5*m por n.

Noveno, se multiplicará el resultado ya obtenido de 5*m*n por q.

Décimo, se sumará el resultado ya obtenido de 4/((a+b)/(c/d)) más el

resultado ya obtenido de v/w/p.

Undécimo, se sumará el resultado ya obtenido de 4/((a+b)/(c/d)) + v/w/p más

el resultado ya obtenido de 5*m*n*q.

Se ha utilizado la mínima cantidad posible de paréntesis. Pueden usarse

paréntesis adicionales, lo que no es un error. Por ejemplo, otra solución

posible que arroja el mismo resultado final es:

e = (4/((a+b)/(c/d))) + ((v/w)/p) + (5*m*n*q)

Note que usando correctamente las reglas de jerarquía, es posible usar

menos parejas de paréntesis.

Expresiones Lógicas

(23)

Tabla 1.3

Operadores relacionales

Operador

Significado

Ejemplo

> mayor que a > b

>= mayor o igual que a >= b

< menor que a < b

<= menor o igual que a <= b

== igual a a == b

!= diferente de a != b

Tabla 1.4 Operadores lógicos

Operador

Significado

Ejemplo

! no !a

&& y a && b

|| ó a || b

Ejemplos de Pseudocódigo:

1. Determinar la comisión pagada a un vendedor de la compañía X, sabiendo

que si las ventas son menores a 10000 la comisión es del 2%, en caso

contrario la comisión es del 5%.

programa

comisión

variables

comi1, comi2, venta, sion : real

nombre[30] : cadena

inicio

comi1=0.05

comi2=0.02

escribir

“programa para determinar comisiones”

escribir

“digite el nombre del vendedor: ”

(24)

escribir

“digite el valor de la venta: ”

leer

venta

si

(venta >= 10000)

entonces

sion = venta * comi1

sino

sion = venta * comi2

fin si

escribir

“el nombre del vendedor es: ”, nombre

escribir

“el valor pagado por la comisión es: ”, sion

fin

2. Leer un número y determinar su cubo si él positivo.

programa

cubo

variables

numero, cubo: entero

inicio

escribir

“digite un numero”

leer

numero

si

(numero <= 0)

entonces

escribir

“numero menor o igual que 0”

sino

cubo = numero * numero * numero

escribir

“el cubo de “,numero, “es ”,cubo

fin si

fin

3. Construir un programa para determinar el valor absoluto de un número.

programa

valor

variables

numero : real

inicio

(25)

escribir

“digite el número”

leer

numero

si

(numero < 0)

entonces

escribir

“el valor absoluto de “, numero, “es”, -numero

sino

escribir

“el valor absoluto de “, numero, “es”, numero

fin si

fin

4. Elaborar un programa que lea dos números y determine el número mayor.

programa

mayor

variables

a, b : real

inicio

escribir

“digite el primer número”

leer

a

escribir

“digite el segundo número”

leer

b

si

( a < b)

entonces

escribir

“el número mayor es: “, b

sino

escribir

“el número mayor es ”, a

fin si

fin

5. La liga de baloncesto es seleccionando personal para sus categorías, por

cada uno se lee el nombre y estatura. Determinar si la persona no tiene una

estatura mayor a 1.70 mts inclusive.

programa

estatu

variables

nombre[30] : caracter

estatura : real

inicio

escribir

“digite el nombre”

leer

nombre

(26)

leer

estatura

si

(estatura < 1,70)

entonces

escribir

nombre, “no es aceptado”

sino

escribir

nombre, “es aceptado”

fin si

fin

C. Diagramas de Nassi-Schneiderman

Definición.

El diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripción textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo.

El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigüedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas más utilizadas son:

Inicio Fin Leer Escribir

Mientras Repita Hasta Para

Incrementar Decrementar Hacer Función

Entero Real Caracter Cadena

Lógico Retornar

Los símbolos utilizados en el diagrama de Chapin son corresponden a cada tipo de estructura. Dado que se tienen tres tipos de estructuras, se utilizan tres símbolos. Esto hace que los procesos del algoritmo sean más fáciles de representar y de interpretar.

Estructuras secuenciales

Son aquellas que se ejecutan una después de otra. Se tienen tres tipos de instrucciones secuenciales: la declaración de variables, asignación, instrucción Leer e instrucción

Escribir.

(27)

Teniendo en cuenta la compatibilidad con la mayoría de los lenguajes, se recomienda que desde el diseño del programa se utilice una forma determinada para la declaración de las variables. Esta consiste en escribir el tipo de datos y la lista de identificadores que se tendrán de dicho tipo, separando cada identificador por medio de comas (,). Para mejorar la claridad de la declaración se puede colocar dos puntos (:) para separar el tipo de datos de la lista de identificadores.

Ejemplo: Entero: edad

Real: estatura, peso, sueldo Cadena: nombre, dirección

Aunque algunos lenguajes de programación permiten declarar las variables en el momento en que se las necesita, es aconsejable, en favor de los buenos hábitos de programación, siempre declarar las variables antes de utilizarlas y el sitio más adecuado es el inicio del programa o de la función.

Asignación

Asignar un valor a una variable equivale a decir que se guarda dicho valor en la posición de memoria reservado para la variable en mención. Por lo tanto, para poder realizar una asignación es necesario primero haber declarado una variable, con lo cual se reserva un espacio de memoria suficiente para guardar un dato del tipo especificado.

Una expresión de asignación tiene la forma: Variable = expresión

Donde la expresión puede estar formada por un valor, por un conjunto de valores y operadores o por una función.

Ejemplos: Edad = 10 Estatura = 1.80 Resultado = 2*3

Donde edad y resultado son variables de tipo entero y estatura de tipo real que se supone declaradas previamente.

Una asignación tiene tres partes, una variable, el signo igual y la expresión cuyo valor se asigna a la variable. La variable siempre va a la izquierda del igual, mientras que la expresión siempre estará a la derecha.

Ejemplos: Entero: X, Y X = 10 Y = X * 2 + 8

En este ejemplo, la variable Y contendrá el valor 28.

Instrucción Leer

La instrucción LEER se utiliza para enviar información desde un dispositivo de entrada de datos hacia la memoria. En la memoria los datos son ubicados mediante el identificador (nombre de variable) utilizado como complemento de la instrucción LEER.

En diagrama N-S la instrucción de entrada se representa así:

Leer <lista de identificadores de variables>

(28)

Leer a, b

Donde “a” y “b” son las variables que recibirán los valores y que deben haberse declarado previamente.

Instrucción Escribir

Esta instrucción permite enviar datos desde la memoria hacia un dispositivo de salida como la pantalla o la impresora. La información que se envía puede ser constante o también el contenido de variables.

Escribir <lista de constantes y variables>

Ejemplo:

Escribir a, b

Cuando se escriben más de una variable es necesario separarlas con comas (,) y los mensajes se escriben entre comillas dobles " ". Si una variable es escrita entre comillas se mostrará el identificador y no el contenido.

Ejemplos:

1. Diseñarun algoritmo para calcular el área y el perímetro de un rectángulo

Definición del problema

Calcular área y perímetro de un rectángulo

Análisis del problema

Para desarrollar este problema es necesario conocer las fórmulas para obtener tanto el área como el perímetro de un rectángulo.

Sea b = base y h = altura, las fórmulas a utilizar son: Area = b * h

Perímetro = 2 * (b + h)

Datos de entrada: b y h (base y altura)

Datos de salida: área y perímetro

Procesos: área = b * h

Perímetro = 2 * (b + h)

Diseño de la solución

Inicio

Entero: b, h, a, p Leer b, h

h

(29)

a = b * h p = 2 (b + h) Escribir “área:”, a Escribir “perímetro:”, p Fin algoritmo

2. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.

Definición del problema

Calcular porcentaje de hombres y mujeres en un grupo

Análisis del problema

Datos a tener en cuenta: Número hombres Número mujeres Total estudiantes Porcentaje hombres Porcentaje mujeres

Datos de entrada: número hombres, número mujeres Datos salida: porcentaje hombres, porcentaje mujeres

Procesos: tot estudiantes = núm. hombres + núm. Mujeres Porc.hombres = núm. Hombres / tot estudiantes*100 Porc.hombres = núm. mujeres / tot estudiantes*100

Diseño de la solución

Inicio

Entero: numm, numh, totest Real: porch, porcm

Leer numm, numh totest = numm + numh porcm = numm / totest * 100 porch = numh / totest * 100

Escribir “porcentaje mujeres:”, porcm

Escribir “porcentaje hombres:”, porch

Fin algoritmo

(30)

cantidad de exámenes de cada tipo se entran por teclado. ¿Cuántas horas y cuántos minutos se tardará en revisar todas las evaluaciones?

Definición del problema

Calcular el tiempo, en horas y minutos, requerido para calificar exámenes.

Análisis del problema

Se tienen tres tipos de examen A, B, C y el tiempo en minutos requerido para cada tipo son: A = 5

B = 8 C = 6

El tiempo en minutos debe ser convertido a horas, 1 hora = 60 minutos

Para pasar de minutos a horas se realiza operación división entera, para conocer los minutos excedentes se utiliza la operación módulo.

Datos de entrada: número exámenes tipo A, B y C Datos de salida: horas y minutos requeridos Procesos:

Total A = número tipo A * 5 Total B = número tipo B * 8 Total C = número tipo C * 6

Tiempo total = total A + total B + total C Horas = tiempo total / 60

Minutos = tiempo total Mod 60

Diseño de la solución

Inicio

Entero: numa, numb, num, tota,totb, totc, totmin, horas, minutos

Leer numa, numb, numc tota = numa * 5

totb = numb * 8 totc = numc * 6

totmin = tota + totb + totc horas = totmin / 60 minutos = totmin Mod 60

Escribir “tardará:”,horas, “horas y”, minutos, “minutos”

Fin algoritmo

Estructuras de decisión

Las estructuras de decisión o también llamadas de selección permiten que el algoritmo tome decisiones y ejecute u omita algunos procesos dependiendo del cumplimiento de una condición.

Se pueden manejar tres tipos de decisiones: simple, doble y múltiple.

Decisión simple y doble

(31)

Una decisión cuando se tiene un curso de acción para el caso que el resultado de la comparación sea verdadero y otro para cuando sea falso.

En diagrama de Chapin el símbolo para representar una decisión es el siguiente:

Obsérvese que en la parte inferior se tienen los cuadros que indican dos posibilidades de acción, el conjunto de instrucciones 1 o el conjunto de instrucciones 2, solo uno de los dos. Si se tratase de una decisión simple, solo se tendrá instrucciones en las cajas que se ubican debajo de la cláusula Si, mientras que las que están bajo No estarán vacías.

Ejemplos:

1. Se desea un algoritmo para obtener el valor absoluto de un número

Definición del problema

Encontrar el valor absoluto de un número

Análisis del problema

Para encontrar el valor absoluto del número es necesario recordar que para los enteros positivos el valor es el mismo, mientras que para los enteros negativos es necesario cambiarlos de signo.

Datos de entrada: número Datos de salida: valor absoluto Proceso: número = número * (-1)

Diseño de la solución

2. Dados dos números ¿cuál es mayor? y ¿cuál es menor?

Condición

Si No

Conjunto de

(32)

Definición del problema

Identificar el mayor y menor de dos números

Análisis del problema

Datos de entrada: num1, num2 Datos salida: mayor, menor Proceso: comparación

Diseño de la solución

(33)

500.000 y hasta 800.000 recibirán un aumento del 8% y los demás del 5%. ¿Cuál será el valor del aumento? ¿Cuál será el valor del nuevo sueldo?

Definición del problema

Calcular el valor a incrementar y el valor del nuevo sueldo de los empleados.

Análisis del problema

El porcentaje de incremento en el sueldo depende del valor del sueldo actual, los sueldos más bajos tienen un mayor incremento:

10% para sueldo <= $ 500.000

8% para $ 500.000 < sueldo <= $ 800.000 5% para sueldo > 800.000

Datos de entrada: sueldo

Datos de salida: aumento, nuevo sueldo Proceso:

aumento = sueldo * porcentaje donde porcentaje = 5, 8 o 10% nuevo sueldo = sueldo + aumento

(34)

Decisión múltiple

Muchas decisiones deben tomarse, no solo entre dos alternativas, sino de un conjunto mayor. Estos casos bien pueden solucionarse utilizando condicionales dobles anidados; sin embargo, en favor de la claridad del algoritmo y la facilidad para el programador, es mejor utilizar una estructura de decisión múltiple, la cual es fácil de llevar a un lenguaje de programación, ya que éstos incluyen alguna instrucción con este fin.

La decisión múltiple determina el valor de una variable y dependiendo de éste sigue un curso de acción. Es importante tener en cuenta que solo se verifica la condición de igualdad entre la variable y la constante.

En diagrama N-S la estructura de selección múltiple tiene la forma:

Ejemplo:

Una distribuidora de motocicletas tiene una promoción de fin de año que consiste en los siguiente. Las motos marca HONDA tienen un descuento del 5%, las de marca Yamaha del 8% y las Suzuki el 10%, las de otras marcas el 2%

Definición del problema

Calcular el valor del descuento y el valor a pagar por la motocicleta.

Análisis del problema

Porcentaje descuento = 5% para motos Honda Porcentaje descuento = 8% para motos Yamaha Porcentaje descuento = 10% para motos Suzuki Porcentaje descuento = 2% para motos otras marcas

Datos de entrada: marca, valor

(35)

Valor neto = valor - descuento

Diseño de la solución

Estructuras de repetición

En la solución de algunos problemas es necesario ejecutar repetidas veces una instrucción o un conjunto de instrucciones. En algunos casos, el número de repeticiones se conoce con anterioridad, mientras que en otras depende de cálculos o estados de variables que se dan dentro de la solución del problema.

Para solucionar este tipo de problemas se utiliza un tipo de estructuras a las que se conocen como estructuras de repetición, bucles o ciclos.

Un ciclo consiste en un grupo de acciones que se ejecutan repetidas veces dependiendo del cumplimiento de una condición.

Ciclo Mientras

(36)

A diferencia de otros ciclos, el ciclo mientras comienza evaluando la expresión condicional, si el resultado es verdadero se ejecutarán las instrucciones que estén entre el mientras y el fin mientras, al encontrarse la línea fin mientras se volverá a evaluar la condición, si se cumple se ejecutarán nuevamente las instrucciones y así sucesivamente hasta que la condición deje de cumplirse, en cuyo caso, el control del programa pasa a la línea que aparece después de

fin mientras.

Si en la primera pasada por el ciclo mientras la condición no se cumple las instrucciones que están dentro del ciclo no se ejecutarán ni una sola vez.

En diagrama de Chapin (N-S), esta estructura tiene la presentación:

Ejemplos:

1. Un algoritmo para mostrar los números del 1 al 10.

Definición del problema

Mostrar listado de números de 1 a 10.

Análisis del problema

Datos de entrada: ninguno Datos de salida: número Proceso: ninguno

Diseño de la solución

(37)

Lo primero a tener en cuenta es la declaración e inicialización de la variable: num = 1. En este caso no solo se está declarando una variable de tipo entero, sino también se está asignando un valor inicial, que será el primer número mostrado.

La condición o expresión relacional con la cual se implementa el ciclo es num <= 10, dado que num. inicia en 1, la primera vez que se encuentra la instrucción mientras, la expresión es verdadera, por tanto se ejecutan las instrucciones que aparecen al interior del ciclo.

Después de haber mostrado el contenido de la variable num, éste cambia, se incrementa en 1.

2. Leer n números y encontrar el valor promedio, el mayor y el menor

Definición del problema

Encontrar el promedio, el mayor y el menor de varios números

Análisis del problema

Para solucionar este problema, lo primero que hay que plantear es cómo se sabrá cuando terminar la lectura de datos, ya que no se especifica la cantidad de números que serán ingresados y en el planteamiento del problema no se da ninguna condición que permita saber cuando terminar el ciclo. Este tipo de problemas es muy común.

Hay dos formas de abordar este ejercicio, la primera consiste en preguntar al usuario con cuantos números desea trabajar y guardar dicho valor en una variable que se utilizará para establecer el ciclo. La segunda consiste en preguntar después de leer cada dato, si se desea ingresar otro. En este ejercicio se utilizará la primera estrategia.

Datos de entrada: cantidad de números, número Datos de salida: promedio, mayor y menor Procesos:

Suma = suma + número

Promedio = suma / cantidad de números

(38)

3. La serie Fibonacci comienza con los números: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... Se requiere un algoritmo para generar los primeros 10 números.

Definición del problema

Generar los 10 primeros números de la serie fibonacci

Análisis del problema

La serie fibonacci se genera a partir de dos valores iniciales que son el 0 y el 1, que al sumarse dan como resultado 1. El siguiente número se obtiene sumando el último número obtenido con el anterior, en este caso 1 + 1 = 2, luego será 2 + 1 = 3 y así sucesivamente. Datos de entrada: ninguno

Datos de salida: serie fibonacci Procesos:

(39)

Ciclo Para

Este ciclo, al igual que los demás, permite ejecutar repetidas veces una instrucción o un grupo de ellas, pero a diferencia de otras instrucciones de repetición, ésta maneja el valor inicial, el valor de incremento o decremento y el valor final de la variable de control como parte de la instrucción.

Cuando al ejecutarse un algoritmo se encuentra una instrucción para la variable de control (contador) toma el valor inicial, se verifica que el valor inicial no sobrepase el valor final y luego se ejecutan las instrucciones del ciclo. Al encontrar la instrucción fin para, se produce el incremento y se vuelve a verificar que la variable de control no haya superado el límite admitido, y se vuelven a ejecutar las instrucciones que están dentro del ciclo, y así sucesivamente tantas veces como sea necesario hasta que se supere el valor final establecido.

El ciclo para termina en el momento en que la variable de control (contador) sobrepasa el valor final; es decir, que la igualdad está permitida y las instrucciones se ejecutan cuando el contador es igual al valor final.

Este ciclo puede presentarse de tres maneras: la primera es la más común, cuando se produce un incremento de 1 en cada iteración, en cuyo caso no es necesario escribir explícitamente.

(40)

El segundo caso de utilización del ciclo Para es cuando el incremento es diferente de 1, en cuyo caso se escribirá la palabra incrementar seguida del valor a sumar en cada iteración.

En tercer lugar, el ciclo para no siempre se incrementa desde un valor inicial hasta un valor mayor, puede suceder que se requiera que se disminuya desde un valor inicial alto, hasta un valor menor. En este caso será suficiente con escribir decrementar en vez de incrementar. Ejemplos:

1. Imprimir los números del 1 al 10

Definición del problema

Imprimir números del 1 al 10

Análisis del problema

Datos de entrada: ninguno

Datos de salida: números (1 ... 10) Proceso: ninguno

Diseño de la solución

2. Imprimir los números del 5 al 50 con intervalos de 5.

Definición del problema

Imprimir números de cinco en cinco

Análisis del problema

Datos de entrada: ninguno Datos de salida: números Proceso: ninguno

(41)

3. Dado un número n mostrar los números menores o igual a éste, en orden descendente

Definición del problema

Imprimir números en orden descendente

Análisis del problema

Datos de entrada: número Datos de salida: números Proceso: ninguno

Diseño de la solución

4. un algoritmo que lee 10 números y muestra la sumatoria, el promedio, el número mayor y el número menor.

Definición del problema

Leer 10 números y sumarlos, determinar el promedio, el número menor y el número mayor.

Análisis del problema

Datos de entrada: número

Datos de salida: sumatoria, promedio, número menor y número mayor Proceso:

(42)

Diseño de la solución

La utilización adecuada e ingeniosa de las estructuras presentadas permite el diseño de algoritmos de aceptable nivel de complejidad, como se ha mostrado en los ejemplos. Obsérvese que cada estructura permite incluir las anteriores, en el último ejemplo se ha utilizado todos los conceptos presentados en este documento.

Los diagramas N-S permiten representar de forma sencilla los pasos que conforman un algoritmo y por su combinación de texto e imagen son muy fáciles de interpretar; no obstante, es recomendable que quien se inicia en el diseño de algoritmos conozca otras técnicas como el pseudocódigo y el diagrama de flujo.

Figure

Tabla 1.1 Operadores aritméticos
Tabla 1.4 Operadores lógicos

Referencias

Documento similar

Importes de las entregas de bienes y prestaciones de servicios a las que habiéndoles sido aplicado el régimen especial del criterio de caja hubieran resultado devengadas conforme. a

Pero cuando vio a Mar sacar el fuego de bajo su ala, voló de vuelta a su tribu a contarles lo que había visto.... Justo antes de que el sol saliera, Tatkanna se despertó y comenzó

El valor es maximo cuando p = 2/9 (es 38.8), que es el caso en que estaba indiferente entre cosechar en uno o dos d as y es cuando mas util le resultar a la informacion para

Junto a la tierra de olivar, son las tierras de pastos las que han alcanzado los mayores incremeñtos, alcanzándose una tasa de varia- ción en el período 1983-1997 de1200,6%15;

Puesto que la familia es el contexto más influyente y determinante para ellos, se analizará qué consecuencias tiene que la lectura sea valorada y considerada

* Este trabajo se basa en el cursillo impartido de la Facultad de Ciencias Económicas de la Universidad de Barcelona, en febrero de 1974, bajo los auspicios del Centro de

Hay que tener en cuenta que debido a la evolución tecnológica que se han dado en los últimos años existe una mayor facilidad para todos los ciudadanos para realizar reproducciones

En el modelo 2 consideramos la inmigración y el PIB inicial per cápita como valor indicativo de la situación económica inicial del país, dado que el modelo