Está en la página 1de 72

lOMoARcPSD|20159660

Fundamnetos de Programacion Espoch

Programación (Escuela Superior Politécnica de Chimborazo)

Studocu is not sponsored or endorsed by any college or university


Downloaded by andres achote (cristian18.andres.ap@gmail.com)
lOMoARcPSD|20159660

INFORMATICA

Es la ciencia que estudia el tratamiento automático y racional de la información entre


las principales funciones de la informática destacan las siguientes:

 El desarrollo de nuevas maquinas.


 El desarrollo de nuevos métodos de trabajo.
 Construcción de aplicaciones informáticas.
 Mejorar los métodos y aplicaciones diferentes existentes.
El término se usó en Francia en el año 1962 y procede de las palabras información
automática.

Computación: técnicas para el tratamiento automático de la información.

Elementos y conceptos fundamentales

COMPUTADORA (Ordenador). Es una máquina compuesta de elementos físicos de tipo


electrónico capaz de realizar gran cantidad de trabajos a gran velocidad y con gran
precisión siempre que se le dé las ordenes adecuadas. El conjunto de ordenes que se da a
una computadora para realizar un proceso determinado se llama: PROGRAMA, el conjunto
de uno o más programas que realizan un trabajo completo se le denomina APLICACIÓN
INFORMÁTICA.

El término SISTEMA INFORMÁTICO, se utiliza para nombrar al conjunto de elementos


necesarios para la realización de aplicaciones.

La información es el elemento a tratar y se define como todo aquello que permite adquirir
cualquier tipo de conocimiento, por tanto existirá información cuando se da a conocer algo
que se desconoce para que se trate la información es necesario transmitirla y para que exista
la transmisión es necesario tres elementos:

EMISOR O RECEPTOR O
CANAL
RECEPTOR EMISOR

Trasmisión de la información

EMISOR. Es el que da origen a la información.

CANAL. Es el medio que permite la transmisión.

RECEPTOR. Es aquel que recibe la información.

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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:

RECOGIDA DE DATOS
ENTRADA DEPURACION DE DATOS
ALMACENAMIENTO

TRATAMIENTO
DE LA ARITMETICO
PROCESO Y/O LÓGICO
INFORMACIÓN

SALIDA RECOGIDA DE DATOS


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. Funcionar y realizar la tarea encomendada.


2. Poder ser leído y comprendido.
3. Poder ser modificado si es necesario sin mucho esfuerzo.
4. 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.

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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.

DATOS

EJECUCION EJECUCION
PROGRAMA PROGRAMA PROGRAMA PROGRAMA
FUENTE COMPILADO OBJETO OBJETO
LENGUAJE
PROGRAMADOR MAQUINA
LENGUAJE COMPUTADOR
RESULTADO
LLL
NATURAL

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.

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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:

ENTEROS
NUMERICOS 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
INDICAN REALES
CANTIDAD

CHART un caracter
ALFABETICOS A, b, c, d,
TIPO ALFANUMERICOS STRING uno o
DE NUMERICOS
DATOS INDICAN
varios caracteres
0, 1, 2, 3, 4, 5, 6,.......
POSICION

SIMBOLOS ESPECÍFICOS ,;.:-_[]{}

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 es o no un
identificador.

A – si
A5 – si
5A – no
6 – no
Ejemplo - si
Ejemplo-2 - si

OPERACIÓN DE ASIGNACION.-

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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.

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.-

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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.

+
ARITMETICAS
-
*
/

AND
LOGICAS NOR
OPERADORES
NOT

=
<
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 OPERADOR 1 OPERADOR 2 RESULTADO


SUMA ENTERO ENTERO ENTERO
ENTERO REAL REAL
REAL REAL o Entero o Real
RESTA ENTERO ENTERO ENTERO
ENTERO REAL REAL
REAL REAL o Entero o Real

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

MULTIPLICACIÓN ENTERO ENTERO ENTERO


ENTERO REAL Entero o real
REAL REAL o Entero o Real
DIVISION ENTERO ENTERO Entero o real
ENTERO REAL Entero o real
REAL 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.

Operador 1 operador 2

Residuo cociente

Operador 1 DIV operador 2 = COCIENTE


Operador 1 MOD operador 2 = 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) D = INT (4)

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

E=7 D=4
JERARQUÍA DE LAS OPERACIONES

1. – Destrucción de paréntesis 2+5*4–2+6 2+1*7


2. – Potencia y Radical 2 + 5 * 4 * 36 + 1 * 7
3. – Multiplicación y División 2 + 20 – 72 + 7
4. – Suma y Resta - 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) (2)

S= 2+5 / 2.5 + (7 (2 ) (2)

S= 2+5 / 2.5 + 2401

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).

CLASES DE ALGORITMOS.-

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

Para representar la solución de un problema existen dos clases de algoritmos: cualitativos,


cuantitativos ambos se rigen a las mismas reglas pero en los pasos difieren, cada uno tiene
diferente forma de trabajar.

CUALITATIVOS.- Describen cada uno de los eventos que se realizan para llegar a la
solución, y como su nombre lo dice usando las cualidades de cada evento para lo cual se
utiliza las palabras propias de quien los resuelve.

CUANTITATIVOS.- Responden al detalle de cada uno de las operaciones que se ejecuta,


en esta parte ya se utiliza las operaciones aritméticas y/o lógicas para describir cada paso
realizado.

En ambos casos cada uno de los pasos debe ir enumerados. De igual manera un mismo
problema se puede resolver con las dos clases de algoritmos, debiéndose indicar que de los
dos tipos nombrados anteriormente él más importante es el algoritmo cuantitativo, sin
desmerecer al algoritmo cualitativo se utilizara en algunos ejercicios.

1. Realizar un algoritmo que indique cuantos minutos existen en una cantidad x leída
en horas para minutos.

CUALITATIVO.- CUANTITATIVO.-
1. Inicio 1. Inicio
2. Leer el número de horas. 2. Leer x
3. Multiplicar número de horas por 60 3. R = x * 60
minutos.
4. Imprimir el resultado. 4. Imprimir R
5. Fin 5. fin

2. - Realizar un algoritmo en forma CUALITATIVA Y CUANTITATIVA que calcule


el área de un triángulo.

CUALITATIVO 5. Fin
1. Inicio
2. Leer la altura y la base
3. Multiplicar altura por base y dividir
para dos.
4. Imprimir el resultado.
5. Fin
CUANTITATIVO
1. Inicio
2. Leer (b y h)
3. A = (b * h)/2

4. Imprimir A

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

ALGORITMOS QUE UTILIZAN ESTRUCTURA DE CONDICION

Cuando en algún ejercicio se debe tomar una de varias alternativas como solución, se
deberá usar una estructura de condición la que permitirá seleccionar uno de dos o más
caminos existentes, con diferentes soluciones cada uno, para lo cual se toma el
siguiente esquema:

CONDICION

PROCESO SI NO PROCESO SI
CUMPLE LA CUMPLE LA
CONDICION CONDICION
( S.N ) = (SI NO) ( S.S. ) = (SI SI )

Desde este punto los ejercicios se resolverán solo en algoritmos cuantitativos

3. - Realizar un algoritmo que calcule si un número es positivo o negativo. (Un


número es positivo si es mayor a 0 incluido el 0).
1. Inicio
1. Inicio 2. Leer el numero con el que se trabajara
2. Leer X 3. Preguntar si el numero es => a 0
3. Si x=> 0 entonces Si cumple pasar al punto 4
SS. ir a 4 Sino pasar al punto 6.
SN. Ir a 6 4. Imprimir que el numero es positivo.
4. Imprimir ( X, “ es numero Positivo”) 5. Pasar al fin, ya que dio el resultado pedido.
5. Ir a 8 6. Imprimir que el numero es negativo.
6. Imprimir ( X,” es numero negativo”) 7. Pasar al fin, ya que dio el resultado pedido,
7. Ir a 8 pudiendo eliminar este punto ya que del
8. fin punto 6 podría irse directamente al fin.
8. fin

4. - Realizar un algoritmo que calcule si un número X es “par o impar”(Un numero


es par sí al dividir para dos el residuo es igual a cero, caso contrario él numero es
impar, para calcular el residuo se recomienda utilizar la función de biblioteca MOD).

1. Inicio
2. Leer X
3. C = X MOD 2
4. Si C = 0 entonces
SS. ir a 5
SN. Ir a 7
5. Imprimir (X “es un numero par”)

10

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

6. Ir a 9.
7. Imprimir (X “es un numero impar”)
8. Ir a 9.
9. Fin.

El mismo ejercicio anterior se puede realizar de otra manera unificando el paso 3 y 4 en


uno solo y adema obviando el paso ( 8 ), ya que como se dijo anteriormente del paso ( 7
) se envía al paso ( 8 ) y de ahí al ( 9 que indica el fin ) y si no hubiera el paso ( 8 )
directo iría al fin por ser el paso siguiente

1. Inicio
2. Leer X
3. Si X mod 2 = 0 entonces
SS. ir a 5
SN. Ir a 7
4. Imprimir (X “es un numero par”)
5. Ir a 9.
6. Imprimir (X “es un numero impar”).
7. Fin

NOTA: En los tres ejercicios anteriores se demuestra que siempre se escribe


primero el proceso que se realiza cuando cumple la condición y luego el
proceso cuando no cumple la condición, siendo estas, reglas del lenguaje
de programación.

5. - Realizar un algoritmo que lea el año de nacimiento de una persona y calcule su


edad. (Por el momento no se puede realizar un control estricto de la información
ingresada pero ya con la estructura de condición ya algo se puede determinar, por
ejemplo que el año de nacimiento deberá ser siempre menor o igual que el año actual.
De igual forma en el enunciado solo dice leer el año de nacimiento, pero para calcular la
edad, se sobreentiende que debe leerse también al año actual.

1. Inicio
2. Leer AN y AA
3. Si AA >= AN entonces
SS. ir a 4
SN ir a 7.
4. E = AA – AN
5. 6.- Imprimir( “La edad que tiene es”, E)
6. Ir a 8
7. Imprimir (“Datos mal ingresados”)
8. Fin

El ejercicio anterior y el siguiente resuelven el mismo problema pero de diferente


manera, mientras el primero compara los años de nacimiento y el año actual, para en el
caso de que si cumple la condición calcule la edad, sino que emita un mensaje de datos
mal ingresados. El segundo ejercicio primero calcula la edad, la misma que si tiene un
resultado negativo indica que los datos son mal ingresados caso contrario da a conocer
la edad calculada.

11

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

1. Inicio
2. Leer AN y AA
3. E = AA – AN
4. Si E >= 0 entonces
SS. ir a 5
SN ir a 7
5. Imprimir( “La edad que tiene es”, E)
6. Ir a 8
7. Imprimir (“Datos mal ingresados”)
8. Fin

NOTA.-Se recomienda que los identificadores que se utilizan en un algoritmo tengan


alguna relación con el proceso que sé esta ejecutando de esta manera se evita declarar a
parte que significado tiene cada un de los identificadores utilizados, así se nota que AA
es igual a año actual, AN igual a año de nacimiento, E igual a la Edad.

De la misma forma el momento de imprimir los resultados se debe tomar en cuenta que
existe una parte encerrada entre comillas y otra no, la primera parte significa que la
información que este encerrada entre comillas sé imprimirá textualmente es decir sirve
para imprimir mensajes textuales. Mientras que lo que no se encuentra encerrado entre
comillas, son identificadores en donde están almacenados resultados que se han
calculado por lo tanto cuando se ejecute en una computadora no se vera ningún
identificador sino un valor.
Así por ejemplo si se tiene IMPRIMIR (A, “ es el resultado”)y si A tiene un valor de 26,
una vez ejecutado en la máquina se tendrá como resultado 26 es el resultado.

6. - Realizar un algoritmo que indique la relación entre dos números cualesquiera.


(La relación existe entre dos valores cualquiera es de que el primero sea mayor que el
segundo o viceversa o una tercera que sean iguales, es decir este ejercicio ya ocupara
mas de dos condiciones)

1. Inicio 1. Inicio
2. Leer (x, y) 2. Lectura de los dos datos
3. Si x>= y entonces 3. Se pregunta si el primer datos es mayor o
SS. ir a 4 igual al segundo, en el caso de que diga si
SN. ir a 9 se tiene dos alternativas que sea mayor o
4. Si x > y entonces solamente igual, por lo que se pregunta
SS. ir a 5 por una de las dos (paso 4) y según se la
SN. ir a 7 condición la una podrá ser mayor y la otra
5. Imprimir (x,” mayor que ” y) igual.
6. Ir a 10 9. En el caso de que en la primera condición
7. Imprimir (x,” igual que ” y) no cumpla entonces como se pregunto si
8. Ir a 10 era mayor o igual y como dice no,
9. Imprimir (x,” menor que ” y) entonces lo que quedará como resultado
10. Fin es que el primero es menor que el segundo

ALGORITMOS UTILIZANDO ESTRUCTURA DE REPETICION

12

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

Existen ejercicios donde un proceso se necesita repetir varia veces para conseguir los
resultados que se espera, para lo cual se debe utilizar una estructura de repetición.

Para representar un algoritmo con estructura de repetición por lo general se necesita de


cuatro parámetros que son:

 Valor inicial de un contador.


 Una condición en la cual por lo general se involucran el contador con el número de
veces que se repite el proceso.
 El proceso propiamente dicho.
 La modificación de uno de los dos parámetros de la condición.
Todos estos parámetros se los puede representar en el siguiente esquema:

1. Lectura de las veces que se repetirá el proceso


2. Valor inicial del contador
3. Mientras contador es menor o igual a las veces que se requiere que el
proceso se repita
SS. ir a 4
SN ir a 7
4. Proceso que se va ha repetir
5. Modificación de uno de los dos parámetros de la condición
6. Ir a 3
7. Continuación con la solución

Los puntos 3 hasta el 6 representan el bloque de la estructura de repetición, por lo tanto


los puntos anteriormente nombrados se repetirán varias veces, mientras que los que se
encuentran antes y después de estos puntos se ejecutan una sola vez.

7. - Realizar un algoritmo que imprima los N primeros números pares (N indica


cuantos números pares se desea que se impriman. I y J son contadores el primero indica
la posición del numero par es decir el primero, el segundo hasta llegar al N posición del
numero, mientras que el contador J indica el valor del número par es decir 2, 4, 6, hasta
llegar al valor pedido

1. Inicio.
1. Inicio. 2. Leer la cantidad de valores pares que se va a
2. Leer (N) imprimir
3. I=1 3. Se inicia el contador I en 1 para que indique en
4. J=2 que posición de número se esta trabajando
5. Mientras I =< N repetir 4. Se inicia el contador J en dos por que es el
SS. Ir a 6 identificador que va ir tomando los valores pares
SN. ir a 10 5. Se repite el proceso mientras el contador sea <=
6. Imprimir J N
7. I = I + 1 6. Imprime el valor par que corresponda
8. J = J + 2 7. Incrementa el contador I en uno para la siguiente
posición
8. Incrementa el contador J en dos para el siguiente
valor par. 13
9. Regresa a preguntar.
10. Fin
Downloaded by andres achote (cristian18.andres.ap@gmail.com)
lOMoARcPSD|20159660

9. Ir a 5
10. Fin

8. - Realizar un algoritmo que sume los N primeros números pares (Al ejercicio
anterior se tiene que aumentarse dos pasos, el ( 4 ) que es el dar un valor inicial al
acumulador, asi como también el paso ( 7 ) que realiza la sumatoria de los números
pares. Y por último el paso ( 11 ) que se encuentra fuera del bloque de repetición por lo
que se va ha ejecutar una sola vez, ya que como pide el resultado de la sumatoria es uno
solo.

1. Inicio
2. Leer (N)
3. I=1
4. S=0
5. J=2
6. Mientras I=<N repetir
SS. Ir a 7
SN. Ir a 11
7. S=S+J
8. I=I+1
9. J=J+2
10. Ir a 6
11. Imprimir S
12. Fin.

Otra manera de resolver los dos ejercicios anteriores es la siguiente, basándose en él


ultimo problema.

1. Inicio
2. Leer (N)
3. I=1
4. S=0
5. Mientras I=<N repetir
SS. Ir a 7
SN. Ir a 11
6. P=I*2
7. S=S+P
8. I=I+1
9. Ir a 6
10. Imprimir S
11. Fin.

Se notara que existen dos casos, el identificador S se inicia en 0, mientras que el


identificador P no se inicia en ningún valor, es por el hecho que el primero es una
operación sucesiva es decir el valor anterior mas una cantidad, mientras que el segundo
opera entre dos valores nuevos.

14

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

ALGORITMOS COMBINANDO ESTRUCTURA DE REPETICION Y


CONDICION

En cualquier ejercicio si es necesario combinar estructuras de programación se los debe


juntar para dar una solución más efectiva, así como se muestra en los siguientes
ejercicios.

9.- Realizar un algoritmo que de un conjunto de números leídos, cuente cuantos


son positivos y cuantos son negativos incluyendo al cero como positivo. (Para saber
si un número es par o impar se realizo anteriormente el ejercicio No 4, ahora se le debe
incluir la parte en donde calcule para varios números. En el algoritmo N es la cantidad
de números a leer, CP y CN, contadores de números positivos y negativos
respectivamente, el paso ( 6 ) es la condición de repetición y desde el paso (6) hasta él (
13 ) es el bloque de repetición, mientras que el paso (8) es la estructura de condición y
hasta el paso (11) es el bloque de condición.

1. Inicio
2. Leer (N)
3. I=1
4. CP=0
5. CN=0
6. Mientras I=<N repetir
SS. ir a 7
SN. Ir a
7. Leer X
8. Si X>=0 entonces
SS. Ir a 9
SN. Ir a 11
9. CP=CP+1
10. Ir a 12
11. CN=CN+1
12. I=I+1
13. Ir a 6
14. Imprimir CP y CN
12. Fin

10. Realizar un algoritmo que cuente cuantos dígitos tiene un número que se
supone que es entero positivo (Para la resolución tomando en cuenta que el número ya
es entero positivo, la forma mas práctica es ir dividiendo para 10 ya que de esta forma
se va separando los dígitos y para el resultado se suma la cantidad de divisiones
realizadas.)

1. Inicio
2. Leer (X)
3. C=0
4. Mientras x<>0 Repetir
4. 1 X=X DIV 10
4. 2 C=C+1
4. 3 Ir a 4
5. Imprimir C

15

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

6. Fin

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

ESTRUCTURA
SECUENCIAL

ESTRUCTURA DE B. SIMPLE
CLASIFICACION BIFULCACION O B. ANIDADA
ESTRUCTURAS CONDICION B. COMPUESTA
B. MULTIPLE

ESTRUCTURA EST. WHILE<CONDICION>DO


ITERACION O EST. REPEAT<CONDICIO>UNTIL
REPETICION EST. FOT<VI>TO<VF>DO

Donde VI igual a valor inicial y VF valor final.

16

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 FUNCION


Indica el inicio o fin de un
diagrama de flujo para lo cual
TERMINAL 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
ENTRADA DE periférico de entrada permite el
DATOS ingreso de información, dentro de
este bloque debe ir identificadores
y no valores.

ASIGNACION O Indica la ejecución de cualquier


PROCESO proceso ejecutable ó asignación de
Información.

Utilizando cualquier medio o


SALIDA DE periférico de salida permite dar a
RESULTADOS conocer los resultados obtenidos de
los procesos, en este bloque se
debe visualizar identificadores
Utilizando por lo menos una
CONDICION 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
REPETICIÓN 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
CONECTOR 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
LINEAS DE ejecutara cada una de las
FLUJO instrucciones del diagrama.

17

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 INICIO

Bloque 2 LECTURA DE
DATOS

Bloque 3 PROCESO

Bloque 4 SALIDA DE
DATOS

Bloque 5
FIN

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 e t V
B1 20 5 4
2. - Leer (e, t) e, t B2

V= e B3
3. - V= e / t t

B4
4. - Imprimir ( V ) V

B5
FIN
5. - fin

18

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 m
1 60
3 180
h

m= h*60

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).

INICIO INICIO
A B C D E
3 2 5 4 20 A B C D E
A, B A,B,D 4 6 10 2 20

C = A+B
C=A+B
E=C*D
C
D C, E

E=D*C
FIN
E

FIN

19

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

INICIO INICIO A B C
A B 3 2 3
3 6 2 3
9 3 A,B A,B
6
A = A+B C=A
B = A-B A=B
A = A-B B=C

A,B A,B

FIN FIN

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.

20

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

NO SI
CONDICI. Si cumple la condición
IF< condición > Then
PROCESO 2 PROCESO 2
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
CONDIC Si cumple <condición> entonces
IÓN IF<coNDICIÓN> THEN
Proceso.
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
condición cumple, por lo que en el presente texto también se lo elimina, pero dando dos
soluciones:

NO SI SOLUCIÓN
CONDIC
IÓN CONDICIÓN COMPLEMENTO
PROCESO NO = ≠ ó <>
< < ó <=
EXISTE
> > ó =>

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.

21

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 N
N - 10 negativo
NO SI
NO SI N<0
N>0
N, positivo N, negativo
N,negativ N, positivo
o

FIN
FIN

16.- Realizar un diagrama de flujo que calcule si un número es par o impar.

INICIO
N
N 3 Impar
8 Par

R = N mod 2

SI NO
R=0

N”Impar” N”par”

FIN

22

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 R = X mod 2

NO R=0 SI R=0

X = X+1 X = X+1 X

X
X

FIN
FIN

23

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

R = X mod 2

SI
R<>0

X = X+1

FIN

24

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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
PROCESO 1
NO SI
E2
CONDICI
ÓN 4 NO SI
CONDICI
PROCESO 5 ÓN 2 E3

NO SI
CONDICI
PROCESO 4 ÓN 3
S4

PROCESO 3 PROCESO 2

S2
S1
S3

25

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 A>C

C mayor 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.

26

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO A B C D
3 2 5 4
2 3 5 4
A,B,C

SI
A>B
SI SI
NO
B>C A>C

B>D
NO
SI
C>D A>D
C>D

D C D B D C D A
mayor mayor mayor mayor mayor mayor mayor 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

27
May
Downloaded by andres achote (cristian18.andres.ap@gmail.com)
lOMoARcPSD|20159660

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

28

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

NO SI
X>0

NO SI
X = ENT (X)
“No”

“No”
“Si”

FIN

(Bifurcación compuesta)
INICIO

X > 0 AND
X= ENT (X) SI

“No” “Si”
29

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 > 0) AND
SI
(X<1000) AND
(ENT(X)= X)
No
U = X MOD 10
cumple
A = X DIV 10
C = A MOD 10
D = A MOD 10
S = (U*100)+(D*10)+C

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 M = X MOD 5
AND SI
P = X MOD 2
X MOD = O

“No “Si
Cumple” Cumple” M=0
and
P=0 30

“No” “Si”
Downloaded by andres achote (cristian18.andres.ap@gmail.com)
lOMoARcPSD|20159660

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 2 ELSE
3 N
4 5

PROCE 1 PROCE 2 PROCE 3 PROCE 4 PROCE 5 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).

31

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO

1. Espa
2. Veco
3. Tiem

OP

1
OP=? NO

2 3
V.T NO EXISTE
E.T V.E
E = V*T
V = E/T T = E/V

E V T

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.

32

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO

1. “Area del cuadrado”


2. “Area del rectángulo”
3. Area del triángulo”
4. Area de circunferencia

X=?

NO EXISTE
C B,H
B,H r

A=L*L A=B*H A=B*H/2 A=2Π.r2

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 40% más el sueldo básico
- Región insular 50%
- Costa 30%
- Sierra 20%

33

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO

1. R insular
2. R oriente
3. R costa
4. R sierra

OP;SB

OP = ?

NO EXISTE

SB + 50 SB + 40 SB + 30 SB + 20
ST=SB+ ST=SB+ ST=SB+ ST=SB
100 100 100 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.

34

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

35

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

Características.

a) Se ejecuta primero la condición y luego el proceso


b) Se repite el proceso si sólo si cumple la condición.
c) Por lo general si el contador empieza en 1 la condición será < si el contador
empieza en 0 será <
d) 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) Se ejecuta primero el proceso y luego la condición-


b) Se repite el proceso hasta que la condición sea verdadera o dicho en otras
palabras mientras la condición sea falso.
c) Si el contador = 1 la condición podría ser >
Si el contador = 0 la condición podría ser >
d) 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

36

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

Características.

a) 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.
b) El valor del incremento puede ser solamente + 1 o – 1
c) 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)
d) El número mínimo de veces que se repite un proceso es 0 veces, mientras
que el número máximo N veces.
e) 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 I IMPRIME
0 1
N 2 1 1
2 2
3
I=1

SI
I<N

NO “PRUEBA”

FIN

I = I=1

37

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO N I IMPRIME
0 1
2
N 2 1
2
3
I=1

“PRUEBA”

I = I=1

I>N NO

SI

FIN

INICIO N I IMPRIME
0 1
3 1
N 2
3
4
I = 1; N = 1

“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.

38

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

I=1
P=1

I<N

FIN

P= P+2
I = I+1

Estructura FOR…TO… DO ESTRUCTURA REPEAT ….UNTIL

INICIO INICIO

N
N

P=1
I=1
P=1
I = 1; N = 1

P P

P=p+2 I=I+1
P = P+ 2

FIN I >N

39

Downloaded by andres achote (cristian18.andres.ap@gmail.com) FIN


lOMoARcPSD|20159660

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

I=1

I<N SI

A = 2+I
I = I+1

FIN

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

40

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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=1; N; 1

I<N SI T=3*I-1

T
NO T = 3*I-1
I=I+1
FIN
FIN
T

INICIO

I=1

T = 3*I-1
I=I+1

NO
I>N

SI
FIN

41

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

ECUACION PARA CALCUALR LA FORMULA DEL ENESIMO TERMINO

VALOR DEL POSICION VALOR DEL VALOR


ENESIMO = INTERVALO * DEL + PRIMER - DEL
TERMINO ENTRE DOS TERMINO TERMINO INTERVALO
VALORES
CONSECUTIVOS

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

I=1

I<N SI

NO T = 7*I-5
I=I+1
FIN

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

42

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 I = 1; N;1
Sig = Sig(-1)
I = I+1

T T = (2*1) * Sig
Sig = Sig(-1)

NO
I>N T

SI SI
FIN FIN
INICIO

I=1

I<N SI

T = (2*I)*(-1)↑ (i+1)
I=I+1

FIN
T

43

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

MAY = 0
I=1

I<N

NOTA

MAY
NOTA>MAY

FIN
MAY = SI
NOTA

I=I+1

44

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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
MAY

FIN 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).

45

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO

I=1

I<N SI

NO
X

MAY
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.

46

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

El mismo ejercicio anterior pero con la estructura Repeat…. Until.

INICIO

I=1

I=1

MAY = X

X > MAY

MAY = X

I=I+1

I >N

MAY

FIN

47

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

C=0

X<>0 SI

C=C+1
C
X = X DIV IO

FIN

INICIO

C=0

C=C+1

X = X DIV 10

X<>0

48
FIN

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

FIN

49

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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>0) AND ( NO
ENT( X)= X)

SI
P=1

I = 1; X;1

P=P*I

FIN

50

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO INICIO

X X

X > 0 AND X>0 NO


ENT X = X AND ENT X = X

SI
I=1 I=1
P=1 P=1

P = P*I
I=I+1 I<X SI

P = P*I
I>X NO
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.

51

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 SI

NO 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

52

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO

A,B

(A>0) AND
(A>B) AND
(ENT A=A)AND
(ENT B = B)

INICIO
I=1
S=O
A,B

S=S+B
I=I+1

(A>0) AND
(A>B) AND
I >A (ENT A=A) AND
(ENT B = B)

S
SI
S=0
FIN
I = 1; A;1

S=S+B

FIN

53

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 Casa
2 50
. A5
. Ejemplo
N 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) X


V (I) Arreglo 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.

54

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

INICIO
INICIO

N
N

I=1
I=1

V(I)

I<N
I=I+1
V(I)

NO
I<N
I=I+1
I=1

I=1

I<N
V(I)

V(I)

I=I+1

NO
FIN I=I+1
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.

55

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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.

56

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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
I=1 S=0
S=0

V(I)

I<N
I=I+1
V(I)

NO
I<N
I=I+1
I=1

I=1

I<N

S=S+V(I)
I=I+1

S
NO
S=S +V(I) I<N
I=I+1

FIN
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.

57

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

2 FORMA

INICIO INICIO

N N

S=0
S=0

I = 1, N , 1
I = 1, N , 1

V(I)
V(I)

S=S+V(I)
I = 1, N , 1

S=S+V(I)

V(K)

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

58

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

Usando varios bloques de repetición

INICIO

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.

59

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

Usando un solo bloque de condición.

INICIO

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.

60

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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 NOTA NOMB
1 16 Luis
N
2 18 María
3 17 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.

61

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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) I = 1;N -1;1


V (P) = x

V (I+1) = V(I)
I = 1;N + 1;1

V(P) = X
V(J)

I = 1;N+1;1

V (I)

FIN
62

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


FIN
lOMoARcPSD|20159660

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 6
2 -4
N 3 +2
4 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

63

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

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
64

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

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)

65
FIN
Downloaded by andres achote (cristian18.andres.ap@gmail.com)
lOMoARcPSD|20159660

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 NOM NOTA
1 B 16
2 C 17
N
3 A 18

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)
66

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

67

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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
68

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

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

69

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

70

Downloaded by andres achote (cristian18.andres.ap@gmail.com)


lOMoARcPSD|20159660

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

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

71

Downloaded by andres achote (cristian18.andres.ap@gmail.com)

También podría gustarte