Diagrama Ns

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

1.

Escribir un programa que lea dos caracteres, e imprima su valor cuando se pueda interpretar
como un número hexadecimal. Aceptar letras mayúsculas y minúsculas para los valores del 10
al 15.
2. Leer un valor entero. Suponer que el número es un día de la semana. Suponer que 0 corresponde
a Domingo y así sucesivamente. Imprimir el nombre del día.
3. Dados como entrada 3 enteros representando la fecha como día, mes, año, imprimir la fecha del
día anterior. Por ejemplo para una entrada como: 1 3 1992 La salida será: Fecha anterior a 1-3-
1992 es 29-02-1992

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?

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

3. Una empresa desea calcular los nuevos salarios de sus empleados de la siguiente forma: quienes
ganan hasta $ 500.000 tendrán un incremento del 10%, quienes devengan más de $ 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

Diseño de la solución

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

Datos de salida: descuento, valor a pagar

Proceso:

descuento = valor * porcentaje

Valor neto = valor - descuento

Diseño de la solución

1. Estructuras de decisión
2. 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

Este ciclo consiste en un conjunto de instrucciones que se repiten mientras se cumpla una condición. De
igual manera que en los condicionales, la condición es evaluada y retorna un valor lógico, que puede ser
verdadero o falso. En el caso del ciclo mientras las instrucciones contenidas en la estructura de repetición
se ejecutarán solamente si al evaluar la condición se genera un valor verdadero; es decir, si la condición se
cumple; en caso contrario, se ejecutará la instrucción que aparece después de Fin mientras.

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

Este es un algoritmo muy trivial pero permite revisar la aplicación de la estructura de repetición Mientras.

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

Diseño de la solución

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:

a=0

b=1

f=a+b

Diseño de la solución

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.

En diagrama N-S:

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

Diseño de la solución

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:

suma = suma + número

promedio = suma / 10

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.

Finalmente, es menester anotar que el diseño de algoritmos no solo requiere conocer metodologías de
representación, sino también desarrollar elpensamiento lógico para generar soluciones y esto se consigue
mediante el desarrollo de ejercicios.

También podría gustarte