Libro de Algoritmos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 68

ESCUELA PREPARATORIA TÉCNICA

“GRAL. EMILIANO ZAPATA”


CLAVE SE: 19EBH0001J-19ECT0001D

Algoritmos
Computacionales

Bachillerato Técnico en Sistemas Computacionales

2º. Semestre
INDICE
Introducción --------------------------------------------- 4

Carta Compromiso --------------------------------------------- 5

UNIDAD 1 (Primer Parcial) --------------------------------------------- 6

Variables y Constantes --------------------------------------------- 8

Trabajando con Variables y Constantes a través de --------------------------------------------- 11


expresiones
Simbología utilizada en los diagramas de flujo. --------------------------------------------- 16

Estructura Algorítmica. --------------------------------------------- 19

Solución de Problemas Computacionales --------------------------------------------- 20

Definición del Problema (entenderlo) --------------------------------------------- 20

Análisis del Problema --------------------------------------------- 21

Diseño del Algoritmo --------------------------------------------- 23

Diseño del Diagrama de Flujo --------------------------------------------- 24

Prueba de Escritorio --------------------------------------------- 25

Codificación -------------------------------------------- 26

Depuración, Ejecución, Documentación -------------------------------------------- 27

Mantenimiento -------------------------------------------- 27

Actividad 1 y 2 -------------------------------------------- 28

Actividad 3, 4 y 5 -------------------------------------------- 29

Actividad 6 -------------------------------------------- 30

Ejercicios Unidad 1 -------------------------------------------- 31

UNIDAD II ( Segundo Parcial) -------------------------------------------- 33

Estructuras Condicionales de Decisión o de Selección -------------------------------------------- 34

Representación de una Estructura de Decisión Simple -------------------------------------------- 35

Representación de una Estructura de Decisión Doble -------------------------------------------- 36

Representación de una Estructura de Decisión Anidada -------------------------------------------- 37

Selección, Decisión u Opción Múltiple -------------------------------------------- 40

Ejercicios de la Unidad II -------------------------------------------- 42

2
UNIDAD III (Tercer parcial) -------------------------------------------- 45

Ciclos con un número determinado de interacciones -------------------------------------------- 46


(para-hasta-hacer)
Ciclos con un número indeterminado de -------------------------------------------- 48
interacciones
Mientras-Hacer -------------------------------------------- 49

Repetir- Hasta -------------------------------------------- 51

Ejercicios sobre Ciclos -------------------------------------------- 53

Arreglos -------------------------------------------- 55

Ejercicios sobre Vectores -------------------------------------------- 60

Matriz -------------------------------------------- 61

Problemas propuestos de Matriz -------------------------------------------- 66

Amplia la Información accesando a -------------------------------------------- 68

3
INTRODUCCIÓN

Bienvenido al curso de ALGORITMOS COMPUTACIONALES, en el transcurso del


presente semestre desarrollarás la habilidad para estructurar tu pensamiento, utilizando
herramientas necesarias para el diseño de algoritmos y diagramas de flujos, mismos que
te permitirán en los siguientes cursos codificar en lenguajes específicos programas para
que sean ejecutados en la computadora.

El primer paso que debes realizar es eliminar todo pensamiento negativo, es decir,
el típico “no entiendo”, “no puedo”, “ es muy difícil” y cambiarlos por las frases “SE QUE
PUEDO”, “SOY CAPAZ”, “PUEDO PENSAR Y EXPRESAR” y “ LO VOY HACER”. De esta
forma anularas toda información que pueda afectar tu desempeño escolar.

El segundo paso es conocer de forma general el contenido del curso, este consta
de 3 unidades donde aprenderás teoría y práctica sobre diseño de algoritmos y
diagramas de flujo secuenciales, condicionales, cíclicos y arreglos (vectores y matrices).
Los problemas sugeridos fueron seleccionados de menor a mayor grado de dificultad.

El tercer paso es lo que se desea lograr, al concluir el curso serás capaz de diseñar
diagramas de flujo para proporcionar soluciones a problemas computacionales, utilizando
las herramientas vistas y obedeciendo a las reglas de diseño.

El cuarto paso y último consiste en comprometerse por escrito considerando: que


calificación deseo obtener?, que problemas estoy detectando desde ahora (por ejemplo
que dificultades se te presentaron durante el curso anterior en Introducción a la
Computación, en el último tema), como consideras que lo superarás?

En la siguiente hoja existe una carta compromiso que llenar siguiendo las
indicaciones de tu docente.

4
ACTIVIDAD CARTA COMPROMISO

MONTERREY, N.L. __ DE __________DE ____

YO _____________________________ ME COMPROMETO A
TRAER A CLASES LA ANTOLOGÍA DE ALGORITMOS
COMPUTACIONALES,
LA LIBRETA, LÁPIZ, BORRADOR Y SACAPUNTAS, ADEMÁS DE:
_________________________________________________
_________________________________________________
_________________________________________________
PARA OBTENER _______ COMO CALIFICACIÓN FINAL DEL CURSO DE
ALGORITMOS COMPUTACIONALES, CURSADO DURANTE EL SEMESTRE
_______________________.

____________________ ______________________
FIRMA ALUMNO FIRMA TESTIGO

___________________________
FIRMA DOCENTE DE LA MATERIA

5
LOS ALGORITMOS, HISTORIA, METODOLOGÍA Y
PRACTICAS
(CONTENIDO PARA EL PRIMER PARCIAL)

6
A través de una serie de pasos ordenados, lógicos y finitos se logra realizar
actividades, construir (por ejemplo rompecabezas), instalar y manejar algún aparato
electrónico (ejem. Theatre, pc, etc), esto significa que has trabajado con
algoritmos a lo largo de la vida, aplicándolos día a día de manera
semiinconsciente, sin embargo, al ingresar al curso de Algoritmos
computacionales, deseo que entiendas que también es un proceso por el que
pasarás y este debes ser consciente, sin importar cuantas veces falles,
debes entender que puedes lograrlo si así lo decides, para ello dejaré en
claro el objetivo que persigue la materia, consiste en esencia, aprender a reproducir el
razonamiento propio dentro de estructuras (atendiendo a reglas, características y
símbolos), y representarla con el idioma universal de los programadores, a través de los
diagramas de flujo, de tal manera que sirva para solucionar problemas computacionales.

Primeramente rendiremos honor a quien lo merece, los primeros


datos del creador de un algoritmos fue un babilónico en 1800
ac, aunque se desconoce el nombre, quedo registrado como
parte de la historia, posteriormente surge al-Khwārizmī
matemático, astrónomo y geógrafo persa musulmán chií, vivió
aproximadamente entre 780 y 850. Debemos a su nombre y al
de su obra principal, Hisab al yabr ua al muqabala, nuestras
palabras álgebra, guarismo y algoritmo. De hecho, es
considerado como el padre del álgebra y como el introductor de
nuestro sistema de numeración. De su apellido se tomo la
traducción al latín para la palabra algoritmus.

Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La


autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por
ello que es considerada por muchos como la primera programadora.

Puesto que nuestro interés es resolver problemas computacionales, es necesario


visualizar gráficamente la forma de trabajar de una computadora.

SALIDA(S)
ENTRADA(S) PROCESO(S)
INFORMACIÓN DESPLEGADA EN
(DATOS TECLEADOS: OPERACIONES CON
EJEM: 16, JUAN) PANTALLA O IMPRESA EN PAPEL
LOS DATOS (RESULTADO DE LAS OPERACIONES CON LOS
DATOS)

7
La computadora solo puede recibir datos a través del teclado, de la voz o del tacto
(tecnología touch screen), procede a trabajar utilizando operaciones aritméticas o
lógicas, según se requiera, al concluir se enviaran los resultados a través de la pantalla
del monitor, impresora o almacenando la información en dispositivo de almacenamiento
secundario.

Antes de conocer y llevar a la práctica la metodología para la solución de problemas


computacionales, es necesario conocer los siguientes temas:

a) Variables y constantes
b) Trabajando con variables y constantes a través de expresiones
c) Simbología de los diagramas de flujo
d) Estructura algorítmica

A) VARIABLES Y CONSTANTES

Para trabajar con una computadora se requiere reservar áreas en la memoria


principal (variables), estas puede almacenar valores numéricos o alfanuméricos (datos),
según se defina, y estos pueden cambiar durante la ejecución de un proceso, en
programación se le reconoce como identificador.

Para que se pueda trabajar con la computadora, cada variable necesita recibir un
nombre, y las características para nombrarlas son:

 Iniciar el nombre con letra (A…Z), en mayúsculas o minúsculas. Después se pueden


combinar con números.
 La longitud de caracteres para nombrarla dependerá del lenguaje de programación,
en caso de algoritmos no existe oficialmente un límite, sin embargo, se
recomiendan 8 caracteres.
 Cuide que el nombre que le asigno a la variable se escriba de igual forma a lo largo
del algoritmo (lenguajes como C son estrictos en el manejo de las mayúsculas y
minúsculas).
 No deje espacios en blanco si el nombre se compone de dos o más palabras únalas
con el símbolo de _ (guion bajo).

8
 Es preferible que el nombre de la variable represente al contenido, así facilitará
su interpretación en el diagrama de flujo, de no hacerlo será necesario documentar
definiendo las variables utilizadas.

NOTA: las variables toman su valor como resultado de una operación aritmética o por
asignación.

REALIZAR ACTIVIDAD 1.

Numéricas (con decimales y sin decimales)

Por su contenido Alfanuméricas

Clasificación Lógicas
de las
Variables De trabajo
Por su uso
Contadores

Acumuladores

Por su contenido

 Variables Numéricas: Son aquellas en las cuales se almacenan valores numéricos,


positivos o negativos, es decir almacenan números, signos (+ y -) y el punto decimal.
Ejemplo:
iva 0.15 pi 3.1416 costo 2500
 Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso)
estos representan el resultado de una comparación entre otros datos.
 Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras,
números y caracteres especiales).
Ejemplo:
letra “a” apellido “López” direccion “Av. Libertad #190”

Por su uso

 Variables de Trabajo: Variables que reciben el resultado de una operación


matemática completa y que se usan normalmente dentro de un programa.

9
Ejemplo:
Suma a+b
 Contadores: Se utilizan para llevar el control del número de ocasiones en que se
realiza una operación o se cumple una condición. Con los incrementos o
decrementos son en cantidades fijas.
 Acumuladores: Forma que toma una variable y que sirve para llevar la suma
acumulativa de una serie de valores distintos que se van leyendo o calculando
progresivamente.

Características de variables con función de contadores o acumuladores:

 La variable debe recibir un primer valor antes de ser usada. (conocida también como
inicialización, generalmente es en cero a no ser que a través del análisis se haya
decidido otro valor)
 El nombre de la variable va de los 2 lados de la igualdad (y debe ser escrito igual).
 Los programadores normalmente reconocen la letra c o la abreviación cont como si
representaran a los contadores y la abreviación acum para los acumuladores.

Ejemplo:

Contador Contador +1 dinero_acumu dinero_acum + cooperación

REALIZAR ACTIVIDAD 2 Y 3.
Ejemplificaremos visualmente la teoría sobre las variables.
Contenido
De la variable

7 dia

carrera
sistemas

Nombres de variables
Espacios en memoria principal precio
(variables) 13.50

Pedro nombre

10
REALIZAR ACTIVIDAD 4.

Para la asignación de un valor a la variable, se utiliza el símbolo de , y queda


representado así:

día 7 carrera ”sistemas” precio 13.50 nombre “Pedro”

Con respecto a las constantes, se caracterizan por ser valores numéricos o


alfanuméricos que no cambian, estos se pueden escribir directamente en una formula o
asignar a una variable para que sea esta la utilizada.

Ejem Aplicada directamente en una formula premio_puntualidad sueldo +150

ahora asignaremos un valor fijo a una variable IVA 0.15

y aplicaremos la variable en una operación

para obtener el iva de una cantidad cantidad_de_iva precio * IVA

B) TRABAJANDO CON VARIABLES Y CONSTANTES A TRAVÉS DE EXPRESIONES

Las expresiones constan de

Variable Operando (operador) operando


(constante o variable) (constante o variable)

Ejems
Area 5 * altura contador contador + 1

Operadores

Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o
constantes. Es decir, los operadores nos permiten manipular valores.

11
Operadores Aritméticos

Los operadores aritméticos permiten la realización de operaciones matemáticas con


los valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o
reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el
resultado es real.

Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
mod Modulo (residuo de la división entera en pascal y % en lenguaje C)

Ejemplos:

Expresión Resultado
(obedeciendo a la prioridad de operadores)
7/2 3.5
12 mod 7 5
4+2*5 14

Prioridad de los Operadores Aritméticos

Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con
paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa
primero.

Dentro de una misma expresión los operadores se evalúan en el siguiente orden:

12
1. ^ Exponenciación
2. *, /, mod Multiplicación, división, modulo.
3. +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de
izquierda a derecha.

Ejemplos:

4 + 2 * 5 = 14 23 * 2 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

Operadores Relacionales

Se utilizan para establecer una relación entre dos valores. Luego compara estos
valores entre si y esta comparación produce un resultado de certeza o falsedad
(verdadero o falso).

Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas).
Estos tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales
tiene menor prioridad que los aritméticos.

Tipos de operadores Relacionales

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

<> Diferente

= Igual

13
Ejemplos: Ejemplos no lógicos:
Si a = 10, b = 20, c = 30 a<b<c
a+b>c Falso 10 < 20 < 30
a-b<c Verdadero T > 5 < 30
a-b=c Falso (no es lógico porque tiene diferentes operandos)
a*b<>c Verdadero
Operadores Lógicos

Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos
valores pueden ser resultado de una expresión relacional.

Tipos de operadores Lógicos


And (Y) Or (O) Not (Negación)

Ejemplo:

Para los siguientes ejemplos T significa verdadero y F falso.

Operador Not Operador Not

Operando Resultado
T F
F T

Operador And Operador And

Operando1 Operador Operando2 Resultado


T AND T T
T F F
F T F
F F F

Operador Or Operador Or
14
Operando1 Operador Operando2 Resultado
T Or T T
T F T
F T T
F F F
Prioridad de los Operadores Lógicos

1. Not
2. And
3. Or

Prioridad de los Operadores en General

1. ( )
2. ^
3. *, /, Mod, Not
4. +, -, And
5. >, <, > =, < =, < >, =, Or

Ejemplos:
Sea: a = 10 b = 12 c = 13 d =10

NOTA: REALIZAR ACTIVIDAD 5

15
C) SIMBOLOGÍA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

Para estandarizar a los programadores, la Organización Internacional para la


Estandarización (ISO, por su sigla en inglés), según norma ISO 5807 y el Instituto
Nacional Americano de Estandarización (ANSI, por su sigla en inglés), se encargaron de
ello en 1985. Si dese mayor información el enlace se encuentra al final de la antología, y
se requiere ser miembro para acceder a los servicios o pagar por los ficheros.

Ahora visualizaremos los símbolos más comunes:

SÍMBOLOS EQUIVALENTES SIGNIFICADO OBSERVACIONES


Solo se escribe el nombre
Lectura o de la(s) variable(s)
entrada de
datos

No debe incluir la palabra si,


Condición, En la parte interna se debe
selección o representar como:
decisión Variable operador variable
O
Variable operador valor

Solo va una de las dos


palabras, y depende de la
ubicación
Inicio / Fin

variable variable
Opción múltiple En la parte interna solo va el
F O nombre de la variable.
F Selección
múltiple Solo se utiliza uno de los
símbolos en el diagrama.

16
F

Impresión a Los letreros van entre


pantalla comillas dobles y las
variables no

Impresión Los letreros van entre


(salida a comillas dobles y las
impresora) variables no

Conector Se utilizan por parejas con


(dentro de la el mismo número en la parte
misma hoja) interna.

Conector Se utilizan por parejas con


(para el mismo número en la parte
diferentes interna.
hojas)

17
Proceso Se utiliza para asignar valor
a una variable o para
operaciones aritméticas.

Líneas de flujo Se utilizan para indicar la


o dirección dirección en el diagrama de
flujo

puente Se utiliza para


sobreponerse en las líneas
de flujo.
CICLOS
(la explicación se dará en las siguientes unidades)
Para

Repetir

Mientras

18
NOTA: REALIZAR ACTIVIDAD 6

D) ESTRUCTURA ALGORÍTMICA

Las estructuras de operación de programas son un grupo de formas de trabajo, que


permiten, mediante la manipulación de variables, realizar ciertos procesos específicos
que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con
su complejidad en:

Asignación
Secuenciales Entrada(s)
(elementos) Proceso(s)
Salida
Estructuras Algorítmicas
Condicionales Simples
Dobles
Anidados
Opción múltiple

Para (desde)
Cíclicos Mientras que
Repetir hasta

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra


en secuencia (conocidas también como lineales). Las tareas se suceden de tal modo que la
salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso,
en estos nos enfocaremos para el primer parcial.

19
Ejemplo de un algoritmo secuencial:

Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo.

Pseudocódigo:

Inicio
Levante la bocina
Espere tono
Marque el número
Espere a que contesten
Hable con la otra persona
Cuelgue la bocina
Fin

Ahora utilizaremos una metodología la solución de problemas computacionales:

1.- Definición del Problema 6.- Codificación


2.- Análisis del Problema 7.- Depuración
3.- Diseño del Algoritmo 8.- Ejecución
4.- Diseño del Diagrama de flujo 9.- Documentación
5.- Prueba de escritorio 10.- Mantenimiento

NOTA: Durante el presente curso solo se trabajará con los primeros 5 pasos.

Una vez que se han leído los pasos para la solución de problemas computacionales
procederemos a la practica.

I. DEFINICIÓN DEL PROBLEMA (ENTENDERLO):

Se debe tener claro lo que se desea resuelva la computadora, si el problema se ha


manifestado verbalmente, se debe preguntar tantas veces sea necesario o si es por
escrito, leer tantas veces se requiera, en ambos casos la finalidad es disipar cualquier
duda.

Se han creado 3 ejemplos: en el primero no requiere lectura de variables, en el segundo


se requiere leer los valores y en el tercero (como ya se conoce el valor) se asignará a
una variable.

20
Ejem 1. Se desea conocer el significado de los colores de la bandera mexicana.

Dudas que puedan surgir:


¿Qué desean conocer?, ¿en el orden normal o inversamente?

Ejem 2. Obtener el promedio de 5 calificaciones.

Dudas que puedan surgir:


¿Cuáles son las calificaciones? (continúe en el segundo paso para resolver la duda)

Ejem 3. Calcular el área de un cuadrado, el valor de sus lados es de 8 mts.

Nota: cuando se requiera de formulas para las operaciones aritméticas y no se


recuerden o se desconozcan, se debe investigar hasta conseguirlas.

II.-ANÁLISIS DEL PROBLEMA:

Superado el primer paso ahora pensaremos como una computadora:

1. Los datos de entrada (que desconozco y debo pedir, que debo asignar)
2. Cual es la información que se desea producir (salida)
3. Los métodos y fórmulas que se necesitan para procesar los datos. (Procesos)

Para el ejemplo 1. Se desea conocer el significado de los colores de la bandera


mexicana.

ENTRADA SALIDA PROCESOS


EXPLICACIÓN: puesto que EXPLICACIÓN: el usuario EXPLICACIÓN: Ya que no
el programador es quien espera conocer el se requiere de ningún tipo
investigará el significado de significado de los colores de de operación, este espacio
los colores, no se requiere la bandera, por lo que solo queda en blanco.
asignar o pedir ningún valor. habrá una impresión:

“verde = esperanza,
blanco=pureza y
rojo=sacrificio”

21
Ejem 2. Obtener el promedio de 5 calificaciones.

ENTRADA SALIDA PROCESOS


EXPLICACIÓN: al desconocer EXPLICACIÓN: el EXPLICACIÓN: aquí se
las calificaciones, lo que nos usuario necesita elaboraran las operaciones,
queda como diseñadores, es conocer el promedio de quedando así:
solicitar los datos y las 5 calificaciones, así
almacenarlos en variables, para que imprimiríamos un Prom (calif1+calif2+calif3+calif4+calif5)/5

representar que desconocemos breve letrero y la


los valores, después del variable que almacene el
nombre de la variable promedio,
escribiremos el símbolo y quedando así:
el símbolo de ?, quedando así:
“El promedio obtenido
Calif1 ? de las 5 calificaciones
Calif2 ? es” prom
Calif3 ?
Calif4 ?
Calif5 ?

Ejem 3. Calcular el área de un cuadrado, el valor de sus lados es de 8 mts.

ENTRADA SALIDA PROCESOS


EXPLICACION: al conocer el “El área del cuadrado es: “ area lado * lado
valor de los lados, solo area
requerimos asignarlo a una
variable, quedando así:

lado 8

NOTA: la única interfaz de comunicación entre el programador y el usuario será la


pantalla de la computadora, a través de ella se solicitaran los datos, aparecerán los
datos tecleados y se visualizará el resultado deseado. Por lo que debe ser lo mas
claro y preciso, para evitar ambigüedad.

22
III.- DISEÑO DEL ALGORITMO

Proporcionaré 2 definiciones correctas de lo que es un algoritmo computacional:

 Un algoritmo es una serie de pasos organizados que describe el proceso que se


debe seguir, para dar solución a un problema específico.
 Un Algoritmo es una secuencia de pasos, bien definidos, bien precisos y con un
fin, para resolver un problema determinado

Incluyendo la propuesta de Knuth y de otros programadores se enlista de manera


sencilla las características que debe poseer todo algoritmo:

 Debe escribirse en un lenguaje común, ejem. Español, inglés, etc.


 Cada instrucción debe estar enumerada, ejem 1.-
 Debe tener un inicio. (este es el paso 1)
 Puede tener solicitud de datos o asignación de valores
 Debe ser definido, no debe permitir dobles interpretaciones.
 Debe ser general, es decir, soportar la mayoría de las variantes que se
puedan presentar en la definición del problema.
 Debe ser finito en tamaño (la palabra fin se escribe en el ultimo numero que
se utilice) y tiempo de ejecución.

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje


natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros.
Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar
pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural.
Dichas expresiones son formas más estructuradas para representar algoritmos; no
obstante, se mantienen independientes de un lenguaje de programación específico.

Vamos a diseñar los algoritmos de los anteriores ejemplos.

EJEMPLO 1 EJEMPLO2
1.- Inicio 1.-Inicio
2.- Desplegar “verde = esperanza, 2.- Leer calif1,calif2,calif3,calif4,calif5
blanco=pureza y rojo=sacrificio” 3.- Calcular prom (calif1+calif2+calif3+calif4+calif5)/5
3.- Fin 4.- Desplegar “el promedio obtenido de las 5 calificaciones
es: ” Prom
5.- Fin

23
EJEMPLO 3
1.- Inicio
2.- lado 8
3.- area lado * lado
4.- desplegar “el area del cuadrado es: “ area
5.- Fin

IV.- DISEÑO DEL DIAGRAMA DE FLUJO:

Un diagrama de flujo es la representación gráfica de un algoritmo, también


conocido como flujograma, se utiliza principalmente en programación, economía y
procesos industriales. También son conocidos con el nombre de organigramas y en
algunas ocasiones también se les puede denominar ordinogramas. La expresión inglesa
para su designación es flow-chart.

Un diagrama de flujo se construye uniendo mediante flechas (que indican el orden


lógico del proceso, la secuencia de ejecución), una serie de bloques, cada uno de los
cuales representa una acción a realizar. Dentro de los bloques se detalla la acción
concreta a realizar.

Recomendaciones para el diseño de Diagramas de Flujo

 Se deben usar solamente líneas de flujo horizontales y/o verticales.


 Se debe evitar el cruce de líneas utilizando los conectores, en su defecto
utilice el puente.
 Se deben usar conectores sólo cuando sea necesario.
 No deben quedar líneas de flujo sin conectar.
 Se deben trazar los símbolos de manera que se puedan leer de arriba hacia
abajo y de izquierda a derecha.
 No pueden llegar más de un flujo de secuencia al símbolo del fin.
 Todo texto escrito dentro de un símbolo deberá ser escrito claramente,
evitando el uso de muchas palabras

24
A continuación se visualiza el diseño de los diagramas de flujo de cada ejemplo.

EJEMPLO 1 EJEMPLO 2 EJEMPLO 3


Inicio
Inicio Inicio

calif1,calif2,calif3
“verde = esperanza, lado 8
,calif4,calif5

blanco=pureza y
rojo=sacrificio” area lado * lado
Prom (calif1+calif2+calif3+calif4+calif5)/5

Fin “El promedio obtenido de las “El area del


5 calificaciones es: “ prom cuadrado es: “ area

Fin
Fin

V.- PRUEBA DE ESCRITORIO:

Dar seguimiento paso a paso al diagrama de flujo, utilizando valores de ejemplo (en
caso necesario) para constatar que existe coherencia y proporciona la información
necesaria.

¿Cómo se realiza?, primero debe seguir con la secuencia de loa símbolos, asignando
o solicitando valores, en caso de que existan operaciones (aritméticas, lógicas o
relacionales) efectuarlas, para concluir con la salida que se genere, de esta forma se
tomara consciencia si esta correcto o no.

Ejem 1

Como solo se requiere de la impresión, solo imprimiremos sin comillas (porque así
aparecería en pantalla)

verde = esperanza, blanco=pureza y rojo=sacrificio

25
Ejem 2

calif1=80 prom=(calif1+calif2+calif3+calif4+calif5) /5 El promedio


calif2=100 prom=(80+100+70+95+85)/5
obtenido de las 5
calif3=70 prom=86
calificaciones es:
calif4=95
calif5=85 86

Ejem 3
El area del cuadrado es: 64
lado = 8 area= lado *lado
area= 8 * 8
area = 64

NOTA: REALIZAR LOS EJERCICIOS LOCALIZADOS AL FINAL DEL CAPITULO.

VI.- CODIFICACIÓN:

Consiste en escribir la solución del problema (de acuerdo a la lógica del diagrama
de flujo o pseudocódigo), utilizando comandos proporcionados por algún lenguaje de
programación o de alto nivel (lenguaje c, quick Visual Basic, cobol, pascal, java, Delphi,
etc.), esta serie de instrucciones detalladas se le conoce como código fuente.

Como la presente antología ha sido desarrollada especialmente pensando en que el


próximo semestre se verá el lenguaje C, en este lenguaje se codificaran los ejemplos,
sin incluir procedimientos o funciones.

Para el presente curso de algoritmos computacionales basta con entregar el


producto (diseño del algoritmo y diagrama de flujo) hasta esta etapa, los siguientes
pasos solo se mencionaran de manera teórica ya que en el siguiente curso lo veras a
través de la practica.

26
VII.- DEPURACIÓN:

Consiste en identificar los errores (de sintaxis, lógicos o de ejecución),


normalmente la depuración de sintaxis se realiza en el editor del lenguaje en el que
se este programando.

VIII.- EJECUCIÓN:

Dentro del editor del lenguaje en el que se programo se utiliza(n) tecla(s) para
“ejecutarlo”, “echarlo andar” o “correrlo”, esto significa utilizando un compilador y un
traductor (dependiendo del editor del lenguaje), a través de la pantalla se establezca
la “comunicación ” con el usuario, quiere decir, solicitud de datos a través de letreros
en pantalla, captura de datos, etc.

IX.- DOCUMENTACIÓN:

Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados,


procedimientos, dibujos o diagramas. A menudo un programa escrito por una
persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender
o usar un programa o para facilitar futuras modificaciones (mantenimiento).

La documentación se divide en tres partes:

a) Documentación Interna: Son los comentarios o mensaje que se añaden al código


fuente para hacer mas claro el entendimiento de un proceso.
b) Documentación Externa: Se define en un documento escrito los siguientes
puntos:
 Descripción del Problema, Nombre del Autor, Algoritmo (diagrama de
flujo o pseudocódigo), Diccionario de Datos, Código Fuente (programa),
etc.
 Manual del Usuario: Describe paso a paso la manera como funciona el
programa, con el fin de que el usuario obtenga el resultado deseado.

XI.- MANTENIMIENTO:

Se lleva acabo después de terminado el programa, cuando se detecta que es


necesario hacer algún cambio, ajuste o complementación al programa para que siga
trabajando de manera correcta. Para poder realizar este trabajo se requiere que el
programa este correctamente documentado.

27
ACTIVIDAD 1 FECHA DE REALIZACIÓN ___/_____/20___

A continuación se enlista una serie de nombres para variables, escriba la letra c si


esta correctamente escrito o la letra i si esta incorrecto explicando por que?

__ _importe _________________________________________

__ precio _________________________________________

__ num1 _________________________________________

__ NOM _________________________________________

__ 2valor _________________________________________

__ prom _________________________________________

__ precio_con_iva _________________________________________

ACTIVIDAD 2 FECHA DE REALIZACION ___/_____/20___

Identifique las siguientes variables por su contenido, escribiendo la letra N)umerica o


A)lfanumerica.

edad 18 _____________________

clave “alumnos68” _____________________

precio 13.95 _____________________

saludo “hola” ______________________

calif1 88.5 ______________________

estatura 1.68 ______________________

28
ACTIVIDAD 3 FECHA DE REALIZACIÓN ___/_____/20___

Escriba si esta CORRECTO o INCORRECTO la forma de expresar la formula para un


contador o para un acumulador, en caso de ser incorrecto explique por que?

c c+1 ____________, __________________________________

dinero d+1 ____________, __________________________________

cont 5+6 ____________, __________________________________

acum acum+cant____________, __________________________________

ACTIVIDAD 4 FECHA DE REALIZACIÓN ___/_____/20___

Represente visualmente las variables, llenando los espacios vacios con los datos
solicitados

Nombre de la variable CONTENIDO TIPO DE DATO


numérico (sin decimal)
alfanumérico
numérico (con decimal)
alfanumérico

ACTIVIDAD 5 FECHA DE REALIZACIÓN ___/_____/20__

ESCRIBA LAS LETRAS INDICADAS ABAJO, SEGÚN CORRESPONDA EL OPERADOR.

A (PARA ARITMÉTICO) R (PARA RELACIONAL )

> ____________________________ + ________________________

= ____________________________ < ________________________

/ ____________________________ * ________________________

29
ACTIVIDAD 6 FECHA DE REALIZACIÓN ___/_____/20__

ESCRIBA EL NOMBRE DEL SÍMBOLO SEGÚN CORRESPONDA.

NOMBRE SÍMBOLO

30
EJERCICIOS CAPITULO 1

Se ha planteado una serie de ejercicios para que el alumno los desarrolle,


presentando diversos grados de dificultad. Todos aptos para que el alumno vaya de
menor a mayor grado, diseñando los algoritmos, diagramas de flujo y pruebas de
escritorio desde problemas en los que no requieren solicitud de datos, pasando por
asignación de datos y concluyendo en solicitud de datos.

Sugerencia establezca el siguiente formato en hojas con orientación horizontal:

ANÁLISIS ALGORITMO DIAGRAMA DE PRUEBA DE


FLUJO ESCRITORIO
ENTRADA(S)

SALIDA(S)

PROCESO(S)

Redacciones:

1.- En un jardín de niños la maestra de tercer año planea exponer el significado de los
colores del semáforo en orden, requiere que se diseñe un algoritmo y diagrama de
flujo que sirva para programar en un futuro las computadoras de la escuela.
2.- Se desea hacer una exposición donde a través de la pantalla de la pc los visitantes
pueda recibir por escrito un saludo. Diseñe el algoritmo y diagrama de flujo
correspondientes.

31
3.-Realice el diseño de un algoritmo y diagrama de flujo que permita a la preparatoria
Técnica Gral. Emiliano Zapata notificar los costos de las fechas de los 4 pago que se
deben realizar: primer pago 3-20 febrero, segundo pago 3-20 marzo, tercer pago
3-20 abril y cuarto pago 3-22 mayo. (SE PUEDEN COLOCAR LAS FECHAS DEL
SEMESTRE EN CURSO)

4.- Diseñe un algoritmo y diagrama de flujo que les recuerde a los alumnos de primer
semestre de la PEZ a partir de cuantas materias reprobadas en segunda oportunidad
se consideran repetidores.
5.- Diseñar un algoritmo y diagrama de flujo que invite a una persona cualquiera a ver la
película Rudo y Cursi.
6.- Diseñar un algoritmo y diagrama de flujo que obtenga el 15 % del iva sobre una
compra de $3,500.00
7.- Diseñar un algoritmo y diagrama de flujo que descuente el 10% a una compra de
$1,850.00
8.-Diseñar un algoritmo y diagrama de flujo que calcule el sueldo de un trabajador, que ha
laborado 6 días y se le paga $130.00 diarios.
9.-Diseñar un algoritmo y diagrama de flujo que calcule el área de un triangulo si tiene
como base 5 mts y de altura 9 mts.
10.- Diseñar un algoritmo y diagrama de flujo que convierta una hora a segundos.
11.- Diseñar un algoritmo y diagrama de flujo que solicitar a un usuario presione una tecla
cualquiera e imprimirla.
12.- Diseñar un algoritmo y diagrama de flujo que obtenga el gasto generado por el pago
de los recibos de los servicios de agua, luz gas y teléfono.
13.- Diseñar un algoritmo y diagrama de flujo que obtenga el pago neto de 2 mochilas y 2
laptops (incluyendo 15% de iva).
14.- Diseño de un algoritmo y diagrama de flujo que obtenga el gasto generado por la
asistencia a una función de cine (considere entrada, consumo de palomitas y soda
para 2 personas). Nota las palomitas y las sodas solo se venden en un tamaño.
15.- Mediante el diseño de un algoritmo y un diagrama de flujo solicite a un usuario
cualquiera ingresar contraseña (no validar), darle la bienvenido al sistema.
16.- Calcular el salario neto de un trabajador en función del número de horas trabajadas,
precio de la hora de trabajo y considerando el 20% de descuentos al sueldo bruto
por concepto de impuestos sobre la renta (ISR).
17.- Diseñe un algoritmo y diagrama de flujo que calcule el área de un círculo.
18.- Calcular el promedio de 5 calificaciones, imprimir el resultado.

32
UNIDAD II
V
F

V F
F

V
F

CONTENIDO PARA

EL SEGUNDO PARCIAL

33
Existen algoritmos cíclicos, esto quiere decir que necesita repetir alguna serie de
pasos hasta cumplir una condición, también se le conoce como bifurcación. En este
segundo capitulo se desarrollaran las herramientas de condiciones (simples, dobles,
anidadas y múltiples), y muy levemente el manejo de la bifurcación, dejando el tema para
el siguiente capitulo donde se visualizara con mayor profundidad.

ESTRUCTURAS CONDICIONALES, DECISIÓN o DE SELECCIÓN

Recordaremos los símbolos que pueden representar a dicha estructura (vistos


durante el primer parcial). El diseñador (tu) decide de que lado ubicara el falso (F) y el
verdadero (V)

F V
F

F
V
F

Ahora definiremos a la estructura de control o selección, como aquella utilizada


para comparar una variable contra otra variable o contra una constante, de acuerdo al
resultado generado es el camino (ruta o salida) que seguirá la secuencia de flujo.

Características:

 Sin importar cuantos símbolos de decisión ocupe, utilice la misma imagen en el


transcurso del diagrama de flujo.
 Dentro del símbolo NUNCA va la palabra si.
 La representación interna puede ser: variable operador variable o variable
operador valor. Recuerde que los operadores pueden ser relacionales (>, >=, <, <=,
=) y recibe el nombre de expresión lógica ya que da como resultado un valor falso o
verdadero.
 Cuando se requiere hacer mas compleja la evaluación se utilizan operadores lógicos
(y, o , not). Ejem. (temperatura >=36 y temperatura <=37.4)

34
 Puede presentarse procesos (operaciones aritméticas o asignaciones), lectura,
impresiones o alguna otra decisión, por la salida falsa, por la salida verdadera o
por ambos salidas, según el tipo de estructura, ya que pueden ser: simples, dobles,
anidadas y múltiples.

Representación de una estructura de decisión simple.

Ejemplo 1

Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe
aparecer un mensaje indicándolo. Expresarlo en Pseudocódigo y Diagrama de flujos.

ALGORITMO Inicio

1.- Inicio
“Teclea tu
2.-Desplegar “Teclee tu edad: ”
edad”
3.- Almacenar en edad
4.- Si edad >= 18 DIAGRAMA DE

entonces imprimir ”Eres mayor de edad” ir a 5 FLUJO


edad
5.- Fin

V
“Eres
edad>=18 mayor de
edad”

Fin

35
Representación de una estructura de decisión doble.

expresión
F v

procesos procesos

Ejemplo 2

Solicitar tres notas al alumno para calcular su promedio y enviar un mensaje donde diga si
el alumno aprobó o reprobó el curso. Exprese el algoritmo usando Pseudocódigo y
diagrama de flujos.
ALGORITMO DIAGRAMA DE FLUJO

Inicio

1.- Inicio
“Teclea 3
2.- Desplegar “Teclea 3 calificaciones: “
calificaciones”
3.- Leer calif1, calif2, calif3
4.- Prom (calif1+calif2+calif3)/3
5.- Si Prom >= 70
entonces Desplegar “ Esta aprobado” ir al 6 calif1,calif2,calif3
sino Desplegar “Estas reprobado” ir al 6
6.- Fin
Prom (calif1+calif2+calif3)/3

V “Estas
Prom>=70 aprobado

F
“Estas
reprobado”

Fin
36
A diferencia de las decisiones simples y dobles, donde solo se verifica si la variable
ha tomado un valor o no, la decisión anidada se utiliza en 2 situaciones:

a) Cuando se necesite confrontar a una variable contra varios posibles valores


(solo tomará un valor de todos los posibles) o
b) Cuando se necesite realizar n evaluaciones, establecidas según prioridad, a
n variables.

Características:

 Puede existir anidamiento por la salida falsa, verdadera o ambas, según requiera el
análisis.
 Pueden presentarse decisiones simples o dobles dentro de los anidamientos.
 Pueden existir N anidamientos según requiera el análisis.

Representación de una estructura de decisión anidada.

37
Ejemplo

Solicitar al usuario que teclee un número del 1 al 7 para informarle a que día de la semana
pertenece.

ALGORITMO

1.- Inicio
2.- Desplegar “Teclee un numero entre el 1 y el 7, para desplegar el dia correspondiente”
3.- Leer dia
4.- Si dia = 1
entonces desplegar “ el dia es lunes” ir al 5
sino Si dia = 2
entonces desplegar “el dia es martes” ir al 5
sino Si dia = 3
entonces desplegar “el dia es miércoles” ir al 5
sino Si dia = 4
entonces desplegar “el dia es jueves” ir al 5
sino Si dia = 5
entonces desplegar “el dia es viernes” ir al 5
sino Si dia=6
entonces desplegar “el dia es sábado” ir al 5
sino Si dia=7
entonces desplegar “el dia es
domingo” ir al 5
sino desplegar
“error al teclear el numero” ir
al 5
5.- Fin

38
Inicio

“teclee un numero entero


entre el 1 y el 5 para
desplegar el dia
correspondiente”

dia

dia=1
V
F
“El dia es lunes”

dia=2
V
F

“El dia es martes”


dia=3
V
F

“El dia es miercoles”


dia=4
V
F
“El dia es jueves”

dia=5
V
F

“El dia es viernes”


dia=6
V
F

“El dia es sabado”


dia=7
F V

“El dia es domingo”

fin
39
SELECCIÓN, DECISIÓN U OPCIÓN MÚLTIPLE

A continuación se visualizan los símbolos más comunes.

variable
variable

F F

Es una herramienta que permite simplificar al diagrama de flujo, sustituyendo a las


condiciones anidadas, sus características son:

 Dentro del símbolo solo se escribe el nombre de la variable a confrontar con los
posibles valores.
 Se presentan varias posibilidades verdaderas (no se encontró dato oficial de la
cantidad limite de opciones verdaderas) y una falsa.
 Puede existir anidamiento tanto por verdadero como por falso, según análisis del
diseñador.
 No debe escribirse la expresión a evaluar dentro del símbolo
 Debe aparecer en los flujos de secuencia los posibles valores verdaderos.

Ejemplificación del contenido de la estructura de selección múltiple.

40
Solicitar al usuario que teclee un número del 1 al 7 para informarle a que día de la semana
pertenece.

Inicio

“teclee un numero entero


entre el 1 y el 5 para
desplegar el dia
correspondiente”

dia

dia F
1
1 7

2 4 6
3 5 “El dia es
“El dia es domingo”
lunes” “El dia es “El dia es
“El dia es
miercoles “El dia es
martes” jueves”
” “El dia es sabado”
viernes”

Fin

NOTA: Realice los ejercicios de este capitulo.

41
EJERCICIOS DEL SEGUNDO CAPITULO

Los ejercicios se establecieron por grados de dificultad, facilitando la comprensión y


aplicación de los conocimientos.

Al llegar a este nivel, se considera que el alumno ya es apto para diseñar directamente el
diagrama de flujo, aunque se solicite solo este, se deja a consideración del docente
solicitar al alumno que realice por escrito todo el procedimiento.

CONDICIONES SIMPLES

1.- Diseñe un diagrama de flujo que despliegue la invitación al cine, en caso de aceptar
informarle al usuario que película verán. (sin validación)

2.- Diseñe un algoritmo y el diagrama de flujo que solicite autorización para desplegar el
significado de los colores de la bandera. (sin validación)

3.- Diseñe un diagrama de flujo despliegue una declaración de noviazgo. Solo en caso de
aceptar desplegar una invitación a cenar, en caso contrario no hacer terminar (sin
validación)

4.- Diseñe un diagrama de flujo que calcule el sueldo de un obrero, quien percibe $113
diarios, se desconoce los días trabajados.

CONDICIONES DOBLES

1.- Diseñar un diagrama de flujo que solicite 2 números para realizar una división (no
olvide validar al divisor que sea mayor a cero).

6.- Diseñar un diagrama de flujo que notifique a un alumno si ha quedado o no como


repetidor para el siguiente semestre (mínimo de materias reprobadas 4) .

7 .- Diseñe un diagrama de flujo que solicite al usuario teclear la contraseña, esta es


ALUMNOS, en caso de teclearla correcta desplegar Bienvenido al sistema, en caso
contrario desplegar ACCESO DENEGADO. (sin bifurcación)

8.- Diseñe un diagrama de flujo que permita descontar el ISPT al sueldo de un maestro,
solo si su jornada laboral excede de 20 horas por semana, considere el pago de 75
pesos por hora y el porcentaje del ISPT del 2%. Genere el informe del sueldo del

42
maestro sin descuento o con descuento, según sea el caso, y el descuento del ISPT (en
caso de requerirlo).

9.- Diseñe un diagrama de flujo que solicite al usuario teclear un valor y desplegar su
valor absoluto.

ANIDADOS (CONDICIONE Y OPCIÓN MÚLTIPLE)

10.- Diseñe un diagrama de flujo que despliegue la invitación al cine, en caso de aceptar
informarle al usuario que película verán. (con validación en la respuesta)

11.- Diseñar un diagrama de flujo que solicite al usuario teclear un número cualquiera,
informándole si este es positivo, negativo o neutro. (con validación)

12.- Diseñe un diagrama de flujo despliegue una declaración de noviazgo, en caso de


aceptar desplegar una invitación a cena, en caso contrario despedirse cortésmente.
(con validación)

13.- Diseñe un diagrama de flujo que pregunte al usuario si este día es su cumpleaños
(valide respuesta), solo en caso de serlo desplegar un letrero de felicitaciones

14.-Diseñe un algoritmo y el diagrama de flujo que solicite autorización para desplegar el


significado de los colores de la bandera. (aplique la validación)

15 .- Diseñar un diagrama de flujo que acepte o rechace la participación de una joven en


un concurso de belleza, los requisitos son: nacionalidad mexicana, edad mínima de 18
años, estatura mínima de 1.70, estado civil soltero.

16.- Diseñe un diagrama de flujo que calcule el sueldo por decena de un trabajador según
Categoría: a- $100, b  $250, c - $350

17.- Diagnostique al usuario si su temperatura corporal es normal (36 a 37.4), presenta


febrícula (37.5 a 37.9) o presenta fiebre (38 a 40) en este caso requiere ir al medico
o a un hospital. No olvide que fuera de estos rangos existe la posibilidad de error al
teclear la temperatura, por lo que se debe validar el ingreso de la temperatura
correcta.
43
BIFURCACIÓN (CONDICIÓN Y OPCIÓN MÚLTIPLE)

18.- Diseñe un diagrama de flujo despliegue insistentemente una declaración de noviazgo,


solo concluirá si acepta el usuario. (uso de la bifurcación).

19.- Diseñar un diagrama de flujo que encueste a N personas. Generando el reporte de la


cantidad de hombres, cantidad de mujeres, cantidad de solteros, cantidad casados,
cantidad de divorciados, cantidad de personas en unión libre.

20.- Diseñar un diagrama de flujo que mediante un menú proporcione al usuario las
opciones para realizar las operaciones aritméticas de suma, resta, multiplicación y
división, además de la opción de salida. (solo concluye si se selecciona la ultima
opción), no olvide validar opciones y valores para la división

21.- Diseñar un diagrama de flujo que mediante un menú proporcione al usuario la


posibilidad de convertir moneda nacional a dólares o a euros (aplique cotización del
día) solo podrá concluir cuando el usuario seleccione la opción salir. (utilice validación).

BIFURCACIÓN, CONTADORES Y ACUM

22.- Diseñar un diagrama de flujo que encueste a N usuarios, se desea saber cuantas
están empleados y cuantos no.

23.- Diseñe un diagrama de flujo que solicite al usuario teclear la contraseña, esta es
ALUMNOS, en caso de teclearla correcta desplegar Bienvenido al sistema, en caso
contrario retornar a la solicitud de la contraseña. (solo se concluye cuando haya
tecleado correctamente). Genere un reporte informando la cantidad de veces que se
realizo el intento fallido.

24.- Diseñar un diagrama de flujo que encueste a un grupo de alumnos con 35


integrantes
para saber: cuantos cooperaran en la campaña de la cruz roja, cuantos no cooperaran y
cuanto se reunió.

25.- Diseñar un diagrama de flujo que controle la inscripción a un concurso de belleza las
requisitos para ser aceptada son: nacionalidad mexicana, edad mínima de 18 años,
estatura mínima de 1.70, estado civil soltero. Genere un reporte para saber cuantas
fueron aceptadas y cuantas rechazadas.

44
UNIDAD
III

Contenido para el tercer parcial

45
Se le considera un ciclo a la repetición (iteración) de paso(s). En el diseño de
algoritmos existen los denominados cíclicos y están clasificados en:

a) Ciclos con un número determinado de iteraciones (PARA-HASTA-HACER)

b) Ciclos con un Numero Indeterminado de Iteraciones ( Hacer-Mientras, Repetir-Hasta)

En general, se debe procurar no caer en ciclos infinitos.

CICLOS CON UN NUMERO DETERMINADO DE ITERACIONES (PARA-HASTA-


HACER)

El símbolo que lo representa es:


En la parte interna se pueden visualizar las
secciones que lo componen:
inicialización
 INICIALIZACIÓN
condición Aquí se le da el primer valor a la
variable (denominada de control)
incremento o Ejem i 0
decremento

 CONDICIÓN
Aquí se establece la expresión para
Ejemplo evaluar a la variable (de control) y
determinar si se cumple, solo en caso
verdadero, se da por concluido las
bifurcaciones o iteraciones. Ejem
i 0 i=20 (se controla la cantidad de
bifurcaciones)

i=20
 INCREMENTO O DECREMENTO
Aquí aumenta o disminuye la variable de
i=i+1 control en un (desde aquí se controla la
cantidad de bifurcaciones) Ejem.
i=i+1 o i=i-1
46
Características:

 Se conoce el número de iteraciones antes de ejecutarse el ciclo.


 Las iteraciones son controlados por una variable, denominada de control (es la
misma en las 3 secciones)
 La variable de control es entera
 No se deben inicializar variables (contadores o acumuladores) dentro del ciclo,
sino puede convertirlo en un ciclo infinito.
 Al evaluar a la variable de control se puede confrontar contra una constante o
contra otra variable solicitada antes de ejecutarse el ciclo.

Ejemplo 1 de un diseño de diagrama de flujo utilizando el ciclo (PARA-HASTA-


HACER)

Diseñar un algoritmo y el diagrama de flujo que despliegue los números del 1 al 10

1.- Inicio
2.- Para i 1 hasta 10 hacer Inicio
desplegar i
Fin del para ir al paso 3
3.- Fin
i 1

i= 11 Fin

i i+1

47
Ejemplo 2 de un diseño de diagrama de flujo utilizando el ciclo (PARA-HASTA-HACER)

Que realice el conteo regresivo para el despegue de un cohete, al llegar a cero debe
desplegar la orden de DESPEGUE.

1.- Inicio
Inicio
2.- Para i 5 hasta 0 hacer
desplegar i
Fin del para ir al paso 3
3.- Desplegar “DESPEGUE” I 5
4.- Fin

I > -1
“DESPEGUE”

i i-1

Fin

CICLOS CON UN NÚMERO INDETERMINADO DE ITERACIONES

(a.- MIENTRAS- HACER, b.- REPETIR-HASTA)

En este tipo de ciclos se desconoce la cantidad de iteraciones, se basa en


evaluaciones para continuar, cada estructura tiene sus propias características, mismas
que trataremos a continuación.

48
a) MIENTRAS-HACER:

Se representa de la siguiente forma:


En esta estructura se
necesita que la expresión resulte
positiva para ingresar al ciclo, en el
momento en el que no se cumple se
termina el ciclo.

EJEMPLO 1 UTILIZANDO EL MIENTRAS-HACER


Diseñar un diagrama de flujo que despliegue los números del 1 al 10

Inicio
1.- Inicio
2.- c 1
3.- Mientras que c < 11 hacer c 1
Desplegar c
c c+1
Fin-Mientras ir al 4
F V
4.- Fin c < 11

Fin c

c c+1

49
Ejemplo 2 de un diseño de diagrama de flujo utilizando el ciclo MIENTRAS-HACER

Que realice el conteo regresivo para el despegue de un cohete, al llegar a cero debe
desplegar la orden de DESPEGUE.

1.- Inicio Inicio


2 .- C 5
3.- Mientras que c > -1 hacer
desplegar i
C C- 1 C 5
Fin del para ir al paso 3
3.- Desplegar “DESPEGUE”
4.- Fin

F
“DESPEGUE” V
C > -1

C
Fin

C C-1

50
b) REPETIR- HASTA

En esta estructura se repite un proceso una cantidad de veces (al menos una vez
ya que la evaluación esta después del proceso), pero a diferencia del Hacer-Mientras, las
bifurcaciones se realizaran mientras la expresión se falsa.

EJEMPLO 1 UTILIZANDO EL REPETIR-HASTA

Diseñar un diagrama de flujo que despliegue los números del 1 al 10

1.- Inicio Inicio


2.- c 1
3.- Repetir
desplegar c
c c+1 c 1
Hasta que c =11 ir al 5
5.- Fin
c

c c+1

V F
Fin c = 11

51
EJEMPLO 2 UTILIZANDO EL REPETIR-HASTA

Que realice el conteo regresivo para el despegue de un cohete, al llegar a cero debe
desplegar la orden de DESPEGUE.

1.- Inicio Inicio


2.- C 5
3.- Repetir
desplegar i
C C- 1 C 5
Hasta que C= -1 ir al paso 4
4.- Desplegar “DESPEGUE”
5.- Fin

C C- 1

“DESPEGUE” V F
C = -1

Fin

52
EJERCICIOS SOBRE CICLOS

Se recomienda que los ejercicios establecidos se realicen utilizando los diferentes de


ciclos, según sea conveniente, quedando a discreción del docente la aplicación.

INSTRUCCIÓN: Diseñar un diagrama de flujo que:

1.- Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos
neutros.

2.- Leer 10 números e imprimir solamente los números positivos

3.- Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño


estructurado de Algoritmos

4.- Leer 15 números negativos y convertirlos a positivos e imprimir dichos números.

5.- Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el


multiplicando, el multiplicador y el producto.(Ejemplo 5 X 3 = 15)

6.- Obtener el factorial de un número tecleado por el usuario.

7.- Encuestar a N personas para ser contratadas en una empresa, en la que solo se
admitirán a 56 personas para 2 áreas: la administrativa y la operativa, los requisitos
para ingresar al área administrativa son: graduados en ISC o en LCC, no importa sea
hombre o mujer, edad mayor a 18 años y 2 años de experiencia; para el área
operativa los requisitos son: mujeres egresadas de CPP, edad entre 18 y 35 años.
Genere el reporte de cuantas personas fueron rechazadas, cuantas personas fueron
admitidas para el área de administración, de estos cuantos fueron hombres y cuantos
mujeres; el reporte de la cantidad de personas que fueron admitidas al área
operativa, de estos cuantos hombres y cuantas mujeres.

8.- Solicite al usuario teclear el nombre de un mes del año y le despliegue la cantidad de
Días que contiene (30 ó 31) , repetir el proceso hasta que el usuario indique que ya no
esta interesado en continuar.

9.- Calcule el sueldo semanal de 25 trabajadores, en base a las horas trabajadas ($13.00
por hora) . si la cantidad de horas trabajadas es mayor a 40 horas , la tarifa por
hora se incrementa a un 50% paras las horas extras. Calcular el salario del
trabajador y la tarifa.
53
10.- Que controle las ventas en un expendio de pan Bimbo, considere solo 5 productos
(aplique el precio del producto al día), Genere el reporte de la cantidad de ventas
por cada producto, la cantidad de ventas en total, el dinero que entro a la caja por
cada producto y el dinero de las ventas en total. Solo podrá concluir cuando el
usuario teclee que no quiere continuar.

11. Que imprima los números del 1 al 100.

12. Que imprima los números del 100 al 0, en orden decreciente.

13. Que imprima los números pares entre 0 y 100 (pares)

14. hacer un programa que imprima la suma de los primeros 100 números.

15. Que imprima los números impares hasta 100 y que imprima cuantos impares hay.

16. Diseñe el algoritmo de un programa que muestre por pantalla los cinco primeros
números naturales pares elevados al cubo. (los números naturales son enteros
positivos)

54
Los vectores y las matrices se originan a partir de los arreglos, la diferencia
consiste en la cantidad de dimensiones a manejar, así es que iniciaremos con el tema de:

ARREGLOS

Es una estructura de datos que almacena bajo el mismo nombre (variable) a una
colección de datos del mismo tipo. A continuación ejemplificaremos lo anteriormente
leído.

Ernesto
nombre[1]
Irene
nombre[2]
Iván Contenido del
nombre[3] arreglo
Arreglo llamado
Raúl
nombre nombre[4]
Geraldine
nombre[5]

índice

Los arreglos se caracterizan por:

 Almacenan los elementos en posiciones contiguas de memoria


 Todos los elementos son del mismo tipo de dato (numérico o alfanumérico).
 Tienen un mismo nombre de variable que representa a todos los elementos.
 Para hacer referencia a los elementos del arreglo es necesario utilizar el nombre
del arreglo y entre corchetes el índice
 El índice especifica el lugar que ocupa cada elemento dentro del arreglo.
 El índice es un numero entero positivo
 Pueden ser de N dimensiones

Existen 2 tipos de arreglos:

Los Vectores (una dimensión) y las Matrices (más de una dimensión)

55
VECTORES

Es un arreglo de "N" elementos organizados en una dimensión donde "N" recibe el nombre
de longitud o tamaño del vector.

Se pueden realizar operaciones de lectura o despliegue de datos de los vectores


utilizando cualquiera de los ciclos visto anteriormente, a continuación se visualizará un
pequeño fragmento para llenar un vector utilizando los 3 ciclos.

Hacer para I 1 a 10 Hacer mientras I <= 10 I 1


Leer vec[I] Leer vec[I] Repetir
Fin-para Fin-mientras Leer vec[I]
I I+1
Hasta-que I >10

EJEMPLO 1 DE VECTORES (utilizando un diagrama de flujo)

Diseñar un diagrama de flujo que permita la captura de los nombres de los alumnos del
grupo 12, considere que hay 38 alumnos en el grupo.

Inicio

I 1
Fin
I = 39

I I+1

Nom[I ]

56
EJERCICIO 2 DE VECTORES

Diseñe un diagrama de flujo que imprima los nombres capturados en el ejercicio pasado

Inicio

I 1
Fin
I = 39

I I+1

Nom [I ]

57
EJERCICIO 3, SOBRE VECTORES

Diseñar un diagrama de flujo que obtenga el promedio grupal de 45 alumnos, generando el


reporte correspondiente.

Inicio

acum 0

I 1
I = 46 prom acum/(I-1) prom

I I+1

Fin

Calif [I ]

acum acum + Calif [I ]

Nota: en lugar de colocar dentro del proceso acum/(I-1), puede escribir la constante
directamente, en este caso el numero 45 (por la cantidad de alumnos).

58
EJEMPLO 1 TRABAJANDO CON VECTORES

(incrementando y decrementando).

Diseñe un diagrama de flujo que lea un número de 4 cifras y lo invierta. Así por ejemplo,
si el número leído es 2345 se debe convertir en 5432.

inicio

NUM[I ]
I 1
I =5
I 4
I I+1 I =0

I I-1
fin

NUM[I ]

59
EJERCICIOS SOBRE VECTORES

Diseñar un diagrama de flujo para los siguientes problemas:

1.- Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor
almacenado en el vector. Suponga que todos los elementos del vector son diferentes.

2.- Almacenar 300 números en un vector, imprimir cuantos son ceros, cuantos son
negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los
positivos.

3.- Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba
"SI" si el vector esta ordenado ascendentemente o "NO" si el vector no esta ordenado

4.- Un grupo de 100 estudiantes presentan un examen de Física. Diseñe un diagrama que
lea por cada estudiante la calificación obtenida y calcule e imprima:

A.- La cantidad de estudiantes que obtuvieron una calificación entre 0 y 59.


B.- La cantidad de estudiantes que obtuvieron una calificación entre 60 y 80.
C.- La cantidad de estudiantes que obtuvieron una calificación entre 81 y 100.
D.- El promedio grupal.

5.- Que lea un número cualquiera y lo busque en el vector X, el cual tiene almacenados 80
elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el
mensaje "NO" si no lo encuentra. Búsqueda secuencial.

6.- Que calcule el promedio de 50 valores almacenados en un vector. Determinar además


cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores
que el promedio y una lista de valores mayores que el promedio.

60
MATRIZ

Es un arreglo de M * N elementos organizados en dos o mas dimensiones, donde "M"


es el numero de filas o reglones y "N" el numero de columnas. Para representar una
matriz se necesita un nombre acompañado de dos índices.

Mat [R,C]

Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.

Representación gráfica de una matriz

COLUMNAS

1 2 3 4 5
1 LUIS ANA SAM ESTHER RAUL FILAS
2 ROMAN BETY CORAL DENISE NADIA
3 CECY CARO ROBERTO JOSE NOHEMI
4 JEIMY INES EDI SILVIA ALAN
5 VIVIANA DORA CARO ESTEBAN JOVANY

DATO

Nomb [5,5]

Donde la información se puede ubicar de la siguiente forma:

Nomb[1,1]= LUIS Nomb[1,2]= ANA Nomb[1,3]= SAM


Nomb[1,4]= ESTHER Nomb[1,5]= RAUL Nomb[2,1]= ROMAN
Nomb[2,2]= BETY Nomb[2,3]= CORAL Nomb[2,4]= DENISE
Nomb[2,5]= NADIA Nomb[3,1]= CECY Nomb[3,2]=CARO
Nomb[3,3]= ROBERTO Nomb[3,4]= JOSE Nomb[3,5]=NOHEMI
Nomb[4,1]= JEIMY Nomb[4,2]= INES Nomb[4,3]=EDI
Nomb[4,4]= SILVIA Nomb[4,5]= ALAN Nomb[5,1]=VIVIANA
Nomb[5,2]= DORA Nomb[5,3]= CARO Nomb[5,4]= ESTEBAN
Nomb[5,5]= JOVANY

61
Llenado de una matriz con seudocódigo.

por renglones
Por columnas
Hacer para R = 1 a 5
Hacer para C = 1 a 5 Hacer para C = 1 a 5
Leer Mat [R,C] Hacer para R = 1 a 5
Fin-para Leer Mat [R,C]
Fin-para Fin-para
Fin-para

Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los
subíndices y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos
ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).

Una matriz puede almacenar datos a través de la lectura, de asignación o por


operación(es). Ejem. De almacenamiento por lectura.

inicio

Mat(5,5)

R 1
R =5 Fin

R R+1
C 1
C =5

C C+1

Mat(R,C)

62
Ejemplo de almacenamiento de datos por asignación.

inicio

Mat(5,5)

Mat(1,1)= “LUIS”
Mat(1,2)= “ANA”
Mat(1,3)= “SAM”
Mat(1,4)= “SANDY”
Mat(1,5)= “RAUL”
Mat(2,1)= “ROMAN”
Mat(2,2)= “BETY”
Mat(2,3)= “CORAL”
Mat(2,4)= “DENISE”
Mat(2,5)= “NADIA”
Mat(3,1)= “CECY”
Mat(3,2)= “CARO”
Mat(3,3)= “ROBERTO”
Mat(3,4)= “JOSE”
Mat(3,5)= ”NOHEMI”
Mat(4,1)= ”JEIMY”
Mat(4,2)= “INES”
Mat(4,3)= “EDI”
Mat(4,4)= “SILVIA”
Mat(4,5)= “ALAN”
Mat(5,1)= “VIVIANA”
Mat(5,2)= “DORA”
Mat(5,3)= “CARO”
Mat(5,4)= “ESTEBAN”
Mat(5,5)= “JOVANY”

fin

63
Ejemplo de almacenamiento de datos a través de una operación.

inicio

Acum=0

Mat(5,5)

R 1
R =5 Fin

R R+1
C 1
C =5

C C+1

Acum=Acum+c
Mat(R,C)= Acum

64
Ahora se visualizara el diagrama de flujo que representa la impresión de la matriz
denominada Mat[5,5]

inicio

I 1
I =5 Fin

I I+1

J 1
J =5

J J+1

Mat[I,J]

65
PROBLEMAS PROPUESTOS MATRIZ

1.- Hacer un diagrama de flujo que almacene números en una matriz de 5 * 6. Imprimir la
suma de los números almacenados en la matriz.

2.- Hacer un diagrama de flujo que llene una matriz de 10 * 10 y determine la posición
[renglón, columna] del número mayor almacenado en la matriz. Los números son
diferentes.

3.- Hacer un diagrama de flujo que llene una matriz de 7 * 7. Calcular la suma de cada
renglón y almacenarla en un vector, la suma de cada columna y almacenarla en otro
vector.

4.- Hacer un diagrama de flujo que llene una matriz de 20 * 20. Sumar las columnas e
imprimir que columna tuvo la máxima suma y la suma de esa columna.

5.- Hacer un diagrama de flujo que llene una matriz de 5 * 6 y que imprima cuantos de los
números almacenados son ceros, cuantos son positivos y cuantos son negativos.

6.- Diseñar un diagrama de flujo que lea para N alumnos de Diseño estructurado de
algoritmos su numero de control y su calificación en cada una de las 5 unidades de la
materia. Al final que escriba el numero de control del alumno que obtuvo mayor promedio.
Suponga que los alumnos tienen diferentes promedios.

7.- Se tiene almacenada la matriz M(50,5) la cuál contiene la información sobre las
calificaciones de la materia de LENGUAJES ALGORÍTMICOS . Diseñe un diagrama de
flujo que imprima:

a).- Cantidad de alumnos que aprobaron la materia.


B).- Cantidad de alumnos que tienen derecho a nivelación.
C).- El (o los) numero (s) de control de lo(s) alumno(s) que haya (n) obtenido la máxima
calificación final.

8.- Se tiene unconjunto de 1,000 tarjetas cada una contiene la información del censo
para una persona:
a) Numero de censo b) Sexo c) Edad
d) Estado civil (a.-soltero, b. Casado, c.Viudo, d. Divorciado)

Diseñe un diagrama de flujo que lea todos estos datos, e imprima el número de censo de
todas las jóvenes solteras que estén entre 16 y 21 años.

66
9.- El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen
derecho al examen de nivelación. Diseñe un diagrama de flujo que lea las calificaciones
obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos
que no tienen derecho al examen de nivelación.
10.- Se tiene almacenados en memoria dos vectores M y N de cien elementos cada uno.
Hacer un algoritmo que escriba la palabra “iguales” si ambos vectores son iguales o
“Diferentes” si no lo son.

67
AMPLIA LA INFORMACIÓN ACCESANDO A:

http://sistemas.itlp.edu.mx/tutoriales/algoritmos/index.htm
http://www.uaim.edu.mx/web-
carreras/carreras/sistemas%20computacionales/04TRIM/PROGRAMACION%20ESTRUCTURADA.pdf

http://tauro.cegs.itesm.mx:16080/ceneval/tutorial.php?area=2
http://www.uaim.edu.mx/web-
carreras/carreras/sistemas%20computacionales/04TRIM/PROGRAMACION%20ESTRUCTURADA.pdf

ISO http://www.eduteka.org/modulos.php?catx=4&idSubX=116
http://es.wikipedia.org/wiki/Diagrama_de_flujo
http://mis-algoritmos.com/aprenda-a-crear-diagramas-de-flujo/
http://es.wikiversity.org/wiki/Aspectos_Introductorios_de_la_Algoritmia_y_Programaci%C3%B3n_B%C3%A1sica

http://es.wikipedia.org/wiki/Donald_Knuth
http://informaticacbo3.wetpaint.com/page/Algoritmo?t=anon
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=11955
http://www.scribd.com/doc/261936/Segunda-Unidad
http://www.monografias.com/trabajos66/variables/variables.shtml
http://www.desarrolloweb.com/articulos/2184.php
http://www.desarrolloweb.com/articulos/2199.php 2225

http://www.cs.buap.mx/~mmartin/introprog/Apend-A.pdf
http://tauro.cegs.itesm.mx:16080/ceneval/tutorial.php?area=2
http://www.ceidis.ula.ve/cursos/ingenieria/pd_10/clases/Apunt_5.pdf
http://www.upiicsa.ipn.mx/Carreras%20UPIICSA/PlanCienciasInformatica/3pdf/3%20CCCO%20ALGORITMOS%20COMPU
TACIONALES.PDF
http://www.paginitas.com.mx/155/algoritmos/
http://www.carlospes.com/ejercicios_de_algoritmos/repetitiva_para_001.php
http://www.algoritmica.com.ar/
http://www.scribd.com/doc/2562272/ALGORITMOS

http://logicacomputacion.blogspot.com/2007/07/practica-3-ejercicios-de-diagramas-
de.html

68

También podría gustarte