Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Algoritmos
Contenido
INTRODUCCION................................................................................................... 4
CAPITULO I.......................................................................................................... 5
CONCEPTOS BSICOS Y METODOLOGA PARA LA SOLUCIN DE PROBLEMS
POR MEDIO DE COMPUTADORAS.........................................................................5
1.1 Introduccin............................................................................................... 6
1.2 Definicin de Lenguaje.............................................................................. 9
1.3 Definicin de Algoritmo........................................................................10
1.4 Tipos de Algoritmos................................................................................. 10
1.5 Lenguajes Algortmicos............................................................................ 11
1.6 Metodologa para la solucin de problems por medio de computadora. 11
1.6.1. Definicin del Problema....................................................................11
1.6.2 Anlisis del Problema....................................................................11
1.6.3 Diseo del Algoritmo.....................................................................12
1.6.4 Codificacin....................................................................................... 12
1.6.5 Prueba y Depuracin.........................................................................12
1.6.6 Documentacin................................................................................. 13
1.6.7 Mantenimiento.................................................................................. 14
CAPITULO II....................................................................................................... 15
ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS.....................15
2.1 Tipos De Datos......................................................................................... 15
2.2 Expresiones............................................................................................. 17
2.3 Operadores y Operandos.........................................................................17
2.4 Identificadores......................................................................................... 24
CAPITULO III...................................................................................................... 27
TCNICAS DE DISEO....................................................................................... 27
3.1 Top Down................................................................................................. 27
3.2 Bottom Up................................................................................................ 28
CAPITULO IV...................................................................................................... 28
TCNICAS PARA LA FRMULACIN DE ALGORITMOS........................................28
4.1 Diagrama de Flujo.................................................................................... 29
4.2 Pseudocdigo........................................................................................... 31
4.3 Diagrams estructurados (Nassi-Schneiderman).....................................31
CAPITULO V....................................................................................................... 33
ESTRUCTURAS ALGORITMICAS..........................................................................33
5.1. Estructuras Secuenciales........................................................................34
5.1.1 Problemas Secuenciales...................................................................35
5.1.2 Problemas Propuestos Secuenciales..............................................38
5.2 Estructuras de Condicionales...................................................................39
5.2.1 Problemas Condicionales...................................................................41
5.2.2 Problemas Propuestos........................................................................55
5.3. Estructuras Cclicas................................................................................. 58
5.3.1 Hacer-Para......................................................................................... 58
5.3.2 Hacer-Mientras................................................................................... 64
5.3.3 Repetir-Hasta..................................................................................... 66
5.3.4 Problemas Propuestos........................................................................67
5.3.5 Problemas Repetitivos Compuestos...................................................68
VI ARREGLOS..................................................................................................... 71
6.1 Arreglos Unidimensionales.......................................................................73
6.1.1 PROBLEMAS PROPUESTOS.................................................................77
6.2. Arreglo Bidimensional............................................................................. 80
6.2.1 PROBLEMAS PROPUESTOS.................................................................81
VII FUNCIONES.................................................................................................. 83
6.1 Mdulo..................................................................................................... 83
6.1.1 Ventajas de la Programacin Modular................................................84
6.1.2 Desarrollar programas de forma modular..........................................84
6.1.3 Tiempo de vida de los datos mbito...............................................85
6.1.4 PARMETROS..................................................................................... 86
6.1.5 FUNCIONES........................................................................................ 88
6.1.6 PROBLEMAS PROPUESTOS.................................................................89
INTRODUCCION
1.1 Introduccin
1.10 Codificacin
1.12 Documentacin
1.13 Mantenimiento
OBJETIVO EDUCACIONAL:
El alumno:
1.1 Introduccin
Unidad de control
Unidad Aritmtico - Lgica
Lenguajes de Programacin
Esta fase est dada por el enunciado del problema, el cul requiere una
definicin clara y precisa. Es importante que se conozca lo que se desea que
realice la computadora; mientras esto no se conozca del todo no tiene mucho
caso continuar con la siguiente etapa.
1.6.4 Codificacin
1.6.6 Documentacin
Es la gua o comunicacin escrita es sus variadas forms, ya sea en
enunciados, procedimientos, dibujos o diagrams.
A menudo un programa escrito por una persona, es usado por otra. Por ello la
documentacin sirve para ayudar a comprender o usar un programa o para
facilitar futuras modificaciones (mantenimiento).
Documentacin Interna
Documentacin Externa
Diccionario de Datos
1.6.7 Mantenimiento
Se lleva acabo despus de terminado el programa, cuando se detecta que es
necesario hacer algn cambio, ajuste o complementacin al programa para
que siga trabajando de manera correcta. Para poder realizar este trabajo se
requiere que el programa este correctamente documentado.
CAPITULO II.
2.2 Expresiones
OBJETIVO EDUCACIONAL:
El alumno:
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carcter, tal como b, un valor entero tal como 35. El tipo de dato determina la
naturaleza del conjunto de valores que puede tomar una variable.
Tipos de Datos Simples
Datos Lgicos: Son aquellos que solo pueden tener dos valores (cierto
o falso) ya que representan el resultado de una comparacin entre otros
datos (numricos o alfanumricos).
2.2 Expresiones
- Aritmticas
- Relacinales
- Lgicas
Operadores Aritmticos
+ Suma
- Resta
* Multiplicacin
/ Divisin
Expresin Resultado
7/2 = 3.5
12 mod 7 =5
4 +2*5 = 14
1.- ^ Exponenciacin
Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2 46 / 5 = 9.2
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8
= 28.98
Operadores Relacinales:
Operadores Relacinales
= Igual
Ejemplos:
Si a = 10 b = 20 c = 30
a + b > c Falso
a -b<c Verdadero
a -b=c Falso
a * b < > c Verdadero
Ejemplos no lgicos:
a<b<c
10 < 20 < 30
T < 30 (no es lgico porque tiene diferentes operandos)
Operadores Lgicos:
Operadores Lgicos
And Y
Or O
Not Negacin
Operador And
Operando1 Operador Operando2 Resultado
T AND T T
T F F
F T F
F F F
Operador Or
T OR T T
T F T
F T T
F F F
Operador Not
Operando Resultado
T F
F T
Ejemplos:
T and T
T
Not
And
Or
1.- ( )
2.- ^
4.- +, -, And
Ejemplos:
a = 10 b = 12 c = 13 d =10
2.4 Identificadores
Ejemplo: Nombre
Num_hrs
Calif2
Constantes y Variables
pi = 3.1416
Ejemplo:
area = pi * radio ^ 2
Por su Contenido
Variable Numricas: Son aquellas en las cules se almacenan valores
numricos, positivos o negativos, es decir almacenan nmeros del 0 al 9,
signos (+ y -) y el punto decimal. Ejemplo:
Variables Lgicas: Son aquellas que solo pueden tener dos valores
(cierto o falso) estos representan el resultado de una comparacin entre
otros datos.
Variables Alfanumricas: Esta formada por caracteres alfanumricos
(letras, nmeros y caracteres especiales). Ejemplo:
Por su Uso
suma=a+b/c
TCNICAS DE DISEO
3.1 Top down
3.2 Bottom up
OBJETIVO EDUCACIONAL:
El alumno:
3.2 Bottom Up
4.2 Pseudocdigo
OBJETIVO EDUCACIONAL:
El alumno:
Diagrama de Flujo
Pseuducdigo
SMBOLO DESCRIPCIN
4.2 Pseudocdigo
ESTRUCTURAS ALGORITMICAS
5.1 Secuenciales
- Asignacin
- Entrada
- Salida
5.2 Condicionales
- Simples
- Mltiples
OBJETIVO EDUCACIONAL:
El alumno:
ESTRUCTURAS ALGORITMICAS
Inicio
Accion1
Accion2
AccionN
Fin
Leer a, b
Leer cap_inv
Imprimir gan
Fin
Inicio
tot_vta = v1 + v2 + v3
tpag = sb + com
Fin
Inicio
Leer tc
d = tc * 0.15
tp = tc - d
Imprimir tp
Fin
Inicio
pef = ef * 0.30
ptf = tf * 0.15
Imprimir cf
Fin
Inicio
Leer nh, nm
ta = nh + nm
ph = nh * 100 / ta
pm = nm * 100 / ta
Imprimir ph, pm
Fin
Inicio
Imprimir edad
Fin.
4) Calcular el nmero de pulsaciones que una persona debe tener por cada 10
segundos de ejercicio, si la frmula es:
Ginecologa 40%
Traumatologa 30%
Pediatra 30%
Obtener la cantidad de dinero que recibir cada rea, para cualquier monto
presupuestal.
7) El dueo de una tienda compra un artculo a un precio determinado.
Obtener el precio en que lo debe vender para obtener una ganancia del 30%.
8) Todos los lunes, mircoles y viernes, una persona corre la misma ruta y
cronometra los tiempos obtenidos. Determinar el tiempo promedio que la
persona tarda en recorrer la ruta en una semana cualquiera.
9) Tres personas deciden invertir su dinero para fundar una empresa. Cada
una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada
quien invierte con respecto a la cantidad total invertida.
10) Un alumno desea saber cul ser su promedio general en las tres
materias ms difciles que cursa y cul ser el promedio que obtendr en cada
una de ellas. Estas materias se evalan como se muestra a continuacin:
Examen 90%
Examen 80%
Examen 85%
Si <condicin> entonces
Accin(es)
Fin-si
Si <condicin> entonces
Accin(es)
si no
Accin(es)
Fin-si
Donde:
Si Indica el comando de comparacin
Forma General
Casos Variable
Op1: Accin(es)
Op2: Accin(es)
.
.
OpN: accin
Fin-casos
Inicio
fin-si
Imprimir capf
fin
Inicio
Fin-si
Fin
Inicio
Leer compra
si no
desc = 0
fin-si
imprimir tot_pag
fin.
Inicio
Leer ht
Si ht > 40 entonces
he = ht - 40
ss = he * 20 + 40 * 16
si no
ss = ht * 16
Fin-si
Imprimir ss
Fin
Inicio
si no
fin-si
fin
Inicio
cg = 1.08 * tiemp
si no
cg = 1.66 * tiemp
fin-si
Imprimir cg
Fin
Inicio
Si cve = 01 entonces
si no
fin-si
fin
9) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si
se compran tres camisas o ms se aplica un descuento del 20% sobre el total
de la compra y si son menos de tres camisas un descuento del 10%
Inicio
si no
fin-si
Imprimir tot_pag
fin
10) Una empresa quiere hacer una compra de varias piezas de la misma clase
a una fabrica de refacciones. La empresa, dependiendo del monto total de la
compra, decidir que hacer para pagar al fabricante.
Inicio
si no
prstamo = 0
fin-si
Fin
3) Calcular el nmero de pulsaciones que debe tener una persona por cada 10
segundos de ejercicio aerbico; la frmula que se aplica cuando el sexo es
femenino es:
y si el sexo es msculino:
num. pulsaciones = (210 - edad)/10
6) Una empresa de bienes races ofrece casas de inters social, bajo las
siguientes condiciones: Si los ingresos del comprador son menores de $8000 o
ms el enganche ser del 15% del costo de la casa y el resto se distribuir en
pagos mensuales, a pagar en diez aos. Si los ingresos del comprador son
menos de $8000 o ms el enganche ser del 30% del costo de la casa y el
resto se distribuir en pagos mensuales a pagar en 7 aos.
8) Una persona desea iniciar un negocio, para lo cual piensa verificar cunto
dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria,
pero no quiere disponer de ella a menos que el monto por hipotecar su casa
sea muy pequeo. Si el monto de la hipoteca es menor que $1 000 000
entonces invertir el 50% de la inversin total y un socio invertir el otro 50%.
Si el monto de la hipoteca es de $ 1 000 000 o ms, entonces invertir el
monto total de la hipoteca y el resto del dinero que se necesite para cubrir la
inversin total se repartir a partes iguales entre el socio y el.
70% pino
20% oyamel
10% cedro
50% pino
30% oyamel
20% cedro
Inicio
si no
si no
fin-si
fin
Inicio
mayor = num1
si no
mayor = num2
si no
mayor = num3
fin-si
fin-si
Imprimir mayor
fin
Inicio
Leer ht, pph
Si ht < = 40 entonces
tp = ht * pph
si no
he = ht - 40
Si he < = 8 entonces
pe = he * pph * 2
si no
pd = 8 * pph * 2
pt = (he - 8) * pph * 3
pe = pd + pt
fin-si
tp = 40 * pph + pe
fin-si
Imprimir tp
fin
Tiempo Utilidad
fin
Inicio
leer tc, b$
si b$ = blanca entonces
d=0
si no
si b$ = verde entonces
d=tc*0.10
si no
si b$ = amarilla entonces
d=tc*0.25
si no
si b$ = azul entonces
d=tc*0.50
si no
d=tc
fin-si
fin-si
fin-si
fin-si
fin
Inicio
leer edad,ant
si no
si no
fin-si
fin-si
fin-si
fin
Obtener la cantidad de dinero que una persona tiene que pagar por cada
una de las llantas que compra y la que tiene que pagar por el total de la
compra.
5) Una frutera ofrece las manzanas con descuento segn la siguiente tabla:
0 - 2 0%
2.01 - 5 10%
5.01 - 10 15%
0 - 1 mes 13 - 26 g%
9) Que lea tres nmeros diferentes y determine el nmero medio del conjunto
de los tres nmeros (el nmero medio es aquel nmero que no es ni mayor, ni
menor).
5.3.1 Hacer-Para
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se
repite hasta que la variable de control llegue al lmite superior.
Inicio
Sum=0
Leer Nom
Hacer para c = 1 a 7
Leer calif
Fin-para
prom = sum /7
Imprimir prom
Fin.
Inicio
Hacer para n = 1 a 10
Leer num
Fin-para
Fin.
Inicio
Hacer para n = 1 a 10
Leer num
Imprimir num
fin-si
Fin-para
Fin.
cn = 0
cp = 0
cneg = 0
Hacer para x = 1 a 20
Leer num
cn = cn + 1
si no
cp = cp + 1
si no
cneg = cneg + 1
Fin-si
Fin-si
Fin-para
Fin.
Inicio
Hacer para x = 1 a 15
Leer num
pos = num * -1
Fin-para
Fin.
Inicio
sum = 0
baja = 9999
Hacer para a = 1 a 40
Leer calif
baja = calif
fin-si
Fin-para
media = sum / 2
fin
Inicio
Leer num
Hacer para X = 1 a 10
resul = num * x
Fin-para
fin.
8) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos
y segundos de un da desde las 0:00:00 horas hasta las 23:59:59 horas
Inicio
Hacer para h = 1 a 23
Hacer para m = 1 a 59
Hacer para s = 1 a 59
Imprimir h, m, s
Fin-para
Fin-para
Fin-para
fin.
CATEGORIA EDAD
Nios 0 - 12
Jvenes 13 - 29
Adultos 30 - 59
Viejos 60 en adelante
5.3.2 Hacer-Mientras
4) El Depto. de Seguridad Publica y Transito del D.F. desea saber, de los n autos
que entran a la ciudad de Mxico, cuantos entran con calcomana de cada
color. Conociendo el ultimo dgito de la placa de cada automvil se puede
determinar el color de la calcomana utilizando la sig. relacin:
DGITO COLOR
1o2 amarilla
3o4 rosa
5o6 roja
7o8 verde
9o0 azul
10) En un supermercado un cajero captura los precios de los artculos que los
clientes compran e indica a cada cliente cul es el monto de lo que deben
pagar. Al final del da le indica a su supervisor cuanto fue lo que cobro en total
a todos los clientes que pasaron por su caja.
11) Cinco miembros de un club contra la obesidad desean saber cunto han
bajado o subido de peso desde la ltima vez que se reunieron. Para esto se
debe realizar un ritual de pesaje en donde cada uno se pesa en diez bsculas
distintas para as tener el promedio ms exacto de su peso. Si existe diferencia
positiva entre este promedio de peso y el peso de la ltima vez que se
reunieron, significa que subieron de peso. Pero si la diferencia es negativa,
significa que bajaron. Lo que el problema requiere es que por cada persona se
imprima un letrero que diga: SUBIO o BAJO y la cantidad de kilos que subi
o bajo de peso.
12) Se desea obtener el promedio de g grupos que estn en un mismo ao
escolar; siendo que cada grupo puede tener n alumnos que cada alumno puede
llevar m materias y que en todas las materias se promedian tres calificaciones
para obtener el promedio de la materia. Lo que se desea desplegar es el
promedio de los grupos, el promedio de cada grupo y el promedio de cada
alumno.
5.3.3 Repetir-Hasta
Edad Descuento
Categora 1 5 - 14 35 %
Categora 2 15 - 19 25 %
Categora 3 20 - 45 10 %
Categora 4 46 - 65 25 %
Categora 5 66 en adelante 35 %
8) Suponga que tiene usted una tienda y desea registrar las ventas en su
computadora. Disee un algoritmo que lea por cada cliente, el monto total de
su compra. Al final del da que escriba la cantidad total de ventas y el nmero
de clientes atendidos.
5.3.3.2 Problemas Repetitivos Compuestos
1) Suponga que tiene una tienda y desea registrar sus ventas por medio de una
computadora. Disee un pseudocdigo que lea por cada cliente:
a) El monto de la venta,
Al final del da deber imprimir la cantidad de dinero que debe haber en la caja.
Nmero de censo,
Sexo
Edad
Estado civil (a.- soltero, b. Casado, c. Viudo, d. Divorciado)
Un arreglo (array) es una coleccin de datos del mismo tipo, que se almacenan
en posiciones consecutivas de memoria y reciben un nombre comn. Para
referirse a un determinado elemento de un array se deber utilizar un ndice,
que especifique su posicin relativa en el array. Un arreglo es una coleccin
finita, homognea y ordenada de elementos. Finita: Todo arreglo tiene un
lmite; es decir, debe determinarse cul ser el nmero mximo de elementos
que podrn formar parte del arreglo. Homognea: Todos los elementos del
arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cul es el
primer elemento, el segundo, el tercero,.... y el n-simo elemento.Los arreglos
se clasifican de acuerdo con el nmero de dimensiones que tienen. As se
tienen los:
- Unidimensionales (vectores)
- Bidimensionales (tablas o matrices)
- Multidimensionales (tres o ms dimensiones)
PROBLEMA.
Suponga que se desea desarrollar un programa para:
costoPartes[50]
edadEmpleados[100]
nombres [60]
Para acceder a valores especficos del arreglo, use un valor de ndice que
apunte al elemento deseado. Por ejemplo, para acceder al primer elemento del
arreglo calificaciones debe utilizar el valor de ndice 0 (calificaciones[0]). Los
programas en C++ siempre indizan el primer elemento de un arreglo con 0 y el
ltimo con un valor menor en una unidad al tamao del arreglo.
Para inicializar todos los elementos de una vez, se colocan dentro de una
estructura for que va del primer elemento al ltimo que contiene el arreglo.
Para asignar un valor a un elemento del arreglo se hace por ejemplo:
Calificaciones[0] = 100
Cuando se usan arreglos, una operacin comn es usar una variable ndice
para acceder a los elementos de un arreglo. Suponiendo que la variable ndice i
contiene el valor 3, la siguiente instruccin asigna el valor 400 a valores[3]:
valores[i] = 400
Partes de un arreglo:
Los componentes. Hacen referencia a los elementos que forman el arreglo, es
decir, a los valores que se almacenan en cada una de las casillas del mismo.
Los ndices. Permiten hacer referencia a los componentes del arreglo en forma
individual, especifican cuntos elementos tendr el arreglo y adems, de qu
modo podrn accesarse esos componentes.
Definicin de Arreglos
identArreglo [Limsup];
Ejemplos:
Sea arre un arreglo de 70 elementos enteros con ndices enteros. Su
representacin nos queda:
Arre[70];
Lectura
Hacer para i = 1 a 70
Leer arre[i]
Fin-para
Escritura
Es similar al caso de lectura, slo que en vez de leer el componente del arreglo,
lo escribimos.
Leer (N)
Hacer para i = 1 a n
Imprimir arre[i]
Fin-para
Asignacin
arre[1] = 120 (asignacin de un valor constante nico a una casilla del vector)
arre[3] = arre[1] / 4 (asignar una operacin)
Hacer para i = 1 a 5
arre[i] = 3
Fin-para
Acceso Secuencial. (Recorrido)
El acceso a los elementos de un vector puede ser para leer en l o para escribir
(visualizar su contenido). Recorrido del vector es la accin de efectuar una
accin general sobre todos los elementos de ese vector.
Actualizacin
res[0]="A";
res[1]="C";
res[2]="A";
res[3]="B";
res[4]="A";
16) Almacenar 300 nmeros en un vector, imprimir cuantos son ceros, cuantos
son negativos, cuantos positivos. Imprimir adems la suma de los negativos y
la suma de los positivos.
21) Disee un algoritmo que lea dos vectores A y B de 20 elementos cada uno
y multiplique el primer elemento de A con el ltimo elemento de B y luego el
segundo elemento de A por el diecinueveavo elemento de B y as
sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento
de B. El resultado de la multiplicacin almacenarlo en un vector C.
22) Disee un algoritmo que almacene en un vector llamado FIB[100] los 100
primeros nmeros de la serie Fibonacci.
6.2. Arreglo Bidimensional
idArreglo[lim_sup_row, lim_sup_col]
Hacer para j = 1 a n
Hacer para i = 1 a m
Imprimir a[i,j]
Fin-para
Fin-para
Ejemplos.
Matriz [4,4]
Hacer para i = 0 a 3
Hacer para j = 0 a 3
Si i=j entonces
Matriz[i,j] =1
Si-no
Matriz[i,j] =0
Fin-si
Fin-para
Fin-para
Fin
4. Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas
e imprimir que columna tuvo la mxima suma y la suma de esa
columna.
7.1 Mdulo
- Funciones en C, C++
- Subrutinas en Basic
- Procedimientos y funciones en Pascal
- Subrutinas en Fortran y
- Secciones en Cobol.
Segn el lugar donde son declaradas puede haber dos tipos de variables.
Parmetros Formales
Ejemplos:
Inicio
Entero x <-0;
Cambiar();
Escribir (x)
fin
Modulo Cambiar()
Inicio
x <-1;
Fin
Inicio
Entero x <-0;
cambiar();
escribir (x);
fin
Modulo cambiar()
inicio
Entero x <-1;
fin
Fin-modulo
7.1.4 PARMETROS
Significa que la funcin (o subrutina) recibe slo una copia del valor que tiene
la variable, o sea que no la puede modificar.
Ejemplo:
Fin-modulo
Salida 0
Ejemplo:
Algoritmo parmetro referencia.
Inicio
Entero x <-0;
Cambiar (x);
Escribir (x);
Fin
Fin-modulo
Salida: x =1
7.1.5 FUNCIONES
Ejemplos:
inicio
Entero i, factorial;
Si n <=1 Entonces
factorial <-- 1;
Si-no
factorial <-- 1;
Para i = 1 hasta n hacer
factorial <-- factorial * 1;
Fin-para
Fin-si
Retornar factorial;
Fin
Fin-funcion
Algoritmo hallar f
Inicio
Entero x,y;
Real f;
Leer x,y;
f <-- factorial (x)/(factorial (y)* factorial (x-y));
Escribir "El valor de f es:", f;
Fin