Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAPTULO I
ALGORITMOS
Si pusiramos atencin a todo lo que nos rodea, veramos que estamos sumergidos en muchos sistemas, y que todos ellos conviven, de alguna u otra manera, con el fin de hacer que nuestra vida sea normal. Por ejemplo, el
cuerpo humano es un sistema global formado por el sistema nervioso, el sistema cardiovascular, sistema respiratorio, etctera, cada uno de los cuales trabaja en conjunto con los otros a fin de mantenernos vivos. Si escarbramos en los sistemas, veramos a su vez, que todos ellos estn formados de procesos. Por ejemplo, el sistema nervioso, entre otros, cuenta con un proceso de sensibilidad al mundo exterior, el cual nos ayuda, a sentir cuando el ambiente es fro o clido.
Un proceso es un conjunto de actividades desarrolladas con el fin de llevar a cabo una tarea especfica.
Gracias a los procesos, las computadoras ha llegado a ser tan tiles en la vida actual. Los procesos de cmputo estn enfocados a transformar ciertos datos en otros datos o en informacin a velocidades muy grandes, a final de cuentas esa es la virtud principal de las computadoras.
1.1.2 Componentes.
Un proceso de cmputo se compone de tres partes bsicas: entrada, procesamiento y salida.
La entrada es la parte de un proceso que se encarga de recibir los datos que sern manejados en el mismo. Es una etapa muy importante, ya que la informacin o los datos que genera el proceso dependen en gran medida de qu tan buenos sean los datos en este fase. El procesamiento es la etapa fundamental de un proceso, en esta se realizan ciertas operaciones (que dependen del proceso que se est siguiendo) para transformar los datos de entrada en ciertos datos o informacin de salida (vea figura 1.1).
Entrada
Procesamiento
Salida
Las computadoras son menos inteligentes de lo que parecen, la gran capacidad de procesamiento que muchas veces escuchamos al respecto de las mismas se debe a la velocidad a la que estas llevan a cabo procesos simples y no a la complejidad de los mismos.
Como puede observar, el proceso de suma es muy sencillo. En la mayora de los aspectos de informtica, los datos son mencionados con nombres de variables (en este ejercicio usamos las variables A, B y C, de las cuales A y B son variables de entrada y C es la variable de proceso, la cual es presentada como salida). Este es un ejemplo tpico de un proceso y aunque la mayora de los procesos de computadora tienen ms variables de entrada, ms etapas de procesamiento y ms variables de salida, las partes fundamentales de los mismos siempre sern las tres mencionadas anteriormente (entrada, procesamiento y salida).
Como podr notar, esta definicin tiene qu ver con la de procesos, detalle que tambin observaremos en el prrafo siguiente. Un algoritmo est compuesto de tres partes principales, cada una con funciones muy particulares. La etapa de entrada indica los datos que son necesarios para la solucin del problema en cuestin. En la etapa de proceso o procesamiento, es donde se realizan las operaciones que tienen que ver con la solucin del problema, mientras que en la etapa de salida es donde se mostrarn los resultados obtenidos en el procesamiento. Con estos pasos tan sencillos es como se construyen los programas ms sofisticados. Los lenguajes algortmicos nos proporcionan metodologas que permiten representar cualquier problema (o casi cualquiera) para posteriormente expresarlo en un lenguaje de computadora. De lo anterior podemos concluir que, expresando correctamente un problema mediante un algoritmo, podemos representarlo en cualquier lenguaje de programacin, esta es la razn por la que interesa el estudio de la presente materia.
Se debe observar en la solucin que existe una secuenciacin, esto es, la solucin se va dando en forma de pasos bien definidos: despus del paso 1, sigue el 2, luego el 3, para finalmente dar el resultado de salida en el paso 4.
PROCESO PASO 2: SALIDA PASO 3: Cruzar calle Preguntar Si L = Verde, ir a paso 3. De lo contrario ir a paso 1
1.3.2.1 Datos numricos. Los datos numricos, cmo su nombre lo indica, sern aquellos que slo pueden representar nmeros. De esta manera diremos que existen datos numricos enteros y reales (con decimales). Las variables que representen datos numricos sern identificadas slo con su nombre. Ejemplos: A, Edad, X1, etctera.
1.3.2.2 Datos alfanumricos. Este tipo permite manipular datos que contengan nmeros y letras. Las variables alfanumricas deben representarse con un signo de pesos antes de la mismas. Por ejemplo: $A, $Nombre, $Y2, etctera.
1.2.3.2 Datos lgicos. Los datos lgicos slo permiten almacenar dos tipos de valores: cierto y falso. Por lo general, los datos lgicos son devueltos por expresiones dnde se realiza alguna condicin o pregunta.
1.3.3 Operaciones.
Las operaciones que pueden realizarse entre los datos tendrn que hacerse por medio de operadores. Como mencionbamos en puntos anteriores, no todos los operadores pueden aplicarse a todos los tipos de datos. Enseguida lo veremos. De esta forma, en la tabla 1.1 presentamos los operadores aritmticos que son vlidos en lenguajes algortmicos.
PRECEDENCIA Ms alta
Ms baja
OPERADOR * / + %
En la Tabla 1.1 podemos ver la columna llamada precedencia, la cual nos indicar el orden en que se ejecutan los operadores cuando son encontrados en una expresin (este asunto se tratar con ms detalle en el punto 1.4). La tabla 1.2 nos muestra los operadores relacionales. Estos tienen el mismo orden de precedencia y debe hacerse una diferenciacin entre el operador relacional igual(=) y el operador de asignacin igual(=).
OPERACIN Igual Mayor que Menor que Mayor o igual que Menor o igual que
Los operadores lgicos, por otra parte, se muestran en la tabla 1.3. En ellos si existe orden de precedencia.
Para finalizar la parte de operadores mencionaremos que existe el operador asignacin, el cual permite representar el paso del valor de una expresin a una variable. El operador indica que el resultado de la expresin que est a su lado derecho ser pasada a la variable que se localiza en su lado izquierdo: A4+5 en la anterior expresin asignamos a la variable A el valor de 4+5 (esto es, A vale 9). Lo cual difiere de preguntar si la variable A es igual a nueve, en cuyo caso se expresara con el operador de relacin = de la forma: A=4+5
en el caso anterior estamos haciendo la pregunta: Es la variable A igual a 4+5?, lo cual nos devolver un valor lgico cierto o falso dependiendo cunto vale dicha variable A.
en la cual apreciamos dos operandos (la variable A y la constante 3) y un operador (el operador que representa una suma + entre los operandos). Existen dos tipos de expresiones: aritmticas y lgicas. Las expresiones aritmticas arrojan valores numricos, las lgicas valores lgicos(cierto o falso). Veamos ahora unos ejemplos de expresiones. Suponga que las variables tienen los siguientes valores: A3, B5, C10, D1
La primera expresin no tiene problema alguno. En la segunda quiz se pueda observar alguna ambigedad, pero queda liberada cuando recordamos el orden de precedencia: como encontramos el operador /,el cual tiene mayor orden de precedencia que la suma, este se realiza primero que +, por tal razn el resultado es 10. En la tercera expresin el resultado es -21 porque primero se efecta la exponenciacin de B2 (que es igual a 25), luego se realiza la resta a la suma de A+D (igual a 4) y se le resta el resultado B2 dndonos 21. La cuarta expresin, a diferencia de las anteriores que son aritmticas, devuelve un valor lgico de falso: estamos preguntando Es la suma de A+B (la cual es 8) igual a 3?, lo cual como observamos es falso. Las expresiones suelen tomar aspecto un poco ms complejos, observemos las siguientes suponiendo: A2, B4, C10, D1
Las primeras dos expresiones nos indican que el uso de parntesis puede alterar el orden de precedencia (siempre se evalan primero los parntesis ms internos), de all que ambas expresiones aunque similares en apariencia difieran
drsticamente en el resultado. En la tercera expresin nos volvemos a encontrar con la precedencia de los operadores: recordando, primero se evalan las potencias, luego las divisiones y finalmente las sumas y restas en el mismo orden. En la cuarta expresin, se realiza una conjuncin que involucra dos operadores relaciones, uno de igualdad y otro de mayor, la expresin (A+B)=3 es falsa(4+3 no es igual a 3), tambin lo es C3>1000 (1000 no es mayor que 1000), de tal forma que la conjuncin de estas expresiones lgicas resulta en un valor lgico final falso.
CAPTULO II
DIAGRAMAS DE FLUJO
2.1 Definicin
Un diagrama de flujo es la representacin grfica de un algoritmo, por esta razn, cada parte de un algoritmo tiene un equivalente en un diagrama de flujo. Esta es una forma ms explcita de representar problemas, la cual, se ajusta a las estructuras lgicas de todos los lenguajes de programacin existentes.
Proceso:
Salida:
Generalmente un diagrama de flujo deber tener la identificacin tanto de su inicio como su fin. En ambos casos, se utilizar el siguiente smbolo:
Inicio Fin
Cada uno de los bloques funcionales deben ser unidos mediante flechas que indiquen el flujo de la lgica del problema en cuestin.
Ejemplo: Elaborar un diagrama de flujo que tenga por entrada (lea) dos variables
numricas y que calcule e imprima su suma. La solucin se formula como sigue, a la izquierda tenemos el algoritmo y a la derecha el diagrama de flujo equivalente:
ALGORITMO:
INICIO
ENTRADA: PASO 1: A, B
A,B
FIN
Como podemos observar en el ejemplo anterior, al algoritmo le corresponde exactamente un bloque funcional en el diagrama. El smbolo de lectura de las variables A, B indica que un programa esperar a que el usuario, va teclado, introduzca dos valores numricos, los cuales sern asignados a las respectivas variables. Una vez asignados los valores a las variables en el bloque de lectura se elaborar un proceso de asignacin de la suma de A, B a la variable C, la cual se imprimir seguidamente para terminar. Observe el lector tambin como existen los smbolos de inicio y fin del diagrama y que el flujo de la ejecucin de cada una de sus partes lo ilustran claramente las flechas, es decir, despus del inicio sigue una lectura, luego un proceso de asignacin para despus imprimir o dar salida a un resultado, enseguida se nos indica que el diagrama termina. Los smbolos que usaremos a lo largo del curso varan de significado ligeramente por parte de algunos autores, por ejemplo, el smbolo de salida puede tener una connotacin diferente si se usa para dar salida a pantalla o impresora, nosotros generalizaremos usando slo el mostrado previamente.
Ejemplo: Hacer un diagrama de flujo que lea tres nmeros y que calcule e
imprima su promedio.
INICIO
A,B,C
P (A+B+C)/3 P
FIN
Ejemplo: Hacer un diagrama de flujo que lea una variable A y otra B que
representen los coeficientes de una ecuacin de 1er grado, de la forma Bx + A = 0 El diagrama debe imprimir el valor de la raz ( x = - A / B).
INICIO
A, B
X - A/B X
FIN
Comprobacin del diagrama: Suponiendo que damos los valores 4 y 2 respectivamente a las variables A, B en el bloque de entrada, proseguimos con el bloque de proceso donde podemos ver que a la variable X se le asigna el valor de A/B, lo cual corresponde a un valor de 2. Si sustituimos el valor obtenido de X en la ecuacin original (Bx + A = 0) veremos que la igualdad se cumple. Al lector le corresponder probar el diagrama con otros valores.
Como ventajas principales tenemos: 1.- Rpida comprensin de las relaciones. 2.- Anlisis efectivo de las diferentes secciones del programa. 3.- Documentacin adecuada de los programas. 4.- Codificacin eficaz de los programas. 5.- Depuracin y pruebas ordenadas de los programas.
Las desventajas que se pueden observar se resumen as: 1.- Los diagramas complejos y detallados suelen ser laboriosos en planteamiento y elaboracin. 2.- No existen normas fijas para la elaboracin de diagramas de flujo que permitan incluir todos los detalles que el usuario desea introducir.
2.6 Pseudocdigo.
Al igual que los diagramas de flujo, el pseudocdigo es otra herramienta muy til para implementar programas de computadora y podemos definirlo como una tcnica para expresar en lenguaje natural la lgica de un programa, es decir, su flujo de control (Joyanes). Analicemos la definicin dada con un ejemplo. El siguiente diagrama lee dos variables numricas A, B y mediante un proceso calcula su suma y luego el promedio de las mismas. Seguido, imprime dicho valor previamente calculado. Por otra parte, al lado derecho del diagrama tenemos su codificacin en el lenguaje de programacin Pascal. Lo que aparece en este programa es un conjunto de instrucciones que puede ser interpretado por una computadora para realizar la tarea de leer dos nmeros y calcular e imprimir en pantalla su promedio. Pero suponga el lector que ya tiene su diagrama debidamente probado y que an no sabe en qu lenguaje se va a codificar, bueno, para esta situacin es posible utilizar pseudocdigo y dejarlo listo para codificar en el lenguaje que se decida posteriormente. Veamos primero el diagrama:
INICIO
A, B
Codificacin:
Program promedio; Var s, a, b: integer; p: real; Begin Write(Teclee el primer nmero:); readln(a); Write(Teclee el segundo nmero:); readln(b); S:= A + B; P:= S/2; Write(El promedio es: ,p:10:2); End.
S A+B P S/2
FIN
Ahora bien, si deseramos escribir pseudocdigo para el diagrama, lo haramos as: Inicio Escribir mensaje Teclea el primer nmero Leer variable A Escribir mensaje Teclea el segundo nmero Leer variable B Procesar : hacer la variable S igual a la suma de A+B Procesar : hacer la variable P igual a S/2 Escribir el mensaje El promedio es y el valor de P Fin Como vemos, el pseudocdigo es un paso cercano a la codificacin del programa (su escritura en un lenguaje de programacin), pero concretamente no representa alguna instruccin de un lenguaje, es decir, slo expresa en lenguaje ms comn la posible escritura de cdigo.
INICIO
INICIO
D, A
P D*9.5
P D*A
FIN
FIN
b).- Hacer un diagrama de flujo que lea una cantidad que represente una temperatura en grados Celsius ( C) y que los convierta en grados Farenheit (F).
INICIO
F 1.8*C+32
FIN
c).- Hacer diagrama de flujo que lea una cantidad en pesos y que la convierta en dlares (suponiendo que el dlar = $ 10).
INICIO
D P/10
FIN
d).- Hacer diagrama de flujo que lea una cantidad en C y que la convierta en K.
INICIO
K C+273
FIN
e).- Hacer diagrama de flujo que lea una cantidad en equivalente en grados F y en K.
INICIO
C y que imprima su
K C+273 F 1.8*C+32
K, F
FIN
f).- Hacer diagrama de lujo que lea los lados de A, B de un tringulo y que calcule e imprima la hipotenusa.
INICIO
A,B
C (A2 + B2)(1/2)
FIN
g).- Hacer diagrama de flujo que lea e imprima el promedio de 3 calificaciones de un alumno.
INICIO
A,B,C
P (A+B+C)/3
FIN
h).- Hacer diagrama de flujo capaz de resolver una ecuacin de segundo grado.
INICIO
A, B, C
DIS (B-4*A*C)(1/2)
X2 (B + DIS)/2*A
X1 , X2
FIN
CAPTULO III
CONCEPTOS DE DIAGRAMAS DE FLUJO
3.1 Contador.
Existen algunas formas de asignacin que gozan de mucha utilidad en programacin. Obviamente, estas formas de asignacin manipulan variables, las cuales reciben nombres tcnicos, una de esas formas es el contador. En los procesos repetitivos es necesario contar los sucesos que ocurren dentro de un ciclo, estos sucesos pueden ser de muy diversos tipos, y por ahora no son parte de atencin. Pues bien, para llevar un control de esos eventos se hace uso de un contador, el cual reside en una parte de la memoria de la computadora y se incrementa o decrementa cada vez que se entra al ciclo. El
incremento (ya sea positivo o negativo) en un contador siempre es constante. Como ejemplos de contador tenemos: C C+1 N N+1
3.2 Sumador.
Este tipo de variable almacena cantidad variables resultantes sumas sucesivas (Joyanes, 1987). En este tipo de variables, el incremento es siempre una variable, veamos ahora unos ejemplos de sumadores: C C+T S S+N
3.3 Multiplicador.
Una variable tipo multiplicador, como su nombre lo indica, es aquella que multiplica valores, sea constantes o variables. Ejemplos: C C*2 N N*X Las tres herramientas mencionadas en lo que va de estos apuntes, tienen infinidad de aplicaciones, las cuales veremos cuando toquemos el tema de ciclos y arreglos. Por ahora slo es importante saber que existen y que cuentan con caractersticas que las identifican claramente. La figura 3.1 muestra en forma grfica los tres tipos de variables descritas previamente.
Figura 3.1. De izquierda a derecha, tenemos diagramas que implementan un contador, un sumador y un multiplicador, respectivamente.
INICIO
INICIO INICIO
C 1 C C+1
X 1 X 1 S 1 X X*1 S S+X X
FIN
S FIN FIN
FALSO CONDICIN
CIERTO
Dependiendo cul es la respuesta resultante a la condicin, el flujo del problema ir, a la izquierda, si es falsa o a la derecha si es verdadera.
3.5 Ejemplos y resolucin de problemas relacionados. Ejemplo: Hacer un diagrama de flujo que lea una variable que represente la edad
de una persona y que escriba un mensaje que indique si la persona puede o no votar en las elecciones.
INICIO
SI "FELICIDADES"
FIN
Ejemplo: Hacer diagrama de flujo que lea un nmero que represente una
temperatura en C y que la convierta a F. El diagrama debe determinar si la temperatura convertida es mayor a 300 F.
INICIO
F 1.8 * C + 32
FIN
Ejemplo: Hacer diagrama de flujo que lea un nmero y que compare si ese nmero es mayor a mil, en cuyo caso debe imprimir el cuadrado del nmero y en caso contrario debe imprimir la raz cbica del mismo.
INICIO
NO A X(1/3) X>=1000
SI A X2
FIN
Ejemplo: Hacer diagrama de flujo que lea un nmero y que determine si es mltiplo de tres, en este cado debe calcular e imprimir respectivamente su cuadrado y raz cuadrada. En caso contrario que calcule e imprima su valor cubicado.
INICIO
M N MOD 3
NO X1 N * N * N M= 0
SI
X1
X1, X2
FIN
Ejemplo: Hacer diagrama de flujo que lea dos variables numricas y que evale
la propiedad de tricotoma en dichos nmeros.
INICIO
X, Y
SI X=Y
"Son Iguales"
FIN
Ejemplo: Hacer diagrama de flujo que lea dos variables (X, Y) y que determine si
se satisface la siguiente ecuacin. 3X+5Y4
INICIO
X, Y
NO
3 X + 5 Y >=4
SI
FIN
Ejemplo: Hacer diagrama de flujo que lea cuatro variables: X1,X2,Y1,Y2. El diagrama debe calcular la media aritmtica de las variables (X, Y) e indicar sus respectivas medias son iguales o cual de ellas es la mayor.
INICIO
SX = X1 + X2 PX = SX / 2
SY = Y1 + Y2 PY = SY / 2
SI PX = PY NO SI PX < PY
"Las m edias son iguales"
NO
FIN
CAPTULO IV
ESTRUCTURAS ITERATIVAS
4.1 Introduccin.
Las estructuras iterativas (tambin llamadas bucles), son procesos que ejecutan una serie de instrucciones en un nmero determinado de veces. Las operaciones, o instrucciones, sern siempre las mismas, pero con datos y resultados diferentes. En el caso de un programa de computadora, el bucle o lazo es un conjunto de instrucciones que deben ser ejecutadas un cierto nmeros de veces(cada repeticin tambin se conoce como iteracin), en una entrada y una salida; la entrada se producir con una o varias instrucciones y la salida del bucle fin del proceso repetitivo-, se producir cuando se cumple o no una condicin. Un bucle que no controle su fin, recibe el nombre de bucle infinito o sin fin, tiene la forma mostrada en la Figura 4.1.
Accin 1
Accin 2
Lo ms deseable en un programa es que nunca se caiga en un ciclo infinito, ya que no tendra mucho sentido no poder detener procesos. En general, un bucle que no es infinito, es decir, uno que es finito, contar con las siguientes partes: Preparacin y arranque. Cuerpo. Modificacin. Comprobacin de la condicin.
Proceso(s)
a l sean ejecutados, ya que si la condicin de entrada no es satisfecha, nunca se ejecutarn el o los procesos.
Proceso(s)
En la mayora de los problemas que se resuelvan con estructuras tipo repetir-mientras y repetir-hasta es frecuente encontrar, dentro de los procesos que contiene el bucle, un contador que sea la variable de control que indique cuntas veces ser ejecutar el ciclo.
var=inicio,fin, incremento
Proceso(s)
En un ciclo automtico, el o los procesos sern ejecutados mientras que la variable de control (var) pasa del valor inicial al valor final en el incremento especificado.
4.5 Ejemplos y resolucin de problemas relacionados. Ejemplo: Hacer un diagrama de flujo que genere nmeros pares desde 2 hasta
infinito.
INICIO
C 0
C C+2
Ejemplo: Hacer diagrama de flujo que genere nmeros impares desde 1 hasta
infinito.
INICIO
C -1
C C+2
Ejemplo: Hacer diagrama de flujo que genere nmeros enteros sucesivos desde 1 hasta infinito.
INICIO
C 0
C C+1
Ejemplo: Hacer diagrama de flujo que genere nmeros de tres en tres hasta
infinito.
INICIO
C 0
C C+3
Ejemplo: Hacer diagrama de flujo que lea 1000 nmeros y que lea e imprima su
promedio.
INICIO
C 0 S 0
C C+1
S S+N
NO C = 1000 SI P S / 1000
FIN
Ejemplo: Hacer diagrama de flujo que genere nmeros pares de 2 hasta 200.
INICIO
C 0
C C+2
NO C = 200 SI FIN
Ejemplo: Hacer diagrama de flujo que genere nmeros enteros sucesivos de uno en uno hasta N.
INICIO
C 0
C C+1
NO C=N SI FIN
C 0 S 0 P 0
C C+1
S S+M
NO C=N SI P S/N
FIN
Ejemplo: Hacer diagrama de flujo que lea un nmero y que determine si es par o impar, si el nmero es par, el diagrama debe generar nmeros pares de 2 20 y si no, impares de 1-19.
INICIO
"Nmero impar"
NO C MOD 2 = 0
SI
"Nmero par"
C -1
C 0
C = 19 NO C C +2
SI
SI
C = 20 NO C C+2
FIN
Ejemplo: Hacer diagrama de flujo que lea n nmeros y que determine cual de
ellos es el mayor.
INICIO
MAY -32000 C 0
C C+1
NO
NO C=N SI MAY
FIN
A 0 B 1
A,B
C A+ B
A B B C
Ejemplo: Hacer diagrama de flujo que imprima nmeros mltiplos de cinco desde
cinco hasta quinientos.
INICIO
C 0
C C+5
NO C = 500 SI FIN
Ejemplo: Hacer diagrama de flujo que imprima nmeros de uno en uno hasta 50 y que imprima el cuadrado de cada uno.
INICIO
C 0
C C+1
N C*C
NO C = 50 SI FIN
CAPTULO V
ESTRUCTURAS DE DATOS BSICAS
5.1 Vectores.
Un vector es un conjunto de elementos relacionados. En la mayora de los lenguajes de computadora, todos los elementos de un vector(o arreglo unidimensional) son del mismo tipo. Para poder hacer referencia a los elementos de un vector es necesario que exista un nombre para el mismo. A cantidad mxima de elementos que podemos almacenar en un vector se le llama dimensin. No es posible acceder a todos los datos de un arreglo al mismo tiempo, en vez de ello se tiene que usar un nombre de arreglo y un nmero, llamado ndice, que indica a qu elemento del vector se est haciendo referencia.
X=
457 [1]
324 [2]
3 [3]
55 [4]
La Figura No. 5.1 muestra un arreglo de enteros llamado X que tiene una dimensin de 4. Si queremos hacer referencia al segundo elemento del arreglo X (el nmero 324) tendramos que especificar X[2](se lee como X de 2), es decir, X[2]=324. Cada uno de estos elementos individuales puede ser tratado como cualquier variable.
5.2.1 Ejemplos y resolucin de problemas relacionados con vectores. Ejemplo: Hacer diagrama de flujo que lea e imprima un arreglo de N elementos.
INICIO
K 1, N
X[K]
X[K]
FIN
Ejemplo: Hacer diagrama de flujo que lea un arreglo de N elementos y que imprima su media aritmtica.
INICIO
S 0 K 1, N
X[K]
S X[K] + S
P S/N
FIN
INICIO
P 0 K 1, N
X[K]
K 1, N
FIN
S 0 K 1, N
X[K]
S S + X[K]
M S / N S2 0 K 1, N S2 S2 + (X[K] - M)
DM S2 / N
DM
FIN
Ejemplo: Hacer diagrama de flujo que lea dos vectores de dimensin N y que
calcule e imprima la suma de ambos.
INICIO
K 1, N
X[K]
Y[K]
K 1, N
Z[K]
FIN
5.2 Matrices.
Un matriz es un arreglo bidimensional, es decir, para hacer referencia a cualquiera de sus elementos son necesarios dos ndices. Las matrices estn organizadas en filas y columnas, por lo tanto la dimensin de las mismas ser dada en la forma NxM, donde N representa la cantidad de renglones(llamados tambin filas) y M las columnas.
Figura 5.2. Representacin esquemtica de una matriz.
X=
457 34 2 21 [1]
3 0 13 32 [3]
En la Figura 5.2 podemos observar la representacin esquemtica de una matriz de enteros llamada X, la cual tiene una dimensin 4x3. En la matriz X, el acceso a los elementos individuales debe hacerse en la forma X[i,i], donde i representa el nmero de rengln y j el nmero de columna, por lo tanto X[3,2] es 342.
5.2.1 Ejemplos y resolucin de problemas relacionados con matrices. Ejemplo: Hacer diagrama de flujo que lea una matriz de tres por dos (3 X 2).
INICIO
I 1, 3 J 1, 2
X[I,J]
FIN
INICIO
N,M
I 1, N
J 1, M
X[I,J]
I 1, N
J 1, M
X[I,J]
FIN
Ejemplo: Hacer diagrama de flujo que lea matriz de dimensin NxM y un escalar . El diagrama debe calcular e imprimir el producto escalar de ambos.
INICIO INICIO
N , M, K
N , M, K
I 1, N
I 1, N
J 1, M
J 1, M
X[I,J]
X[I,J]
I 1, N
I 1, N
J 1, M Y[I,J] K*X[I,J]
equivale a ....
J 1, M Y[I,J] K*X[I,J]
Y[I,J]
I 1, N
FIN
J 1, M
Y[I,J]
FIN
Ejemplo: Hacer diagrama de flujo que lea una matriz de dimensin NxM y
imprima su diagonal principal.
Ejercicios propuestos para el captulo. 1.- Hacer diagrama de flujo que lea un vector de N elementos y que indique
cuantos de ellos son pares. 2.- Hacer diagrama de flujo que lea una matriz de N X 3. El diagrama debe calcular el promedio por fila e cual de tales promedios es el mayor.
3.- Hacer diagrama de flujo que lea un vector de N elementos y que indique
cuantos de ellos mltiplos de tres y cuntos mltiplos de 5. 4.- Hacer un diagrama de flujo que lea un vector de dimensin N y que calcule la siguiente norma: (X1-M)2+ (X1-M) 2+...+ (XN-M) 2 Norma = ----------------------------------------N2 Donde M es la media aritmtica del vector X. 5.- Hacer un diagrama de flujo que lea dos matrices y que calcule su producto. 6.- Hacer un diagrama de flujo que lea dos matrices y que calcule su suma. 7.- Hacer un diagrama de flujo que lea una matriz entera de dimensin NxM y que calcule su matriz transpuesta. 8.- Hacer un diagrama de flujo que lea una matriz entera de dimensin NxM y que calcule el promedio de sus elementos. 9.- Hacer una diagrama de flujo que lea una matriz de caracteres de dimensin NxM y que indique cuntos de los caracteres de tal matriz son letras a. 10.- Que lea dos vectores numricos de dimensin N y que indique cul de ellos tiene la mayor media aritmtica de sus elementos.
CAPTULO VI
SUBRUTINAS
6.1 Definicin.
La programacin estructurada consiste en descomponer sucesivamente un problema en mdulos que tratarn y programarn independientes unos de otros. A estos mdulos tambin se les llama subprogramas. El manejo de subprogramas en diagramacin se observa el esquema mostrado en la Figura 6.1.
Operacin 1 Operacin 2 . .
Operacin 1 Operacin 2 . .
Subprogram a A
Subprogram a B
Fin
Fin
Ejemplo: Elaborar un diagrama de flujo que genere un men con tres opciones:
1.- Suma de dos nmeros 2.- Promedio de N nmeros 3.- Terminar el algoritmo El diagrama debe desarrollar las opciones 1 y 2 como subprogramas.
Inicio
Subprogram a A
Subprogram a B
Menu 1.- Sum a de dos nm eros 2.- P rom edio de N nm eros 3.- T erm inar algorit m o
a,b
Subprogram a A
P =s/N Subprogram a B
Fin