Libro de Algoritmos
Libro de Algoritmos
Libro de Algoritmos
Algoritmos
Computacionales
2º. Semestre
INDICE
Introducción --------------------------------------------- 4
Codificación -------------------------------------------- 26
Mantenimiento -------------------------------------------- 27
Actividad 1 y 2 -------------------------------------------- 28
Actividad 3, 4 y 5 -------------------------------------------- 29
Actividad 6 -------------------------------------------- 30
2
UNIDAD III (Tercer parcial) -------------------------------------------- 45
Arreglos -------------------------------------------- 55
Matriz -------------------------------------------- 61
3
INTRODUCCIÓN
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.
En la siguiente hoja existe una carta compromiso que llenar siguiendo las
indicaciones de tu docente.
4
ACTIVIDAD CARTA COMPROMISO
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.
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.
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 que se pueda trabajar con la computadora, cada variable necesita recibir un
nombre, y las características para nombrarlas son:
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.
Clasificación Lógicas
de las
Variables De trabajo
Por su uso
Contadores
Acumuladores
Por su contenido
Por su uso
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.
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:
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.
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 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
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.
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.
<> 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.
Ejemplo:
Operando Resultado
T F
F T
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
1. ( )
2. ^
3. *, /, Mod, Not
4. +, -, And
5. >, <, > =, < =, < >, =, Or
Ejemplos:
Sea: a = 10 b = 12 c = 13 d =10
15
C) SIMBOLOGÍA UTILIZADA EN LOS DIAGRAMAS DE FLUJO
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
17
Proceso Se utiliza para asignar valor
a una variable o para
operaciones aritméticas.
Repetir
Mientras
18
NOTA: REALIZAR ACTIVIDAD 6
D) ESTRUCTURA ALGORÍTMICA
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
19
Ejemplo de un algoritmo secuencial:
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
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.
20
Ejem 1. Se desea conocer el significado de los colores de la bandera mexicana.
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)
“verde = esperanza,
blanco=pureza y
rojo=sacrificio”
21
Ejem 2. Obtener el promedio de 5 calificaciones.
lado 8
22
III.- DISEÑO DEL ALGORITMO
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
24
A continuación se visualiza el diseño de los diagramas de flujo de cada ejemplo.
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
Fin
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)
25
Ejem 2
Ejem 3
El area del cuadrado es: 64
lado = 8 area= lado *lado
area= 8 * 8
area = 64
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.
26
VII.- DEPURACIÓN:
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:
XI.- MANTENIMIENTO:
27
ACTIVIDAD 1 FECHA DE REALIZACIÓN ___/_____/20___
__ _importe _________________________________________
__ precio _________________________________________
__ num1 _________________________________________
__ NOM _________________________________________
__ 2valor _________________________________________
__ prom _________________________________________
__ precio_con_iva _________________________________________
edad 18 _____________________
28
ACTIVIDAD 3 FECHA DE REALIZACIÓN ___/_____/20___
Represente visualmente las variables, llenando los espacios vacios con los datos
solicitados
/ ____________________________ * ________________________
29
ACTIVIDAD 6 FECHA DE REALIZACIÓN ___/_____/20__
NOMBRE SÍMBOLO
30
EJERCICIOS CAPITULO 1
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.
F V
F
F
V
F
Características:
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.
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
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:
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.
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
dia
dia=1
V
F
“El dia es lunes”
dia=2
V
F
dia=5
V
F
fin
39
SELECCIÓN, DECISIÓN U OPCIÓN MÚLTIPLE
variable
variable
F F
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.
40
Solicitar al usuario que teclee un número del 1 al 7 para informarle a que día de la semana
pertenece.
Inicio
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
41
EJERCICIOS DEL SEGUNDO CAPITULO
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).
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.
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)
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
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
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
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.
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
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:
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:
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
48
a) MIENTRAS-HACER:
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.
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.
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.
C C- 1
“DESPEGUE” V F
C = -1
Fin
52
EJERCICIOS SOBRE CICLOS
1.- Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos
neutros.
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.
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
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.
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
Inicio
acum 0
I 1
I = 46 prom acum/(I-1) prom
I I+1
Fin
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
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:
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.
60
MATRIZ
Mat [R,C]
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]
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).
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:
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