Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Valor en letra
A
B
C
F
Anlisis Previo
I.
Se debe solicitar la calificacin, la cual debe ser mayor o igual que cinco
y menor o igual que diez.
II.
Mediante una serie de subprocesos la calificacin ser filtrada para
determinar, por medio de redondeo, a que calificacin en forma de letra
corresponde el valor numrico. El argumento enviado a los subprocesos ser la
calificacin numrica y se esperar como variable de retorno el valor en letra.
III.
Diagrama de Flujo
II.
En primera instancia la calificacin ingresar al subprograma decision4 y
en ste se evaluar la misma para saber si es mayor o igual que 9.5, en caso
afirmativo la calificacin asignada ser A, en caso contrario mandar la
calificacin para que sea evaluada en decision3.
III.
En decision3 la calificacin ser evaluada para saber si es mayor o igual
que 7.5 y menor que 9.5 para asignar la calificacin B, si la condicin tampoco
se cumple mandar la calificacin par que sea evaluada en decision2 y as
sucesivamente.
IV.
Los subprocesos se llaman uno tras otro hasta que pueda ser retornado
un valor para la calificacin en letra.
Diagrama de Flujo
Resultados
Problema 2
Realice un algoritmo que permita calcular el monto a pagar en un
estacionamiento, considerando lo siguiente:
a)
b)
III.
IV.
si a pasado menos de una hora entonces mostrar el monto a pagar y el
tiempo transcurrido.
V.
Si no se necesita de un proceso que evalu tiempo y monto (f<evaluartiempoymonto (a,c,d,e,f) ) y el valor que regrese este proceso se
guardara como valor
VI.
Mostrar el valor
Diagrama de Flujo
IV.
Ejercicio 1.3
Desarrolle un algoritmo que dados 3 nmeros, determine cul es el mayor, el
menor y los muestre en orden ascendente y descendente.
Anlisis Previo
I.
Solicitar los tres nmeros.
II.
Llevar a cabo los subprocesos necesarios para determinar cul de ellos
es el mayor, cul el menor y cul el de en medio.
III.
Diagrama de Flujo
III.
IV.
III.
IV.
Ejercicio 4
Realizar un algoritmo que al ingresar 2 nmeros, permita al usuario sumarlos,
restarlos, dividirlos o multiplicarlos. Realice el ejercicio 1) utilizando estructuras
si, sino entonces y 2) utilizando una estructura segn.
Anlisis previo:
I.
Crear u men con las operaciones las cuales se puede realizar
II.
III.
Si el numero es igual a suma, se llamara un proceso que realice una
suma y retornara el valor
IV.
Si el numero corresponde a la resta de dos nmeros llamar un
subproceso que reste dos nmeros
V.
Si el valor ingresado es correspondiente a la multiplicacin entonces un
proceso diferente haga la multiplicacin y que lo regrese su valor final
VI.
Si es correspondiente a la resta entonces llamar un proceso que haga la
divisin y el resultado de l lo guarde
VII.
Diagrama de Flujo
III.
III.
II.
III.
Ejercicio 1.5
Construya un algoritmo que dados dos valores enteros, obtenga el resultado de
la siguiente funcin:
100a , b=1
a
resp= 100 ,b=2
100/a , b=3 -----------------(1)
Para cualquier otro valor de
0 ,x=3
b
Anlisis previo
I.
Se despliega el men que contenga las operaciones disponibles de
acuerdo con el valor de b.
II.
Se solicita el valor b.
III.
IV.
Se mandan los valores de a y b a un subproceso y se espera un
resultado de salida.
V.
Diagrama de Flujo
II.
Si b es igual a 1 ser una multiplicacin, si b es igual a 2 una
exponenciacin, si b es igual a 3 una divisin y de otro modo el valor retornado
ser cero.
IV.
Ejercicio 6
El nmero de sonidos emitidos por un grillo en un minuto, es una funcin de la
temperatura (ver eq. 2). Construya un algoritmo que permita calcular la
temperatura en grados centgrados C con base al nmero de sonidos emitidos
por un grillo.
S
FA= + 40
------------- (2)
4
Dnde:
FA = representa la temperatura en grados Fahrenheit.
S = nmero de sonidos emitidos por un grillo.
Anlisis previo:
I.
Pedir numero de de sonidos emitidos por un grillo en un minuto.
II.
Llamar un subproceso que realice la conversin de grados y la operacin
para sacar los grados segn los sonidos emitidos, el valor resultante guardarlo
III.
Ejercicio 2.1
Realice un algoritmo que al recibir como datos n nmeros enteros, obtenga la
suma de los nmeros pares y el promedio de los impares.
Anlisis Previo
I.
Mediante una estructura de repeticin Repetir se solicita una lista de
nmeros que deber terminar en un cero.
II.
Con esta lista de nmeros se realizarn dos sumatorias, una para los
pares y otra para los impares.
III.
Mediante un subproceso se calcular el promedio de los impares,
enviando como argumentos el nmero de datos y la sumatoria de los valores
de los mismos.
V.
Problema 2.2
1.
Anlisis previo:
I.
Pedir el nmero de tabla de multiplicar que se desea.
II.
Agregar un acumulador empezando desde uno que se incremente hasta
llegar a 10.
III.
IV.
V.
VI.
Ejercicio 2.3
Realice un algoritmo que dado un valor entero n positivo, muestre la siguiente
serie, n ser el nmero de elementos que se muestren de la serie.
Si n es 10, entonces se muestran 10 elementos: 2, 7, 10, 15, 18, 23, 26, 31, 34,
39.
Anlisis Previo
I.
Solicitar un entero positivo que corresponder con el nmero de
elementos de la serie.
II.
Mediante una estructura de control para, utilizar un subprograma para
calcular el valor de cada elemento de la serie e imprimirlo. Los argumentos del
subprograma son el valor anterior de la serie y el lugar que ocupa en la misma.
Diagrama de Flujo
III.
Problema 4
2.
Realice un algoritmo que al recibir un valor entero positivo, permita
calcular la sucesin de ULAM, el proceso termina cuando se llega a 1.
Sucesin de ULAM:
a)
b)
Si el inicial es par, dividirlo entre 2. Si es impar multiplicarlo por 3 e
incrementarlo en 1.
c)
Repetir el proceso anterior para obtener la sucesin de ULAM, hasta
llegar a 1.
Ejem:
Si el valor ingresado es 11, la sucesin es:
11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
Anlisis previo
I.
Pedir un nmero
II.
III.
IV.
V.
Subproceso v<-sucesin(2, v)
I.
Si el nmero es para dividirlo entre 2
II.
III.
Ejercicio 2.5
Realice un algoritmo que al recibir como dato el monto de una compra, obtenga
el pago total que un cliente debe realizar luego de aplicar un descuento, dada
la siguiente tabla.
Monto de la compra
Menor a 800 pesos
Entre 800 y 1500 pesos
Entre 1500 y 5000 pesos
Mayor a 5000 pesos
Descuento
0%
10%
20%
30%
Anlisis Previo
I.
Solicitar un monto de compra mayor a cero pesos.
II.
Mediante una serie de subprocesos el monto de compra ser filtrado
para determinar con que descuento corresponde. El argumento enviado a los
Diagrama de Flujo
II.
En primera instancia el monto ingresar al subproceso decision1 y en
ste se evaluar para saber si es menor o igual que 800, en caso afirmativo el
descuento asignado ser 0%, en caso contrario mandar la calificacin para
que sea evaluada en decision2.
III.
En decision2 la calificacin ser evaluada para saber si es menor o igual
que 1500 y mayor que 800 para asignar el descuento de 10%, si la condicin
tampoco se cumple mandar la calificacin par que sea evaluada en decision3
y as sucesivamente.
V.
Los subprocesos se llaman uno tras otro hasta que pueda ser retornado
un valor para el total a pagar.
Problema 6
3.
Desarrolle un algoritmo que dado un valor n entero positivo, determine si
es primo o no.
Nota: Se dice que un nmero es primo, si los nicos enteros positivos que lo
dividen son exactamente 1 y n.
Anlisis previo:
I.
Pedir un nmero
II.
III.
Si el numero de residuos 0 es mayor a 2 quiere decir que no es primo, y
si es igual a 2 o inclusive menor quiere decir que es primo
IV.
Subproceso
I.
Evaluar todos los nmeros antes del nmero dado incluyendo el 0
II.
Definir un incremento
III.
IV.
Evaluar si tiene un residuo la divisin del incremento entre el numero
original
V.
VI.
Ejercicio 2.7
Desarrolle un algoritmo que al recibir como dato un valor entero positivo,
escriba los nmeros perfectos que hay entre 1 y el valor dado. Adems que
muestre la cantidad de nmeros perfectos que hay en dicho intervalo.
Un nmero se considera perfecto si la suma de todos sus divisores es igual al
propio nmero, por ejemplo: 6, 28, 496, 8128.
Anlisis Previo
I.
Se solicita un entero positivo que se convertir en el lmite superior de un
proceso de bsqueda de nmeros perfectos desde 6 hasta el nmero dado.
II.
El nmero deber ser mayor que uno para que el procedimiento pueda
empezar y en caso de que sea menor que 6 se desplegar una leyenda que
indique que no existen nmeros perfectos anteriores a dicho valor.
III.
En caso de que el nmero sea igual o mayor que 6, se lleva a cabo un
ciclo en el que analizar mediante un subproceso cada nmero entero desde 6
hasta el valor introducido y determinar si son nmeros perfectos.
IV.
El argumento del subproceso ser el nmero que desea determinarse la
perfeccin y la variable de retorno ser un valor lgico, es decir, puede ser igual
a cero o a uno dependiendo de si el nmero cumple o no las condiciones
necesarias para ser perfecto.
V.
Finalmente para cada valor verdadero del subprocesos se imprimir el
resultado y se sumar una unidad a una variable contadora que determinar su
lugar en la sucesin de nmeros perfectos encontrados.
Diagrama de Flujo
Resultados
Problema 8
Anlisis previo
I.
Pedir que un proceso pida un numero y evalu si es mayor a 0 si no
volver a pedir el numero
II.
III.
IV.
Tendremos que dividir en dos partes una parte para la derecha y otra
para la izquierda
V.
VI.
VII.
VIII. En el incremento dos hacer que se imprima dos espacios hasta que el
incremento se igual al el numero original
IX.
Izquierda. Del incremento del primer para imprimir el incremento y esta
ves restar uno al incremento hasta que sea 0
Subproceso num<-imtroducirnumero(a)
I.
Pedimos un nmero
II.
III.
Ejercicio 1.1a
Realice un algoritmo que obtenga el factorial de un nmero. El factorial de un
nmero est determinada por la siguiente ecuacin.
Ejercicio 2.1a
Ejercicio 2.1a
Ejercicio 3.1a
Realice un algoritmo que obtenga la suma de dos nmeros enteros no
negativos. La suma de dos nmeros enteros no negativos est determinada por
la siguiente funcin.
suma ( a , b ) =
,b=0
{suma ( aa,b1
) +1,b>0
Anlisis previo
I.
II.
III.
IV.
V.
VI.
VII.
Mostrar el resultado
Diagrama de flujo
Resultados
Ejercicio 3.1b
Realice un algoritmo que obtenga la suma de dos nmeros enteros no
negativos. La suma de dos nmeros enteros no negativos est determinada por
la siguiente funcin.
suma ( a , b ) =
I.
II.
III.
IV.
,b=0
{suma ( aa,b1
) +1,b>0
V.
IX.
X.
Resultados
Ejercicio 4.1a
Realice un algoritmo que obtenga la multiplicacin de dos nmeros enteros positivos.
La multiplicacin de dos nmeros enteros no negativos est determinada por la
siguiente funcin.
mult ( a , b )=
{mult ( a ,0,b=0
b1 )+ a ,b >0
Anlisis Previo
1.
3.
Diagrama de flujo
Subproceso multiplicacin
Acum <- multiplicacin(a,b)
1.
3.
Ejercicio 4.1b
Realice un algoritmo que obtenga la multiplicacin de dos nmeros enteros positivos.
La multiplicacin de dos nmeros enteros no negativos est determinada por la
siguiente funcin.
mult ( a , b )=
{mult ( a ,0,b=0
b1 )+ a ,b >0
Anlisis Previo
Se solicitan los valores enteros positivos que se desean multiplicar.
1.
3.
Diagrama de flujo
Subproceso multiplicacin
Acum <- multiplicacin(a,b)
1.
2.
3.
1.
Ejercicio 5.1a
ab
la siguiente ecuacin.
pot ( a , b )=
{ pot ( a , 1,b=0
b1 )a ,b> 0
Anlisis previo
Se deben solicitar tanto el exponente como la base que se desean utilizar para la
potenciacin y estos deben ser enteros positivos.
1.
3.
Diagrama de Flujo
Subproceso exponenciacin
2.
3.
Ejercicio 5.1b
ab
la siguiente ecuacin.
pot ( a , b )=
{ pot ( a , 1,b=0
b1 )a ,b> 0
Anlisis previo
Se deben solicitar tanto el exponente como la base que se desean utilizar para
la potenciacin y estos deben ser enteros positivos.
4.
6.
Diagrama de Flujo
Subproceso exponenciacin
Acum <- exponenciacin(a,b)
1.
2.
3.
4.
Conclusin
Dentro de la programacin estructurada uno de las tcnicas ms ocupadas es
la denominada divide y vencers, la cual consiste en desmembrar un
programa complejo en pedazos ms fciles de entender. Otra de las ventajas
de esta tcnica consiste en que es capaz de disminuir el volumen del cdigo,
debido a que en lugar de duplicar innecesariamente secciones enteras del
mismo, slo es necesario invocar a un solo proceso cuantas veces sea
necesario.
En este caso, y con el fin de dar solucin a los problemas descritos en
secciones anteriores, se ha hecho uso de la tcnica divide y vencers; sin
embargo, se han obtenido resultados mixtos. Por una parte algunos algoritmos
parecieran ser ms eficientes al haberse creado un subproceso diseado para
llevar a cabo una tarea especfica, tal es el caso del que permite conocer una
lista de nmeros perfectos y cuyo subproceso consiste en determinar si un
nmero es perfecto. En el otro extremo existen procesos, como l que
mediante la introduccin de dos valores enteros permite realizar cierta
operacin aritmtica, los cuales se complican innecesariamente debido a la
aplicacin de dicha tcnica.
En estos problemas la mayora de ellos eran problemas que se resuelven
fcilmente, o tienen cierto grado de complejidad que permita mostrar un uso
adecuado y bien desarrollado de un sub proceso, claro que en algunos
problemas si se poda apreciar bien la implementacin de subprocesos. En
casos como el de la pirmide de nmeros no es conveniente usar un
subproceso y adentro del imprimir o mostrar algn resultado puesto que se
modifica el resultado final y no concuerda con lo que debera aparecer
Referencias
[1]
Ing. Jorge Eloy Toledo Coronel, Subprogramas [Online], Apuntes,
Facultad de Sistemas e Informtica, Instituto Tecnolgico del Istmo, Juchitn,
Oaxaca, 2012. Disponible en:
http://www.itistmo.edu.mx/jetc/Apuntes/UNIDAD_II.pdf
[2]
Mara Jos Abasolo, Subprogramas [Online], Gua de Referencia
Bsica, Departamento de Matemticas e Informtica, Universidad de las Islas
Baleares, Palma de Mallorca, 2003. Disponible en:
http://dmi.uib.es/~abasolo/foninf/2002-2003/capitulos/4-subprogramas.html
[3]
V. R. Gonzlez, El lenguaje de control, en Control y Robtica, Ed.
CFIE: Valladolid, 2005, pp. 55-70.