Professional Documents
Culture Documents
INDICE GENERAL
1. Sistema de procesamiento de informacin...........................0
2. Concepto de algoritmo...............................................................0
2.1. Caractersticas de los algoritmos.......................................0
2.2. Partes de un algoritmo.........................................................0
3. Resolucin de problemas con computadoras y las
herramientas de programacin......................................................1
3.1. Anlisis del problema:..........................................................1
3.2. Diseo o desarrollo del algoritmo......................................1
3.3. Resolucin del algoritmo en la computadora...................1
4. Representacin de un algoritmo.............................................1
4.1. Diagrama de flujo..................................................................1
4.2. Pseudocdigo.........................................................................2
5. Datos y Tipos de datos...............................................................3
5.1. Datos numricos....................................................................3
5.1.1. Enteros:.............................................................................3
5.1.2. Reales:...............................................................................3
5.2. Datos Lgicos:........................................................................3
5.3. Datos carcter:......................................................................3
6. Constantes y Variables:.............................................................4
7. Operadores...................................................................................4
7.1. Relacionales o condicionales:.............................................4
7.2. Aritmticos :...........................................................................4
7.3. Alfanumricos:.......................................................................5
7.4. Lgicos o Booleanos:............................................................5
7.5. Parntesis:..............................................................................5
8. Expresiones..................................................................................6
9. Regla de Prioridad......................................................................6
10. Operacin de Asignacin........................................................7
11. Ejercicios....................................................................................7
12. Estructura General de un Programa.....................................8
12.1. Partes de un programa......................................................8
16.1.2.............................................................................Bsqueda
75
16.2. Arreglos bidimensionales................................................78
Entrada=Datos
Procesador
Salida=Informacin
2. Concepto de algoritmo
Es el conjunto de instrucciones que especifican la secuencia de
operaciones a realizar en orden para resolver un sistema
especfico o clase de problema. Los algoritmos son independientes
tanto del lenguaje de programacin en que se expresa como de la
computadora que los ejecuta. El diseo de la mayora de los
algoritmos requiere creatividad y conocimientos profundos de la
tcnica de la programacin. En esencia. Todo problema se puede
describir por medio de un algoritmo (Aguilar, 1988)
2.1.
Caractersticas de los algoritmos
Un algoritmo debe ser preciso e indicar el orden de
realizacin de cada paso
Un algoritmo debe estar definido. Si se sigue un algoritmo
dos veces, se debe obtener el mismo resultado cada vez
Un algoritmo debe ser finito. Si se sigue un algoritmo, se
debe terminar en algn momento sea debe tener un
numero finito de pasos
2.2.
Partes de un algoritmo
S
i
N
o
Funcin
Terminal:
representa
el
comienzo, inicio, final y fin de un
programa.
Puede
representar
tambin
una
parada
o
interrupcin programada
Entrada / Salida : cualquier tipo
de introduccin de datos en la
memoria desde los perifricos o
registro
dela
informacin
procesada en un perifrico
Proceso: Cualquier tipo de
informacin que pueda originar
cambio
de
valor,
formato,
posicin
de
la
informacin
almacenada
en
memoria,
operaciones
aritmticas,
de
transferencia, etc.
Decisin: indican operaciones
lgicas o de comparacin entre
datos, normalmente dos
y en
funcin del resultado de la misma
determina cul de los distintos
caminos
alternativos
del
programa
se debe seguir
normalmente tiene dos salidas
respuesta s o no pero puede
tener tres o ms segn los casos
Indicador de Direccin o Lnea
de Flujo:indica el sentido de
ejecucin de las operaciones
4.2.
Pseudocdigo
Es un lenguaje especificado de algoritmos. El uso de tal
lenguaje hace el paso de codificacin final relativamente fcil.
La ventaja de un pseudocdigo es que en su uso la
planificacin de un programa, el programador se puede
concentrar en la lgica y en las estructuras de control y
preocuparse de las reglas de un lenguaje de programacin. Es
tambin fcil modificar el pseudocdigo si se descubren
errores o anomalas en la lgica del programa (Aguilar, 1988)
El pseudocdigo es un lenguaje algortmico, de alto lenguaje
utilizado para escribir con mucha ms abstraccin
instrucciones de un lenguaje de programacin.
5. Datos y Tipos de datos
5.1.
Datos numricos
El tipo numrico es el conjunto de los valores numricos, estos
pueden representarse de dos formas distintas
5.1.1.
Enteros:
Es un subconjunto finito de los nmeros enteros. Los
enteros son nmeros completos, no tienen componentes
fraccionarios o decimales y pueden ser
negativos o
positivos (Aguilar, 1988)
En java existen los siguientes tipos de datos enteros
Byte, enteros de 8 bits, con rango de valores entre -128 y
127
Short, entero corto de 16 bits, con rango de valores entre
-32768 y 32767
Int entero de 32 bits, con rango de valores entre
-2147483648 y 2147483647
Long, entero largo de 64 bits, con rango de valores entre
-9223372036854775808 y 9223372036854775807
5.1.2.
Reales:
El tipo real consiste en un subconjunto de los nmeros
reales, Los nmeros reales siempre tienen su punto decimal
y pueden ser positivos o negativos
En java existen los siguientes tipos de datos reales
Float, valores de punto flotante de 32 bits, con rango de
valores entre-1.40239846e-45 y 3.40282347e+38
Fuente:
Libro de
metodologa de la programacin de Rodrguez Almeida
7.2.
Aritmticos :
Para tratar los nmeros se utilizan los operadores aritmticos,
que junto con las variables numricas forman expresiones
aritmticas (Rodriguez Almeida, 1991)
Fuente: Libro de
metodologa de la
programacin de Rodrguez Almeida
Concatenacin, unir expresiones alfanumricas
fueran eslabones de una cadena.
como si
7.4.
Lgicos o Booleanos:
Combinan sus operandos de acuerdo con las reglas del algebra
de Boole con el fin de producir un nuevo valor que se convierta
en el valor de la expresin
Fuente: Libro de
metodologa
de la programacin de Rodrguez Almeida
OR u O: Es un operador binario, afecta a dos operadores. La
expresin forma es cierta cuando al menos algunos de los
operandos es cierto. Es el operador lgico de disyuncin.
AND o Y: es un operador binario. La expresin formada es
cierta cuando ambos operandos son ciertos al mismo tiempo.
Es el operador lgico de Conjuncin.
NOT o no: es un operador unario. Afecta a la expresin
cambiando sus estado lgico, si era verdad lo transforma en
falso o viceversa
7.5.
Parntesis:
Los parntesis se utilizan para anidar expresiones,
Fuente: Libro de
metodologa de
la programacin de Rodrguez Almeida
7.6.
ded
8. Expresiones
Las expresiones son combinaciones de constantes, variables,
smbolos de operacin, parntesis, y nombres de funciones
especiales. Las mismas ideas son utilizadas en notacin
matemtica tradicional
Cada expresin toma un valor que se determina tomando los
valores de las variables y constantes implicadas y la ejecucin de
las operaciones indicadas
Una expresin consta de operando y operadores segn el tipo de
objetos que se manipulan, se clasifican las operaciones en:
Aritmticas
Relacionales
Lgicas
Carcter
9. Regla de Prioridad
Segn Rodrguez (Rodriguez Almeida, 1991), la prioridad a la hora
de evaluar los operadores en cualquier expresin es
Parntesis
Potencias
Productos y divisiones
Sumas y restas
Concatenacin
Relacionales
Lgicos
Segn Joyanes(Aguilar, 1988)Las expresiones que tienen dos o
ms operadores requieren usar reglas matemticas que permitan
determinar el orden de las operaciones, se denominan reglas de
prioridad o precedencia y son:
a) Las operaciones que estn encerradas entre parntesis se
evalan primero. Si existen diferentes parntesis anidados
(interiores unos a otros), las expresiones ms internas se
evalan primero.
b) Las expresiones aritmticas dentro de una expresin suelen
seguir el siguiente orden de prioridad:
Operador exponencial (^)
Operadores de multiplicacin y divisin
Operadores de suma y resta
Operadores lgicos or y and
10. Operacin de Asignacin
La operacin de asignacin es el modo de darle valores a una
variable. La operacin de asignacin se representa con el smbolo
u operador ( ). LA operacin de asignacin se conoce como
instruccin o sentencia de asignacin cuando se refiere a un
lenguaje de programacin
El formato general de una operacin de asignacin es
Nombre de la variable
Expresin Expresin
Expresin, expresin, variable o constante
Ejemplo
A 10
Significa que la variable A se le ha asignado el valor entero de 10
11. Ejercicios
Encontrar el valor de la variable valor despus de la
ejecucin de las siguientes operaciones
a. Valor 4.0*5
b. X 3.0
Y 2.0
Valor X^Y Y
c. Valor 5
X3
Valor valor* X
Deducir el resultado que se puede producir con las
siguientes instrucciones
Variables x, y = enteros
X1
Y5
Escribir x, y
Deducir el valor de las expresiones siguientes
X A +B +C
XA+B*C
XA+B/C
X A + B mod C
X (A + B )/ C
X A + (B / C)
X A + (B * C)
Siendo A =5, B =25, C= 10
Escribir las siguientes expresiones en forma de expresiones
algortmicas
i.
ii.
M
+P
N
M+
N
( PQ)
iii.
( M + N)
(PQ)
iv.
n
(M + )
p
r
(q )
s
v.
vi.
(seno ( x )+ coseno(x ))
tan( x)
b b24 ac
2a
Salida
12.2.
d
13. Instrucciones y tipos de instrucciones
13.1.
Instruccin
Son las acciones o instrucciones que se deben escribir y
posteriormente almacenar en memoria en el mismo orden en
que han de ejecutarse, es decir, en secuencia
13.2.
Tipos de instruccin
Instrucciones de inicio y fin
Son aquellas instrucciones que inicializan y finalizan la
escritura y ejecucin del programa por ejemplo en java
public class {
public static void main(String[], args){
}
}
Instrucciones de asignacin
Son aquellas instrucciones que permite asignar valores a
una variable
Ejemplo en java
I=3;
Int x [];
Int [] x;
Char [] c = {1, b, c, d, e}
Char [] x = new char [20];
Accin 1
Accin 2
o Bifurcacin
Condicional:
depende
del
Accin
3
cumplimiento de una determinada condicin. Si se
cumple la condicin, el flujo sigue ejecutando la
accin F2 si no cumple se ejecuta la accin F1
Accin F1
Accin F2
Ejemplo 2
Escriba un algoritmo que pregunte
por dos
nmeros y muestre como resultado la suma de estos. Use
Pseudocdigo y diagrama de flujos.
10.
11.
12.
13.
14.
15.
18.
19.
20.
21.
Examen 80%
Promedio de tareas 20%
En esta materia se pidi un total de dos tareas.
La calificacin de Qumica se obtiene de la sig. Manera:
Examen 85%
Promedio de tareas 15%
En esta materia se pidi un promedio de tres tareas.
Dados las coordenadas (x1,y1) y (x2,y2) de dos puntos en
el plano cartesiano, determinar la distancia (d) entre estos
dos puntos
Se tiene las votaciones de 3 candidatos (v1, v2, v3). Sobre
el total (tot), determinar el porcentaje de votacin
obtenido por cada uno de los candidatos (p1, p2, p3)
Leer tres valores enteros y realizar las siguientes
operaciones
Sumar todos los valores
Multiplicar todos los valores
Restar de las suma de los dos el doble del tercero
Promedio de todos los valores.
Suma de las mitades de los ltimos valores
Leer cuatro valores reales a, b, c y d. Realizar lo siguiente:
Sumar el cuadrado de los extremos ms el cubo de los
dems
Multiplicar el promedio de los tres primeros por el
promedio de los tres ltimos valores
Calcular la siguiente expresin: (suponga que c es
diferente de cero)
Valor
22.
ab
cd 2a
4cd
2
a
c
c
2a 5b 4
23.
24.
25.
26.
27.
28.
29.
30.
31.
ab
cd 2a
4cd
2
a
c
c
2a 5b 4
PV nRT
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Realizar un
algoritmo para hallar
cuantos estudiantes tiene una academia, donde en
ciencias sociales hay dos grupos de asignaturas: Filosofa
con 124 alumnos y ciencias econmicas, con 220. Si hay
25 alumnos que estudian Filosofa y Ciencias Econmicas.
Realizar un algoritmo para resolver el siguiente problema,
Orlando compro 15 metros de tela para mandar a
fabricar, a S/.
2890 el metro. Para colgarla necesita 28
aros de madera cuyo valor es de S/. 235 cada uno. El riel
y dems accesorios cuestan S/. 4550. Si la modista cobra
S/. 500 por cada metro de tela confeccionado y la
instalacin vale S/. 2000 Cundo es el costo total de la
cortina instalada?
Un vendedor recibe un sueldo base ms un 10% extra
por comisin de sus ventas, el vendedor desea saber
cunto dinero obtendr por concepto de comisiones por
las tres ventas que realiza en el mes y el total que
recibir en el mes tomando en cuenta su sueldo base y
comisiones.
Un profesor desea saber qu porcentaje de hombres y
que porcentaje de mujeres hay en un grupo de
estudiantes.
Elaborar un programa en el cual se ingrese la distancia
que existe en dos vehculos y sus respectivas velocidades
hallar el tiempo de alcance y el tiempo de encuentro?
Elabore un programa en la que me devuelva la altura y la
velocidad final de un cuerpo de se deja caer ingresando
nicamente el tiempo.
Convierta un ngulo sexagesimal g, m, s a grados,
minutos y segundos centesimales.
Elaborar un programa en el que se ingrese la masa
atmica y la cantidad de neutrones para que nos
devuelva el nmero atmico, la cantidad de neutrones y
protones.
Elaborar un programa en el que ingrese el tiempo en el
que se demora en llegar el sonido de una detonacin a
cierto lugar. calcular la distancia donde se realiz la
detonacin?
Elaborar un algoritmo
que solicite
el nmero de
respuestas correctas, incorrectas
y en blanco,
correspondientes a postulantes y muestre su puntaje final
considerando, que por cada respuesta correcta tendr 4
puntos, respuestas incorrectas tendr -1 y respuestas en
blanco tendr 0.
45.
46.
47.
48.
49.
14.2.
Estructuras Selectivas
Este tipo de estructuras se utilizan cuando el programador
quiere realizar algunas bifurcaciones o establecer condiciones
que cumpla o alguna determinada condicin o restriccin
14.2.1.
Selectivas simples:
Ejecuta una determinada accin cuando se cumple una
determinada condicin. A continuacin se muestra su
sintaxis
Pseudocdigo
Si condicin Entonces
Instruccin
Fin si
En Diagrama de flujo se muestra en la figura
Condici
n
Instruccin
14.2.2.
Selectivas Dobles:
La estructura anterior es muy limitada y normalmente se
necesitara una estructura que permita elegir dos opciones o
alternativas posibles en funcin del cumplimiento o no de
una determinada condicin. A continuacin se muestra su
sintaxis
Si condicin entonces
Instruccin 2
Sino
Instruccin 1
Fin si
Condicin
Instruccin 1
Instruccin 2
14.2.3.
Selectivas mltiples:
Con frecuencia en la prctica, es necesario que existan ms
de dos elecciones posibles
Diagrama de Flujo
Condicin
Instruccin 1
Instruccin 2
Instruccin n
Pseudocdigo
Segn sea condicin
Case 1:
Case 2:
.
.
.
Case n:
Fin segn
14.2.4.
Ejemplos
Ejemplo 1:
Resolucin de una ecuacin de primer grado
Si la ecuacin es ax + b =0, a y b son los datos y las
posibles soluciones son
Si a <> 0 entonces
x= -b/a
a=0
b<>0 entonces solucin imposible
a= 0 b =0 entonces solucin indeterminada
Algoritmo
pseudocdigo
Inicio
Leer a, b
Si a <> 0 entonces
x - b/a
Sino
Si b<>0 entonces
Escribir solucin imposible
Sino
Escribir solucin indeterminada
Fin- si
Fin si
Fin
Ejemplo 2
Resolucin de la ecuacin de segundo grado teniendo en
cuenta los tres posibles valores de discriminacin
La ecuacin de segundo grado es:
ax^2 + bx +c = 0
El discriminante D vale
D = b^2 - 4ac
b D
2a
Ejercicios
Para calcular el nivel de ruido de una calle de una
ciudad se realizan 4 medidas, una cada 8 horas, en
un punto concreto. Si la media de las medidas del
nivel de ruido
supera la mxima admitida (por
ejemplo mxima =4), significa que el ruido es nocivo
para la salud. Realizar un programa que calcule el
nivel medio del ruido de una calle y determine si el
nivel de ruido es nocivo o es admisible.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dados
el
valor
antiguo y
el actual del
contador de la luz, escribir un algoritmo que
determine a cunto asciende la factura de la luz de
un determinado abonado. El importe es la suma de la
cuota fija (S/. 12 ) ms una cuota variable que
depende del consumo y se calcula por tramos: los
primeros 100 Kw, a 0.06 el Kw, los 150 Kw siguientes
a 0.04 el Kw, si el consumo excede de 250 Kw, esa
fraccin se cobra 0.02 el kw
Supngase que el importe del seguro obligatorio de
un conductor de un coche depende del modelo del
coche, del color y de la edad del conductor. Sean dos
modelos de coche A y B y los precios del seguro
segn el color:
12.
13.
14.
15.
16.
17.
18.
Si
el
conductor
tiene menos de 26 aos, el precio se incrementa un
25 %; si tiene entre 26 y 30 aos se incrementa un 10
%; si tiene entre 31 y 65 aos el precio no se
modifica; si tiene ms de 65 aos el precio se
incrementara un 10 %. Adems, en cualquier caso,
hay que considerar que si el conductor tiene menos
de 2 aos el permiso de conducir, el precio se
incrementara un 25 % adicional.
Disear un algoritmo que calcule el precio del seguro
para un determinado modelo y un determinado
conductor.
Disear un algoritmo que dado un nmero, indique si
es par o impar
Desarrolle un algoritmo que permita leer dos valores
distintos, determinar cul de los valores es el mayor y
escribirlo.
Elabore el algoritmo que permita ingresar un valor
numrico entero, que debe evaluar o decir que es
mayor que 100 caso contrario se tiene que indicar
que es menor
Del ejercicio 14 se debe evaluar la posibilidad cuando
el valor numrico sea igual a 100.
Elabore el algoritmo que permita ingresar dos valores
numricos enteros positivos cualquiera, luego de
evaluar se debe imprimir sus valores intercambiados.
Desarrolle un algoritmo que permita leer tres valores
y almacenarlos en las variables A, B y C
respectivamente. El algoritmo debe imprimir cual es
el mayor y cul es el menor. Recuerde constatar que
los tres valores introducidos por el teclado sean
valores distintos. Presente un mensaje de alerta en
caso de que se detecte el ingreso de valores iguales
Elaborar el algoritmo que permita ingresar cuatro
valores enteros distintos luego de evaluar se debe
decir cul de ellos es el mayor
19.
20.
21.
22.
23.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
instruccin
Hasta 5to secundaria
tcnico
profesional
Porcentaje
5%
10%
20%
Condicin
Social
casado
Por cada hijo
Sin vivienda
42.
Puntaje
original
0
1..5
6..8
9..10
43.
porcent
aje
3%
2%
5%
Factor
0
6
9
10
Para
un
tiro
realizado determinar
su puntaje correspondiente.
Una tienda de ropa ha establecido los porcentajes de
descuento, que se indican a continuacin, de acuerdo
a ciertas caractersticas del comprador: nacionalidad
(1,2) y del producto que compra: sexo (H, M), talla
(Nio, Joven, Adulto). Se sabe que una persona puede
comprar varios productos por lo que se desea mostrar
como
resultados
los
siguiente:
nombre
del
comprador, cantidad de productos comprados,
importe comprado, importe descontado, el importe a
pagar; para lo cual se deben ingresar los datos que
sean necesarios. El proceso para la compra de una
persona termina cuando al ingresar el nombre del
comprador se presiona ENTER
nio
sexo
Nacionalidad
1
2
H
5
4
M
4
5
joven
sexo
H
M
7
9
9
7
adulto
sexo
H
M
10
12
12
10
44.
Valor
ab
cd 2a
4cd
2
a
c
c
2a 5b 4
45.
ab
c2
cd 2a
a2
c
2a 5b 4
4cd
46.
47.
TINS ( x )
48.
0
x0
16.67 0
33.34 x
33.34 16.67
0
si
x0
si
0 x 16.67
si
16.67 x 33.34
si
x 33.34
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
Bonificacin (%)
0
3
5
8
73.
74.
75.
76.
77.
Hasta
Por el
exceso de
Y hasta
Por el
exceso de
27
UIT
27
UIT
54
UIT
54
UIT
15
%
21
%
30
%
REMUNERAC = Remuneraci x N de
+ IMPUES
=
REMUNERACI
x
TAS
ION BRUTA
n mensual
meses
Gratificaciones
ANUAL
de Navidad y
TO
N NETA que A
falta
Fiestas Patrias
ANUAL
ANUAL
-Otros ingresos
para
percibidos en
culmina
el mes
r el ao
Remuneracion
es y Otros
ingresos
percibidos en
meses
anteriores
78.
Renta
- 7 UIT
Anual
Proyectad
a
Clculo del impuesto anual
De haberse obtenido, luego de la deduccin un
monto positivo, a ste se procede aplicar la
tasa respectiva.
Hasta
27
15
UIT
%
Por el
27
21
exceso de
UIT
%
Y hasta
54
IMPUE = REMUNERAC
x TAS
UIT
STO
IN
A
Por
el
54 NETA
30
ANUAL de
ANUAL %
exceso
UIT
Determinacin del impuesto a retener
Se sigue el siguiente procedimiento por cada uno de
los meses sealados a continuacin: IAN = Impuesto
Neto Anual
RETENCION
ENERO, FEBRERO,
MARZO
RETENCION
ABRIL
RETENCION
IAN
12
IAN - Retenciones de
Enero a Marzo
9
IAN - Retenciones de
79.
Enero a Abril
8
IAN - Retenciones de
Enero a Julio
5
IAN - Retenciones de
Enero a Agosto
4
IAN - Retenciones de
Enero a Noviembre
Total
S/.58,400
S/.11,680
(20% de
S/.58,400)
S/.46,720
S/.49,000
S/.95,720
S/.25,200
(7 x S/.3,600)
-Deduccin 7 UIT
S/.70,520
S/.10,578
S/.9,840
S/.738
80.
Ln(
m0
0.693t
)
m
t (1/ 2)
Dnde:
Mo=masa inicial
M=masa final
T (1/2)=tiempo de vida media (Ejm. C-14 es 5568
aos)
Nota: tenga en cuenta todas las condiciones de
ingreso de datos.
81.
n2 a
( P 2 )(v nb) nRT
v
Dnde:
P=presin
N=nmero de moles
V=volumen
T=Temperatura
A y B = son los parmetros moleculares del gas real
que caracterizan la estructura y propiedades de sus
molculas por Ejemplo O2 tienen valores para a =
1.36 Atm(1/mol)2 y b= 0.0319 (1/mol)
Elabore un algoritmo para hallar la temperatura de un
gas real.
Nota: tenga en cuenta todas las condiciones de
ingreso de datos.
82.
Vb2
h fc K c
2 gc
K c 0.4(1
Sb
)
Sa
h
D 0.7
1 0
hL
L
L
20
D
h
D
1 60
hL
L
20
L
60
D
Dnde:
L: es la longitud de entrada.
H: es el valor promedio para un tubo de longitud
infinita L
HL: es el valor para un tubo muy largo
Nota: tenga en cuenta todas las condiciones de
ingreso de datos
84.
Donde.
V= velocidad en m/s
R=radio hidrulico en m
S=pendiente logitudinal
N=coeficiente de rugosidad
Nota: tenga en cuenta todas las condiciones de
ingreso de datos
85.
Df * K (Wm Wv )
2E
0.061E '
3( RDE 1)3
Dnde:
Y =Deflexin del dimetro del tubo cm
Df=factor de deformacin a largo plazo. Splager
recomienda un valor de 1.5.
K=Constante de lecho de apoyo. Este valor depende
del Angulo de contacto entre el tubo y el lecho de
apoyo. (Ver Tabla)
EPVC 2.81*104 Kg / cm 2
RDE= Relacin dimetro / espesor
DE=Dimetro Externo en cm
E= espesor de la tubera en cm
E=Modulo de reaccin del suelo
Tabla)
Angulo
Contacto
K
de
en Kg/Cm 2
(Ver
30
45
60
90
120
180
0.110
0.108
0.105
0.102
0.096
0.090
0.083
Grado de Compactacin
E (Kg/cm2)
Buena
50
Mediana
35
Mala
20
Velocida
d
del
viento
Tipo de viento
V<1
1V3
4V6
7V10
11V1
6
17V2
1
22V2
7
28V3
Calma
Ventolina
Flojito
Flojo
Bonancible
Fresquito
Fresco
Frescachn
Escala
de
Beaufo
rt
0
1
2
3
Escala
de
Dougla
s
0
Tipo de Ola
Altura
Mn.
Calma
Altura
Mx.
0
0
Rizado
0.2
Marejadilla
0.2
0.5
Marejada
0.5
1.25
Fuerte
Marejada
1.25
2.5
Gruesa
2.5
Muy Gruesa
Ninguna
15
3
34V4
0
41V4
7
48V5
5
56V6
3
64V7
1
Fuera de
Rango
Temporal
Temporal Fuerte
Temporal Duro
Temporal
Duro
Temporal
Huracanado
Sin escala
87.
88.
89.
90.
Muy
Arboleda
Montaosa
14
12
Enorme
14
100
Sin
escala
Sin
escala
Sin escala
Sin
escala
Sin
escala
9
10
11
14.3.
Estructuras Repetitivas
Son las estructuras que repiten una secuencia de
instrucciones un determinado nmero de veces a esto se le
denomina bucle y se denomina iteracin al hecho de repetir
la ejecucin de una secuencia de acciones
Antes de explicar los tipos de estructuras repetitivas
definamos que es un Contador, acumulador o sumador
Un contador es una variable destinada a contener
diferentes valores, que se va incrementando o
decrementando cada vez que el ordenador realice una
instruccin que lo contiene. El incremento o decremento si
es negativo, llamado tambin paso del contador, es
siempre constante ejemplo i 1, j 0, etc.
Acumulador o sumador: es una variable que nos va a
permitir guardar un valor que se incrementa o decrementa
de forma no constante durante el proceso. En un instante
determinado tendr un valor y al siguiente tendr otro valor
igual o distinto. Ejemplo S S + i , a a*i , etc
14.3.1.
Estructura repetitiva mientras (While o Do
while):
La estructura repetitiva mientras, es aquella en que al
cuerpo del bucle se repite mientras se cumple una
determinada condicin. La representacin en
Pseudocdigo y Diagrama de Flujo ser:
Mientras condicin hacer
Accin 1
Accin 2
.
.
.
Fin mientras
Condici
n
Falsa
Verdadera
Acciones
14.3.2.
Estructura repetitiva para (For):
En muchas ocasiones se conoce de antemano el nmero
de veces que se desea ejecutar las acciones de un bucle.
En este caso en el que el nmero de iteraciones es fija se
debe usar la estructura desde o para
La representacin en pseudocdigo y diagrama de flujo es
Desde variable (V) = vi hasta vf hacer
Accin 1
Accin 2
.
.
.
Fin desde
V: variable ndice
Vi, vf : valor inicial y final de la variable
Falso
Variable ndice
> valor final
Verdadero
Acciones
Accione
14.3.3.
Estructura repetitiva repetir:
Existen muchas situaciones en la que se desea que un
bucle se ejecute al menos una vez antes de comprobar la
condicin de repeticin. La estructura repetir se ejecuta
hasta que se cumpla una condicin determinada que se
comprueba al final del bucle. El bucle repetir hasta que se
repite mientras el valor dela expresin booleana de la
condicin sea falsa, justo lo opuesto de la sentencia
mientras.
La representacin en Pseudocdigo y Diagrama de Flujo es
Repetir
Accion1
Accin 2
.
.
.
Hasta _que Condicin
Acciones
Falsa
Verdadera
Condici
n
14.3.4.
Ejemplos
Ejemplo 1
Hallar el factorial de un nmero N utilizando la
estructura desde
Inicio
Leer N
Fact 1
Desde i 1 hasta N hacer
Factfact*i
Fin_desde
Escribir el factorial de, N, es, fact
Fin
Ejemplo 2
Realizar el algoritmo para obtener la suma de los
nmeros pares hasta 1000.
Inicio
Suma 2
Numero 4
Mientras nmero <= 1000 hacer
Suma suma + numero
Numero nmero +2
Fin _ mientras
Fin
Ejemplo 3
Dado dos nmeros enteros, realizar el algoritmo que
calcule el cociente y el resto
Inicio
Leer M, N
Resto M
Cociente 0
Repetir
Resto resto N
Cociente cociente + 1
Hasta_ que resto < N
Escribir dividiendo, M, divisor, N, Cociente,
cociente, Resto
Fin
Ejemplo 9
Determine el mximo comn divisor de dos nmeros
Inicio
Leer a, b
Para i 1 hasta a hacer
R1resto(a/i)
Para j1 hasta b hacer
R2resto (b/j)
Si (i=j) y (r1=0) y (r2=0) entonces
Mcd=i
Fin si
Fin para j
Fin para i
Escribir mcd
Fin
Ejemplo 10
Encuentre e imprima los nmeros primos entre 1 y
100
Inicio
n2
s0
escribir 1
Para i2 hasta 100 hacer
Mientras n i hacer
Si resto (i/n) =0 entonces
ss + n
Fin si
nn+1
Fin mientras
ps+1
qi+1
Si p=q entonces
Escribir i
Fin si
n2
s0
fin para
Fin
Ejemplo 11
Desarrolle un algoritmo para aproximar la siguiente
funcin por serie de Taylor
Primera forma
Inicio
(x = exponente de la funcin y n = N de trminos de
la serie de Taylor)
Leer x, n
I 1
s0
Mientras i n hacer
Potenciax ^ i
Factorial1
mi
J1
Repetir
Factorialfactorial*j
jj+1
Hasta que j > m
ss + potencia/factorial
ii+1
Fin mientras
e 1 +s
Escribir e
Fin
Segunda forma
Inicio
(x = exponente de la funcin y n = N de trminos de
la serie de Taylor)
Leer x, n
I 0
s0
Mientras i n hacer
Potenciax ^ i
Si i = 0 entonces
Factorial1
Sino
Factorial1
mi
J1
Repetir
Factorialfactorial*j
jj+1
Hasta que j > m
Fin si
ss + potencia/factorial
ii+1
Fin mientras
Escribir s
Fin
Ejemplo 12
Realizar un algoritmo que escriba los n primeros
nmeros de la serie de Fibonacci, se sabe que la serie
se origina a partir de dos nmeros que sirve patrn o
base y el tercer nmero es la suma de los dos
anteriores
1, 2, 3, 5, 8, 13, 21,.
Primera forma
Inicio
Leer n
Fibo11
Fibo22
i3
Escribir fibo1, fibo2
Repetir
Fibofibo1 + fibo2
Escribir fibo
Fibo1fibo2
Fibo2fibo
ii+1
Hasta que i >n
Fin
Segunda forma seria ms general
Inicio
Leer n
Fibo11
Fibo22
i2
Escribir fibo1, fibo2
Repetir
ii+1
Fibofibo1 + fibo2
Fibo1fibo2
Fibo2fibo
Escribir fibo
Hasta que i >n
Fin
Una forma ms general seria
Inicio
Leer n, a, b
Fibo1a
Fibo2b
i2
Escribir fibo1, fibo2
Repetir
ii+1
Fibofibo1 + fibo2
Fibo1fibo2
Fibo2fibo
Escribir fibo
Hasta que i >n
Fin
Ejemplo 13
Mostrar los N primeros trminos de la siguiente serie,
donde N debe estar entre 5 y 30
5, 7, 10, 14, 19,..
Inicio
Leer n
Si (n5) y (n30) entonces
i1
s5
Escribir s
Mientras i<n hacer
ii +1
ss + i
Escribir s
Fin mientras
Sino
Escribir nmero fuera de rango
Fin si
Fin
Ejemplo 14
Calcular el valor mximo de una serie de 10 nmeros,
leidos por teclado
Inicio
Leer num
i1
maxnum
Repetir
ii +1
Leer num
Si max < num entonces
maxnum
fin si
hasta que I > 10
Escribir max
Fin
Ejemplo 14
Determinar simultneamente los valores mximo y
mnimo de una lista de 100 nmeros ledos por
teclado
Inicio
Leer num
maxnum
minnum
desde i 2 hasta 100 hacer
Leer num
Si max num entonces
maxnum
sino
Si num min entonces
minnum
fin si
fin si
fin desde
Escribir max, min
Fin
Ejemplo 15
Calcular el Mximo Comn Divisor de dos nmeros A
y B de acuerdo con el algoritmo de Euclides.
Inicio
Leer A, B
Si A < B entonces
auxB
BA
Aaux
Mientras B 0 hacer
Rresto(A/B)
AB
BR
Fin mientras
Escribir A
Sino
Mientras B 0 hacer
Rresto(A/B)
AB
BR
Fin mientras
Escribir A
Fin
Ejercicio 21
Inicio
Leer a,b,e
Fa sen(a)+cos(1+a^2)-1
Fb sen(b)+cos(1+b^2)-1
Si fa*fb <0 entonces
Repetir
c(b+a)/2
Fc sen(c)+cos(1+c^2)-1
Si fb*fc 0 entonces
ac
Fa sen(a)+cos(1+a^2)-1
sino
bc
Fb sen(b)+cos(1+b^2)-1
fin si
Escribir a, b, c, fa, fb, fc
ii+1
Hasta que (b-c e)
Fin
Ejercicio 26
Inicio
Leer n, x
S0
Si (x > -1) y (x 1) entonces
Para i1 hasta n hacer
potx^i
Si resto (i/2)=0 entonces
S s-pot/i
Sino
S s + pot/i
Fin si
Fin para
Fin si
Escribir s
Fin
14.3.5.
Ejercicios
1. Hallar el factorial de un nmero N utilizando la
estructura para, mientras y repetir
2. Imprimir los 30 primeras potencias de 4, es decir 4
elevado a 1, 4 elevador a 2 con las tres estructuras.
3. Calcular la suma de los n primeros enteros con las
tres estructuras
4. Disear un algoritmo para imprimir la suma de los
nmeros impares menores o iguales que n. Utilice las
tres estructuras.
5. Calcular el nmero mximo de una serie de 100
nmeros. utilice as tres estructuras.
6. Realizar un algoritmo que escriba los N primeros
nmeros de la serie de Fibonacci 1,2,3,5,8,13,21,
Utilice las tres estructuras
7. Determinar la media de una lista indefinida de
nmeros positivos ledos por teclado y estos son
terminados con un nmero negativo o cero. Utilice las
tres estructuras
8. Calcular los factoriales de n ledo por teclado. Utilice
las tres estructuras.
9. Calcular el factorial de los n nmeros ledos por
teclado. Utilice las tres estructuras.
10. Se quiere hallar el producto de varios nmeros
positivos introducidos por teclado, de manera que el
proceso termina cuando se introduce un nmero
negativo. Utilice las tres estructuras
11. Escriba un algoritmo que encuentre el primer divisor
entero
de un nmero, que previamente se ha
introducido por teclado. Utilice las tres estructuras.
12. Escriba un algoritmo que calcule el mximo de los
nmeros positivos introducidos por teclado. Sabiendo
que se introducen nmeros desde teclado hasta
teclear uno negativo. El negativo no cuenta.
((a b)
3) n
i 1
n 1
(2 a * (i 1))
i 2
x 2 x3
xn
e =1+x+ + +...+
2! 3!
n!
x
,
Para N > 0
Para un N dado
n
x
n!
<
e (por
ejemplo e = 10 - 4)
Escribir un algoritmos que calcule la
exponencial de a segn dicha
frmula,
utilizando n=10 y luego n=20.
erp
xi 1 xi
x100
xi 1
c b
f (b)(a b)
f (a) f (b)
I (b a )
f ( xa ) 2 f ( xi ) f ( xb )
i 1
2n
I (b a )
f ( xa ) 4 f ( xi ) 2
i 1,3,5
n 2
j 2,4,6
f ( x j ) f ( xb )
3n
I (b a )
f ( xa ) 3 f ( xi ) f ( xb )
i 1
8n
1
k 1 ak
k
k 1
57. Calcule el nmero mximo de trminos de la serie
de Fibonacci cuya suma no exceda de 10000. Ingrese
por teclado dos nmeros como inicio de la serie.
58. Calcule e imprima los nmeros primos entre 1 y 100
59. Permita ingresar el nombre del bien, la cantidad a
depreciar y el nmero de aos de depreciacin, la
salida debe mostrar cada ao y su depreciacin. De
acuerdo con el mtodo de la suma de los dgitos
empleado en el anlisis financiero para calcular la
depreciacin. Por ejemplo suponga que un automvil
de $20000 ser depreciado durante un periodo de 5
aos,
la
suma
de
los
dgitos
del
ao:
1+2+3+4+5=15. De acuerdo con el mtodo el
primer ao el bien se deprecia 5/15, el segundo 4/15
y as sucesivamente.
y 2 x 2 18
60.
La esquina de un rectngulo debe estar
sobre la curva elabore el algoritmo que determine las
coordenadas de la esquina del mayor rectngulo
posible (imprima las coordenadas (x, y) y el rea
mxima).
61. Disee un algoritmo que permita descubrir si dos
enteros positivos son primos entre s, es decir si su
mximo comn divisor es uno.
62. Permita ingresar las coordenadas (x, y) de un punto
y el radio R, de un circulo con centro en el origen.
Luego de evaluar se debe decir si el punto esta fuera,
dentro o sobre el circulo
63. Dada una hoja de cartn de ancho (A) y largo (L). si
se recortan cuadrados de las esquinas, la porcin
restante puede doblarse para formar una caja.
Determnese el tamao de los recortes de los
cuadrados para producir una caja de volumen
mximo (imprimase el volumen mximo).
Q2
0 1 3 B
gAc
B 3 y
y2
Ac 3 y
2
xi 1 xi
la siguiente
f ( xi )( xi 1 xi )
f ( xi1 ) f ( xi )
V h3
(3R h)
3
xi1 xi
f ( xi )
f '( xi )
x 2 x3
1 x ...
2! 3!
e x
ex
1
2
x
x3
1 x ...
2! 3!
erp
f ( xi1 ) f ( xi ) f ( xi )( xi1 xi )
h xi 1 xi
f ( xi )
f ( xi )
( xi1 xi ) 2
( xi 1 xi )3 ...
2!
3!
f ( xi 1 ) f ( xi ) hf ( xi ) h 2
f ( xi )
f ( xi )
h3
...
2!
3!
27 UIT
15
%
Por el
27 UIT
exceso de
21
%
Y hasta
54 UIT
IMPUES = REMUNERACI x TAS
Por el
54 UIT 30
TO
N NETA
A
exceso de
%
ANUAL
ANUAL
Nota
UIT = 3600
91. Elaborar un algoritmo para calcular el coeficiente de
correlacin, segn la frmula:
i 1
i 1
i 1
n xy x y
n
(n x ( x) )(n y ( y ) 2 )
i 1
i 1
i 1
i 1
^
92. de
15. Subprogramas
La
resolucin
de
considerablemente si
llamados subproblemas
en la programacin
(subrutinas)
problemas
complejos
se
facilita
se dividen en problemas ms pequeos
(Subprogramas). Las herramientas usadas
son las funciones y procedimientos
15.1.
Procedimientos(Subprograma):
Llamados tambin subrutina, un procedimiento es un
subprograma que ejecuta un proceso especfico, cuando se
invoca el procedimiento, los pasos que lo definen se ejecutan y
a continuacin se devuelve el control al programa que le llamo
Declaracin de un procedimiento
Procedimiento nombre (parmetros formales, parmetros
variables)
Inicio
Acciones
Donde
Fin
Nombre: Es el nombre del procedimiento a invocar
Parmetros formales: Tiene el mismo significado que en las
funciones
Parmetros
variables:
En
algunos
lenguajes
de
programacin est permitido este tipo de declaracin, para
designar que ellos obtendrn resultados del procedimiento en
lugar de los valores actuales asociados a ellos.
Invocacin a una funcin
(Llamar_a) nombre (lista de parmetros actuales)
Por ejemplo
Procedimiento divisin (dividendo, divisor, cociente, resto)
Inicio
Cociente dividendo/ divisor
Resto dividendo - cociente*divisor
Retorno
Fin
Algoritmo aritmtica
Inicio
Leer M, N
Llamar_a divisin (M, N, P, Q)
Escribir p, Q
Fin
15.2.
Funciones
Matemticamente una funcin es una operacin que tiene uno
o ms valores
llamados argumentos y produce un valor
denominado resultado o valor de la funcin para los
argumentos dados (Aguilar, 1988)
Declaracin de una funcin
Funcin nombre _ funcin (par1, par2,
par3,)
Inicio
Acciones
Dnde:
Par1, par2,Fin
Lista de parmetros o argumentos
Nombre_ funcin
Nombre asociado con la funcin, que
ser un nombre de identificacin valido
Acciones instrucciones que constituyen la definicin de la
funcin y que debe contener una accin solo de asignacin que
asigne un valor al nombre de la funcin, es decir, nombre_
funcin expresin
Por ejemplo la funcin
f ( x )=
x
2
1+ x
Funcin fun(x)
Inicio
Funx/(1 + x^2)
Fin
Invocacin de una funcin
Una funcin puede ser llamada solo mediante referencia de la
forma siguiente:
Variable de asignacin nombre _ funcin (par1, par2,)
Por ejemplo
F_x fun(x)
Procedimiento vs funcin
i.
Un procedimiento es llamado desde el algoritmo o
programa principal mediante su nombre y una lista de
parmetros actuales o bien con la instruccin llamar. Al
llamar el procedimiento se detiene momentneamente el
programa que se estuviera realizando y el control pasa al
procedimiento llamado. Despus que las acciones del
procedimiento se ejecutan, se regresa a la accin
inmediatamente siguiente a la que se llam.
ii.
iii.
15.3.
Algoritmos Recursivos
Es un algoritmo que se define en trminos de s mismo. Son
implementados en forma de subrutinas (Funciones,,
Procedimientos, subprogramas, etc.)
De tal manera que
dentro de una subrutina recursiva hay una o ms llamadas a
s misma.
Es una herramienta muy potente en algunas aplicaciones
sobre todo de clculo. La recursin puede ser utilizada como
una alternativa a la repeticin o estructuras repetitivas. El uso
de la recursin es particularmente idneo para la solucin de
aquellos problemas que pueden definirse de modo natural en
trminos recursivos (Aguilar, 1988)
Recursividad directa: cuando en una subrutina
hay
llamadas a ella misma
Recursividad indirecta: cuando se tienen varias subrutinas y
estas se llaman unas a otras formado ciclos.
La recursividad es un elemento muy importante en la solucin
de algunos problemas
Ventajas
Algunos problemas son esencialmente recursivos, por lo cual
su implementacin se facilita mediante un algoritmo de
naturaleza recursiva, sin tener que cambiarlo a un mtodo
iterativo.
Desventajas
Puede llegar a utilizar grandes cantidades de memoria en un
instante, pues implementa una pila
cuyo tamao crece
linealmente, con el nmero de recursiones necesarias en el
algoritmo
Ejemplo
Calcular factorial de un nmero n
Funcin factorial (n)
Inicio
Si n = 0 entonces
Factorial 1
Sino
Factorial n* factorial(n-1)
Fin si
Fin
Inicio
Leer n
Fact factorial(n)
Escribir el factorial de n es, fact
Fin
Ejercicios
1. Disear un algoritmo que calcule el mximo comn divisor
de dos nmeros mediante el algoritmo de Euclides con el
siguiente procedimiento
a. Dividir el nmero mayor (A) por el menor (B). Si el resto
de la divisin es cero el nmero B es el mximo comn
divisor
b. Si la divisin no es exacta, se divide el nmero menor
(B) por el resto de la divisin anterior
c. Se siguen los pasos anteriores hasta obtener un resto
cero. El ltimo divisor es el mcd buscado
2. Para calcular el mximo comn divisor (mcd) de dos
nmeros, se recurre a una funcin especfica definida con
un programa con un subprograma. Se desea calcular la
salida del programa principal con dos nmeros A y B, cuyos
valores son 15 y 10, es decir, el mcd (A, B) y comprobar el
mtodo de paso de parmetros por valor
3. Realizar un algoritmo que permita ordenar tres nmeros
mediante un procedimiento de
intercambios de dos
variables
4. Disear una funcin que calcule la media de tres nmeros
ledos del teclado y poner un ejemplo de su aplicacin
5. Realizar un procedimiento que realice la conversin de
coordenadas polares (r, ) a coordenadas cartesianas (x, y)
X = rcos()
Y = rseno()
6. Funcin que calcule xy, con x R, y suponiendo que y es un
valor entero y > 0
7. Funcin que calcule xy, con x R, y suponiendo que y es un
valor entero que puede ser positivo, negativo o cero
m
n
8. Funcin que calcule
, siendo m y n dos enteros positivos.
Puede hacer uso de las funciones que haya realizado con
anterioridad para calcular el factorial.
9. Funcin que calcule la suma de las componentes de un
vector.
ah
n
h 1 h
10.
11.
12.
13.
14.
15.
16.
17.
16.
Estructuras de Datos
Entero
Real
Carcter
Lgico
Estndar
Datos simples
Definido por el programador
(No estndar)
Simples o Estticos
Datos estructurados
Compuestos o dinmicos
16.1.
Sub rango
Enumerativo
Subndice
A(i)
1
2
3
4
5
6
7
8
14.0
12.0
8.0
7.0
8.40
8.20
8.15
7.25
Donde
Nombre arreglo: nombre valido del arreglo
Liminf . . . limsup :lmite inferior y superior del rango del
arreglo
Tipo de dato: es el tipo d datos de los elementos del
arreglo, puede ser entero, carcter, real,
Asignacin a un arreglo
A (1) 10 se asigna el valor 10 a la posicin 1 del vector A
A (5) 20 se asigna el valor 20 a la posicin 5 del vector
A
Lectura y escritura de datos
La lectura y escritura de un arreglo u operaciones de entrada
y salida normalmente se realizan con estructuras repetitivas.
Final = arreglo [1.. 20] de real
// Lectura
Desde i = 1 hasta 20 hacer
Leer final (i)
Fin desde
// Escritura
Desde i = 1 hasta 20 hacer
Escribir final (i)
Fin desde
16.1.1.
Ejemplos
Ejemplo 1
Escribir un algoritmo que permita calcular el cuadrado de
los 100 primeros nmeros enteros y a continuacin escribir
una tabla que contenga dichos 100 nmeros cuadrados.
Algoritmo
Inicio
Desde N 1 hasta 100 hacer
C N*N
Escribir N, C
Fin desde
{Escritura de la tabla}
Desde N 1 hasta 100 hacer
A(N) N*N
Escribir A(N)
Fin desde
Fin
Ejemplo 2
Se tiene N temperaturas. Se desea calcular su media y
determinar entre todas ellas cuales son superiores o
iguales a esa media
Algoritmo
Inicio
Suma 0
C0
Leer N
Desde i 1 hasta N hacer
Leer temp[i]
Suma suma/N
Fin desde
Desde i 1 hasta N hacer
Si temp[i] >= media entonces
C C +1
Escribir temp[i]
Fin si
Fin desde i
Escribir la media es:, media
Escribir el total de temperaturas mayores iguales a la
medio es : , C
Fin
16.1.2.
Ejercicios
1 n
(vk ) 2
n k 1
J A[j] + A [i]
Fin
13.
Dados los vectores A = 3 5 6 8 4 7 8 5 3 1 y B = 3
4 6 8 9 1 2 3 0 9, realice un algoritmo para calcular las
siguientes operaciones
14.
Crear un vector de 70 elementos donde cada
elemento del vector sea igual a su posicin
15. Un avin dispone de 180 plazas de las cuales 60 son de
no fumador y numeradas del 1 al 60 y 120 plazas
numeradas de 61 al 120. Disear un algoritmo que
permita hacer la reserva de plazas de avin y se detenga
media antes de la salida, cuyo momento se abrir la lista
de espera.
16. Dada en una lista no ordenada de nmeros y un nmero
ledo por teclado:
a. Disear una solucin que busque en la lista el nmero
ledo. Si lo encuentra, debe informar de su posicin en la
lista, sino debe devolver la posicin cero.
b. Modificar el anterior para que devuelva el nmero de
veces que aparece.
c. Disear una solucin que busque el nmero mayor y
devuelva cuantas veces aparece.
d. Disear una solucin que devuelva Verdadero si el
nmero ledo, aparece ms veces que el mayor.
e. Disear una solucin que calcule la media de todos los
nmeros.
f. Disear una solucin que calcule la media entre el
mayor y el menor.
g. Disear una solucin que cree una lista inversa a la
dada. Es decir, que genere una nueva lista tal que su
primer elemento sea el ltimo de la lista inicial, su
segundo elemento sea el penltimo de la lista inicial,
etc., etc., etc.
17. Dadas 3 listas de 10 nmeros de telfono, donde la
primera lista contiene el nmero de pasos consumidos en
llamadas locales asociado a cada telfono, la segunda
contiene informacin sobre llamadas nacionales y la
tercera
contiene
informacin
sobre
llamadas
internacionales, calcular los subtotales del coste de cada
una de las categoras considerando los costes siguientes:
llamada local, 5pesetas por paso, llamada nacional 10
16.2.
Ordenacin, Bsqueda y Intercalacin
16.2.1.
Ordenacin
Llamado tambin clasificacin, es el proceso de organizar
datos en algn orden o secuencia especfica tal como
creciente o decreciente para datos
numricos o
alfanumricos para datos de caracteres. Los mtodos de
ordenacin se dividen en dos categoras:
Ordenacin de vectores, tablas (arrays)
Ordenacin de archivos
Los mtodos de clasificacin se explicaran aplicados a
vectores (arrays unidimensionales) pero se
pueden
extender a matrices o tablas (arrays bidimensionales)
considerando la ordenacin respecto a una fila o columna
los mtodos directos son los que se realizan en el espacio
ocupado por el array. Los ms populares son:
Mtodo de intercambio o burbuja
Mtodo de Seleccin
Mtodo de Insercin
Mtodo de intercambio o de Burbuja
Se basa en el principio de comparar pares de elementos
adyacentes e intercambiarlos entre s, de una lista o
vector hasta que estn todos ordenados.
50
A(1)
15
A(2)
56
A(3)
14
A(4)
35
A(5)
1
A(6)
12
A(7)
9
A(8)
Pasos
Se divide la lista original (16 elementos como
ejemplo)
en
este
caso
en
8
grupos
de
dos(considerando un incremento o intervalo de 16/2
=8)
Se clasifica cada grupo por separado (se comparan las
parejas de elementos y si no estn ordenados) se
intercambian entre s de posiciones)
Se divide ahora la lista en cuatro grupos d de cuatro
(intervalo de salto 8/4 = 4) y nuevamente se clasifica
cada grupo por separado.
Un tercer paso clasifica dos grupos de ocho registros y
luego un cuarto paso completa el trabajo clasificando
todos los 16 registros
Algoritmo
Inicio
Intervalo n div 2
Mientras (intervalo > 0) hacer
Desde i (intervalo - 1) hasta n hacer
j i intervalo
Mientras (j > 0) hacer
K i + intervalo
Si A[j] <= A[k] entonces
j 0
Sino {intercalar A[j], A[k]}
AuxA[j]
A[j] A[k]
A[k] aux
Fin si
j = j - intervalo
Fin mientras
Fin desde i
Intervalo intervalo div 2
Fin mientras
Fin
Mtodo de ordenacin rpida (ojo trabajo)
16.2.2.
Bsqueda
16.2.3.
Mezcla o intercalacin
45
23
90
10
50
10
54
30
20
14
15
100
21
54
30
100
21
11
15
10
54
30
101
20
16.3.
34
11
15
16
23
90
10
30
14
13
10
12
20
14
15
Arreglos bidimensionales:
Fila
Fila
Fila
Fila
Fila
Columna
Columna
Columna
Columna
Columna
Para el optimista
Para el pesimista
1
j
k 1 h
skj