Está en la página 1de 41

PROBLEMARIO

Lógica Computacional

Descripción breve
Conceptos elementales de cada una de las unidades de la asignatura de Lógica Computacional, con
ejercicios y soluciones.

Ileana Vázquez Carrillo


Ileana.vazquez@correo.uady.mx
INDICE

UNIDAD I – ALGORITMOS Y DIAGRAMAS DE FLUJO 3

Fases para la Resolución de Problemas 3

Metodología de la Programación 3

Algoritmos 4

Ejercicios. Unidad I – Algoritmos y Diagramas de Flujo 5

UNIDAD II – ESTRUCTURAS SECUENCIALES Y SELECTIVAS. 6

Diagramas de Flujo: 6

Son la representación gráfica de un algoritmo. 6

Estructuras secuenciales. 7

Una operación a continuación de la otra. Se trabaja de arriba hacia abajo. 7

Estructuras Selectivas, de comparación o decisión. 7

Ejercicios Unidad II – Estructuras Secuenciales y Selectivas 10

UNIDAD III – CICLOS DE ITERACIÓN FIJA Y VARIABLE 11

Los ciclos o bucles 11

Ciclos de Iteración Fija 11


El bloque iterativo 11

Ciclos de Iteración Variable 13

Las Variables de Trabajo 14


Contador 14
Acumulador 14
Bandera, Switch o Interruptor 15

Ejercicios – Unidad III – Ciclos de Iteración Fija y Variable 15

UNIDAD IV – ARREGLOS DE UNA Y DOS DIMENSIONES 17

Arreglos de Una Dimensión o Vectores 17

Arreglos de Dos Dimensiones o Tablas, o Matrices 19

1
Ejercicios Unidad IV – Arreglos de Una y Dos Dimensiones 21

UNIDAD V – SUBPROGRAMAS 22

SOLUCIONES 24

Soluciones de los ejercicios Algoritmos y Diagramas de Flujo 25

Soluciones de los ejercicios secuenciales y alternativos 26

Soluciones de los ejercicios con ciclos y variables de trabajo 31

Soluciones de los ejercicios con variables dimensionadas 36

REFERENCIAS 42

DIAGRAMA 1 - CALCULA E IMPRIME LA EDAD DE UNA PERSONA 7


DIAGRAMA 2-BLOQUE DE COMPARACIÓN CON SINTAXIS GENERAL. 7
DIAGRAMA 3-DIAGRAMAS CON UN SOLO BLOQUE DE COMPARACIÓN. 8
DIAGRAMA 4-BLOQUES DE COMPARACIÓN ANIDADOS. 8
DIAGRAMA 5-CALCULA LA EDAD DE UNA PERSONA Y DETERMINAR SI ES MAYOR DE EDAD. 9
DIAGRAMA 6-SINTAXIS DEL BLOQUE ITERATIVO. 11
DIAGRAMA 7-CALCULA E IMPRIME LA TABLA DE MULTIPLICAR DE UN NÚMERO DADO. 12
DIAGRAMA 8-FORMAS DEL CICLO DE ITERACIÓN VARIABLE, CONDICIÓN DE TÉRMINO AL INICIO O AL FINAL
DEL CICLO. 13
DIAGRAMA 9-CAPTURA 2 VALORES Y SE DETIENE CUANDO LA SUMA DE AMBOS SEA MAYOR QUE LA
MULTIPLICACIÓN. 14
DIAGRAMA 10-ALMACENA FRUTAS EN LOS CAJONES, Y POSTERIORMENTE SE MUESTRA EL CONTENIDO DE
ACUERDO CON EL NÚMERO DE CAJÓN SOLICITADO A TRAVÉS DEL TECLADO. 18
DIAGRAMA 11-CALCULA E IMPRIME LA SUMA DE VALORES ALMACENADOS EN FILAS PAR 20
DIAGRAMA 12-CALCULO DE LA MEDIANA CON SUBPROGRAMA 22
DIAGRAMA 13-SUBPROGRAMA DE ORDENAMIENTO CRECIENTE 23

FIGURA 1-ESTRUCTURA CONCEPTUAL DE UN VECTOR DE LONGITUD 5. 17

TABLA 1 - METODOLOGÍA DE LA PROGRAMACIÓN 3


TABLA 2 - SIMBOLOGÍA BÁSICA DE LOS DIAGRMAS DE FLUJO 6
TABLA 3-MATRIZ DE 4 X 5 19

2
Unidad I – Algoritmos y Diagramas de Flujo
Fases para la Resolución de Problemas
1. Lectura y comprensión del problema.
2. Determinar las causas.
3. Buscar las soluciones.
4. Identificar la solución más eficiente y eficaz.
5. Implementar la solución.
6. Prueba y depuración.

Metodología de la Programación
CONCEPTO DESCRIPCIÓN
Toma de datos El programador deberá recibir una descripción clara y detallada de la
aplicación que debe desarrollar y en caso de no recibir suficiente
información, debe solicitarla en la medida necesaria para el desarrollo de
su trabajo.
Modularización Esta fase consiste en la descomposición sucesiva del problema en
módulos o subproblemas cada vez más concretos y detallados. Estos
módulos normalmente se programarán y desarrollarán
independientemente y luego se enlazarán.
Representación gráfica de las En esta etapa se realiza una representación gráfica clara y detallada que
operaciones refleje la secuencia en que deben ser ejecutadas las diferentes
operaciones. Se utilizan los diagramas de flujo.
Codificación en un lenguaje de Una vez que el diagrama de flujo está ya definido se pasa a la fase de
programación escritura del programa en el lenguaje elegido y la obtención del programa
fuente.
Preparación de un conjunto de Es necesario un conjunto de datos que permitan probar el programa
datos cuando se ejecute.
Ejecución y corrección de errores Según sea el tipo de lenguaje elegido así se realizarán las diferentes fases
del programa de la traducción del programa a lenguaje o código de máquina (programa
objeto).
Puesta a punto final del programa El programa se considera terminado cuando se han realizado las pruebas,
y ensayada su fiabilidad con los conjuntos de datos seleccionados y otros
nuevos que se quieran elegir, y no se encuentran ya errores de ningún
tipo.
Documentación del programa Es todo el material escrito que se ha ido produciendo simultáneamente a
la elaboración del programa. La puesta a punto final del programa debe ir
a la par con la documentación del mismo.
La documentación de un programa debe ser de dos tipos:
 Documentación para personal informático.
 Documentación de usuario.
T ABLA 1 - METODOLOGÍA DE LA PROGRAMACIÓN
Fuente: Elaboración propia.

3
Algoritmos
Definición
Un algoritmo es una serie de operaciones detalladas y no ambiguas, a ejecutar
paso a paso, y que conducen a la resolución de un problema.
Es un conjunto de reglas para resolver una cierta clase de problema o una forma
de describir la solución de un problema.
Es el medio por el que se explica cómo puede resolverse un problema, mediante
aproximaciones paso a paso. Se puede formular de muchas formas, siempre y
cuando se realice de modo no ambiguo.
Características
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido.
◦ Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado
cada vez.
Un algoritmo debe ser finito. Todo algoritmo tiene un final.
Las partes de un algoritmo
Tiene tres partes.
◦ Entrada.- Los datos que se necesitan para empezar el proceso.
◦ Salida.- El resultado que produce el algoritmo.
◦ Proceso.- Son las operaciones que se utilizan para obtener el resultado.

4
Ejercicios. Unidad I – Algoritmos y Diagramas de Flujo

1. Son fases de la resolución de problemas.


A. Lectura y comprensión, modularización, codificación.
B. Determinar las causas, búsqueda de la solución, prueba y depuración.
C. Toma de datos, modularización, representación gráfica.
D. Ninguna de las anteriores.
2. Son fases de la metodología de la programación.
A. Determinar las causas, búsqueda de la solución, prueba y depuración.
B. Lectura y comprensión, modularización, codificación.
C. Toma de datos, modularización, representación gráfica.
D. Ninguna de las anteriores.
3. Explicación paso a paso de cómo resolver un problema.
A. Definición de algoritmo.
B. Análisis del problema.
C. Modularización del problema
D. Codificación.
4. Es una característica de los algoritmos.
A. Completo.
B. Congruente.
C. Consistente.
D. Definido.
5. Es la parte del algoritmo en la que se realizan operaciones.
A. Entrada
B. Proceso
C. Salida
D. Ninguna de las anteriores.
E.

5
Unidad II – Estructuras Secuenciales y Selectivas.
Diagramas de Flujo:
Son la representación gráfica de un algoritmo.
Símbolo Función
Se utiliza para iniciar y para finalizar un diagrama de flujo. En
su interior se escriben las palabras INICIO o FIN según el
momento del proceso.

Bloque de Entrada
En su interior se escriben las variables de entrada, se deben
separar por comas.
Simboliza que las variables de entrada se sustituirán por un
valor capturado a través de un dispositivo externo,
generalmente el teclado.
Bloque de Asignación
En su interior se realizan operaciones de asignación.
Tiene un operador que recibe el nombre de asignador y se
simboliza con una flecha que mira a la izquierda.
La variable que queda a la izquierda del asignador recibe el
valor de la expresión que se encuentra a la derecha.
La expresión de la derecha puede tomar la forma de:
VARIABLE  EXPRESIÓN  Una operación aritmética.
 Una función – SQRT(), MOD(), INT()
 Una constante.
 Otra variable.
Bloque de comparación
En su interior se realizan operaciones lógicas o de
comparación.
En su forma elemental se comparan dos expresiones
separadas por el operador lógico que convenga.
Los operadores lógicos son: >, <, >=, <=, =, <>
Bloque iterativo
Marca el inicio de un ciclo de iteraciones fijas.
En su interior se escriben los elementos que acompañan a
este tipo de ciclo.
La variable de control del ciclo, el valor de inicio, y el número
de iteraciones que se deben realizar
Bloque de Salida
En su interior se escriben las variables que almacenan el
resultado del proceso.
Las variables deberán separarse con comas.
T ABLA 2 - S IMBOLOGÍA BÁSICA DE LOS DIAGRMAS DE FLUJO
Fuente: Elaboración propia.

6
Estructuras secuenciales.
Una operación a continuación de la otra. Se trabaja de arriba hacia abajo.
Ejemplo: Construir el diagrama de flujo para calcular la edad de una persona, conociendo el año
de nacimiento.

INICIO

A_ACT, A_NAC

EDAD A_ACT - A_NAC

EDAD

FIN

DIAGRAMA 1 - CALCULA E IMPRIME LA EDAD DE UNA PERSONA


Fuente: Elaboración propia.

Estructuras Selectivas, de comparación o decisión.


Son aquellas que en el proceso incluyen opciones, situaciones en las que es necesario
realizar comparaciones, y construir los caminos y operaciones dependiendo del resultado
de estas. Para representar las operaciones lógicas se utiliza el rombo.
Se incorpora la figura del rombo, en el que se escriben las expresiones que deben
compararse, del resultado se tomará uno de dos caminos.
Ejecuta una determinada acción cuando se cumple una determinada condición. La
selección Si – entonces evalúa la condición y:

Si la condición se cumple, es verdadera, entonces toma el camino del Si, se realiza la


acción o acciones necesarias.
Si la condición es falsa tomará el camino del No.

DIAGRAMA 2-B LOQUE DE COMPARACIÓN CON SINTAXIS GENERAL .


Fuente: Elaboración propia.

7
Las comparaciones le dan mucha fuerza a la construcción de los diagramas de flujo, a
través de ellos se podrán resolver infinidad de situaciones.
Las estructuras que podrán construirse son muy diversas. A continuación, se muestran
algunas de ellas. Todo depende de la solución que se necesite.

DIAGRAMA 3-D IAGRAMAS CON UN SOLO BLOQUE DE COMPARACIÓN .


Fuente: Elaboración propia.

La instrucción SI se utiliza para diseñar estructuras de selección que contengan más de


dos alternativas.

Una sentencia SI_entonces puede tener otra estructura SI_entonces, y esta a su vez
puede contener otra, y así sucesivamente; al mismo tiempo, dentro de cada estructura
pueden existir diferentes acciones.
Las estructuras SI interiores a otras estructuras SI reciben el nombre de anidadas.

DIAGRAMA 4-BLOQUES DE COMPARACIÓN ANIDADOS .

8
Fuente: Elaboración propia.
Ejemplo: Construir un diagrama de flujo para calcular la edad de una persona conociendo
el año de nacimiento y determinar si es mayor de edad.

INICIO

A_ACT, A_NAC

EDAD A_ACT - A_NAC

EDAD >= 18 MSG “ES MAYOR DE EDAD”

MSG “NO ES MAYOR DE EDAD”

MSG, EDAD

FIN

DIAGRAMA 5-C ALCULA LA EDAD DE UNA PERSONA Y DETERMINAR SI ES MAYOR DE EDAD .


Fuente: Elaboración propia.

9
Ejercicios Unidad II – Estructuras Secuenciales y Selectivas
1. Construir un diagrama de flujo para calcular e imprimir la mitad de una cantidad.
2. Construir un diagrama de flujo para calcular e imprimir la edad de una persona al
año actual, se conoce el año de nacimiento.
3. Construir un diagrama de flujo para calcular e imprimir el número de horas extras
realizadas por una persona durante la semana, sabiendo que la jornada laboral
normal es de 40 horas.
4. Construir un diagrama de flujo para calcular e imprimir el porcentaje de una
cantidad.
5. Construir un diagrama de flujo para calcular e imprimir el total a pagar si se debe
aplicar un porcentaje de descuento.
6. Construir un diagrama de flujo para calcular e imprimir el total a pagar con el
porcentaje de IVA incluido.
7. Construir un diagrama de flujo para calcular la edad de una persona y determinar
si es o no mayor de edad.
8. Construir un diagrama de flujo para determinar si una persona hizo o no horas
extras y calcular e imprimir el pago que recibirá por éstas, sabiendo que las horas
extras se pagan al doble de una hora normal.
9. Construir un algoritmo para determinar la renta de una vivienda de acuerdo con la
zona en la que se encuentra: en el norte la renta es de 8000, en el sur de 1000, en
el oeste de 3000 y en el oriente de 2000.
10. Construir un diagrama de flujo para calcular e imprimir el total que debe pagar una
persona sabiendo lo siguiente: al finalizar su compra deberá sacar una pelotita de
un ánfora, si la pelota es verde no pagará, si la pelota es amarilla tendrá un 50%
de descuento, si es roja no tendrá porcentaje de descuento.

10
Unidad III – Ciclos de Iteración Fija y Variable
Los ciclos o bucles
Los ciclos se utilizan cuando un proceso debe ser repetido varias veces.
Cada repetición del proceso recibe el nombre de iteración.

Ciclos de Iteración Fija


Cuando el número de veces que se repetirá la iteración se conoce de antemano, se
dice que el ciclo es de iteraciones fijas.
Ejemplo: Calcular el pago mensual de 100 trabajadores.
Observemos: En el ejemplo anterior, el texto nos permite saber que el proceso para
calcular el pago mensual deberá repetirse 100 veces (iteración fija).

El bloque iterativo
Los bloques de iteración facilitan la escritura de los diagramas de flujo, ya que cada vez
que descubrimos (o sospechamos) que tenemos un ciclo de iteración fija controlado por
un contador, dibujamos dicho bloque e integramos el ciclo.

Es importante recordar que el corazón del ciclo se encuentra en la porción del proceso, el
bloque de iteración representa simplemente el mecanismo para entrar y salir del proceso.

DIAGRAMA 6-S INTAXIS DEL BLOQUE ITERATIVO .


Fuente: Lenguajes de diagramas de flujo.

11
El bloque iterativo se utiliza para controlar las veces que se repite un proceso. Los
elementos que lo forman son:
Variable de control que

incrementa de uno en
J = 1 100
uno y controla las
repeticiones del proceso.
• Operador igual.
PROCES
O
• Valor inicial (constante,
variable u operación).
• Flecha que mira a la
derecha.
• Valor final (constante, variable u operación).
• El bloque de iteración representa el mecanismo de entrada y salida del ciclo.
• El ciclo empieza al entrar al bloque por la flecha superior.
• Al entrar a través de la flecha de la izquierda, la variable de control incrementa su
valor en uno hasta alcanzar el (valor final + 1). El ciclo se repite tantas veces como
marque el valor final.
• Al salir del ciclo el valor de la variable de control es (valor final + 1).
Ejemplo: Diagrama de flujo para calcular e imprimir cada resultado de una tabla de
multiplicar.
 NUM – Número al que
INICIO se calculará la tabla de
multiplicar.
 J – Variable control.
 Para este ejemplo
NUM además de controlar la
repetición del ciclo
guarda la secuencia de
números por los que
multiplicará el NUM.
J = 1 10
 RESULT – Guarda el
valor de cada
multiplicación.

RESULT NUM * J FIN

RESULT

12
DIAGRAMA 7-C ALCULA E IMPRIME LA TABLA DE MULTIPLICAR DE UN NÚMERO DADO .
Fuente:Elaboración propia.

Ciclos de Iteración Variable


Cuando el número de veces que se repetirá la iteración está determinado por una
condición, se dice que el ciclo es de iteraciones variables. Por ser una condición la que
mantiene o finaliza las iteraciones se utiliza el rombo para dar marco al proceso repetitivo.
Ejemplo: Calcular el pago mensual de los trabajadores de una empresa, hasta alcanzar
un monto total de $ 50,000.00.
Estas son las formas que puede tomar un ciclo de iteraciones variables.

MIENTRAS la
condición se cumpla
el ciclo se repite.

El ciclo se termina
HASTA que se
cumpla la condición.

DIAGRAMA 8-F ORMAS DEL CICLO DE ITERACIÓN VARIABLE , CONDICIÓN DE TÉRMINO AL INICIO O AL FINAL DEL CICLO .
Fuente: Elaboración propia.

13
Ejemplo: Construir un diagrama de flujo para leer dos valores y detenerse cuando la
suma de ambos sea mayor que su multiplicación.

INICIO

SUMA 0
MULT 1

SI SUMA,
SUMA >=
MULT MULT

NO

A, B FIN

SUMA A + B
MULT A * B

DIAGRAMA 9-C APTURA 2 VALORES Y SE DETIENE CUANDO LA SUMA DE AMBOS SEA MAYOR QUE LA MULTIPLICACIÓN .
Fuente: Elaboración propia.

Las Variables de Trabajo

Contador
Un contador es una variable que guarda el valor que resulta del incremento o
decremento de una constante cada vez que se repite el proceso dentro de un ciclo
(iteración).
El incremento es siempre constante.
El incremento puede ser positivo o negativo.
CONT  CONT +1 o CONT  CONT - 1

Acumulador
Un acumulador es una variable que tiene la función de almacenar la cantidad resultante
de sumas consecutivas efectuadas cada vez que se repite el proceso dentro de un ciclo
(iteración).

14
El incremento o decremento de cada suma es variable en lugar de constante como en el
caso del contador.
ACUM  ACUM + VALOR
Bandera, Switch o Interruptor
La bandera es una variable que indica que un determinado suceso ha ocurrido.
Solamente toma uno de dos valores 0 o 1.
El 0 indica apagado y el 1 encendido.
Generalmente el valor inicia como apagado fuera del ciclo y dentro del ciclo se
encenderá si una situación esperada se presenta.
La bandera perderá su efectividad si se apaga y enciende dentro de un mismo ciclo.

Ejercicios – Unidad III – Ciclos de Iteración Fija y Variable


1. Construir un diagrama de flujo para calcular e imprimir la edad de N trabajadores.
2. Construir un diagrama de flujo para calcular e imprimir el nuevo salario de N
trabajadores que recibirán un 3.5% de aumento.
3. Construir un diagrama de flujo para capturar 100 cantidades y determinar cuántas
son 0, cuántas son positivas y cuántas son negativas.
4. Construir un diagrama de flujo para calcular e imprimir el nuevo salario de N
trabajadores que recibirán un 3.5% de aumento y la suma total de estos.
5. Construir un diagrama de flujo para calcular e imprimir el nuevo salario de N
trabajadores que recibirán un 3.5% de aumento y cuántos alcanzan un nuevo
salario igual al salario mínimo vigente.
6. Construir un diagrama de flujo para capturar valores y calcular e imprimir el
promedio de los números positivos hasta que la suma de estos sea mayor que
1000.
7. Una persona se encuentra realizando apuestas utilizando una moneda, si al tirar
sale "CARA" aumentará a su capital el doble de lo apostado, de lo contrario
perderá lo apostado. La persona se detendrá cuando su capital sea menor que $
1000.00. Calcular e imprimir la cantidad de capital con que termina y el número de
veces que perdió. Considera que lo apostado es un dinero que resta al capital.
8. Se ha contratado a una empresa de transporte para llevar cierta cantidad de
bultos. Las condiciones que ponen para un transporte seguro son las siguientes:
Transportará hasta 18000 Kg, el peso de cada bulto no podrá ser mayor a los 250
Kg. Los bultos con un peso mayor a 150 Kg pagarán 90 pesos/Kg, con un peso
mayor a 25 Kg y hasta 150 Kg pagarán 45 pesos por Kg, los bultos con un peso
menor o igual a los 25 Kg no pagarán.
Construir un diagrama de flujo para calcular e imprimir, la suma total a pagar, el
peso total que se transportará y el número de bultos.
9. Opción Múltiple - Realiza el recorrido de los siguientes diagramas y responde:
a. Es el valor de I al salir del ciclo.
b. Es el valor de X al salir del ciclo.

15
a)

b)

16
Unidad IV – Arreglos de Una y Dos Dimensiones
Las variables dimensionadas permiten conservar en la memoria valores que pueden ser
utilizados varias veces durante el proceso. Su funcionamiento es idéntico al de las
variables simples, eso quiere decir que funcionan con las operaciones estudiadas hasta el
momento. En este curso estudiaremos dos tipos de variables dimensionadas: las de una
dimensión, también conocidas como vectores y las de dos dimensiones o matrices.

Arreglos de Una Dimensión o Vectores


Definición:
Son estructuras de memoria que podemos considerar como una colección de cajones
numerados secuencialmente en los que almacenaremos datos.

F IGURA 1-E STRUCTURA CONCEPTUAL DE UN VECTOR DE LONGITUD 5.


LOS DATOS ALMACENADOS EN CADA CAJÓN PERMANECEN EN LA MEMORIA .
 Pueden ser utilizados varias veces durante el proceso hasta que son sustituidos por
un nuevo valor.
 Los valores almacenados en esta estructura pertenecen a un mismo conjunto y a un
mismo tipo de datos.

El número total de cajones determina LA LONGITUD DEL VECTOR.


Ejemplo: Para este caso la LONGITUD es 5.
El número de cada cajón se utiliza para recuperar el dato almacenado.

Sintaxis:
El nombre del vector debe tener relación con el contenido almacenado.
Ejemplo: Si se almacenan nombres de frutas el vector se llamará FRUTA.
Para recuperar el dato guardado en un cajón se utiliza la siguiente forma:
El nombre del vector seguido de paréntesis con el número del cajón
correspondiente.
Ejemplo: Para recuperar el dato guardado en el cajón 4 del vector FRUTA.
FRUTA(4).
El número puede ser sustituido por una variable que tenga un número contenido
dentro de la longitud del vector.
J3

17
FRUTA(J)
De esta forma se recuperaría el dato guardado en el cajón 3.
El número del cajón puede trabajarse de forma independiente, esto es, sin estar
acompañado del nombre del vector y los paréntesis.

Ejemplo:

DIAGRAMA 10-A LMACENA FRUTAS EN LOS CAJONES , Y POSTERIORMENTE SE MUESTRA EL CONTENIDO DE ACUERDO
CON EL NÚMERO DE CAJÓN SOLICITADO A TRAVÉS DEL TECLADO .

Fuente: Elaboración propia.

18
Arreglos de Dos Dimensiones o Tablas, o Matrices
Definición:
Una MATRIZ es una estructura formada por filas y columnas que también recibe el
nombre de TABLA.
Se utilizan cuando es necesario conservar valores en la memoria para utilizarlos
posteriormente durante el proceso, generalmente para realizar búsquedas.
Comúnmente los elementos que pertenecen a una misma fila representan un conjunto de
datos relacionados.
La figura que se muestra es una tabla de 4 filas y 5 columnas.

20 14 13 12 11

18 13 15 2 9

5 3 4 14 16

0 9 6 3 1

TABLA 3-M ATRIZ DE 4 X 5


Fuente: Elaboración propia.

Para trabajar con el dato almacenado, cada cajón tiene una dirección formada por el
número de fila y el número de columna en que se encuentra.
Ejemplo: El número 2, está almacenado en (2,4).
 Los datos almacenados en cada cajón permanecen en la memoria.
 Pueden ser utilizados varias veces durante el proceso hasta que son sustituidos
por un nuevo valor.
 El número total de cajones es la dimensión de la tabla.
o La dimensión de la tabla es el resultado de multiplicar el número de filas
por el número de columnas.

Para este ejemplo la dimensión es: 4 x 5 = 20


Sintaxis:
 El nombre de la tabla o matriz debe tener relación con el contenido almacenado.

Ejemplo: Si se almacenan datos de medicamentos la tabla deberá llamarse


MEDICINA.
 Para recuperar el dato almacenado en un cajón se utiliza la siguiente forma:

19
El nombre de la matriz seguido de paréntesis con la dirección del cajón
correspondiente. La dirección es un par ordenado (x,y), en donde la x es el
número de fila y la y el número de columna.
Ejemplo: MEDICINA(2,4), trabajando con lo almacenado en la fila 2, columna 4.
Los números pueden ser sustituidos por variables.
F2
C4
MEDICINA(F,C)
 Para obtener el contenido de un cajón, el nombre de la tabla siempre se
acompañará de la dirección.

 La dirección se puede trabajar sin el nombre de la tabla.


El paréntesis y la coma solamente se utilizan cuando se trabaja con el contenido
del cajón.
Los paréntesis separan el nombre de la tabla de la dirección. La coma separa la
fila de la columna.
 La fila y la columna son elementos independientes.
Ejemplo: Diagrama de flujo que muestra el llenado de una matriz de 4 x 5 e imprime la
suma de los valores almacenados en cada fila par.

INICIO

SUM_F 0

F=1 4

C=1 5

F=1 4
VAL(F,C)
FIN
C=1 5

SUM_F

MOD(F/2)
SUM_F SUM_F+VAL(F,C)
=0

Diagrama 11-Calcula e imprime la suma de valores almacenados en filas par


Fuente: Elaboración propia.

20
Ejercicios Unidad IV – Arreglos de Una y Dos Dimensiones
1. Construir un diagrama de flujo para calcular e imprimir el promedio de las
calificaciones de 50 alumnos y mostrar cuántos de ellos tuvieron una calificación
menor al promedio del grupo.
2. Construir un diagrama de flujo para contar e imprimir cuántas personas de algunos
estados de la república están en una fila de 1000 personas.
3. Construir un diagrama de flujo para buscar e imprimir en un vector con valores
ordenados de manera creciente un par de valores duplicados, si no se encuentra
imprimir el mensaje correspondiente.
4. Construir un diagrama de flujo que forme un conjunto C con la unión de los
elementos de los conjuntos A y B.
5. Construir un diagrama de flujo que forme un conjunto C con la intersección de los
elementos de los conjuntos A y B.
6. Construir una tabla de 5 x 6, en ella está contenido un cero, imprime su ubicación.
7. Construir una tabla de 8 x 8 imprimir la suma de los elementos que se encuentran
en la diagonal.
8. Construir una tabla de 7 x 8 en donde el contenido de cada ubicación es igual a la
suma de la fila y la columna.
9. Construir una tabla de M x 4 columnas, en ella se almacenan medicamentos. En la
primera columna se almacena los códigos, en la segunda los nombres, en la
tercera la fecha de caducidad y en la cuarta la existencia. Localizar aquellos
medicamentos con fecha de caducidad menor a una fecha dada y modificar la
existencia a 0.
10. Construir una tabla en la que se almacenan las ventas de una semana de una
cadena de 5 tiendas. Calcular e imprimir las ventas de cada día.

21
Unidad V – Subprogramas
Los subprogramas son rutinas, procedimientos o conjuntos de instrucciones que
realizan una labor específica. Los subprogramas o subrutinas nacieron de la necesidad
de no repetir innecesariamente un trabajo ya hecho. Pueden invocarse desde el cuerpo
del programa principal cuantas veces se desee. Constituyen el núcleo de lo que se
denomina programación estructurada, y permiten la descomposición de un problema
complejo en subproblemas más sencillos abordables de forma independiente.
El bloque que se utiliza para mostrar en el diagrama de flujo la presencia de un
subprograma es el siguiente:

Ejemplo:
Diagrama de flujo para calcular la mediana de un grupo de valores. Recordemos que para
calcular la mediana el grupo de datos deberá estar ordenado en orden creciente.
Entonces el diagrama de flujo contendrá una llamada a un subprograma para ordenarlos.

DIAGRAMA 12-C ALCULO DE LA MEDIANA CON SUBPROGRAMA


Fuente: Elaboración propia.

22
DIAGRAMA 13-S UBPROGRAMA DE ORDENAMIENTO CRECIENTE
Fuente: Elaboración propia.

23
SOLUCIONES

24
Soluciones de los ejercicios Algoritmos
y Diagramas de Flujo
1. Son fases de la resolución de problemas.
A. Lectura y comprensión, modularización, codificación.
B. Determinar las causas, búsqueda de la solución, prueba y depuración.
C. Toma de datos, modularización, representación gráfica.
D. Ninguna de las anteriores.
2. Son fases de la metodología de la programación.
A. Determinar las causas, búsqueda de la solución, prueba y depuración.
B. Lectura y comprensión, modularización, codificación.
C. Toma de datos, modularización, representación gráfica.
D. Ninguna de las anteriores.
3. Explicación paso a paso de cómo resolver un problema.
A. Definición de algoritmo.
B. Análisis del problema.
C. Modularización del problema
D. Codificación.
4. Es una característica de los algoritmos.
A. Completo.
B. Congruente.
C. Consistente.
D. Definido.
5. Es la parte del algoritmo en la que se realizan operaciones.
A. Entrada
B. Proceso
C. Salida
D. Ninguna de las anteriores.

25
Soluciones de los ejercicios secuenciales
y alternativos

26
27
28
29
30
Soluciones de los ejercicios con ciclos y
variables de trabajo

31
32
33
Respuesta: Infinito.

Respuesta: 20

34
Soluciones de los ejercicios con
variables dimensionadas

35
36
37
38
39
REFERENCIAS

Forsythe, A., Keenan, T., Organick, E., Stenberg, W. (1981). Lenguajes de Diagramas de Flujo. Quinta Edición.
Limusa, México.
Joyanes, L. (2008). Fundamentos de Programación. Cuarta Edición. McGraw Hill, España.
Joyanes, L. (2013). Fundamentos de Programación. Primera Edición. McGraw Hill, España.

40

También podría gustarte