Subido por Jhon .C

Dev ++

Anuncio
El conjunto de operaciones que se realizan sobre una cierta información se denomina
tratamiento de la información, el mismo que va a constar de los siguientes elementos:
ENTRADA
TRATAMIENTO
DE LA
INFORMACIÓN
PROCESO
SALIDA
RECOGIDA DE DATOS
DEPURACION DE DATOS
ALMACENAMIENTO
ARITMETICO
Y/O LÓGICO
RECOGIDA DE RESULTADOS
DISTRIBUCION DE RESULTADOS
HERRAMIENTAS QUE AYUDAN A FORMAR UN PROGRAMA
1. El Hardware compuesto por las computadoras y sus dispositivos periféricos.
2. El Software entre los cuales se encuentran los sistemas operativos.
3. Los Algoritmos para resolver los problemas de programación así como programas
para medir, evaluar y probar la corrección del programa.
4. Una metodología de programación.
CARACTERISTICAS QUE DEBE CUMPLIR UN PROGRAMA
1.
2.
3.
4.
Funcionar y realizar la tarea encomendada.
Poder ser leído y comprendido.
Poder ser modificado si es necesario sin mucho esfuerzo.
Terminar en el tiempo previsto y dentro del presupuesto.
Cualquier programa escrito por el programador en lenguaje de alto nivel (PASCAL,
FORTRAN, ALGOL, C, etc.) conocido como PROGRAMA FUENTE debe ser
traducido mediante un programa compilador, el mismo que es específico del
computador y es el único que entiende la máquina, el computador verifica que las
instrucciones del programador estén escritas regidas a las reglas semánticas y
sintácticas del lenguaje utilizando, en el caso de existir mensajes de error, indica que
tipo de error es donde se encuentra y cual es la solución. El momento de no existir
ningún tipo de error, el programa compilador traducirá el programa fuente a un
programa objeto en lenguaje máquina.
El programa compilado (traducido al lenguaje maquina) se denomina programa objeto
o ejecutable que junto con los datos introducidos por el usuario se ejecuta para obtener
resultados como indica el gráfico.
1
DATOS
PROGRAMA
FUENTE
PROGRAMADOR
LENGUAJE
LLL
NATURAL
EJECUCION
PROGRAMA
COMPILADO
PROGRAMA
OBJETO
COMPUTADOR
LENGUAJE
MAQUINA
EJECUCION
PROGRAMA
OBJETO
RESULTADO
ALGORITMOS
“Las computadoras hacen lo que se les indica que hagan, que no siempre es
necesariamente lo que el usuario quiere que haga”
se debe evitar la repetición de procesos o de instrucciones que se le proporciona al
computador.
En la solución de cualquier problema mediante la computadora existen 2 fases:
FASE DE SOLUCION.- Se concentra el programador para diseñar un algoritmo que
resuelva esta fase es independiente de los lenguajes la solución elaborada puede
traducirse al lenguaje que se desee o más adecuado según su aplicación.
FASE DE INSTALACION.- Consiste en la traducción del algoritmo elaborado en
lenguaje de alto nivel.
ALGORITMO.- Es una secuencia ordenada de pasos donde queda marginada la
repetición de procesos que lleva a la solución de un problema en un tiempo finito, tiene
varias propiedades.
1. Los pasos de un Algoritmo deben ser simples.
2. Seguir un orden establecido.
3. Los Algoritmos deben ser efectivos en un número finito de pasos.
CARACTERISTICAS DE LOS ALGORITMOS
1. Entrada: Constituida por el conjunto de datos con los que se trabajara.
2. Proceso: instrucciones que conjuntamente con los datos realizar una tarea
determinada.
3. Salida: Esta dada por los resultados de la información procesada con los datos
introducidos.
TIPOS DE DATOS.Según los procesos que se vaya a realizar en un programa se debe ingresar los datos
necesarios para lo cual se los clasifica de la siguiente manera:
2
NUMERICOS
INDICAN
CANTIDAD
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
REALES
ALFABETICOS
TIPO
DE
DATOS
ENTEROS
ALFANUMERICOS
NUMERICOS
INDICAN
POSICION
SIMBOLOS ESPECÍFICOS
A, b, c, d,
e,......
CHART un caracter
STRING uno o
varios caracteres
0, 1, 2, 3, 4, 5, 6,.......
,;.:-_[]{}
IDENTIFICADORES.Es un carácter o conjunto de caracteres que como función tiene la de representar algún
valor o información que se le asigne a este. El identificador debe cumplir con algunas
características para que se llame así:
1. Siempre debe empezar con un carácter alfabético.
2. Entre un carácter y otro nunca debe existir espacios en blanco.
3. A continuación del primer carácter alfabético puede ir otro carácter cualesquiera
Eje.
Ejemplo
A
A5
5A
6
Ejemplo
Ejemplo-2
es o no un
identificador.
– si
– si
– no
– no
- si
- si
OPERACIÓN DE ASIGNACION.En una operación de asignación al identificador que se encuentra a la izquierda del
signo de igualdad será el receptor de la operación o del valor que provenga de la
operación que se encuentra a la derecha Ej.
C=A+B
Que indica que el resultado de A + B se le asigne o almacene al identificador C
VARIABLE.Es un identificador que parte al inicio del programa con un valor mientras se ejecuta el
programa hasta finalizarlo, va tomando varios valores, almacenando en él ultimo valor
Ej.
3
Sí A parte con el valor de 2 y B con el valor de 3,
C=A+B
C=C*B
C=C/A
C en la primera instrucción tomaría el valor de 5, en la segunda el valor de 8 y por
ultimo el valor de C quedaría en 4.
CONSTANTE.Similar a la variable con la diferencia que ha un identificador se le da un único valor
desde que inicia hasta que finaliza, por lo general los valores constantes representan
magnitudes físicas, matemáticas, etc., así como también las constantes personalizadas
por el programador
OPERACIÓN DE ACUMULACION.Cuando se realiza una operación de acumulación sucesiva es importante dar un valor
inicial al identificador, el mismo que no deberá altera el resultado de la primera
operación de las tantas que se realizan para lo cual se sigue el formato
1. - VALOR INICIAL DEL ACUMULADOR.
2. - ACUMULADOR = ACUMULADOR (OPERACIÓN) VALOR CONSTA
NUEVO
ACTUAL
+, -, *, /
O VARIABLE
Ejemplo
Acu = 0
Acu = Acu + 3
En la primera ejecución se deberá sumar 0 + 3 y el valor nuevo del acumulador será 3,
en una segunda ejecución el valor nuevo pasa a ser el valor actual del acumulador y
sumado 3, el valor nuevo del acumulador será 6, y de esta forma se repite todo el
proceso hasta que cumpla una cierta condición.
CONTADOR.Se basa en el acumulador con sus mismas reglas pero limitado las operaciones que se
puede realizar y que al ser contador como su nombre lo dice el valor con el que se
opera debe ser constante.
1. - VALOR INICIAL DEL CONTADOR
2. - CONTADOR = CONTADOR (OPERACIÓN) VALOR CONSTA
NUEVO
ACTUAL
+, - ,
CLASES DE OPERACIONES.Dependiendo de los datos que se tenga se puede realizar diferentes tipos de operación,
se puede considerar entre las operaciones básicas las siguientes.
+
*
/
4
ARITMETICAS
OPERADORES
AND
NOR
NOT
LOGICAS
RELACION
=
<
>
<>
OPERADORES ARITMETICOS.Generalmente trabaja con los datos numéricos que son los únicos con los que se realizan
operaciones. Los Operadores Aritméticos más usados como base para las operaciones,
son la suma, resta, multiplicación, división que unidas con los diferentes datos
numéricos se los representa así
OPERACION
SUMA
RESTA
MULTIPLICACIÓN
DIVISION
OPERADOR 1
ENTERO
ENTERO
REAL
ENTERO
ENTERO
REAL
ENTERO
ENTERO
REAL
ENTERO
ENTERO
REAL
OPERADOR 2
ENTERO
REAL
REAL
ENTERO
REAL
REAL
ENTERO
REAL
REAL
ENTERO
REAL
REAL
RESULTADO
ENTERO
REAL
o Entero o Real
ENTERO
REAL
o Entero o Real
ENTERO
Entero o real
o Entero o Real
Entero o real
Entero o real
Entero o real
En el caso de la división existe una situación especial en donde se va a utilizar funciones
de bibliotecas, que son procesos internos dentro del paquete de programación que
facilita al usuario el trabajo de cálculo. Ej. las funciones de biblioteca para calcular las
funciones trigonométricas, raíz cuadrada, potenciación, etc.
NOTA : Para la división de solo valores enteros y para tener un resultado entero se
utiliza dos funciones de biblioteca que son: DIV y MOD; cada una tiene su cualidad
en el momento de operar.
5
Operador 1
Operador 1
Operador 1
operador 2
Residuo
cociente
DIV
MOD
operador 2
operador 2
=
=
COCIENTE
RESIDUO
Ejemplo 1. - 124 dividido para 6
124 DIV 6 = 20
124 MOD 6 = 4
Ejemplo 2. - 17.5 dividido para 5. No se puede utilizar en este ejemplo las
funciones de biblioteca DIV o MOD por no ser los dos operadores enteros
Dependiendo del ejercicio del que se va a realizar, o se usa el DIV o se usa
el MOD ó los dos; no existe ninguna jerarquía entre los 2 operadores.
Otra función de Biblioteca es el INT (X); siendo X un dato entero o real,
indicando la función que toma la parte entera del número o parámetro X.
C = INT (3,5)
C= 3
E = INT (7,9)
E=7
D = INT (4)
D=4
JERARQUÍA DE LAS OPERACIONES
1. – Destrucción de paréntesis
2. – Potencia y Radical
3. – Multiplicación y División
4. – Suma y Resta
2+5*4–2+6 2+1*7
2 + 5 * 4 * 36 + 1 * 7
2 + 20 – 72 + 7
- 43
Cuando hay más de una operación, una a continuación de la otra que
tenga la misma jerarquía, se opera de izquierda a derecha.
S = 2+5/2.5+(7 (2+3*8/6-4)
(7-3)/2
S=
2+5 / 2.5 + (7
(2+4-4)
S=
2+5 / 2.5 + (7
(2 ) (2)
S=
2+5 / 2.5 + 2401
(2)
6
S = 2405
OPERADORES LOGICOS.Este tipo de operadores permiten realizar por medio de un bloque de condición varias
preguntas, utilizando cualquier tipo de datos. Como operadores bases entre los lógicos
se tiene el operador AND (Y), que escogerá como condición verdadera si todas las
preguntas son verdaderas, si por lo menos una es falsa ira por la opción falsa. El otro es
el operador OR, que tiene un concepto contrario al anterior, es decir opta por la
condición como verdadera si por lo menos una de las varias preguntas es verdadera, y es
la condición falsa cuando todas las condiciones son falsas. Mientras que el operador
lógico NOT niega lo que es verdadero y viceversa.
OPERADORES DE RELACION O COMPARACION.
Al igual que los otros tipos de operadores los de comparación tienen operadores bases
como son: > (mayor que), < (menor que), él = (igual que).
PROGRAMACION ESTRUCTURADA
Conocida como programación modular ya que las instrucciones se ejecutan una tras de
otra y de la misma manera será más conveniente realizar cualquier modificación.
Entendiendo por modificación añadir, quitar, o cambiar algún bloque de proceso.
REGLAS PARA UTILIZAR LA PROGRAMACIÓN ESTRUCTURAL
1. Siempre un programa debe tender a ser general y considerar todos los posibles
casos que se pueden presentar.
2. Todas las estructuras deben poseer una sola entrada y una sola salida
3. Las estructuras son independientes entre sí indicando que cada estructura puede
trabajar con otros datos.
4. Entre todas las estructuras se pueden combinar, o una estructura puede contener a
otra, o también una estructura puede estar a continuación de otra.
PASOS PARA LA RESOLUCION DEL PROBLEMA
1. Conocer a fondo y claramente el problema.
2. Una vez conocido el problema analizar si se tiene o no las herramientas para
resolver el problema.
3. Trazar un plan o una metodología a seguir para resolver el problema.
CLASIFICACION DE LAS ESTRUCTURAS DE PROGRAMACION
7
ESTRUCTURA
SECUENCIAL
CLASIFICACION
ESTRUCTURAS
ESTRUCTURA DE
BIFURCACION O
CONDICION
ESTRUCTURA
ITERACION O
REPETICION
B. SIMPLE
B. ANIDADA
B. COMPUESTA
B. MULTIPLE
EST. WHILE<CONDICION>DO
EST. DO <CONDICIO>WHILE
EST. FOT<VI>TO<VF>DO
Donde VI igual a valor inicial y VF valor final.
DIAGRAMAS DE FLUJO.
Un diagrama de flujo es un paso intermedio entre el algoritmo y el lenguaje de
programación, que se basa en un algoritmo ya que utiliza las mismas reglas, con la
diferencia que en vez de utilizar palabras para representar una instrucción, en el
diagrama de flujo se utiliza bloques, como los que se detalla a continuación
BLOQUES UTILIZADOS PARA LA DIAGRAMACION
BLOQUE
NOMBRE
TERMINAL
ENTRADA DE
DATOS
ASIGNACION O
PROCESO
SALIDA DE
RESULTADOS
FUNCION
Indica el inicio o fin de un
diagrama de flujo para lo cual
dentro del bloque debe ir la palabra
inicio o fin respectivamente. En un
D: F: debe existir un solo inicio y
un solo final.
Utilizando cualquier medio o
periférico de entrada permite el
ingreso de información, dentro de
este bloque debe ir identificadores
y no valores.
Indica la ejecución de cualquier
proceso ejecutable ó asignación de
Información.
Utilizando cualquier medio o
periférico de salida permite dar a
conocer los resultados obtenidos de
los procesos, en este bloque se
debe visualizar identificadores
8
CONDICION
REPETICIÓN
CONECTOR
LINEAS DE
FLUJO
Utilizando por lo menos una
pregunta aparecen dos o más
alternativas cada una de estas
ejecutando un proceso diferente,
debiendo ejecutarse un solo de
estos procesos.
Controlada por una pregunta o
condición permite ejecutar un
proceso varias veces hasta que la
condición diga lo contrario.
Permite seguir el flujo del
diagrama de una posición a otra
por lo que se utiliza dos
conectores. Uno donde se corta la
secuencia y el segundo donde
continua el proceso anterior dentro
de la circunferencia debe ir un
identificador siendo igual en
ambos conectores.
Indica la secuencia en la que se
ejecutara cada una de las
instrucciones del diagrama.
ESTRUCTURA SECUENCIAL
Es la estructura donde las instrucciones se ejecutan una a continuación de otra sin
repetir ninguna de ellas o saltar de un lugar a otro, esta estructura es la base para las
demás estructuras en vista de que existen cinco bloques que conforman la estructura y
estos cinco bloques tendrán que encontrarse en las otras estructuras sin que sea factible
la eliminación o el cambio de posición de cada uno de los bloques, lo que si puede
suceder es que se aumente el número de bloques.
Bloque 1
Bloque 2
INICIO
LECTURA DE
DATOS
Bloque 3
PROCESO
Bloque 4
SALIDA DE
RESULTADO
S
Bloque 5
FIN
9
En el ejemplo No. 11 se pretenderá hacer notar lo semejante que es un algoritmo con un
diagrama de flujo, claro esta que en el uno utilizando palabras y en los otro bloques que
represente cada una de las instrucciones.
11. - Realizar en diagrama de flujo que calcule la velocidad lineal de un móvil.
1. - Inicio
INICIO
2. - Leer (e, t)
e, t
B2
3. - V= e / t
V= e
t
B3
e
20
B1
V
4. - Imprimir ( V )
FIN
5. - fin
t
5
V
4
B4
B5
12. - Realizar en diagrama de flujo que transforme una cantidad X dada en horas
a minutos. ( Como guía el presente ejercicio ya se resolvió como algoritmo en el
ejercicio No. 1)
INICIO
h
1
3
m
60
180
h
m= h*60
m
FIN
3. - Realizar en diagrama de flujo que lea 2 valores sume estas cantidades e
imprima su resultado, lea un 3er valor el mismo que se multiplicara con el
resultado. Imprimir el nuevo resultado. ( El presente ejercicio se lo puede resolver de
dos maneras diferentes, la primera en donde se detalla cada uno de los pasos tal y como
dice el enunciado, mientras que el segundo agrupa los bloques que tienen igual
instrucción y lo representa en uno solo, esta tarea es la más recomendable de presentar
ya que ahorra espacio).
10
A B
3 2
C
5
D E
4 20
INICIO
INICIO
A, B
A B C
4 6 10
A,B,D
C = A+B
D
2
E
20
C=A+B
E=C*D
C
D
C, E
E=D*C
FIN
E
FIN
14. - Realizar en diagrama de flujo que lea 2 valores, y como resultado imprima los
2 valores cambiando de variable (El ejercicio es muy practico ya que permite
intercambiar de valores a las variables. Se puede resolver de dos maneras, la primera sin
utilizar una variable auxiliar, es decir que se trabaje solamente con los dos
identificadores de entrada, para lo cual se utiliza artificios como son las operaciones
aritméticas. En el segundo caso si se utiliza una variable auxiliar, es decir un
identificador que no se lee que en este caso es el identificador C.
No se puede decir solamente que A=B y B=A, porque los dos identificadores quedaran
con el mismo valor, perdiéndose el uno, ya que cada identificador puede almacenar
varios valores, pero de uno en uno, es decir al entrar un nuevo valor se pierde el
anterior
A B
3 6
9 3
6
INICIO
INICIO
A,B
A,B
A = A+B
B = A-B
A = A-B
C=A
A=B
B=C
A,B
A,B
FIN
FIN
A
3
2
B
2
3
C
3
11
ESTRUCTURA DE BIFURCACIÓN
La estructura de bifurcación conocida también como estructura de condición, ya que
permite seleccionar una de dos o más alternativas, en las cuales existen diferentes
procesos, utilizando para esto un bloque de condición. La bifurcación se divide en
bifurcación simple, anidada, compuesta y múltiple.
Bifurcación Simple: Permite seleccionar 1 de 2 alternativas posibles, presentándose
esta bifurcación con los siguientes formatos.
1.- El primer formato es cuando tanto por el camino que cumple y no cumple la
condición, existe un proceso diferente, ademas cumple que tiene una sola entrada y una
sola salida.
NO
SI
CONDICI.
PROCESO 2
PROCESO 1
Si cumple la condición
IF< condición > Then
SI NO
Proceso 1
Else SINO
Proceso 2
2.- El segundo formato es similar al anterior, es decir existe las dos alternativas, pero
cuando cumple la condición realiza un proceso, caso contrario existe el camino de salida
pero sin ningún proceso, de la misma manera cumple la regla de una sola entrada y una
sola salida.
NO
SI
Si cumple <condición> entonces
IF<coNDICIÓN> THEN
Proceso.
CONDIC
IÓN
PROCESO
3.- El tercer formato es especial ya que se presenta en algunos casos, a pesar de que en
algunos lenguajes de programación no existe su codificación ya que no permite que
exista un proceso cuando la condición no cumple sin antes exista un proceso cuando la
12
condición cumple, por lo que en el presente texto también se lo elimina, pero dando dos
soluciones:
NO
SI
CONDIC
IÓN
PROCESO
NO
EXISTE
SOLUCIÓN
CONDICIÓN
=
<
>
COMPLEMENTO
 ó <>
> ó >=
< ó =<
Solución 1. Se puede utilizar el complemento del operador de la condición, de esta
manera los procesos se invierten es decir lo que se resolvía por la alternativa de cumplir
la condición pasa a ser un proceso de la alternativa de cuando no cumple la condición y
viceversa.
Solución 2. Se puede aumentar un proceso por la alternativa cuando cumple la
condición, pero este proceso no debe alterar la ejecución del programa, los procesos que
se puede realizar es la impresión de algún mensaje, o la asignación de un mismo valor.
13
15.- Realizar un
diagrama de flujo que calcule si un número es positivo o negativo,
considerando al cero como positivo. (el presente ejercicio es el mismo de los
algoritmos, No. 3, se presenta en dos formas con la finalidad de hacer notar la solución
1 descrita anteriormente, en donde decía que al cambiar el operador de la condición los
procesos se invertían, lo que se puede notar en el ejemplo que esta a continuación, se
cambia el > por el complemento que será <. Esto se puede aplicar cuando se tenga el tercer
formato de la estructura de bifurcación.)
INICIO
INICIO
N
6 Positivo
- 10 negativo
N
NO
NO
SI
N>0
N<0
N, positivo
N, positivo
N,negativ
o
N
SI
N, negativo
FIN
FIN
16.- Realizar un diagrama de flujo que calcule si un número es par o impar.
INICIO
N
3 Impar
8 Par
N
R = N mod 2
no
R=0
N”Impar”
si
N”par”
FIN
14
17.- Realizar un diagrama de flujo que lea un número X, y si el número es impar
imprima el número inmediato superior y en caso, de ser par imprima el mismo
número.( El ejercicio se presta para entender las 2 solución para el formato 3 de la
estructura de bifurcación, ya que se necesita realizar una condición pero solamente en
una alternativa existe un proceso, mientras que en la otra no, entonces si el proceso se
realiza cuando la condición no cumple, es de notar que cuando la condición cumple no
existirá ningún proceso con lo que se estaría en el tercer caso de la estructura de
bifurcación.)
INICIO
INICIO
X
N
R = X mod 2
NO
R=0
X = X+1
R = X mod 2
SI
R=0
X = X+1
X
X
X
FIN
FIN
15
El primer caso sería el no valido para lo cual se daría la solución 2 donde se crea un
proceso, en este caso se divide un proceso que sería en vez de que se imprima en una
parte general se imprima parcialmente en cada alternativa de la condición con lo que
estaría resulto en el segundo caso. O como el tercer caso donde se utiliza la primera
solución utilizando la operación complementaria en la condición que seria del operador
igual, el complemento el operador diferente.
INICIO
X
R = X mod 2
R<>0
SI
X = X+1
X
FIN
16
BIFURCACIÓN ANIDADA
Se fundamente en la Bifurcación simple con la diferencia que dentro de 1 condición
existe una nueva condición, es decir dentro de una bifurcación existe como proceso o
parte de este otra bifurcación simple repitiendo este proceso las veces necesarias
siempre cumpliendo la regla que consiste en una entrada y una salida en cada
bifurcación, como indica el esquema, además de los formatos anteriormente revisados
en la bifurcación simple.
E1
no
si
CONDICI
ÓN 1
E4
NO
PROCESO 1
SI
E2
CONDICI
ÓN 4
NO
SI
CONDICI
ÓN 2
PROCESO 5
E3
NO
SI
CONDICI
ÓN 3
PROCESO 4
S4
PROCESO 3
PROCESO 2
S2
S1
S3
17
Se puede notar en el ejercicio anterior que cada entrada tiene su salida, de la misma
manera la condición uno contiene a la condición 2 y 4, mientras que la condición 2
contiene a la condición3.
18.- Realizar un diagrama de flujo que calcule el mayor valor de tres números
leídos (no se considera para este ejercicio los números iguales en vista de que pide
solamente el mayor valor).
INICIO
A,B,C
SI
A>B
SI
SI
B>C
C mayor
A>C
B mayor
C mayor
A mayor
FIN
En el ejercicio No. 18 y en adelante cuando se trate de este tipo de bifurcaciones, es
aconsejable desde la segunda condición en adelante comparar siempre el resultado
parcial obtenido hasta ese momento con las variables que faltaran comparar, es decir
que sea cual sea el resultado en la segunda condición, no hace falta volver a comparar
con la variable que se que do en la primera condición.
19.- Realizar un diagrama que calcule el mayor de 4 números leídos.
18
A B C D
3 2 5 4
2 3 5 4
INICIO
A,B,C
SI
A>B
SI
A>C
B>D
C>D
D
mayor
SI
NO
B>C
NO
C>D
C
mayor
D
mayor
B
mayor
D
mayor
C
mayor
D
mayor
A>D
SI
A
mayor
FIN
El ejercicio anterior para encontrar el número mayor de 4 números usa demasiadas
condiciones, no se diga si se pidiera el mayor de 5 o 6 números se debería utilizar de 15
a 30 condiciones, que sería ya exagerado, mucho cuidado no mal sino que se debe
resolver de una manera que no ocupe mucha memoria en la computadora ni que
tampoco se demore mucho el programa en su ejecución. Para solucionar este problema
se deberá usar una técnica de SOBREPOSICION DE VALORES.
SOBREPOSICION DE VALORES.- El proceso consiste en utilizar o las mismas
variables de lectura u otras variables auxiliares, la finalidad es la de en una condición
sin importar por que alternativa opte, el resultado parcial hasta el total ir asignando a
una misma variable o identificador, además la bifurcación con sobreposición de valores
significa utilizar la misma bifurcación simple o anidada.
20.- Resolver el ejercicio anterior utilizando la sobreposición de valores que
consisten en utilizar la Bifurcación simple una tras de otra y asignado a una misma
variable al resultado total o parcial en una sola variable.
INICIO
A,B,C
A>B
May = B
May = A
C > May
May = C
19
May
Tanto en el ejercicio anterior como en el siguiente se utiliza la variable auxiliar may
para ir asignando el resultado parcial hasta el final y luego imprimir el resultado. El caso
del ejercicio para calcular el número mayor se utiliza dos condiciones, el mismo
ejercicio utilizando bifurcaciones anidadas se utilizo tres condiciones( ver ejercicios No.
18 y 20 ), mientras que en el ejercicio siguiente para calcular el mayor de 4 números
se utiliza 3 condiciones, y resolviendo con la bifurcación anidada se utiliza 8
condiciones (ver ejercicio No. 19 y 21 ) es notorio la simplificación del uso de
condiciones al resolver por el método de sobreposición de valores. Pero no siempre se
puede resolver de esta manera, ni tampoco se puede decir que la una manera es mejor
que la otra, esto queda a criterio del programador. De la misma de manera el número de
condiciones va estar dado por el número de variables de lectura menos 1. También se
debe tomar en cuenta que por cada resultado que se va ha imprimir se debe utilizar las
variables auxiliares
21.- Realizar un diagrama de flujo que calcule el mayor de 4 números leídos
usando la sobreposición de valores
INICIO
A,B,C,D
N Variables = n-1 Condiciones
A>B
May = B
May = A
C > May
May = C
D > May
May = D
May
FIN
20
BIFURCACION COMPUESTA
Es representado por la bifurcación simple o anidada con la diferencia de que en vez de
utilizar una sola pregunta en el bloque de condición puede utilizar 2 o más preguntas en
un solo bloque, unidas estas preguntas por medio de los operadores lógicos AND y OR,
los que tienen como característica trabajar con 2 o más preguntas, cada una de estas
preguntas pudiendo ser verdadera o falso. Para tener el resultado final se debe
considerar lo descrito en la parte de los operadores lógicos (pag 12).
22.- Realizar un diagrama de flujo que indique si un número X leído cumple o no
las siguientes condiciones, que sea entero y positivo. (Un número es positivo si es
mayor o igual a cero, mientras que para ser entero, se utiliza la función de biblioteca
ENT. Del número, tomando la parte entera del número, este resultado se compara con el
mismo número y si es igual, entonces el valor leído es entero, caso contrario no lo es.)
El ejercicio se resuelve de dos maneras la primera usando bifurcación simple para lo
cual se utiliza dos condiciones. La segunda ya se utiliza la bifurcación múltiple dándose
cuenta que en una sola condición se realiza las dos preguntas.
(Bifurcación simple)
INICIO
X
NO
SI
X>0
NO
SI
X = ENT (X)
“No”
“No”
“Si”
FIN
(Bifurcación compuesta)
INICIO
X
X > 0 AND
X= ENT (X)
“No”
SI
“Si”
21
23.- Realizar un diagrama de flujo que lea un número entre 1 y 999, para formar
un nuevo número donde los dígitos se encuentren del último al primero.(
Primeramente se debe controlar que el número sea mayor a 0 y menor a 1000, es decir
máximo de tres dígitos y a la vez entero. Para separar los dígitos se divide el número
para 10 usando las funciones de biblioteca y los resultados se van almacenando de
acuerdo a la posición de donde se encuentra el dígito, entre Unidad, Decena y Centena,
existiendo una variable Auxiliar. Una vez separado los dígitos, se procede a unir los
mismos pero tomando desde el último hasta el primero y multiplicando por su valor
respectivo de 100, 10 y 1, para terminar sumando estos resultados.
INICIO
X
(X > 0) AND
(X<1000) AND
(ENT(X)= X)
And
X<100
No
cumple
SI
U = X MOD 10
A = X DIV 10
C = A MOD 10
D = A MOD 10
S = (U*100)+(D*10)+C
S
FIN
24.- Realizar un diagrama de flujo que lea un número N e Imprimir si es múltiplo
de 5 y número par a la vez .(El ejercicio al igual que los otros se resuelve de dos
formas diferentes con relación a las preguntas de la condición, porque el proceso es
diferente.
INICIO
INICIO
X
X
X MOD 5 = 0
AND
X MOD = O
“No
Cumple”
M = X MOD 5
P = X MOD 2
SI
“Si
Cumple”
M=0
and
P=0
“No”
22
“Si”
BIFURCACIÓN MULTIPLE
También conocida como estructura tipo CASE o MENU, se fundamenta en los formatos
de la bifurcación simple, anidada teniendo como características que por medio de una
condición que se ejecuta automáticamente permite seleccionar uno de varios caminos
posibles, cada uno de estos contiene un proceso diferente. Así también como otra
característica se acostumbra por lo general antes de cualquier proceso desplazar en un
bloque el menú o las operaciones con las que trabajará. Tanto el ingreso de datos como
la salida de resultados puede darse uno solo para todo el proceso o una diferente para
cada uno como se presenta el esquema.
OPCIONES
DEL MENU
1. …..
2. …..
3. …..
N…..
Lectura de la
opción
Seleccionada
OPCION = ?
1
ELSE
2
3
PROCE 1
PROCE 2
PROCE 3
4
PROCE 4
5
PROCE 5
N
PROCE N
MENSAJE
El formato anterior presenta una estructura de bifurcación múltiple con varios caminos,
el funcionamiento consiste en que una vez leída la opción seleccionada, el lenguaje de
programación va buscando de camino en camino en orden, cual es la opción
seleccionada, si no encuentra entonces opta por irse por un camino else (sino), donde se
puede enviar un mensaje indicando que la opción seleccionada no existe.
25.- Realizar un diagrama de flujo que calcule individualmente cada uno de los
parámetros del Movimiento rectilíneo uniforme. ( Los parámetros son el Espacio,
Velocidad y Tiempo, como se vera lo primero que se visualiza en el diagrama es los
procesos que se puede realizar, a continuación se lee el numeral o literal que preceda al
proceso a ejecuta, por medio de la condición y en una forma automática se selecciona la
alternativa y procede a ejecutarse. Ejecuta una sola de las tantas opciones existentes).
23
INICIO
1. Espa
2. Veco
3. Tiem
OP
1
NO
OP=?
2
3
V.T
NO EXISTE
E.T
V.E
V = E/T
T = E/V
V
T
E = V*T
E
FIN
En este caso los datos deben ser individuales ya que cada proceso es diferente, de la
misma manera como el resultado primeramente tiene diferentes unidades de medida, y
luego están representados por diferentes variables entonces también las impresiones
deben ser individuales.
26.- Realizar un diagrama de flujo que calcule el área de las siguientes figuras
geométricas: Cuadrado, rectángulo, triángulo y circunferencia. (Como en el caso
anterior, los procesos son diferentes por lo tanto la lectura de los datos se debe realizar
en cada camino de las alternativas, el resultado puede tener dos opciones si se almacena
en diferentes identificadores se debería imprimir debajo de cada proceso, pero como en
el ejemplo se presenta en un mismo identificador, entonces se puede realizar una
impresión para todos los procesos.
24
INICIO
1. “Area del cuadrado”
2. “Area del rectángulo”
3. Area del triángulo”
4. Area de circunferencia
X
X=?
C
A=L*L
B,H
A=B*H
NO EXISTE
B,H
A=B*H/2
r
A=2Π.r2
A
FIN
27.- En una empresa que contrata solo emplea nacional todos los emplea gana un
mismo sueldo con la diferencia de que ganan un porcentaje más dependiendo de la
región de donde provienen con las siguientes condiciones.
-
Proviene del oriente gana un
Región insular
Costa
Sierra
40% más el sueldo básico
50%
30%
20%
25
INICIO
1. R insular
2. R oriente
3. R costa
4. R sierra
OP;SB
OP = ?
NO EXISTE
ST=SB+
SB + 50
100
ST=SB+
SB + 40
100
ST=SB+
SB + 30
100
ST=SB
SB + 20
100
ST
FIN
En este caso es algo particular ya que al decir que el sueldo básico ( SB ) es igual para
todos los empleador, entonces no hace falta leer en cada alternativa sino uno solo antes
de la condición, de la misma manera como se esta calculando el sueldo total ( ST ), en
todas las opciones y se almacena en una misma variable entonces se realiza una sola
impresión
Se podría concluir diciendo que cada alternativa que existe en una bifurcación múltiple
es como tener un programa independiente.
26
ESTRUCUTURA DE REPETICIÓN O INTERACCIÓN
Este tipo de estructura permite realizar varias veces un mismo proceso considerando
siempre el estado que presenta la condición que es la que permite repetir un proceso.
Por lo general una estructura de repetición contiene 4 parámetros fundamentales por lo
general pero no necesariamente. Estos parámetros son las siguientes.
-
Dar un valor inicial a un contador
Utilizar una condición que por lo general se compare entre el contador y el
número máximo de veces que se requiere que se repita el proceso.
El proceso de repetición propiamente dicho
La modificación de uno de los 2 parámetros que actúan en la condición. Los
parámetros enumerados anteriormente no necesariamente deben seguir el orden
establecido sino que depende del tipo de estructura utilizada. Es así que se tiene
las estructuras de repetición:
1. WHILE < CONDICIÓN > DO
2. REPEAT < CONDICIÓN > UNTIL
3. FOR < VI > TO < VF > DO
Donde < condición > significa que puede realizarse cualquier condición o pregunta, en
tanto que < VI > quiere decir un valor inicial, y < VF > será reemplazado por valor
final. Los formatos de cada una de estas estructuras se estudiara a continuación ya que
tienen sus características propias:
ESTRUCTURA WILE < CONDICION > DO
Valor inicial del
contador
CONDICIÓN
SI
PROCESO
NO
Modificación
de uno de los 2
parámetros
27
Características.
a)
b)
c)
d)
Se ejecuta primero la condición y luego el proceso
Se repite el proceso si sólo si cumple la condición.
Por lo general si el contador empieza en 1 la condición será < si el contador
empieza en 0 será <
El número mínimo de repeticiones del proceso es 0 veces el máximo N veces
EST. REPEAT <CONDICION> UNTIL
Valor inicial del
contador
PROCESO
Modificación
de uno de los 2
parámetros de
condición
NO
CONDICIÓN
SI
Características
a)
b)
c)
d)
Se ejecuta primero el proceso y luego la condiciónSe repite el proceso hasta que la condición sea verdadera o dicho en otras
palabras mientras la condición sea falso.
Si el contador = 1 la condición podría ser >
Si el contador = 0 la condición podría ser >
El número mínimo de veces que se repite el proceso es 1 veces y el número
máximo N veces.
EST. FOR < Valor Inicial > TO < Valor Final > DO
VI;VF; INCREMT.
PROCESO
28
Características.
a)
b)
c)
d)
e)
En un solo bloque conocido como FOR TO DO se representa 3 bloques
representados en otras estructuras ( el VI igual a iniciar en un valor al
contador, VF, similar a la condición y el Incremento igual a la modificación
de uno de los dos parámetros de la condición.
El valor del incremento puede ser solamente + 1 o – 1
Si VI<VF entonces se supone la condición < y el incremento de +1)
Si VI>VF entonces se supone la condición es > o = y el incremento de –1)
El número mínimo de veces que se repite un proceso es 0 veces, mientras
que el número máximo N veces.
Cuando la línea de flujo ingresa por la parte superior del bloque del for,
entonces el contador parte con el valor específico asignado, mientras que si
continua la línea de flujo por la parte lateral significa que se debe
incrementar al ultimo valor del contador.
28.- Realizar un Diagrama de Flujo utilizando las tres estructuras de repetición
para que realice como proceso la impresión de N veces la palabra PRUEBA.( N es
igual a las veces que se va imprimir la palabra; I es un contador.
INICIO
N
0
2
N
I
1
1
2
3
IMPRIME
1
2
I=1
I<N
NO
SI
“PRUEBA”
FIN
I = I=1
29
INICIO
N
0
N
2
I
1
2
1
2
3
IMPRIME
I=1
“PRUEBA”
I = I=1
I>N
NO
SI
FIN
INICIO
N
I = 1; N = 1
N
0
3
I
1
1
2
3
4
IMPRIME
“PRUEBA”
FIN
Como se puede ver el mismo ejercicio se resuelve utilizando las tres estructuras de
repetición, pero no siempre se va a poder realizar esta tarea.
30
29.- Realizar un diagrama de flujo que imprima los N primeros números impares.
(El ejercicio se resolverá con las tres estructuras de repetición, además esta ya resuelto
en el ejercicio No. 7 con la diferencia que son los pares, y en este último pide los
impares para lo cual el único cambio sería, en vez de empezar en 2 el un contador ( P )
ahora empezar en uno por ser el primer número impar. )
Estructura WHILE < CONDICION > DO
INICIO
N
I=1
P=1
I<N
P
FIN
P= P+2
I = I+1
Estructura FOR…TO… DO
INICIO
N
ESTRUCTURA REPEAT ….UNTIL
INICIO
N
P=1
I=1
P=1
I = 1; N = 1
P
P=p+2
FIN
P
I=I+1
P = P+ 2
I >N
31
FIN
30.- Realizar un diagrama de flujo que imprima los N primeros números impares,
pero utilizando un solo contador. (Basándose en el ejercicio anterior se puede resolver
el nuevo ejercicio, tomando como parte del resultado que el contador que se use va ir de
uno en uno y para sacra los números impares se debería multiplicar por 2 y se tendría 2,
4, 6, etc. Y de ahí a cada valor se debería restar uno y se tendría 1, 3, 5, etc.)
INICIO
N
I=1
I<N
SI
A = 2+I
I = I+1
FIN
A
INICIO
INICIO
N
N
I=1
I = 1; N = 1
A=I+2
A=I*2
I=I+1
A
A
FIN
I >N
FIN
32
31.- Realizar un diagrama de flujo que imprima cada uno de los términos de la
siguiente serie. S = 2, 5, 8, 11, 14, .........., (3N-1).( Lo principal en las serie es fijarse en
la formula del enésimo término, ya que de ahí va saliendo cada uno de los valores, por
ejemplo del ejercicio planteado, al tener (3N-1), si N se le reemplaza por el contador
que es I, el mismo que tomara valores de 1 hasta N, entonces cuando I vale uno en la
formula se cambiaría ( 3*1-1= 2), cuando sea I=2 (3*2-1=5), si I=3, (3*3-1=8), de esta
manera, se obtiene todos los valores. En el diagrama de flujo cuando toque el punto de
calcular el termino solamente se pone 3*I-1).
INICIO
INICIO
N
N
I=1
I<N
NO
I=1; N; 1
T=3*I-1
SI
T
T = 3*I-1
I=I+1
FIN
FIN
T
INICIO
N
I=1
T = 3*I-1
I=I+1
T
NO
I>N
SI
FIN
33
ECUACION PARA CALCUALR LA FORMULA DEL ENESIMO TERMINO
ENESIMO =
TERMINO
VALOR DEL
POSICION
INTERVALO * DEL
ENTRE DOS
TERMINO
VALORES
CONSECUTIVOS
+
VALOR DEL
VALOR
PRIMER
- DEL
TERMINO
INTERVALO
Se debe aclarar que la formula trabaja solamente para calcular el valor y no el signo del
término.
32.- Imprimir cada uno de los términos de la serie S = 2, 9, 16, 2 ................ (7N - 5)
INICIO
N
I=1
I<N
NO
SI
T = 7*I-5
I=I+1
FIN
T
En este ejemplo se puede notar que tiene la misma solución del anterior con la
diferencia de la formula del enésimo término, por lo que cuando se trate de una serie,
sed tomaría el diagrama anterior como plantilla.
32.- Imprimir cada uno de los términos de la siguiente serie S = 2, -4, 6, -8, 10, -12,
......... (2N). ( La diferencia con el ejercicio anterior es de que los términos van con un
signo intercalado de positivo a negativo, existiendo diferentes maneras de resolver,
viendo a continuación los siguientes. En este caso se utiliza un identificador cualquiera
asignado aquí con el nombre SIG, que debe empezar en el valor de 1, por que una
cantidad multiplicado por 1 da la misma cantidad, entonces no cambia de valor, lo que
interesa es cambiar el signo, para lo cual si el primer término es negativo el
34
identificador SIG deberá empezar en –1, pero si el primer término es positivo deberá
comenzar en 1 positivo)
INICIO
INICIO
N
N
Sig = 1
I=1
Sig = 1
R = (2*1)*Sig
Sig = Sig(-1)
I = I+1
I = 1; N;1
T
T = (2*1) * Sig
Sig = Sig(-1)
NO
I>N
T
SI
SI
FIN
FIN
INICIO
N
I=1
I<N
SI
T = (2*I)*(-1)↑(i+1)
I=I+1
FIN
T
35
33.- Realizar un diagrama de flujo que de un curso de n estudiantes lea una nota
por cada uno suponiendo que las notas va de 0 a 20 se desea encontrar la mayor
nota obtenida en el curso.(Para este ejercicio donde existe un rango de valores como
datos que se va a ingresar se debe considerar que se debe iniciar una variable en algún
valor para tener con que comparar el primer dato ingresado, ahora con que valor se
compara el primer dato?, si esta pidiendo el mayor valor ingresado, se deberá comparar
con el menor valor del rango de datos dados, y en el otro caso viceversa).
INICIO
N
MAY = 0
I=1
I<N
NOTA
MAY
NOTA>MAY
FIN
MAY = SI
NOTA
I=I+1
36
INICIO
INICIO
N
N
MAY = 0
MAY = 0
I=1
I = 1; N; 1
NOTA
NOTA
NOTA>M
AY
MAY = NOTA
NOTA>M
AY
MAY = NOTA
I >N
MAY
FIN
MAY
FIN
Si se quisiera calcular la nota menor los cambios sería, en la variable may no empezar
en cero sino en 20, y cambiar el signo de la bifurcación en vez de NOTA > MAY, iría
NOTA <MAY, incluso si se desea cambiar el identificador MAY por MEN.
34.- Realice un diagrama de flujo que lea N valores diferentes que pueden ser solo
positivos, o solo negativos o combinados, y calcule cual es el valor mayor
ingresado. (En el presente caso no tiene un rango de valores en el cual va ser ingresado
los datos como en el caso anterior, el problema se presenta cuando el primer dato
ingresado con que valor se va ha comparar sino no hay rangos, entonces lo mas factible
será comparar el primer valor con si mismo, ahora cuando es el primer valor ingresado?,
cuando el contador utilizado sea igual a uno, que va ser una sola vez).
37
INICIO
N
I=1
I<N
SI
NO
MAY
X
NO
I=1
SI
MAY = X
FIN
NO
X >MAY
SI
MAY = X
I=I+1
Este ejercicio puede funcionar también para calcular el menor elemento leído,
solamente cambiando el signo de la segunda bifurcación.
El ejercicio No. 33 puede ser resuelto con el diagrama No.34, lo que no ocurre con el
ejercicio 34, no se puede resolver con el diagrama No.33.
38
El mismo ejercicio anterior pero con la estructura Repeat…. Until.
INICIO
N
I=1
X
I=1
MAY = X
X > MAY
MAY = X
I=I+1
I >N
MAY
FIN
39
35.- Realizar un diagrama de flujo que cuente cuantos dígitos compone a un
número X leído.( Este ejercicio sirve para demostrar que no siempre en una estructura
de repetición entran los cuatro parámetros vistos anteriormente, sino que hay ejercicios
como el que sigue que se sale del formato pero sigue siendo estructura de repetición. Se
debe notar que en la condición no se utiliza el contador, además el contador no se esta
utilizando para ver el numero de procesos que se esta realizando).
INICIO
X
C=0
X<>0
SI
C=C+1
X = X DIV IO
C
FIN
INICIO
X
C=0
C=C+1
X = X DIV 10
X<>0
C
FIN
40
ESTRUCTURA REPEAT UNTIL COMO ESTRUCTURA DE CONTROL Y
REPETICION.
Además de ser una estructura de repetición la estructura repeat … until se puede
utilizar también como una estructura de control, aprovechando la característica de
repetir por lo menos una vez el proceso, de esta forma se puede usar para controlar que
cumpla una instrucción específica, como es el caso de los datos ingresados, si es
posible esta parte del control transformarle a otra estructura siempre y cuando se cumpla
con las reglas de cada estructura, sin embargo no es aconsejable dicho cambio.
36.- Realizar un diagrama de flujo que ingrese el año de nacimiento de una
persona y calcule su edad.( Anteriormente ya se resolvió este ejercicio pero sin no
cumplía la condición emitía un mensaje y salía del programa, ahora es otro tipo de
control, ya que hasta que no ingrese los datos bien, se repetirá la lectura).
INICIO
AA; AN
AA>AN
E = AA - AN
C
FIN
41
37.- Realice un diagrama de flujo que calcule el factorial de un numero X. (el
factorial es igual a la multiplicación sucesiva del número hasta 1. Ejemplo: factorial de
5 es igual a 5*4*3*2*1 igual 120. Para poder calcular el factorial el número debe ser
positivo ( X< 0) y entero (ENT(X) = X), por lo tanto estos deben ser los controles que
se utilicen.)
INICIO
X
(X>0) AND (
ENT( X)= X)
NO
SI
P=1
I = 1; X;1
P=P*I
P
FIN
42
INICIO
INICIO
X
X
X > 0 AND
ENT X = X
X>0
AND ENT X = X
NO
SI
I=1
P=1
P = P*I
I=I+1
I=1
P=1
I<X
NO
I>X
SI
P = P*I
I=I+1
P
P
FIN
FIN
Se puede notar en el ejercicio anterior que esta resuelto de las tres formas de repetición,
pero la parte del control se notara que no cambia en nada, sino solo la parte del proceso
mismo.
43
38.- Realizar un diagrama de flujo que lea 2 números enteros positivos, para
obtener el resultado de multiplicar dichos 2 valores, pero realizando procesos de
sumas solamente.
INICIO
A,B
(A>0) AND
(A>B) AND
(ENT A=A)AND
ENT B = B
I=1
S=0
I<A
NO
SI
S=S+B
I=I+1
S
FIN
En este caso se supone que no se conoce la operación de la multiplicación, por lo que se
opta el utilizar la operación base de la multiplicación que es la suma, es decir se puede
sumar A veces B o B veces sumar A. Nuevamente se utiliza las tres formas de la
estructura de repetición
44
INICIO
A,B
(A>0) AND
(A>B) AND
(ENT A=A)AND
(ENT B = B)
I=1
S=O
INICIO
A,B
S=S+B
I=I+1
I >A
(A>0) AND
(A>B) AND
(ENT A=A) AND
(ENT B = B)
S
SI
S=0
FIN
I = 1; A;1
S=S+B
S
FIN
45
ARREGLOS
A diferencia de una variable simple en donde puede tomar varios valores, pero que
queda almacenada 1 y que es el último ingresado, en un arreglo de igual manera se
puede ingresar muchos valore que se almacenan uno a continuación de otro en
posiciones no iguales, de esta manera permite ubicar en cualquier momento un dato.
Los arreglos se dividen en: UNIDIMENSIONALES, BIDIMENSIONALES
ARREGLO UNIDIMENSIONAL.- También conocido como vector, almacena la
información ingresada en orden de 1 en 1, se representa por una tabla que se divide en
dos. La primera parte representa a la posición del elemento dentro del vector. La
segunda parte indica el contenido de cada uno de los elementos del vector,
Horizontalmente se divide en N partes o en N elementos que contienen el vector, los
elementos o datos de un vector deben ser del mismo tipo. Solo númericos, o solo
alfanumericos. A sí
Posición Contenidos
1
2
.
.
N
Casa
50
A5
Ejemplo
Elemento
Para identificar un vector se usa al igual que las variables un carácter o un conjunto de
caracteres y a continuación encerrados entre paréntesis un subíndice que por lo general
es el contador que se utiliza en el diagrama, ya que recorre desde la primera posición
hasta la última posición del vector, notando con esto que para cualquier proceso
(lectura, escritura o instrucción se utilizará por lo menos una estructura de repetición
para que realice el recorrido).
Nombre (Subíndice)
V (I)
V (I)
Arreglo
X
Variable simple
Se estaría leyendo el vector V en las posiciones I. Se debe indicar que todos los
ejercicios resueltos hasta este punto o sin utilizar vectores, se los puede resolver y de
una manera más fácil, utilizando vectores.
LECTURA Y ESCRITURA DE UN VECTOR
Como se dijo anteriormente para todo proceso con vectores se necesita una estructura de
repetición y además se debe conocer el Número de elementos o la dimensión del vector
aunque no es necesario lo último. Ej.
46
INICIO
INICIO
N
N
I=1
I=1
V(I)
I<N
I=I+1
V(I)
NO
I<N
I=1
I=I+1
I=1
I<N
V(I)
V(I)
I=I+1
FIN
I=I+1
NO
I<N
FIN
Se notara que en las tres formas de la estructuras de repetición la primera parte o el
primer bloque de repetición se refiere a la lectura de cada uno de los elementos del
vector, mientras que el segundo bloque, es la impresión de cada uno de los elementos
del vector. En vectores resulta más fácil y rápido trabajar con la estructura FOR .. TO
… DO, por lo que se va ha trabajar los siguientes ejercicios solo con la estructura,
como se indica a continuación.
47
INICIO
INICIO
N
N
I = 1, N , 1
I = 1, N , 1
V(I)
V(I)
I = 1, N , 1
K = 1, N , 1
V(I)
V(K)
FIN
FIN
En los subíndices de los vectores cuando en la lectura se lee cada uno de los elementos
sobre la base de un contador, en algún otro proceso como puede ser la escritura de cada
uno de los elementos, también no es necesario trabajar con el mismo subíndice de la
lectura sino con otro como indica el formato anterior, en la primera resolución tanto en
la lectura como en la escritura se utiliza el subíndice I, mientras que en la segunda
resolución en la lectura se lee con el subíndice I, en la escritura se utiliza el subíndice K,
esto no significa que se hable de otro vector, es el mismo, sería otro vector cuando en
vez de el nombre V, se encuentre otro nombre.
48
39.- Realizar un diagrama de flujo que lea un vector de N. Elementos, realice la
sumatoria de todos los elementos del vector e imprima el resultado.
INICIO
INICIO
N
N
I=1
S=0
I=1
S=0
V(I)
I<N
I=I+1
V(I)
NO
I<N
I=1
I=I+1
I=1
I<N
S=S+V(I)
I=I+1
S
S=S +V(I)
I=I+1
FIN
NO
I<N
S
FIN
En estos casos se ejecuta el diagrama de flujo de la siguiente manera, primero se lee
todo el vector, luego se va recuperando de uno a uno los elementos y a la vez se va
realizando la suma. En el caso siguiente la primera parte se resuelve de esta manera que
se acaba de detallar, y la segunda forma es que al mismo tiempo que se lee se va
sumando, en si se va ahorrando pasos.
49
2 FORMA
INICIO
N
S=0
I = 1, N , 1
V(I)
INICIO
N
S=0
I = 1, N , 1
V(I)
S=S+V(I)
I = 1, N , 1
S=S+V(I)
V(K)
S
FIN
FIN
40.- Realice un diagrama de flujo que calcule el mayor elemento ingresado en un
vector. El ejercicio se puede resolver de distintas formas, las mismas que son 1) usando
varios bloques de repetición, y 2) usando un solo bloque de repetición. Se puede tomar
como ejercicios base para la resolución los ejercicios No 33 y 34. ya resueltos sin
vectores
50
Usando varios bloques de repetición
INICIO
N
I = 1; N; 1
V(I)
MAY = V( 1 )
I=1,N,1
NO
V(I)>MAY
SI
MAY = V(I)
MAY
FIN
En el ejercicio que se acaba de presentar se debe notar lo siguiente, primero se lee todos
los elementos del vector, seguido a una variable auxiliar en este caso MAY, se le asigna
la primera posición del vector, por el hecho de que un vector para ser un arreglo, debe
tener por lo menos un elemento, el mismo que estará en la primera posición, y por
último se compara todos los elementos.
51
Usando un solo bloque de condición.
INICIO
N
I = 1, N , 1
V(I)
I=1
MAY = V( I )
V(I) >MAY
MAY = V( I )
MAY
FIN
En este caso a la vez que se va leyendo los elementos se va comparando, presentándose
un inconveniente, del primer elemento con que se compara, como ya se vio, se lo debe
comparar consigo mismo, por eso existe una condición comparando el contador con un,
es decir con el primer elemento.
En ambos casos del ejercicio para calcular el menor elemento lo único que debería
cambiar es el signo de la bifurcación.
52
41.- Realizar un D.F que lea 2 vectores de igual dimensión en los cuales, primer
vector se ingresa el nombre de cada uno de los estudiantes del curso y en el
segundo una nota por cada estudiante. Se desea encontrar cual es la nota mayor y
a quien pertenece. (El presente ejercicio trae consigo algunas instrucciones nuevas
como son: un vector ya no numérico sino alfanumérico, así también como leer más de
un vector, de otra parte el ejercicio de encontrar el mayor valor de un grupo de números
leídos ya se resolvió en el ejercicio No 40)
INICIO
I
1
2
3
N
NOTA
NOMB
16
18
17
Luis
María
Vero
I = 1, N , 1
NOTA( I )
NOM$( I )
I=1
MAY = NOTA( I )
PER$ = NOM$ (I )
NOTA(I)>MAY
MAY = NOTA( I )
PER$ =NOMB$(I)
MAY,
PER$
FIN
El ejercicio tiene una particularidad de que el nombre como es de tipo alfanumérico
debe ser de tipo string y como se quiere saber la nota mayor y a quien pertenece,
entonces se debe almacenar en variables auxiliares, para la nota esta la variable MAY,
mientras que para el nombre esta la variable PER$, es decir de tipo string.
53
42.- Realizar un diagrama de flujo que inserte un elemento X en una posición P de
un vector, de N elementos. Resolver de dos maneras: ( Para insertar un elemento
dentro de un vector se debe considerar que la posición donde se va añadir el nuevo
elemento este dentro del vector, es decir si el vector tiene 4 elementos no se puede
insertar en la posición 10 ni el la posición –2 debe ser una posición secuencial a las que
existe, por eso es la primera comparación en los dos casos. Luego en la primera forma
de resolver se toma lo mas simple la posición donde se desea insertar el elemento se le
envía una posición después del último y como ya se tiene respaldado la posición P,
entonces se inserta el nuevo elemento. En la segunda forma es diferente ya que se hace
recorrer a todos los elementos desde donde se va ha insertar hacia atrás una posición de
tal forma que la posición P tiene el mismo contenido que la posición P + 1, y ahora se
inserta el posición P el elemento nuevo.
PRIMERA FORMA
SEGUNDA FORMA
Inicio
Inicio
N1 X1 P
N1 X1 P
NO
NO
(P>1) AND
(P < N)
(P>1)AND
(P< N)
I = 1;N;1
I = 1;N;1
V (I)
V (I)
V(N+1) = V (P)
V (P) = x
I = 1;N -1;1
V (I+1) = V(I)
I = 1;N + 1;1
V(P) = X
V(J)
I = 1;N+1;1
V (I)
FIN
54
FIN
43.- Realizar un diagrama de flujo que de un vector de N elementos eliminar los
valores negativos (El ejercicio enunciado es lo contrario que el anterior donde se va ya
no ha insertar sino a suprimir un elemento, para lo cual se utiliza la segunda forma de
inserción, que consiste como ahora es la supresión entonces desde una posición más
atrás de la que se va ha suprimir se hace recorrer una posición adelante y luego se
elimina el último elemento
Inicio
V
I
1
2
3
4
N
6
-4
+2
10
I = 1;N;1
V (I)
I = 1;N;1
si
V(I) <0
J=I;N-1;1
V (J) = V (J+1)
N = N-1
I = I -1
FIN
55
44. Realizar un diagrama de flujo que ordene un vector. (El siguiente ejemplo es la
base para cualquier ordenamiento y con cualquier tipo de datos, no se especifica en que
orden se desea ordenar por que simplemente sino así de esa manera la solución es
cambiar solamente el signo de la condición y ya se tiene ordenado de la otra manera.)
Inicio
N
I = 1;N;1
V (I)
I=1;N;1
J= I+1;N;1
NO
si
V(I) >V(J)
AUX = V(I)
V(I) = V(J)
V(J) = AUX
I=1;N;1
V (I)
FIN
56
45.- Realizar un D.F que un vector que sea un vector que lea el elemento mayor y
menor. (Se demuestra que no necesariamente se realiza un diagrama para encontrar el
mayor y menor elemento de un vector, con el diagrama anterior del ordenamiento, como
ya todos los elementos están en orden, se supone que el primer elemento esta el primera
posición y el mayor elemento el la última posición, o viceversa.
Inicio
N
I = 1;N;1
V (I)
I=1;N;1
J= I+1;N;1
NO
si
V(I) >V(J)
AUX = V(I)
V(I) = V(J)
V(J) = AUX
V(1)
V(N)
57
FIN
46.- De un curso de N estudiantes, se almacenan en vectores el nombre y una nota
por cada alumno, se desea obtener un listado en orden alfabético de los estudiantes
del curso con su respectiva nota. (Para la solución se debe basar en los ejercicios de
ordenamiento con la diferencia que el enunciado pide trabajar con dos vectores,
entonces para lo cual se debe considerar el ordenamiento por que vector pide, en este
caso es el ordenamiento en orden alfabético por lo tanto el vector que va en la condición
es el nombre, pero si existe algún movimiento no solo se debe cambiar el vector nombre
sino también el vector nota, como indica el ejercicio.
Inicio
I
1
2
3
NOM
NOTA
B
C
A
16
17
18
N
I = 1;N;1
NOTA(I), NOM$(I)
I=1;N;1
J= I+1;N;1
NOM$(I) >NOM$(J)
A$ = NOM$(J)
NOM$ (J) = NV$(J)
NOM$(J)=A$
B=NOTA(I)
NOTA(I)=NOTA(J)
NOTA(J)=B
I=1;N;1
NOM$(I)
NOTA$(I)
58
Arreglos Bidimensionales: conocido también como matrices lleva el mismo
fundamento que los vectores es decir almacena información diferente en posiciones
distintas de la matriz.
Los vectores y las matrices se relacionan hasta el punto de poder resolver los mismos
ejercicios en vectores o en matrices teniendo presente que para realizar cualquier
proceso que involucre matrices es necesario por lo menos dos bloques de repetición.
Físicamente la matriz es una tabla que se subdivide verticalmente en M partes
(columnas) y horizontalmente se subdivide en N partes (Filas).
La posición física de un elemento esta relacionada con él numero de la fila seguido con
él numero de la columna.
Una matriz también se considera como un conjunto de vectores de igual dimensión.
1.1
1.2
1.3
1.4
2.1
3.1
Para identificar a una matriz se utiliza el nombre de la matriz encerrado entre paréntesis
el subíndice de la fila y el subíndice de la columna.
La dimensión de una matriz viene dada por él numero de filas y por él numero de
columnas N*M
De igual forma cuando el numero de filas es igual al numero de columnas se dice que la
matriz es cuadrática
59
Ejemplos:
Leer una matriz de orden NxM y calcule cual es el elemento mayor de cada fila.
INICIO
N,M
I=1,N,1
J=1,M,1
A[I,J]
I=1,N,1
MAY= A[I,1]
J=1,M,1
A[I,J]>MAY
MAY= A[I,J]
MAY
FIN
60
Leer un vector de N elementos y convertir a matriz controlando que la matriz sea
cuadrática o que la dimensión del vector sea un cuadrado perfecto.
INICIO
N
X=SQRT(N)
ENT(X)=X
C=1
I=1,X,1
J=1,X,1
A[I,J]=V[C]
C=C+1
I=1,X,1
J=1,X,1
A[I,J]
FIN
61
Leer una matriz de orden N * M y convertir a vector
INICIO
N,M
I=1,N,1
J=1,M,1
A[I,J]
X=N*M
C=1
I=1,N,1
J=1,M,1
V[C]= A[I,J]
C=C+1
I=1,X,1
V[I]
FIN
62
Realizar un DF que lea una matriz cuadrática y que intercambie sus valores de la
siguiente manera
- El primero con el último el segundo con el penúltimo, siguiendo el mismo orden
hasta terminar de intercambiar la matriz
INICIO
N
X=SQR(N)
ENT(X)=X
I=1,X,1
J=1,X,1
A[I,J]
I=1,X,1
J=1,X,1
AUX=A[I,J]
A[I,J]=A[(X+1-I),(X+1-J)]
A[(X+1-I),(X+1-J)]=AUX
I=1,X,1
J=1,X,1
A[I,J]
FIN
di
63
Descargar