Diagrama Ns
Diagrama Ns
Diagrama Ns
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:
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.
Diseño de la solución
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?
El porcentaje de incremento en el sueldo depende del valor del sueldo actual, los sueldos más bajos
tienen un mayor incremento:
Proceso:
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.
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%
Proceso:
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.
Ejemplos:
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.
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
Procesos:
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.
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:
Proceso: ninguno
Diseño de la solución
2. Imprimir los números del 5 al 50 con intervalos de 5.
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
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.
Proceso:
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.