Agradecimientos Especiales a:
Jos de Jess Len Pereira
Ingeniero de Sistemas.
Elberto Carrillo Rincn
Ingeniero de Sistemas.
Ricardo Javier Pupo Monterrosa
Especialista en Pedagoga de la Lengua
No est permitida la reproduccin total o parcial de este libro, ni
su tratamiento informtico, ni la transmisin de ninguna forma
o por cualquier medio, ya sea electrnico, mecnico, por fotocopia,
por registro u otros mtodos, sin el permiso previo y por escrito
de los titulares del Copyright.
DERECHOS RESERVADOS. Copyright 2004,
Por Alexander Oviedo Fadul
Cont enido
INTRODUCCION ..................................................................... 7
CAPITULO I.
CONCEPTOS BSICOS Y METODOLOGA
PARA LA SOLUCIN DE PROBLEMAS POR MEDIO
DE COMPUTADORAS ............................................................... 9
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.7.1
1.7.2
1.7.3
1.7.4
1.7.5
1.7.6
1.7.7
CAPITULO II.
ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE
ALGORITMOS ....................................................................... 19
2.1
2.2
2.3
2.4
2.5
CAPITULO III.
TCNICAS DE DISEO ........................................................... 29
3.1
3.2
3.3
CAPITULO IV.
TCNICAS PARA LA FORMULACIN DE ALGORITMOS ................. 33
4.1
4.2
4.3
4.4
CAPITULO V.
ESTRUCTURAS ALGORITMICAS ............................................... 39
5.1
5.2
5.3
5.4
CAPITULO VI.
ARREGLOS ........................................................................... 71
6.1
6.2
6.3
CAPITULO VII.
MANEJO DE MDULOS ........................................................... 79
7.1
7.2
7.3
7.4
APENDICE ............................................................................ 83
BIBLIOGRAFIA ...................................................................... 85
PROYECTO CENTRO DE INVESTIGACION .................................. 87
Agr adecimient os
Gracias a t Dios por entregarle la victoria a tu pueblo sobre la
incredulidad del mundo actual. Por nuestra fe firme y activa,
conciliadora de la materia con el espritu.
A los miles de jvenes con espritu sobrenatural que armados
con fe y alegra, se enfrentan a la vida moderna, seguros de
descansar en el seor.
A la fuente del progreso humano, que es la felicidad de Dios y la
victoria sobre las miserias sociales.
Int r oduccin
Diseo Estructurado de Algoritmos tiene como propsito bsico
introducir al lector en el maravilloso mundo de la programacin.
Contiene aspectos tericos y tambin prcticos, estos por medio de
problemas, anlisis y solucin de los mismos.
Vale la pena aclarar que el libro utiliza un lenguaje sencillo, por cuanto
asistimos a una gran crisis de claridad, precisin y concisin en el uso
de nuestro idioma y en general en la redaccin de textos tcnicos.
La metodologa a travs de la cual se presenta los captulos es muy
clara, en donde hay una exposicin, explicacin y aplicacin para que
ustedes queridos amigos creen nuevos ejemplos en su entorno y puedan
cumplir con el objetivo propuesto en cada unidad. Cada unidad consta
de varios aspectos tericos que se desarrollan basndose en la solucin
de problemas a travs de varios mtodos.
En este texto hay una clara explosin, los ejercicios y las actividades
que se presentan lo hacen accesible y til para ustedes, quienes desean
adquirir una formacin en el mundo de la informtica.
Los textos se han seleccionado de acuerdo con palpitantes temas de la
informtica y con la representatividad de autores escogidos. Aqu
encuentran los alumnos el abecedario para el desarrollo de algoritmos,
adems, seguro les servir de material de apoyo a profesores y
catedrticos.
Con la temtica espero estimular la creatividad y la investigacin en
cada uno de ustedes.
Capt ulo I
CONCEPTOS BSICOS Y METODOLOGA
PARA LA SOLUCIN DE PROBLEMAS POR
MEDIO DE COMPUTADORAS.
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.7.1
1.7.2
1.7.3
1.7.4
1.7.5
1.7.6
1.7.7
Objetivos educacionales
Introduccin
De los problemas a los programas
Breves practicas de programacin
Definicin de lenguaje
Definicin de algoritmo
Algoritmos cotidianos
Definicin de lenguajes algortmicos
Metodologa para la solucin de
problemas por medio de computadora
Definicin del problema
Anlisis del problema
Diseo del algoritmo
Codificacin
Prueba y depuracin
Documentacin
Mantenimiento
10
Captulo I
Pr oceso
Dat os de
Salida
CPU
Unidad de
Cont r ol
Unidad
Ar it .- Log
Disposit ivos
de Ent r ada
Disposit ivos
de Salida
Memor ia
11
Captulo I
12
Captulo I
Lenguajes de Programacin
Es un conjunto de smbolos, caracteres y reglas (programas) que le permiten a las
personas comunicarse con la computadora.
Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten
realizar operaciones de entrada/salida, calculo, manipulacin de textos, lgica/
comparacin y almacenamiento/recuperacin.
Los lenguajes de programacin se clasifican en:
Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente
entendibles por la computadora y no necesitan traduccin posterior para que la CPU
pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina
se expresan en trminos de la unidad de memoria mas pequea el bit (dgito binario
0 o 1).
Como ejemplo, observe la siguiente instruccin escrita en lenguaje mquina: 1001
1111 1011 1101
Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se
escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones
y direcciones simblicas.
Como ejemplo, observe las siguientes instrucciones escritas en el lenguaje
ensamblador:
MOV AX, A
ADD AX, B
MOV C, AX
13
Captulo I
Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel son aquellos
en los que las instrucciones o sentencias a la computadora son escritas con palabras
(en general en ingles), lo que facilita la escritura y comprensin del programa.
Existen muchos lenguajes de alto nivel entre los que se pueden mencionar los
siguientes: C, C++, Java, Pascal, Eiffel, Clipper, Ada, Smalltalk, Visual Basic, etc.
Al programa escrito en un lenguaje de programacin de alto nivel se conoce como
cdigo fuente o programa fuente. Por ejemplo, aqu esta el cdigo fuente completo
de un programa simple escrito en Java:
import java.io.*;
public class Bienvenida
{
public static void main( String args[] ) throws IOException
{
System.print.out( Bienvenido a Java );
}
}
14
Captulo I
15
Captulo I
1.7.4 Codificacin
La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la
lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas,
en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se
le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o
lenguaje de alto nivel.
1.7.6 Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados,
procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello la
documentacin sirve para ayudar a comprender o usar un programa o para facilitar
futuras modificaciones (mantenimiento).
La documentacin se divide en tres partes:
Documentacin Interna
Documentacin Externa
Manual del Usuario
16
Captulo I
Conceptos Bsicos y Metodologa para la solucin
de problemas por medio de computadoras
Manual del Usuario: Describe paso a paso la manera como funciona el programa,
con el fin de que el usuario obtenga el resultado deseado.
1.7.7 Mantenimiento
Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario
hacer algn cambio, ajuste o complementacin al programa para que siga trabajando
de manera correcta. Para poder realizar este trabajo se requiere que el programa
este correctamente documentado.
17
18
Capt ulo II
ENTIDADES PRIMITIVAS
PARA EL DESARROLLO DE
ALGORITMOS
2.1
2.1
2.2
2.3
2.4
Objetivo educacional
Tipos de datos
Expresiones
Operadores y operandos
Identificadores como localidades
de memoria
Nuestra fe es nuestra certeza, es nuestra base; es nuestra luz, nuestro consuelo, nuestra esperanza; ser maana nuestra felicidad. . .
Nuestra fe es la vida; es la belleza, la fuerza y la luz; es la libertad, el progreso:
es todo lo que puede desear
(PAULO VI, 8-IX-1963)
19
Captulo I
20
Captulo II
Numricos
Lgicos
Alfanumricos (string)
Simples
Tipos de
datos
Estructurados
(Def. por el
usuario)
2.3 EXPRESIONES
Las expresiones son combinaciones de constantes, variables, smbolos de operacin,
parntesis y nombres de funciones especiales.
21
Captulo II
Por ejemplo:
a+(b + 3)/c
Cada expresin toma un valor que se determina tomando los valores de las variables
y constantes implicadas y la ejecucin de las operaciones indicadas.
Una expresin consta de operadores y operandos. Segn sea el tipo de datos que
manipulan, se clasifican las expresiones en:
Aritmticas
Relacionales
Lgicas
Tipos de Operadores
Aritmticos
Relacinales
Lgicos
22
Captulo II
Ejemplos:
Expresin
7/2
12 mod 7
4 +2*5
Resultado
3.5
5
14
^ (Exponenciacin)
*, /, Mod (Multiplicacin, divisin, modulo).
+, - (Suma y resta).
Los operadores en una misma expresin con igual nivel de prioridad se evalan de
izquierda a derecha.
Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
3.5 + 5.09 - 14.0 / 40 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98
4 + 10 = 14
46 / 5 = 9.2
3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98
Operadores Relacionales:
Se utilizan para establecer una relacin entre dos valores. Compara estos valores
entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero
o falso).
Los operadores relacinales comparan valores del mismo tipo (numricos o
cadenas). Tienen el mismo nivel de prioridad en su evaluacin.
Los operadores relacinales tiene menor prioridad que los aritmticos.
Operadores Relacionales
>
Mayor que
<
Menor que
> = Mayor o igual que
< = Menor o igual que
< > Diferente
=
Igual
23
Captulo II
Ejemplos:
Si a = 10
a
a
a
a
b = 20
+b>c
-b<c
-b=c
*b<>c
c = 30
Falso
Verdadero
Falso
Verdadero
Ejemplo no lgico:
T
< 30
Operadores Lgicos:
Estos operadores se utilizan para establecer relaciones entre valores lgicos.
Estos valores pueden ser resultado de una expresin relacional.
Operadores Lgicos
And
Y
Or
O
Not
Negacin
Operando1
T
T
F
F
Operador And
Operador
Operando2
AND
T
F
F
T
F
F
F
Operando1
T
T
F
F
Operador Or
Operador
Operando2
OR
T
F
T
F
Operador Not
Operando
Resultado
T
F
F
T
24
Resultado
T
Resultado
T
T
T
F
Captulo II
Ejemplos:
(a < b) and (b < c)
(10<20) and (20<30)
T
and
T
T
Ejemplos:
a = 10
b = 12
c = 13
d =10
1)
2)
3)
25
Captulo II
2.5 IDENTIFICADORES
Los identificadores representan los datos de un programa (constantes, variables,
tipos de datos). Un identificador es una secuencia de caracteres que sirve para
identificar una posicin en la memoria de la computadora, que nos permite accesar
a su contenido.
Ejemplo:
Nombre
Num_hrs
Calif2
Constantes y Variables
Por su Contenido
Numricas
Lgicas
Alfanumricas (String)
Por su Uso
De Trabajo
Contadores
Acumuladores
Variables
26
Captulo II
Por su Contenido
pi=3.1416
costo=2500
Variables Lgicas: Son aquellas que solo pueden tener dos valores (cierto o
falso) estos representan el resultado de una comparacin entre otros datos.
Por su Uso
Acumuladores: Forma que toma una variable y que sirve para llevar la suma
acumulativa de una serie de valores que se van leyendo o calculando
progresivamente.
27
28
29
30
Captulo III
Tcnicas del Diseo
3.3 BOTTOM UP
El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan
computarizarse con forme vayan apareciendo, su anlisis como sistema y su
codificacin, o bien, la adquisicin de paquetes de software para satisfacer el problema
inmediato.
Cuando la programacin se realiza internamente y haciendo un enfoque ascendente,
es difcil llegar a integrar los subsistemas al grado tal de que el desempeo global,
sea fluido. Los problemas de integracin entre los subsistemas son sumamente
costosos y muchos de ellos no se solucionan hasta que la programacin alcanza la
fecha limite para la integracin total del sistema. En esta fecha, ya se cuenta con
muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir
aquellas delicadas interfaces, que en un principio, se ignoran.
Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al
sistema como una entidad global, adolece de ciertas limitaciones por haber tomado
un enfoque ascendente. Uno de ellos es la duplicacin de esfuerzos para accesar el
software y mas aun al introducir los datos. Otro es, que se introducen al sistema
muchos datos carentes de valor. Un tercero y tal vez el mas serio inconveniente del
enfoque ascendente, es que los objetivos globales de la organizacin no fueron
considerados y en consecuencia no se satisfacen.
31
32
TECNICAS PARA LA
FORMULACION DE ALGORITMOS
4.1
4.2
4.3
4.4
Objetivo educacional
Diagrama de flujo
Pseudocdigo
Diagrama estructurado
(nassi-schneiderman)
33
34
Captulo IV
TECNICAS PARA LA
FORMULACION DE ALGORITMOS
Las dos herramientas utilizadas comnmente para disear algoritmos son:
Diagrama de Flujo
Pseudocdigo
4.2 DIAGRAMA DE FLUJO
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se
puede decir que es la representacin detallada en forma grfica de como deben
realizarse los pasos en la computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican diferentes
procesos en la computadora), se relacionan entre si mediante lneas que indican el
orden en que se deben ejecutar los procesos.
Los smbolos utilizados han sido normalizados por el instituto norteamericano de
normalizacin (ANSI).
SMBOLO
DESCRIPCIN
35
Captulo IV
SMBOLO
DESCRIPCIN
Conector dentro de pagina. Representa la continuidad
del diagrama dentro de la misma pagina.
4.3 PSEUDOCDIGO
Mezcla de programacin y lenguaje (espaol, ingles o cualquier otro idioma) que se
emplea dentro de la programacin estructurada, para realizar el diseo de un
programa. En esencia, el pseudocdigo se puede definir como un lenguaje de
especificaciones de algoritmos.
Es la representacin de los pasos que debe seguir un algoritmo para dar solucin a
un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a
realizar.
Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo
36
Captulo IV
Tcnicas para la formulacin de Algoritmos
Inicio
Leer
Nombre,Hrs,Precio
Calcular
Salario = Hrs * Precio
Calcular
Imp = Salario* 0.15
Calcular
Neto = Salario + Imp
Escribir
Nombre, Imp, SNeto
Fin
37
38
ESTRUCTURAS ALGORITMICAS
5.1 Objetivo educacional
5.2 Secuenciales
Asignacin
Entrada
Salida
5.3 Condicionales
Simples
Mltiples
5.4 Repeticin fila condicional
39
40
Captulo V
Estructuras Algortmicas
ESTRUCTURAS ALGORITMICAS
Las estructuras de operacin de programas son un grupo de formas de trabajo, que
permiten, mediante la manipulacin de variables, realizar ciertos procesos especficos
que nos lleven a la solucin de problemas. Estas estructuras se clasifican de acuerdo
con su complejidad en:
Secuenciales
- Asignacin
- Entrada
- Salida
- Simples
Estructuras
Algortmicas
Condicionales
- Mltiples
Cclicas
- Hacer para
- Hacer mientras
- Repetir hasta
41
Captulo V
Estructuras Algortmicas
Problemas Secuenciales
1) Suponga que un individuo desea invertir su capital en un banco y desea saber
cuanto dinero ganara despus de un mes si el banco paga a razn de 2% mensual.
Inicio
Leer cap_inv
gan = cap_inv * 0.02
Imprimir gan
Fin
2) Un vendedor recibe un sueldo base mas un 10% extra por comisin de sus
ventas, el vendedor desea saber cuanto dinero obtendr por concepto de
comisiones por las tres ventas que realiza en el mes y el total que recibir en el
mes tomando en cuenta su sueldo base y comisiones.
Inicio
Leer sb, v1, v2, v3
tot_vta = v1 + v2 + v3
com = tot_vta * 0.10
tpag = sb + com
Imprimir tpag, com
Fin
42
Captulo V
Estructuras Algortmicas
3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuanto deber pagar finalmente por su compra.
Inicio
Leer tc
d = tc * 0.15
tp = tc - d
Imprimir tp
Fin
4) Un alumno desea saber cual ser su calificacin final en la materia de Algoritmos.
Dicha calificacin se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificacin del examen final.
15% de la calificacin de un trabajo final.
Inicio
Leer c1, c2, c3, ef, tf
prom = (c1 + c2 + c3)/3
ppar = prom * 0.55
pef = ef * 0.30
ptf = tf * 0.15
cf = ppar + pef + ptf
Imprimir cf
Fin
43
Captulo V
Estructuras Algortmicas
Problemas Propuestos
.
44
Captulo V
Estructuras Algortmicas
Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones
o alternativas posibles en funcin del cumplimiento o no de una determinada
condicin. Se representa de la siguiente forma:
Si <condicin> entonces
Accin(es)
si no
Accin(es)
Fin-si
Donde:
Si .................
Condicin ......
entonces .......
accin(es) .....
si no .............
45
Captulo V
Estructuras Algortmicas
Forma General
Casos Variable
Op1: Accin(es)
Op2: Accin(es)
.
.
OpN: accin
Fin-casos
Problemas Condicionales
a) Problemas Selectivos Simples
1) Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre
la cantidad que tiene en inversin en el banco. El decidir reinvertir los intereses
siempre y cuando estos excedan a $7000, y en ese caso desea saber cuanto
dinero tendr finalmente en su cuenta.
Inicio
Leer p_int, cap
int = cap * p_int
si int > 7000 entonces
capf = cap + int
fin-si
Imprimir capf
Fin
46
Captulo V
Estructuras Algortmicas
47
Captulo V
Estructuras Algortmicas
48
Captulo V
Estructuras Algortmicas
Inicio
Leer nomb, cve, prec_orig
Si cve = 01 entonces
prec_desc = prec_orig - prec_orig * 0.10
si no
prec_desc = prec_orig - prec_orig * 0.20
fin-si
Imprimir nomb, cve, prec_orig, prec_desc
Fin
9) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se
compran tres camisas o mas se aplica un descuento del 20% sobre el total de
la compra y si son menos de tres camisas un descuento del 10%
Inicio
Leer num_camisas, prec
tot_comp = num_camisas * prec
Si num_camisas > = 3 entonces
tot_pag = tot_comp - tot_comp * 0.20
si no
tot_pag = tot_comp - tot_comp * 0.10
fin-si
Imprimir tot_pag
Fin
10) Una empresa quiere hacer una compra de varias piezas de la misma clase a una
fabrica de refacciones. La empresa, dependiendo del monto total de la compra,
decidir que hacer para pagar al fabricante.
Si el monto total de la compra excede de $500 000 la empresa tendr la capacidad
de invertir de su propio dinero un 55% del monto de la compra, pedir prestado
al banco un 30% y el resto lo pagara solicitando un crdito al fabricante.
Si el monto total de la compra no excede de $500 000 la empresa tendr
capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara
solicitando crdito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se
le pague a crdito.
Inicio
Leer costopza, numpza
totcomp = costopza * numpza
Si totcomp > 500 000 entonces
cantinv = totcomp * 0.55
prstamo = totcomp * 0.30
49
Captulo V
Estructuras Algortmicas
Problemas Propuestos
1) Calcular el total que una persona debe pagar en una llantera, si el precio de
cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran
5 o mas.
2) En un supermercado se hace una promocin, mediante la cual el cliente obtiene
un descuento dependiendo de un nmero que se escoge al azar. Si el numero
escogido es menor que 74 el descuento es del 15% sobre el total de la compra,
si es mayor o igual a 74 el descuento es del 20%. Obtener cuanto dinero se le
descuenta.
3) Calcular el nmero de pulsaciones
segundos de ejercicio aerbico; la
femenino es:
num. pulsaciones = (220 y si el sexo es masculino:
num. pulsaciones = (210 -
50
Captulo V
Estructuras Algortmicas
6) Una empresa de bienes races ofrece casas de inters social, bajo las siguientes
condiciones: Si los ingresos del comprador son menores de $8000 o mas el
enganche ser del 15% del costo de la casa y el resto se distribuir en pagos
mensuales, a pagar en diez aos. Si los ingresos del comprador son menos de
$8000 o mas el enganche ser del 30% del costo de la casa y el resto se
distribuir en pagos mensuales a pagar en 7 aos.
La empresa quiere obtener cuanto debe pagar un comprador por concepto de
enganche y cuanto por cada pago parcial.
7) El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro)
que consiste en que los dueos de la empresa deben obligatoriamente depositar
en una cuenta bancaria un porcentaje del salario de los trabajadores;
adicionalmente los trabajadores pueden solicitar a la empresa que deposite
directamente una cuota fija o un porcentaje de su salario en la cuenta del SAR,
la cual le ser descontada de su pago.
Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la
cantidad total de dinero que estar depositado a esa cuenta cada mes, y el
pago mensual que recibir.
8) Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto dinero
le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria, pero no
quiere disponer de ella a menos que el monto por hipotecar su casa sea muy
pequeo. Si el monto de la hipoteca es menor que $1 000 000 entonces invertir
el 50% de la inversin total y un socio invertir el otro 50%. Si el monto de la
hipoteca es de $ 1 000 000 o mas, entonces invertir el monto total de la
hipoteca y el resto del dinero que se necesite para cubrir la inversin total se
repartir a partes iguales entre el socio y el.
9) El gobierno del estado Colombiano desea reforestar un bosque que mide
determinado numero de hectreas. Si la superficie del terreno excede a 1 milln
de metros cuadrados, entonces decidir sembrar de la sig. manera:
Porcentaje de la superficie del bosque
70%
20%
10%
Tipo de rbol
pino
oyamel
cedro
Tipo de rbol
pino
oyamel
cedro
51
Captulo V
Estructuras Algortmicas
El gobierno desea saber el numero de pinos, oyameles y cedros que tendr que
sembrar en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en
15 metros cuadrados caben 15 oyameles y en 18 metros cuadrados caben 10
cedros. Tambin se sabe que una hectrea equivale a 10 mil metros cuadrados.
10) Una fbrica ha sido sometida a un programa de control de contaminacin para
lo cual se efecta una revisin de los puntos IMECA generados por la fbrica. El
programa de control de contaminacin consiste en medir los puntos IMECA que
emite la fabrica en cinco das de una semana y si el promedio es superior a los
170 puntos entonces tendr la sancin de parar su produccin por una semana
y una multa del 50% de las ganancias diarias cuando no se detiene la produccin.
Si el promedio obtenido de puntos IMECA es de 170 o menor entonces no
tendr ni sancin ni multa. El dueo de la fbrica desea saber cuanto dinero
perder despus de ser sometido a la revisin.
11) Una persona se encuentra con un problema de comprar un automvil o un
terreno, los cuales cuestan exactamente lo mismo. Sabe que mientras el
automvil se devala, con el terreno sucede lo contrario. Esta persona comprara
el automvil si al cabo de tres aos la devaluacin de este no es mayor que la
mitad del incremento del valor del terreno. Aydale a esta persona a determinar
si debe o no comprar el automvil.
52
Captulo V
Estructuras Algortmicas
mayor = num1
si no
Si (num2 > num1) and (num2 > num3) entonces
mayor = num2
si no
mayor = num3
fin-si
fin-si
Imprimir mayor
Fin
3) Determinar la cantidad de dinero que recibir un trabajador por concepto de las
horas extras trabajadas en una empresa, sabiendo que cuando las horas de
trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan
al doble de una hora normal cuando no exceden de 8; si las horas extras exceden
de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y
el resto al triple.
Inicio
Leer ht, pph
Si ht < = 40 entonces
tp = ht * pph
si no
he = ht - 40
Si he < = 8 entonces
pe = he * pph * 2
si no
pd = 8 * pph * 2
pt = (he - 8) * pph * 3
pe = pd + pt
fin-si
tp = 40 * pph + pe
fin-si
Imprimir tp
Fin
4) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si
este se le asigna como un porcentaje de su salario mensual que depende de su
antigedad en la empresa de acuerdo con la sig. tabla:
Tiempo
Menos de 1 ao
1 ao o mas y menos de 2 aos
2 aos o mas y menos de 5 aos
5 aos o mas y menos de 10 aos
10 aos o mas
Utilidad
5 % del salario
7% del salario
10% del salario
15% del salario
20% del salario
53
Captulo V
Estructuras Algortmicas
Inicio
Leer sm, antig
Si antig < 1 entonces
util = sm * 0.05
si no
Si (antig > = 1) and (antig < 2) entonces
util = sm * 0.07
si no
Si (antig > = 2) and (antig < 5) entonces
util = sm * 0.10
si no
Si (antig > = 5) and (antig < 10) entonces
util = sm * 0.15
si no
util = sm * 0.20
fin-si
fin-si
fin-si
fin-si
Imprimir util
Fin
5) En una tienda de descuento se efecta una promocin en la cual se hace un
descuento sobre el valor de la compra total segn el color de la bolita que el
cliente saque al pagar en caja. Si la bolita es de color blanco no se le har
descuento alguno, si es verde se le har un 10% de descuento, si es amarilla un
25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que
el cliente deber pagar por su compra. se sabe que solo hay bolitas de los
colores mencionados.
Inicio
leer tc, b$
si b$ = blanca entonces
d=0
si no
si b$ = verde entonces
d=tc*0.10
si no
si b$ = amarilla entonces
d=tc*0.25
si no
si b$ = azul entonces
d=tc*0.50
si no
d=tc
fin-si
fin-si
54
Captulo V
Estructuras Algortmicas
fin-si
fin-si
Fin
6) El IMSS requiere clasificar a las personas que se jubilaran en el ao de 1997.
Existen tres tipos de jubilaciones: por edad, por antigedad joven y por
antigedad adulta. Las personas adscritas a la jubilacin por edad deben tener
60 aos o mas y una antigedad en su empleo de menos de 25 aos. Las
personas adscritas a la jubilacin por antigedad joven deben tener menos de
60 aos y una antigedad en su empleo de 25 aos o mas.
Las personas adscritas a la jubilacin por antigedad adulta deben tener 60
aos o mas y una antigedad en su empleo de 25 aos o mas.
Determinar en que tipo de jubilacin, quedara adscrita una persona.
Inicio
leer edad,ant
si edad >= 60 and ant < 25 entonces
imprimir la jubilacin es por edad
si no
si edad >= 60 and ant > 25 entonces
imprimir la jubilacin es por edad adulta
si no
si edad < 60 and ant > 25 entonces
imprimir la jubilacin es por antigedad joven
si no
imprimir no tiene por que jubilarse
fin-si
fin-si
fin-si
Fin
Problemas Propuestos
1) En una fabrica de computadoras se planea ofrecer a los clientes un descuento
que depender del numero de computadoras que compre. Si las computadoras
son menos de cinco se les dar un 10% de descuento sobre el total de la
compra; si el nmero de computadoras es mayor o igual a cinco pero menos de
diez se le otorga un 20% de descuento; y si son 10 o mas se les da un 40% de
descuento. El precio de cada computadora es de $11,000
2) En una llantera se ha establecido una promocin de las llantas marca
Ponchadas, dicha promocin consiste en lo siguiente:
Si se compran menos de cinco llantas el precio es de $300 cada una, de $250 si
se compran de cinco a 10 y de $200 si se compran ms de 10.
55
Captulo V
Estructuras Algortmicas
Obtener la cantidad de dinero que una persona tiene que pagar por cada una de
las llantas que compra y la que tiene que pagar por el total de la compra.
3) En un juego de preguntas a las que se responde Si o No gana quien responda
correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya
no se pregunta la siguiente y termina el juego. Las preguntas son:
1. Colon descubri Amrica?
2. La independencia de Colombia fue en el ao 1810?
3. The Doors fue un grupo de rock Americano?
4) Un proveedor de estreos ofrece un descuento del 10% sobre el precio sin IVA,
de algn aparato si este cuesta $2000 o mas. Adems, independientemente de
esto, ofrece un 5% de descuento si la marca es NOSY. Determinar cuanto
pagara, con IVA incluido, un cliente cualquiera por la compra de su aparato.
5) Una frutera ofrece las manzanas con descuento segn la siguiente tabla:
NUM. DE KILOS COMPRADOS
% DESCUENTO
0
- 2
0%
2.01 - 5
10%
5.01 - 10
15%
10.01 en adelante
20%
Determinar cuanto pagara una persona que compre manzanas es esa frutera.
6) El dueo de una empresa desea planificar las decisiones financieras que tomara
en el siguiente ao. La manera de planificarlas depende de lo siguiente:
Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo
bancario para que su nuevo saldo sea de $10 000. Si su capital tiene actualmente
un saldo positivo pedir un prstamo bancario para tener un nuevo saldo de
$20 000, pero si su capital tiene actualmente un saldo superior a los $20 000 no
pedir ningn prstamo.
Posteriormente repartir su presupuesto de la siguiente manera.
$5 000 para equipo de computo
$2 000 para mobiliario
y el resto la mitad ser para la compra de insumos y la otra para otorgar incentivos
al personal.
Desplegar que cantidades se destinaran para la compra de insumos e incentivos
al personal y, en caso de que fuera necesario, a cuanto ascendera la cantidad
que se pedira al banco.
7) Tomando como base los resultados obtenidos en un laboratorio de anlisis clnicos,
un medico determina si una persona tiene anemia o no, lo cual depende de su
nivel de hemoglobina en la sangre, de su edad y de su sexo. Si el nivel de
hemoglobina que tiene una persona es menor que el rango que le corresponde,
se determina su resultado como positivo y en caso contrario como negativo. La
tabla en la que el medico se basa para obtener el resultado es la siguiente:
56
Captulo V
Estructuras Algortmicas
EDAD
0 - 1 mes
> 1 y < = 6 meses
> 6 y < = 12 meses
> 1 y < = 5 aos
> 5 y < = 10 aos
> 10 y < = 15 aos
mujeres > 15 aos
hombres > 15 aos
NIVEL HEMOGLOBINA
13 - 26 g%
10 - 18 g%
11 - 15 g%
11.5 - 15 g%
12.6 - 15.5 g%
13 - 15.5 g%
12 - 16 g%
14 - 18 g%
57
Captulo V
Estructuras Algortmicas
Donde:
V.C
L.I
L.S
VC=LI
vc=vc+1
Vc= LS
F
Cuerpo del ciclo
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite
hasta que la variable de control llegue al limite superior.
58
Captulo V
Estructuras Algortmicas
2)
59
Captulo V
Estructuras Algortmicas
60
Captulo V
Estructuras Algortmicas
Fin-para
Fin-para
Fin-para
Fin
Problemas Propuestos
1) Una persona debe realizar un muestreo con 50 personas para determinar el
promedio de peso de los nios, jvenes, adultos y viejos que existen en su zona
habitacional. Se determinan las categoras con base en la sig, tabla:
CATEGORIA
EDAD
Nios
0 - 12
Jvenes
13 - 29
Adultos
30 - 59
Viejos
60 en adelante
2) Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirn
un 15% de descuento si compran ms de 10 kilos. Determinar cuanto pagara
cada cliente y cuanto percibir la tienda por esas compras.
3) En un centro de verificacin de automviles se desea saber el promedio de
puntos contaminantes de los primeros 25 automviles que lleguen. Asimismo
se desea saber los puntos contaminantes del carro que menos contamino y del
que mas contamino.
4) Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilmetros
durante 10 das, para determinar si es apto para la prueba de 5 Kilmetros o
debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos
una de las siguientes condiciones:
Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos.
Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos.
Que su promedio de tiempos sea menor o igual a 15 minutos.
5) Un Zologo pretende determinar el porcentaje de animales que hay en las
siguientes tres categoras de edades: de 0 a 1 ao, de ms de 1 ao y menos de
3 y de 3 o ms aos. El zoolgico todava no esta seguro del animal que va a
estudiar. Si se decide por elefantes solo tomara una muestra de 20 de ellos; si
se decide por las jirafas, tomara 15 muestras, y si son chimpancs tomara 40.
61
Captulo V
Estructuras Algortmicas
Condicin
NO
SI
Cuerpo del ciclo
62
Captulo V
Estructuras Algortmicas
DGITO
1o2
3o4
5o6
7o8
9o0
COLOR
amarilla
rosa
roja
verde
azul
63
Captulo V
Estructuras Algortmicas
Condicin SI
NO
Hasta <condicin>
Categora
Categora
Categora
Categora
Categora
64
1
2
3
4
5
Edad
5 - 14
15 - 19
20 - 45
46 - 65
66 en adelante
Descuento
35 %
25 %
10 %
25 %
35 %
Captulo V
Estructuras Algortmicas
Problemas Propuestos
1) La presin, volumen y temperatura de una masa de aire se relacionan por la
formula:
masa =
__ presin * volumen
.
0.37 * (temperatura + 460)
Calcular el promedio de masa de aire de los neumticos de n vehculos que
estn en compostura en un servicio de alineacin y balanceo. Los vehculos
pueden ser motocicletas o automviles.
2) Determinar la cantidad semanal de dinero que recibir cada uno de los n obreros
de una empresa. Se sabe que cuando las horas que trabajo un obrero exceden
de 40, el resto se convierte en horas extras que se pagan al doble de una hora
normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se
pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto
al triple.
3) En una granja se requiere saber alguna informacin para determinar el precio
de venta por cada kilo de huevo. Es importante determinar el promedio de
calidad de las n gallinas que hay en la granja. La calidad de cada gallina se
obtiene segn la formula:
Calidad = peso de la gallina * altura de la gallina
Numero de huevos que pone
Finalmente para fijar el precio del kilo de huevo, se toma como base la siguiente
tabla:
PRECIO TOTAL DE CALIDAD
mayor o igual que 15
mayor que 8 y menor que 15
menor o igual que 8
65
Captulo V
Estructuras Algortmicas
8)
9)
66
Captulo V
Estructuras Algortmicas
67
Captulo V
Estructuras Algortmicas
8.- Un jeep puede viajar 500 km con un tanque lleno de gasolina. Desde una
posicin inicial, conteniendo n tanques de gasolina el mismo jeep puede viajar:
L = 500 ( 1 + 1/3 + 1/5 + ...+ 1 / (2n -1) ) km
Estableciendo economa de combustible en una ruta. Disee un pseudocdigo
que calcule el valor de L dado n .
9.- Se ofrece un trabajo que pague un centavo en la primera semana, pero dobla
su salario cada semana, es decir, $.01 la primera semana; $.02 la segunda
semana; $0.4 la tercera semana; ... etc. Hasta $(2n-1)/100 la n- sima. Disear
el pseudocdigo que determine ( y escriba ) el salario por cada semana y el
salario pagado hasta la fecha por espacio de 50 semanas.
10.- Disee un pseudocdigo que calcule e imprima el pago de 102 trabajadores
que laboran en la Ca. GACMAN. Los datos que se leern sern los siguientes:
a) Las horas trabajadas
b) El sueldo por hora
c) El tipo de trabajador (1.-obrero,2.-empleado)
Para calcular los pagos considerar lo siguiente:
- Los obreros pagan 10 % de impuesto
- Los empleados pagan 10 % de impuesto.
- Los trabajadores (obreros y empleados) que reciban un pago menor de 100,000
pesos no pagan impuesto.
-Al final se deber imprimir el total a pagar a los trabajadores y a los empleados.
11.- Disear un pseudocdigo que convierta un nmero del sistema decimal a :
a) sistema binario b)sistema octal c)sistema hexadecimal. Segn se elija.
12.- Un objeto es dejado caer a una altura de 100 mts. Disee un pseudocdigo que
imprima cada dcima de segundo la distancia entre el objeto y el suelo y al final
imprima el tiempo necesario en dcimas de segundo para que el objeto toque
el suelo.
13.- La Ca. Automovilstica Sincelejana, S.A. de C.V premia anualmente a sus
mejores vendedores de acuerdo a la siguiente tabla:
Si vendi
Comisin
sobre ventas totales
1,000,000 <= v < 3,000,000
3%
3,000,000 <= v < 5,000,000
4%
5,000,000 <= v < 7,000,000
5%
7,000,000 <= v
6%
Disear un pseudocdigo que lea las ventas de 100 vendedores y que escriba la
comisin anual que le corresponda a cada vendedor. Suponer que nadie vende
ms de 10,000,000 al ao.
68
Captulo V
Estructuras Algortmicas
En donde:
S = Da de la semana, 1 a 7 ( 1 = lunes; 2 = martes; etc..);
DD = Da del mes, 1 a 30 31, segn el mes. Fijar el mes de febrero con 28
das;
AA = Dos ltimas cifras del ao.
15.- Un grupo de 100 estudiantes presentan un examen de Fsica. Disee un diagrama
que lea por cada estudiante la calificacin obtenida y calcule e imprima:
A.- La cantidad de estudiantes que obtuvieron una calificacin menor a 50.
B.- La cantidad de estudiantes que obtuvieron una calificacin de 50 o ms
pero menor que 80.
C.- La cantidad de estudiantes que obtuvieron una calificacin de 70 o ms
pero menor que 80.
D. La cantidad de estudiantes que obtuvieron una calificacin de 80 o ms.
16.- Un avin que viaja 800 Km/hr. Dispara un proyectil autoimpulsado, en el
momento del disparo, el avin hace un giro de 90 0 y acelera a 20 mtrs/seg2. El
proyectil sigue su curso, acelerando a 10 mtrs./seg2.
Disee un pseudocdigo que escriba cada segundo, la distancia que separa al
avin del proyectil, hasta que estn a 10,000 mtrs. o ms.
17.- Una pizzera, vende sus pizzas en tres tamaos:
pequea (10 pulg. De dimetro); mediana (12 pulg. De dimetro); y grandes
(16 pulg. De dimetro); Una pizza puede ser sencilla (con slo salsa y carne),
o con ingredientes extras, tales como pepinillos, championes o cebollas.
Los propietarios desean desarrollar un programa que calcule el precio de venta
de una pizza, dndole el tamao y el nmero de ingredientes extras. El precio
de venta ser 1.5 veces el costo total, que viene determinado por el rea de la
pizza, mas el numero de ingredientes.
En particular el costo total se calcula sumando:
- un costo fijo de preparacin
- un costo base variable que es proporcional al tamao de la pizza
- un costo adicional por cada ingrediente extra. Por simplicidad se supone que
cada ingrediente extra tiene el mismo costo por unidad de rea.
18.- Disear un pseudocdigo que calcule el promedio ponderado para alumno del
ITT . El calculo se hace de la siguiente forma:
- Se multiplica cada calificacin por los crditos de cada materia
- El resultado anterior se suma con los resultados de todas las materias, por
separado se suman los crditos de cada materia y finalmente se divide la suma
de todas las materias por sus respectivos crditos, entre la suma de todos los
crditos.
19.- Calcule la suma de los trminos de la serie FIBONACCI cuyos valores se
encuentran entre 100 y 10,000.
20.- Calcule exactamente el nmero de das vividos por una persona hasta la fecha.
Contemplar los aos bisiestos.
69
70
ARREGLOS
6.1
6.2
6.3
6.4
Objetivo educacional
Vectores
Matrices
Manejo de cadenas de caracteres
Qu felices son los que creen! Los jvenes que fcilmente pierden
la fe, no saben cuntas angustias y sacrificios cuesta volver a
recuperarla! As exclamaba Paul CLAUDEL quien apreciaba en
su madurez lo que era poseer la fe.
71
72
Captulo VI
Arreglos
ARREGLOS
Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable)
a una coleccin de datos del mismo tipo.
Los arreglos se caracterizan por:
6.2 VECTORES
Es un arreglo de N elementos organizados en una dimensin donde N recibe el
nombre de longitud o tamao del vector. Para hacer referencia a un elemento del
vector se usa el nombre del mismo, seguido del ndice (entre corchetes), el cual
indica una posicin en particular del vector. Por ejemplo:
Vec[x]
Donde:
Vec ............ Nombre del arreglo
x ................ Numero de datos que constituyen el arreglo
Representacin grfica de un vector
Vec
Vec
Vec
Vec
[1]
[2]
[3]
[4]
7
8
9
1
0
Llenado de un Vector
Hacer para I = 1 a 10
Leer vec[I]
Fin-para
73
Captulo VI
Arreglos
I=1
Repetir
Leer vec[I]
I=I+1
Hasta-que I>10
Problemas propuestos
1) Calcular el promedio de 50 valores almacenados en un vector. Determinar adems
cuantos son mayores que el promedio, imprimir el promedio, el nmero de
datos mayores que el promedio y una lista de valores mayores que el promedio.
2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del
vector A con el elemento uno del vector B y as sucesivamente hasta 45,
almacenar el resultado en un vector C, e imprimir el vector resultante.
3) Llenar un vector de 20 elementos, imprimir la posicin y el valor del elemento
mayor almacenado en el vector. Suponga que todos los elementos del vector
son diferentes.
4) Almacenar 500 nmeros en un vector, elevar al cuadrado cada valor almacenado
en el vector, almacenar el resultado en otro vector. Imprimir el vector original y
el vector resultante.
5) Almacenar 300 nmeros en un vector, imprimir cuantos son ceros, cuantos son
negativos, cuantos positivos. Imprimir adems la suma de los negativos y la
suma de los positivos.
6) Almacenar 150 nmeros en un vector, almacenarlos en otro vector en orden
inverso al vector original e imprimir el vector resultante.
7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos
cada uno. Hacer un algoritmo que escriba la palabra Iguales si ambos vectores
son iguales y Diferentes si no lo son.
Sern iguales cuando en la misma posicin de ambos vectores se tenga el
mismo valor para todos los elementos.
8) Se tiene el vector A con 100 elementos almacenados. Disee un algoritmo que
escriba SI si el vector esta ordenado ascendentemente o NO si el vector no
esta ordenado
9) Disee un algoritmo que lea un nmero cualquiera y lo busque en el vector X, el
74
Captulo VI
Arreglos
6.3 MATRIZ
Es un arreglo de M * N elementos organizados en dos dimensiones donde M es el
numero de filas o reglones y N el numero de columnas.
Para representar una matriz se necesita un nombre de matriz se necesita un nombre
de matriz acompaado de dos ndices.
Mat [R,C]
Mat [R,C]
1,1 1,2
1,3 1,4
2,1 2,2
2,3 2.4
3,1 3,2
3,3 3,4
4,1 4,2
4,3 4,4
Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Columna
[C]
75
Captulo VI
Arreglos
Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los
ndices y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos
ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).
Problemas propuestos
1)
2)
3)
4)
Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e
imprimir que columna tuvo la mxima suma y la suma de esa columna.
5)
6)
7)
Hacer un algoritmo que llene una matriz de 6 * 8 y que almacene toda la matriz
en un vector. Imprimir el vector resultante.
8)
Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de los
renglones y la suma de las columnas en un vector. Imprimir el vector resultante.
9)
Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los
nmeros almacenados son ceros, cuantos son positivos y cuantos son negativos.
10) Disee un pseudocdigo que escriba el nmero de la hilera cuya suma sea
mayor que las dems hileras. Suponga que todas las hileras suman diferente
cantidad.
76
Captulo VI
Arreglos
11) El dueo de una cadena de tiendas de artculos deportivos desea controlar sus
ventas por medio de una computadora. Los datos de entrada son:
a) El numero de la tienda (1 a 50)
b) Un numero que indica el deporte del articulo (1 a 20)
c) El costo del artculo.
Hacer un pseudocdigo que escriba al final del da lo siguiente
1. Las ventas totales en el da para cada tienda
2. Las ventas totales para cada uno de los deportes.
3. Las ventas totales de todas las tiendas.
12) El departamento de polica de la ciudad de Sincelejo ha acumulado informacin
referente a las infracciones de los lmites de velocidad durante un determinado
periodo de tiempo. El departamento ha dividido la ciudad en cuatro cuadrantes
y desea realizar una estadstica de las infracciones a los lmites de velocidad en
cada uno de ellos. Para cada infraccin se ha preparado una tarjeta que contiene
la siguiente informacin:
- numero de registro del vehculo;
- cuadrante en el que se produjo la infraccin
- limite de velocidad en milla por hora
Disee un diagrama para producir 2 informes; el 1o. Que contiene una lista de
la multa de velocidad recolectadas, donde la multa se calcula como la suma del
costo de la corte ($20,000) mas $ 1,250 por cada mph que exceda la velocidad
limite. Prepare una tabla con los siguientes resultados:
INFRACCIONES A LOS LIMITES DE VELOCIDAD
Registro del
vehculo
Velocidad
registrada (MPH)
Velocidad
limite
Multa
77
78
MANEJO DE MDULOS
7.1
7.2
7.3
7.4
Objetivo educacional
Definicin
Funcin
Manipulacin
79
80
Captulo VII
Manejo de Mdulos
MANEJO DE MDULOS
7.2 DEFINICIN, FUNCIN Y MANIPULACIN
Un problema complejo se puede dividir en pequeos subproblemas ms sencillos.
Estos subproblemas se conocen como Mdulos y su complementacin en un
lenguaje se llama subprograma (procedimientos y funciones).
Un subprograma realiza las mismas acciones que un programa, sin embargo, un
subprograma lo utiliza solamente un programa para un propsito especifico.
Un subprograma recibe datos de un programa y le devuelve resultados (el programa
llama o invoca al subprograma, este ejecuta una tarea especifica y devuelve el
control al programa que lo llamo).
Funciones
Tipos de
Mdulos
Procedimientos
Funcin: Una funcin en matemticas, es una operacin que toma un o mas valores
(argumentos) y devuelve un resultado (valor de la funcin para los argumentos
dados). Por ejemplo:
F(X) = X / (1+X2)
Donde:
F ............ Nombre de la funcin
X ........... Es el argumento (tambin conocido como parmetro formal)
81
Captulo VII
Manejo de Mdulos
Problemas Propuestos
1) Disee un algoritmo que llene una matriz de 10 * 10 y determine:
A) El numero mayor almacenado en la matriz
B) El numero mayor almacenado en cada rengln
C) La columna que tuvo la mxima suma
D) El rengln que tuvo la mxima suma
Disea una funcin para cada inciso.
2) Disee un algoritmo que lea un nmero y mediante una funcin regrese el valor
de 1 si el nmero es positivo y -1 si es negativo).
82
NUM.
TEMAS
Conceptos bsicos y
metodologa para la
solucin de problemas por
medio de computadoras.
SUBTEMAS
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.7.1
1.7.2
1.7.3
1.7.4
1.7.5
1.7.6
1.7.7
Objetivos educacionales
Introduccin
De los problemas a los
programas
Breves prcticas de
programacin
Definicin de lenguaje
Definicin de algoritmo
Algoritmos cotidianos
Definicin de lenguajes
algortmicos
Metodologa para la
solucin de problemas por
medio de computadora
Definicin del problema
Anlisis del problema
Diseo del algoritmo
Codificacin
Prueba y depuracin
Documentacin
Mantenimiento
II
2.1
2.2
2.3
2.4
2.5
Objetivo educacional
Tipos de datos algoritmos
Expresiones
Operadores y operandos
Identificadores como
localidades de memoria
III
Tcnicas de diseo
3.1
3.2
3.3
Objetivo educacional
Top down
Bottom up
83
NUM.
IV
TEMAS
Tcnicas para la
formulacin de
algoritmos.
SUBTEMAS
4.1
4.2
4.3
4.4
Estructuras algortmicas
5.1
5.2
5.3
5.4
Objetivo educacional
Diagrama de flujo
algoritmos
Pseudocdigo
Diagrama estructurado
(nassi-schneiderman)
Objetivo educacional
Secuenciales
Asignacin
Entrada
Salida
Condicionales
Simples
Mltiples
Repeticin fila
condicional
VI
Arreglos
6.1
6.2
6.3
Objetivo educacional
Vectores
Matrices
VII
Manejo de mdulos
7.1
7.2
7.3
7.4
Objetivo educacional
Definicin
Funcin
Manipulacin
84
85
86
87