La programación estructurada es un conjunto de técnicas para desarrollar algoritmos
fáciles de escribir, verificar, leer y modificar. La programación estructurada utiliza:
fáciles de escribir, verificar, leer y modificar. La programación estructurada utiliza:
• Diseño descendente. Consiste en diseñar los algoritmos en etapas, yendo de los conceptos
generales a los de detalle. El diseño descendente se verá completado y ampliado con el modular.
• Programación modular. El diseño descendente resuelve un problema efectuando
descomposiciones en otros problemas más sencillos a través de distintos niveles de refinamiento.
descomposiciones en otros problemas más sencillos a través de distintos niveles de refinamiento.
La programación modular consiste en resolver de forma independiente los subproblemas
resultantes de una descomposición. La programación modular completa y amplia el diseño
descendente como método de solución de problemas y permite proteger la estructura de la
información asociada a un subproblema. Cuando se trata de este modo, existirá un algoritmo
principal o conductor que transferirá el control a los distintos módulos o subalgoritmos, los
cuales, cuando terminen su tarea, devolverán el control al algoritmo que los llamó. Los módulos
o subalgoritmos deberán ser pequeños, seguirán todas las reglas de la programación
estructurada y podrán ser representados con las herramientas de programación habituales. El
empleo de esta técnica facilita notoriamente el diseño de los programas; por ejemplo:
o Cómo los módulos son independientes, varios programadores podrán trabajar simultáneamente
en la confección de un algoritmo, repartiéndose las distintas partes del mismo.
o Se podrá modificar un módulo sin afectar a los demás.
o Las tareas, subalgoritmos, sólo se escribirán una vez, aunque se necesiten en distintas ocasiones
a lo largo del algoritmo.
resultantes de una descomposición. La programación modular completa y amplia el diseño
descendente como método de solución de problemas y permite proteger la estructura de la
información asociada a un subproblema. Cuando se trata de este modo, existirá un algoritmo
principal o conductor que transferirá el control a los distintos módulos o subalgoritmos, los
cuales, cuando terminen su tarea, devolverán el control al algoritmo que los llamó. Los módulos
o subalgoritmos deberán ser pequeños, seguirán todas las reglas de la programación
estructurada y podrán ser representados con las herramientas de programación habituales. El
empleo de esta técnica facilita notoriamente el diseño de los programas; por ejemplo:
o Cómo los módulos son independientes, varios programadores podrán trabajar simultáneamente
en la confección de un algoritmo, repartiéndose las distintas partes del mismo.
o Se podrá modificar un módulo sin afectar a los demás.
o Las tareas, subalgoritmos, sólo se escribirán una vez, aunque se necesiten en distintas ocasiones
a lo largo del algoritmo.
Existen dos tipos de subalgoritmos: funciones y procedimientos.
FUNCIONES
Una función toma uno o más valores, denominados argumentos o parámetros actuales o
reales y, según el valor de estos, devuelve un resultado en el nombre de la función. Para invocar
o llamar a una función se utiliza su nombre seguido por los parámetros actuales o reales entre
paréntesis en una expresión. Es decir que se podrá colocar la llamada a una función en cualquier
instrucción donde se pueda usar una expresión. Por ejemplo escribir(raizCuadrada(16)) O si la
función se denomina f y sus parámetros son p1, p2 y p3: escribir(f(p1, p2, p3))
Cada lenguaje de programación tiene sus propias funciones incorporadas, que se
denominan internas o intrínsecas o estándar. Se consideran como internas únicamente las más
básicas y comunes a casi todos los lenguajes y se irán comentando a lo largo de las lecciones
adecuadas, es decir cuando para explicar el tema se necesite una referencia a alguna de ellas.
Si las funciones estándar no permiten realizar el tipo de cálculo deseado será necesario
recurrir a las funciones externas o de usuario, que definiremos mediante una declaración de la
función.
denominan internas o intrínsecas o estándar. Se consideran como internas únicamente las más
básicas y comunes a casi todos los lenguajes y se irán comentando a lo largo de las lecciones
adecuadas, es decir cuando para explicar el tema se necesite una referencia a alguna de ellas.
Si las funciones estándar no permiten realizar el tipo de cálculo deseado será necesario
recurrir a las funciones externas o de usuario, que definiremos mediante una declaración de la
función.
PROCEDIMIENTOS
Un procedimiento es un subalgoritmo que realiza una tarea específica y que puede ser
definido con 0, 1 ó n parámetros. Tanto la entrada de información al procedimiento como la
devolución de resultados desde el procedimiento al programa llamador se realizarán a través de
los parámetros. El nombre de un procedimiento no está asociado a ninguno de los resultados que
obtiene.
Un procedimiento es un subalgoritmo que realiza una tarea específica y que puede ser
definido con 0, 1 ó n parámetros. Tanto la entrada de información al procedimiento como la
devolución de resultados desde el procedimiento al programa llamador se realizarán a través de
los parámetros. El nombre de un procedimiento no está asociado a ninguno de los resultados que
obtiene.
La invocación a un procedimiento se realiza con una instrucción llamar_a o bien
directamente con el nombre del procedimiento. Es decir:
[llamar_a] <nombreProcedimiento> ([listaParametrosActuales])
Como se puede apreciar con respecto a la lista de parámetros no existe obligatoriedad.
Ejercicios Resueltos Programacion:
- Dados tres números, deducir cuál es el central.
- Calcular la raíz cuadrada de un número y escribir su resultado. En caso de ser el
número negativo, enviar un mensaje que diga no hay solución real. - Determinar el precio de un boleto de ida y vuelta en ferrocarril, conociendo la distancia
a recorrer y sabiendo que si el número de días de estancia es superior a 7 y la distancia
superior a 800 kilómetros el boleto tiene un descuento del 30%. El precio por kilómetro
es de 2.5 pesos. - Diseñar un algoritmo en el que a partir de una fecha introducida por teclado con el
formato DIA, MES AÑO se obtenga la fecha del día siguiente. Se supone que la fecha
introducida es correcta. - Se desea realizar una estadística de los pesos de los alumnos de un colegio de acuerdo a
la siguiente tabla:
Alumnos de menos de 40 Kg
Alumnos entre 40 y 50 Kg
Alumnos de más de 50 y menos de 60 Kg
Alumnos de más o igual a 60 Kg
La entrada de los pesos de los alumnos se terminará cuando se introduzca el valor
centinela –99. Al final se desea obtener cuántos alumnos hay en cada uno de los rangos. - Realizar un algoritmo que averigüe si dados dos números enteros introducidos por
teclado, uno es divisor del otro. - Analizar los distintos métodos de realizar la suma de T números introducidos por
teclado. - Se desea un algoritmo que realice la operación de suma o resta de dos números enteros
leídos desde el teclado en función de la respuesta S o R (suma o resta) que se dé a un
mensaje de petición de datos. - Escribir un algoritmo que lea un número entero y deduzca si está entre 10 y 100, ambos
inclusive. - Se dispone de las calificaciones de los alumnos de un curso de informática
correspondiente a las asignaturas ACCES, VISUAL C++, PASCAL Diseñar un
algoritmo que calcule el promedio de calificaciones de cada alumno. - Escribir el seudocódigo que calcule la suma de los 50 primeros números enteros.
- Calcular y escribir los cuadrados de una serie de números enteros distintos de 0 leídos
desde el teclado. El valor centinela es el cero. - Un capital inicial (capitalInicial) está situado a un tipo de interés (tasaInteres) ¿Sé
duplicará o superará el capital inicial al término de dos años? Si es así enviar un
mensaje que así lo indique. - Leer una serie de números enteros desde el teclado y calcular su media aritmética. La
marca de fin de lectura será el número –999. - Se considera la serie definida por:
a1 = 0, a2 = 1, an = 3 * an-1 + 2 * an-2 (para n >= 3)
Se desea obtener el valor y el índice del primer término que sea mayor o igual que 1000. - Escribir un algoritmo que permita calcular Xn, donde:
X Puede ser cualquier número real distinto de 0
n Puede ser cualquier entero positivo, negativo o nulo - Se desea leer desde el teclado una serie de números enteros hasta que aparezca alguno
menor que 1000. - Se desea obtener los cuadrados de todos los números leídos desde un archivo hasta que
se encuentre el número 0. - Escribir un algoritmo que reciba una fecha por teclado – dd, mm, aa -, así como el día
de la semana que fue el primero de enero de dicho año, y muestre por pantalla el día de
la semana que corresponde a la fecha que le hemos dado. En su resolución deben
considerarse los años bisiestos. Debe validar que la fecha introducida sea correcta. - Realizar un procedimiento que permita intercambiar el valor de dos variables.
- Realizar una función no recursiva que permita obtener el término n de la serie de
Fibonacci. - Implementar una función que permita devolver un valor entero, leído desde el
teclado, comprendido entre dos límites que introduciremos como parámetros. - Diseñar una función que permita obtener el valor absoluto de un número.
- Realizar un procedimiento que obtenga la división entera y el resto de la misma
utilizando únicamente los operadores de suma y resta. - Diseñar un procedimiento que permita convertir coordenadas polares (radio, ángulo)
a cartesianas (x, y)
x = radio * cos(ángulo).
y = radio * sen(ángulo). - Diseñe una función que permita obtener el factorial de un número entero positivo.
- Diseñar una función que permita obtener el máximo común divisor de dos números
mediante el algoritmo de Euclides. - Realizar una función que permita saber si una fecha es válida.
- Implementar una función que permita hallar el valor de Xy, siendo X un número real e y
un entero. - Realizar un subprograma que calcule la suma de los divisores de un número entero n.
- Implementar una función llamada redondeo(a,b), que devuelva el número real a
redondeado a b decimales. - Algoritmo que transforma un número introducido por teclado en notación decimal o
romana. El número será entero y positivo y no excederá de 3000. - Escribir una función, integral, que devuelva el área del recinto formado por el eje de las
x, las rectas x = a y x = b y el arco de curva correspondiente a una función continua,
recibida como parámetro, con valores positivos en el intervalo considerado. - Escribir una función recursiva que calcule el factorial de un número entero positivo.
- Escriba una función recursiva que calcule la potencia de un número entero positivo.
- Escribir una función recursiva que calcule el término n de la serie de Fibonacci.
- Escribir un procedimiento recursivo que escriba un número en base 10 convertido a
otra base entre 2 y 9. - Diseñar un algoritmo que resuelva el problema de las ocho reinas.
51 Paginas
Ejercicios Resueltos
No hay comentarios:
Publicar un comentario