Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORMATICA I
Técnica de Programación
Estructuras de control
1
Técnica de Programación – Estructuras de control
En los capítulos precedentes hemos visto como es la herramienta que ejecutara la solución de nuestros problemas, como se
representa la información internamente en ella. También hemos aprendido a formular para el autómata expresiones
aritméticas, relacionales y lógicas, atendiendo el orden de evaluación de las mismas por parte del procesador. Además
conocimos cuales son las acciones primitivas que el procesador entiende con el solo hecho de enunciarlas. Sabemos también
de qué forma vamos a representar nuestras soluciones algorítmicas. Podemos decir que ya estamos en condiciones de formular
nuestros algoritmos, que al “recorrerlos” nos darán la solución de nuestros problemas. Solo nos falta determinar de cuales
formas se pueden combinar u organizar las acciones. A esa forma de organizarse las acciones las llamaremos estructuras u
organizaciones de control del flujo de información.
PROGRAMACIÓN ESTRUCTURADA
La programación estructurada es un conjunto de técnicas para desarrollar algoritmos fáciles de escribir,
verificar, leer y modificar.
Esta técnica utiliza el diseño descendente o top down que va de lo “general” a lo “particular” es decir, consiste
en diseñar los algoritmos en etapas, partiendo de los conceptos generales hasta llegar a los detalles.
Para que la programación sea estructurada, los programas han de ser propios.
Un algoritmo es propio cuando:
•Tiene un solo punto de entrada y uno de salida
•Toda acción del programa es accesible, es decir, existe al menos un camino que va desde el inicio hasta el fin
del mismo, que se puede seguir y pasa a través de dicha acción.
•No posee bucles infinitos.
Podemos decir entonces que un algoritmo es propio cuando puede ser escrito utilizando únicamente tres tipos
de estructuras u organización de las acciones: secuencial, selectiva y repetitiva.
La mayor ventaja de esta manera de desarrollar los algoritmos es que los mismos son más legibles por lo tanto
es más fácil poder modificarlos, corregirlos y mantenerlos. A continuación desarrollaremos la representación que le daremos a
cada una de estas tres formas organizativas de las acciones.
Organización secuencial.
La llamamos así y no estructura de control secuencial porque entendemos que esta forma de instaurar las
acciones no realiza ninguna vigilancia entre las mismas, simplemente es un conjunto de acciones ordenadas de tal manera que
cada acción determina cual es la siguiente acción. Desde ya podemos afirmar que todos nuestros algoritmos desde su inicio
hasta su fin serán secuenciales, dado que cuando termine una estructura comenzará inmediatamente la siguiente.
acción 1
acción 2
acción 3
----------
acción n
2
Técnica de Programación – Estructuras de control
Ejemplo:
Desarrollar en pseudocódigo el algoritmo correspondiente al siguiente enunciado.
Dados dos números reales calcular su suma y su producto y mostrar los resultados.
Algoritmo suma
Real: n1, n2, sum, produ
Inicio
Leer ( n1, n2)
sum n1 + n2
produ n1 * n2
Escribir (“suma =”, sum, “Producto =”, produ)
FIN
Actividades Propuestas
Desarrollar:
La estrategia solución correspondiente a cada uno de los siguientes enunciados.
El algoritmo en pseudocódigo.
1) Se tiene como datos los sueldos de tres empleados: Suel1, Suel2, Suel3 y tres descuentos variables
expresados como porcentajes: Porc1, Porc2, Porc3, respectivamente. Calcular y mostrar cada uno de los sueldos netos.
4) Tres personas deciden invertir su dinero para formar una empresa. Cada una de ellas invierte una cantidad
distinta. Calcular y mostrar el porcentaje que cada invierte con respecto al total de la inversión.
5) La serie numérica de Fibonacci declara que cada término de la misma es la suma de los dos términos
anteriores. Teniendo como datos el término N1 y el posterior N2 calcular y mostrar los 5 términos siguientes.
6) Por medio del uso de una variable y sus posteriores modificaciones aritméticas, generar y exhibir los
primeros cinco números naturales.
8) Teniendo como dato un número par N, calcular y mostrar los cinco impares siguientes a él.
3
Técnica de Programación – Estructuras de control
Si (expresión)
entonces
acción/es camino del verdadero
sino (opcional)
acción/es camino del falso
finsi
finsi
Donde expresión es una expresión algorítmica lógica valida y/o una variable lógica.
La cláusula sino pude faltar depende de la condición planteada, en ese caso es una selección simple
incompleta.
El margen que se establece para la clausula entonces y la clausula sino se hace para que el algoritmo sea más
legible. Se desarrollan ejercicios sencillos con el propósito de exponer la aplicación de la estructura y su sintaxis, como
objetivo fundamental.
Ejemplos:
Si ( n1 > n2)
entonces
Escribir (n1)
sino !con cláusula sino, selección simple completa.
Escribir (n2)
finsi
FIN
4
Técnica de Programación – Estructuras de control
2- Dada la edad de un alumno mostrar con cartel aclaratorio si la misma supera los 20 años.
Algoritmo edad
Entero: ed
Inicio
Leer (ed)
Si (ed > 20)
entonces !sin cláusula sino, selección simple incompleta
Escribir (“Supera los 20 años”)
finsi
FIN
NOTA: Si estuviera en este ejemplo la cláusula sino solamente sería para aclarar que la edad no supera los 20 años.
En el siguiente ejemplo se mostrara la aplicación de como se puede combinar o “anidar” varias estructuras de selección simple completas.
El margen o indentación que se aplica en cada una de ellas es necesario, para que el algoritmo sea más legible. La representación del margen
por medio de una línea vertical no se considera necesaria.
Algortimo Orden_alf
Caracter: let1, let2, let3
Inicio
Escribir (“Ingrese las tres letras distintas”)
Leer (let1, let2, let3)
Si ((let1< let2) .Y. (let2<let3))
entonces
Escribir (Let1, let2, let3)
sino
Si ((let1< let3) .Y. (let3<let2))
entonces
Escribir (let1, let3, let2)
sino
Si ((let2< let1) .Y. (let1<let3))
entonces
Escribir (let2, let1, let3)
sino
Si ((let2< let3) .Y. (let3<let1))
entonces
Escribir (let2, let3, let1)
sino
Si ((let3< let2) .Y. (let2<let1))
entonces
Escribir (let3,let2,let1)
sino
Escribir(let3,let1,let2)
finsi
finsi
finsi
finsi
finsi
FIN
En este ejemplo se muestra la aplicación de como se puede combinar o “anidar” varias estructuras de selección simple completas.
El margen o indentación que se aplica en cada una de ellas es necesario, para que el algoritmo sea más legible. La representación del margen
por medio de una línea vertical no se considera necesaria.
5
Técnica de Programación – Estructuras de control
Actividades Propuestas
Desarrollar:
La estrategia solución correspondiente a cada uno de los siguientes enunciados.
El algoritmo en pseudocódigo.
3) Teniendo como dato una temperatura en grados Centígrados, mostrar el estado físico del agua a esa temperatura y
a 760 mm de presión atmosférica: sólido (menor ó igual a 0 Cº), liquido (mayor a 0Cº y meno ó igual a 100 Cº) y
gaseoso (mayor a 100 Cº).
4) Un año es bisiesto si es divisible por 4 y no es por 100, o si es divisible por 400. Desarrolle un algoritmo
que lea un año y determine si es o fue bisiesto o no.
5) Leer la nota de un alumno (numérica) y mostrar un mensaje diciendo si está reprobado (< 4), aprobado (>=4 y <
7), bueno (>=7 y <9) distinguido (= 9) o sobresaliente (= 10). Mostrar un mensaje si la nota es incorrecta. Este algoritmo
debe hacerse de dos maneras distintas: con: decisiones secuenciales y decisiones anidadas.
Los datos son tres números enteros, determinar si la suma de cualquier pareja de ellos es igual al número restante. Si se
cumple esta condición, escribir “Iguales”, en caso contrario escribir “Distintos”.
6) Dados tres números enteros distintos determinar y mostrar el número que ocupa la posición del centro, al ordenar
los mismos de menor a mayor.
7) Leer las coordenadas cartesianas (x, y) de un punto del plano y calcular e imprimir el cuadrante ((I, II, III, IV) al
cual pertenece el punto.
8) Se ingresa por teclado un número positivo de uno o dos dígitos (1..99).Mostrar un mensaje indicando cuantos
dígitos tiene el numero ingresado.
9) Se tiene como datos 4 valores numéricos enteros distintos. Calcular y mostrar la suma del mayor nuemro y el
menor número de los 4 dados.
6
Técnica de Programación – Estructuras de control
Ejemplo
Dado el número de un mes del año mostrar la cantidad de días, se supone que el año no es bisiesto.
Algoritmo cantdias
Entero: mes
Inicio
Leer (mes)
según sea (mes)
4, 6, 9,11: Escribir (“30 días”)
1, 3, 5, 7, 8, 10, 12: Escribir (“31 días”)
2: Escribir (“28 días”)
otrosvalores:
Escribir (“numero de mes equivocado”)
finsegun
FIN
7
Técnica de Programación – Estructuras de control
Actividades propuestas
Desarrollar:
• La estrategia solución correspondiente a cada uno de los siguientes enunciados.
• El algoritmo en pseudocódigo.
1) Ingresar un número válido de día. Mostrar el nombre del día de la semana correspondiente.
2) Los datos son tres enteros válidos, los cuales representan una fecha: dd, mm, aa. Se pide obtener y mostrar la
fecha del día siguiente.
3) Ingresar una cadena de caracteres. Calcular y mostrar la cantidad de vocales presentes en el mismo.
4) Ingresar duplas de valores formadas cada una de ellas por un carácter y un digito. Este ingreso no debe seguir
ningún orden y no debe exceder las cuatro duplas. El carácter pude asumir los siguiente valores U: unidades, D: decenas,
C: centenas, M: unidades de mil. Calcular y mostrar el número correspondiente.
5) Ingresar un número de mes valido y un año. Mostrar la cantidad de días que puede tener el mismo, considerando
que el año puede ser bisiesto.
Estas estructuras permiten controlar la repetición de las acciones. Las mismas se pueden repetir una cantidad conocida de
veces o una cantidad desconocida de veces. Son llamadas también estructuras de iteración
Donde i es la variable de control ó índice. Deberá ser un nombre válido de variable perteneciente a un tipo de dato
ordinal. Entre los tipos de dato estándar ordinales tendremos el tipo Entero y Caracter. Son ordinales porque cada elemento
de estos conjuntos tiene definido su antecesor y su sucesor.
Los valores que puede asumir la variable índice están determinados por el salto o escalón entre un valor y otro de la
misma. Si el salto o escalón no figura, se asume como la unidad en el conjunto. La secuencia de valores de la variable
índice puede ser en secuencia ascendente o descendente. La variable de control puede usarse dentro de la repetición pero
NO puede modificarse su valor dentro del cuerpo o bucle del Para.
valor inicial, valor final pueden ser un valor constante, una variable o una expresión válida.
incremento, es el salto o escalón que asume la variable de control entre un valor y el siguiente.
8
Técnica de Programación – Estructuras de control
Ejemplos
Esta forma de organizar las acciones en un algoritmo es aplicable cuando la cantidad de veces que debe repetirse la
ejecución de una o varias acciones no se conoce. Será necesario entonces formular una expresión de tipo lógica, válida que
controle dicha repetición. La construcción de la expresión lógica es fundamental y en la misma deberá intervenir un dato,
llamado comúnmente “centinela” porque es él quien controlara el bucle o cuerpo de la repetición.
Donde expresión es una expresión algorítmica lógica valida y/o una variable de tipo lógica.
En la estructura mientras si la primera vez que se evalúa la expresión es falsa la estructura mientras NO SE EJECUTA
La/s variables que se utilizan en la expresión del mientras deben tener un valor definido antes de evaluarla y dicha
variable/es deben modificar su valor dentro de la iteración de lo contrario la misma puede quedar en un bucle o repetición
infinito.
9
Técnica de Programación – Estructuras de control
Ejemplo.
Ingresar números y sumarlos, siempre que numero sea distinto de 1000.
Algoritmo sumar
Real: num, sum
Inicio
sum 0
Escribir (“Ingrese primer número a sumar”)
Leer (num)
Repetir mientras ( num < >1000) hacer
sum sum + num
Escribir (“Ingrese numero siguiente, 1000 para FIN”) !num es el dato centinela
Ler (num)
fin mientras
Escribir (“la suma de los números ingresados =”, sum)
FIN
El valor 1000 del dato centinela num es llamado FIN DE DATO y no debe ser “procesado”, es decir no debe ejecutarse
con este valor el cuerpo del mientras.
Repetir
acción 1
cuerpo acción 2
del ----------
repetir acción n
hasta (expresión)
Ejemplos
Algoritmo sumar1
Real: num, sum
Inicio
sum 0
Escribir (“Ingrese primer número a sumar”)
Leer ( num)
Repetir
sum sum + num
Escribir (“Ingrese numero siguiente 1000para FIN”)
Leer(num)
hasta( num = 1000)
Escribir (“Resultado de los números sumados =”, sum)
FIN
10
Técnica de Programación – Estructuras de control
Algoritmo sumar2
Real: num, sum
Inicio
sum 0
Repetir
Escribir (“Ingrese número a sumar 1000 para fin”)
Leer (num)
Si (num <> 1000) entonces
sum sum + num
finsi
hasta ( num = 1000)
Escribir (“Resultado de los números sumados =”, sum)
FIN
Ninguno de los dos algoritmos: sumar1 y sumar2 “procesa” el fin de datos, que es el valor 1000 para el dato centinela
num..
Actividades Propuestas
Desarrollar:
La estrategia solución correspondiente a cada uno de los siguientes enunciados.
El algoritmo en pseudocódigo.
S= 1/ 2N
2) Teniendo como datos dos valores enteros a y b, calcular y mostrar el producto de los mismos desarrollando un
algoritmo que calcule a dicho producto como una suma reiterada.
3) Teniendo como datos dos enteros a y b, calcular y mostrar el cociente entre ay b, con b distinto de cero como
una resta reiterada.
b
4) Teniendo como datos dos enteros a y b, calcular y mostrar a
5) Los datos son: un numero entero y la posición de un dígito del mismo (posicion1 :unidades, posición 2: decenas.
posición 3 centenas, etc, etc, etc. Mostrar el número y el digito que se encuentra en la posion ingresada. Proponer
un fin de datos.
ejemplo:
Numero= 10345 y posición = 4 el algoritmo deberá mostrar: 12345 - 0
6) Se llaman números amigos a aquellos números donde cada uno de ellos es igual a la suma de los divisores del
otro. Ingresar un valor entero N y mostrar todas las parejas de números amigos menores que N.
7) Ingresar un número entero N y su digito verificador. Calcular e informar si el número ingresado es correcto
calculando su digito verificador por medio del método MODULO 11.
8) Los datos son valores numéricos enteros. Calcular y mostrar los tres valores mayores ingresados.
10) Dadas las medidas de largo y alto de rectángulos, determinar si cada uno de ellos tiene relación áurica entre sus
medidas. Proponer fin de dato.
11