Programación y Métodos Numéricos. Curso 2011-12
mát
icos
Mét
odos
Info
rmna
s –
U.P
.M.
Apl
icad
a y
Mni
eros
de
Min
Algoritmia básica
e M
atem
átic
a .T
.S. d
e In
ge Algoritmia básica
Dep
to. d
e E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Introducción
Computación: Manipular la información y realizar loscálculos apropiados para resolver un
mát
icos
p p pproblema
Mét
odos
Info
rmna
s –
U.P
.M.
Algoritmo: Sucesión finita de pasos noambiguos que se pueden ejecutar en
ti fi it d l
Apl
icad
a y
Mni
eros
de
Min un tiempo finito y que conducen a la
solución de un problema
e M
atem
átic
a .T
.S. d
e In
ge
Ni la palabra computación ni lapalabra algoritmo llevan implícita la
Dep
to. d
e E palabra algoritmo llevan implícita lapalabra ordenador
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Un poco de HistoriaAbu Jafar Muhammad Ibn MusaAl-Khwarizmi (Bagdad, 780-850)
mát
icos La palabra algoritmo deriva de su
nombre
Mét
odos
Info
rmna
s –
U.P
.M.
Escribió el libro “Hisab al-jabr al-
nombre
Apl
icad
a y
Mni
eros
de
Min Escribió el libro Hisab al jabr al
muqabala” (El arte de resolverecuaciones)
e M
atem
átic
a .T
.S. d
e In
ge
La palabra algebra deriva del títulode este libro
Dep
to. d
e E de este libro
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Resolución de un problema
Análisis del problema
Diseño del algoritmo
Programación del algoritmo
mát
icos
Mét
odos
Info
rmna
s –
U.P
.M.
Definición del problema
Especificaciones de entrada
Especificaciones de salida
Apl
icad
a y
Mni
eros
de
Min problema de entrada de salida
e M
atem
átic
a .T
.S. d
e In
ge
Codificación del programa
Ejecución del programa
Comprobación y depuración
Dep
to. d
e E programa programa y depuración
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Concepto de variablem
átic
os
Una variable es una ubicación de memoria en
Mét
odos
Info
rmna
s –
U.P
.M. Una variable es una ubicación de memoria en
el computador o en la calculadora que tieneun nombre (identificador) y en la que se
Apl
icad
a y
Mni
eros
de
Min un nombre (identificador) y en la que se
pueden almacenar diferentes valores.
e M
atem
átic
a .T
.S. d
e In
geD
epto
. de E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 1Diseñar un algoritmo que permita determinar el áreade un círculo y la longitud de la circunferencia que lo
mát
icos
circunscribe
Análisis del problema
Mét
odos
Info
rmna
s –
U.P
.M. Análisis del problema
1. Utilizar las fórmulas:
Apl
icad
a y
Mni
eros
de
Min a) Area = π*Radio*Radio
b) Longitud = 2*π*Radio
e M
atem
átic
a .T
.S. d
e In
ge
2. Variable de entrada: Radio (real)
Dep
to. d
e E
3. Variables de salida: Área y Longitud (reales)
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 1 (cont.)Diseño del algoritmo
Recordar que un algoritmo debe cumplir:
mát
icos
Recordar que un algoritmo debe cumplir:a) Indicar el orden de ejecución de los pasosb) Estar definido sin ambigüedad C
Mét
odos
Info
rmna
s –
U.P
.M. b) Estar definido sin ambigüedad
c) Ser finito
1 Leer la variable Radio
C
R
Apl
icad
a y
Mni
eros
de
Min 1. Leer la variable Radio
2. Aplicar las fórmulas:a) b)
e M
atem
átic
a .T
.S. d
e In
ge a) Area = π*Radio*Radiob) Longitud = 2*π*Radio
a), b)
Dep
to. d
e E
3. Escribir las variables Área y LongitudF
A, L
López Benito, A.
F
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 2
Diseñar un algoritmo que permita calcular las raícesde la ecuación de segundo grado ax2+bx+c=0 (sólo
mát
icos
g g (en el caso de que las dos raíces sean reales)
Mét
odos
Info
rmna
s –
U.P
.M.
Análisis del problema
1 Utilizar las fórmulas:
Apl
icad
a y
Mni
eros
de
Min 1. Utilizar las fórmulas:
a) x1 = (-b+sqrt(b2-4ac)/2ab) x2 = (-b-sqrt(b2-4ac)/2a
e M
atem
átic
a .T
.S. d
e In
ge
) ( q ( )
2. Variables de entrada: a, b, c (reales)
Dep
to. d
e E
3. Variables de salida: x1 y x2 (reales)
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 2 (cont.)
Diseño del algoritmoC
mát
icos 1. Leer las variables a, b y c
2 Utili l fó l
C
a,b c
Mét
odos
Info
rmna
s –
U.P
.M. 2. Utilizar las fórmulas:
a) x1 = (-b+sqrt(b2-4ac)/2ab) x2 = (-b-sqrt(b2-4ac)/2a
,
a) b)
Apl
icad
a y
Mni
eros
de
Min
3. Escribir las variables x1 y x2
b) x2 = (-b-sqrt(b -4ac)/2a a), b)
e M
atem
átic
a .T
.S. d
e In
ge
y
F
x1, x2
Dep
to. d
e E F
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller
Diseñar un algoritmo que permita calcular el productode las matrices A y B ambas de dimensión 2x2 y
mát
icos
de las matrices A y B, ambas de dimensión 2x2 yelementos reales
Mét
odos
Info
rmna
s –
U.P
.M.
Apl
icad
a y
Mni
eros
de
Min
e M
atem
átic
a .T
.S. d
e In
geD
epto
. de E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Estructuras de bifurcación (condicionales)
Se producen cuando en unpunto del algoritmo hay que
C
mát
icos
punto del algoritmo hay quetomar una decisión, cuyoresultado condiciona la
a,b
Mét
odos
Info
rmna
s –
U.P
.M.
marcha posterior delalgoritmo a > bsi no
Apl
icad
a y
Mni
eros
de
Min
adióshola
e M
atem
átic
a .T
.S. d
e In
ge
FFEjemplo:Leer dos números a y b Si
Dep
to. d
e E Leer dos números a y b. Sia>b escribir “hola”, en casocontrario, escribir “adiós”
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 3Diseñar un algoritmo que permita calcular las raícesde la ecuación de segundo grado ax2+bx+c=0
mát
icos Análisis del problema
1 Si b2 4ac ≥ 0 utilizar las fórmulas:
Mét
odos
Info
rmna
s –
U.P
.M. 1. Si b2-4ac ≥ 0, utilizar las fórmulas:
a) x1 = (-b+sqrt(b2-4ac))/2ab) x2 = (-b-sqrt(b2-4ac))/2a
Apl
icad
a y
Mni
eros
de
Min ) ( q ( ))
2. Si b2-4ac < 0, utilizar las fórmulas:) 1 b/2 I* t(4 b2))/2
e M
atem
átic
a .T
.S. d
e In
ge a) x1 = −b/2a + I*sqrt(4ac−b2))/2ab) x2 = −b/2a − I*sqrt(4ac−b2))/2a
Dep
to. d
e E
3. Variables de entrada: a, b, c (reales)
4. Variables de salida: x1 y x2 (reales)
López Benito, A.
4. Variables de salida: x1 y x2 (reales)
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 3 (cont.)Diseño del algoritmo1. Leer las variables a, b y c
mát
icos
1. Leer las variables a, b y c2. Calcular d = b2 − 4ac3 Si d ≥ 0 entonces:
Mét
odos
Info
rmna
s –
U.P
.M. 3. Si d ≥ 0 entonces:
Utilizar las fórmulas:x1 = (−b + sqrt(d))/2a
Apl
icad
a y
Mni
eros
de
Min
( q ( ))x2 = (− b − sqrt(d))/2a
En caso contrario:Utili l fó l
e M
atem
átic
a .T
.S. d
e In
ge Utilizar las fórmulas:x1 = −b/2a + I*sqrt(d))/2ax2 = −b/2a − I*sqrt(d))/2a
Dep
to. d
e E
4 Escribir las variables x1 y x2
x2 = b/2a I sqrt(d))/2aTerminar condición
López Benito, A.
4. Escribir las variables x1 y x2
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo 3 (cont.)a,b,c
mát
icos d = b2 − 4ac
Mét
odos
Info
rmna
s –
U.P
.M.
d > 0si no
Apl
icad
a y
Mni
eros
de
Min
x1 = (−b + sqrt(d))/2ax2 = (− b − sqrt(d))/2a
x1 = −b/2a + I*sqrt(d))/2ax2 = −b/2a − I*sqrt(d))/2a
e M
atem
átic
a .T
.S. d
e In
ge
x2 ( b sqrt(d))/2a x2 b/2a I sqrt(d))/2a
Dep
to. d
e E
X1, x2
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Un poco de Lógica 1Los operadores lógicos permiten comparar el valor de dosconstantes o variables
mát
icos
Operación Operador
Mét
odos
Info
rmna
s –
U.P
.M.
Igual que =Mayor o igual que >=
Apl
icad
a y
Mni
eros
de
Min Mayor que >
Menor que <M i l
e M
atem
átic
a .T
.S. d
e In
ge Menor o igual que <=Distinto a <>
Dep
to. d
e E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Un poco de Lógica 2Una variable lógica es el resultado de comparar el valor de dosconstantes o variables mediante una operación lógica.
mát
icos
Una variable lógica sólo puede tomar dos valores: verdadero (T)o falso (F).
Mét
odos
Info
rmna
s –
U.P
.M.
L = A * B
Apl
icad
a y
Mni
eros
de
Min
Operador lógico(=, >=, >, <, <=, <>)
Variable lógica( T, F)
e M
atem
átic
a .T
.S. d
e In
ge
EJEMPLOA = 3, B = 7
Dep
to. d
e E A 3, B 7L = A >= B L = FalsoL = A <> B L = Verdadero
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Un poco de Lógica 3Las variables lógicas pueden operarse entre sí mediante lasoperaciones de relación. Las más usuales son and y or.
mát
icos
and El resultado de su aplicaciónes true si ambos operandosson true y es false si alguno
A B A and B
V V V
Mét
odos
Info
rmna
s –
U.P
.M. son true y es false si alguno
de ellos es false. V F F
F V F
F F F
Apl
icad
a y
Mni
eros
de
Min
or El resultado de su aplicación
F F F
A B A or B
e M
atem
átic
a .T
.S. d
e In
ge es true si alguno de losoperandos es true y es falsesi ambos son false.
V V V
V F V
Dep
to. d
e E
F V V
F F F
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Un poco de Lógica 4EJEMPLOSA = 5, B = -2, C = 4, D = -2
mát
icos L = (a>b) and (d<=c) L = true
t t
Mét
odos
Info
rmna
s –
U.P
.M.
L = (a*b > c*d) or (a<=d)
true true
L = false
Apl
icad
a y
Mni
eros
de
Min L = (a*b > c*d) or (a<=d)
false false
L = false
e M
atem
átic
a .T
.S. d
e In
ge
L = (a*b > c*d) or (a>=d) L = true
Dep
to. d
e E false true
López Benito, A. 18
Programación y Métodos Numéricos. Curso 2011-12
Taller 2
Diseñar un algoritmo que permita resolver la ecuación cúbicaax3+bx2+cx=d por el método de Ferro Tartaglia Cardano
mát
icos
ax3+bx +cx=d por el método de Ferro – Tartaglia – Cardano– Bombelli
Mét
odos
Info
rmna
s –
U.P
.M. 1. Leer a, b, c, d
2 C l l2 31 1 2
b cb bp c q d
Apl
icad
a y
Mni
eros
de
Min 2. Calcular: 23 3 27
p c q da a a a a
2 3 q p
e M
atem
átic
a .T
.S. d
e In
ge 3. Calcular:2 3
q pr
Dep
to. d
e E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller 2 (cont. 1)3. Si r>0 entonces:
C l l
q q
mát
icos
Calcular: 3 32 2
q qy r r
En caso contrario:
Mét
odos
Info
rmna
s –
U.P
.M. caso co a o
Si r=0 entonces:
Calcular: 32qy
Apl
icad
a y
Mni
eros
de
Min Calcular: 32
2y
En caso contrario:q
e M
atem
átic
a .T
.S. d
e In
ge
Calcular: 2 2
2
qs t r s t
S 0 1 t
Dep
to. d
e E Si s>0 entonces: 13
tarctgs
En caso contrario:
López Benito, A.
En caso contrario:
Programación y Métodos Numéricos. Curso 2011-12
Taller 2 (cont. 2)
Si s<0 entonces:13
tarctgs
mát
icos
3 s
En caso contrario:
Si t>0 t
Mét
odos
Info
rmna
s –
U.P
.M. Si t>0 entonces:
6
En caso contrario:
Apl
icad
a y
Mni
eros
de
Min 6
Fin de condición
e M
atem
átic
a .T
.S. d
e In
ge Fin de condición
32 cos yCalcular:
Dep
to. d
e E
Fin de condición
Fin de condición
López Benito, A.
Fin de condición
Programación y Métodos Numéricos. Curso 2011-12
Taller 2 (cont. 3)
4. Calcular: 1 3
bx ya
mát
icos
3a
5. Calcular: 1 1 a b x c x
Mét
odos
Info
rmna
s –
U.P
.M.
6. Resolver la ecuación: 2 0 x x
Apl
icad
a y
Mni
eros
de
Min
e M
atem
átic
a .T
.S. d
e In
geD
epto
. de E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller 2 (cont. 4)a, b, c, d
p, q, r
mát
icos
p, q,
r>0
si
r=0
si
no no
Mét
odos
Info
rmna
s –
U.P
.M.
y y s, t, ρ
s<0no
t>0no
Apl
icad
a y
Mni
eros
de
Min
siθ
siθ θ
e M
atem
átic
a .T
.S. d
e In
ge
y
Dep
to. d
e E
x1, α, β, ϒ
αx2+βx+γ=0
López Benito, A.
x1, x2, x3
Programación y Métodos Numéricos. Curso 2011-12
Estructuras repetitivas (bucles)
Un bucle (loop) es un conjunto de instrucciones del programaque se repite varias veces.
mát
icos EJEMPLO:
Mét
odos
Info
rmna
s –
U.P
.M. Diseñar un algoritmo que permita escribir los primeros N números
naturales
1 L N
Apl
icad
a y
Mni
eros
de
Min 1. Leer N
2. Hacer I=13 E ibi I
e M
atem
átic
a .T
.S. d
e In
ge 3. Escribir I4. Si I<N hacer
I=I+1
Dep
to. d
e E I=I+1ir a 3
en caso contrario, TERMINAR
López Benito, A.
,
Programación y Métodos Numéricos. Curso 2011-12
Ejemplo (cont.)
N
mát
icos
I=1
Mét
odos
Info
rmna
s –
U.P
.M.
Apl
icad
a y
Mni
eros
de
Min
II=I+1 Bucle
e M
atem
átic
a .T
.S. d
e In
ge
I<Nsi
Dep
to. d
e E no
FIN
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Tipos de bucles. Bucle desde … hastaSe utiliza cuando sabemos de antemano el número de veces que se va a repetir una cierta tarea
mát
icos
I=I0
Mét
odos
Info
rmna
s –
U.P
.M.
I=I0,N,Δ0
Apl
icad
a y
Mni
eros
de
Min
PROCESOI≤Nsi
PROCESO
e M
atem
átic
a .T
.S. d
e In
ge no
I=I0+Δ
PROCESO
Dep
to. d
e E
La variable de control del bucle (I) se inicializa con el valor I0 yse va incrementando en una cantidad Δ (paso) con cada
López Benito, A.
se va incrementando en una cantidad Δ (paso) con cadarepetición. El proceso se detiene cuando I ≥ N.
Programación y Métodos Numéricos. Curso 2011-12
Tipos de bucles. Bucle desde … hasta (cont.)
EJEMPLO:
Di ñ l it it ibi l i ú
mát
icos
Diseñar un algoritmo que permita escribir los primeros N númerosnaturales
Mét
odos
Info
rmna
s –
U.P
.M. N
Apl
icad
a y
Mni
eros
de
Min
I=1,N,1
e M
atem
átic
a .T
.S. d
e In
ge
I
Dep
to. d
e E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
El sumatorio
1 21
n
i ni
a a a a
mát
icos n, a s=0
i=1
Mét
odos
Info
rmna
s –
U.P
.M.
s=0
i=1s=s+a(1)=a(1)
i=2
Apl
icad
a y
Mni
eros
de
Min
i=1,n,1s=s+a(2)=a(1)+a(2)
i=3
e M
atem
átic
a .T
.S. d
e In
ge
s=s+a(i)s=s+a(3)=a(1)+a(2)+a(3)
Dep
to. d
e E
s
López Benito, A.
s
Programación y Métodos Numéricos. Curso 2011-12
Taller 3
Diseñar un algoritmo que permita calcular el producto escalar delos vectores u = (u1, u2, …, un) y v = (v1, v2, …, vn).
mát
icos
( 1, 2, , n) y ( 1, 2, , n)
1 1 2 2
n
n n i ip u v u v u v u v
Mét
odos
Info
rmna
s –
U.P
.M. 1i
1 Leer n
Apl
icad
a y
Mni
eros
de
Min 1. Leer n
2. Leer u, v3. p ← 0
e M
atem
átic
a .T
.S. d
e In
ge 4. Desde i=1 hasta n, con paso 1, hacer:p ← p + ui*vi
Fin bucle
Dep
to. d
e E Fin bucle5. Escribir p
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Bucles anidados
Los bucles pueden anidarse uno dentro de otro, siempre ycuando se cumpla la condición:
mát
icos
Inicio bucle 1Inicio bucle 2
Inicio bucle 1Inicio bucle 2
Mét
odos
Info
rmna
s –
U.P
.M. Inicio bucle 2
Inicio bucle n
Inicio bucle 2
Inicio bucle n
Apl
icad
a y
Mni
eros
de
Min
Fin bucle n
Fin bucle 2
Fin bucle 2
Fin bucle n
e M
atem
átic
a .T
.S. d
e In
ge
Fin bucle 2Fin bucle 1
Fin bucle nFin bucle 1
Dep
to. d
e E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Bucles anidados (cont.)
Veamos su funcionamiento con un ejemplo:
mát
icos I=1,5,2
I = 1
J = 1, 2, 3
Mét
odos
Info
rmna
s –
U.P
.M.
J=1,3,1
I = 3
J = 1, 2, 3
Apl
icad
a y
Mni
eros
de
Min
, ,
PROCESO
I = 5
J = 1, 2, 3
e M
atem
átic
a .T
.S. d
e In
geD
epto
. de E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller 4
Diseñar un algoritmo que permita calcular la suma de lasmatrices
mát
icos 11 12 1 11 12 1n na a a b b b
a a a b b b
Mét
odos
Info
rmna
s –
U.P
.M. 21 22 2 21 22 2,n na a a b b b
b b b
A B
Apl
icad
a y
Mni
eros
de
Min
1 2 1 2m m mn m m mna a a b b b
e M
atem
átic
a .T
.S. d
e In
ge
,i j ij ijijs a b a b
Dep
to. d
e E
1,2, , 1,2, ,i m j n
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller 4 (cont.)
Para recorrer todos los elementos de una matriz (mxn)necesitamos dos bucles anidados:
mát
icos
j
Mét
odos
Info
rmna
s –
U.P
.M.
i
Apl
icad
a y
Mni
eros
de
Min i
e M
atem
átic
a .T
.S. d
e In
geD
epto
. de E
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller 4 (cont.)m
átic
os
1. Leer m, n2. Leer A y B
Mét
odos
Info
rmna
s –
U.P
.M.
3. Desde i=1 hasta m, con paso 1, hacer:
Desde j=1 hasta n, con paso 1, hacer:
Apl
icad
a y
Mni
eros
de
Min
Fin bucle en j
s(i,j) = a(i,j) + b(i,j)
e M
atem
átic
a .T
.S. d
e In
ge
Fin bucle en i
j
4 Escribir S
Dep
to. d
e E 4. Escribir S
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
El productorio
1 21
n
i ni
a a a a
mát
icos n, a s=1
i=1
Mét
odos
Info
rmna
s –
U.P
.M.
s=1
i=1s=s*a(1)=a(1)
i=2
Apl
icad
a y
Mni
eros
de
Min
i=1,n,1s=s*a(2)=a(1)*a(2)
i=3
e M
atem
átic
a .T
.S. d
e In
ge
s=s*a(i)s=s*a(3)=a(1)*a(2)*a(3)
Dep
to. d
e E
López Benito, A.
s
Programación y Métodos Numéricos. Curso 2011-12
Factorial de un número
! 1 2 1n n n
mát
icos n f=1
i=1
Mét
odos
Info
rmna
s –
U.P
.M.
f=1
i=1f=f*1=1
i=2
Apl
icad
a y
Mni
eros
de
Min
i=1,n,1f=f*2=1*2
i=3
e M
atem
átic
a .T
.S. d
e In
ge
f=f*if=f*3=1*2*3
Dep
to. d
e E
f
López Benito, A.
f
Programación y Métodos Numéricos. Curso 2011-12
Taller 5
Diseñar un algoritmo que permita calcular el producto de lasmatrices
mát
icos 11 12 1 11 12 1p na a a b b b
a a a b b b
Mét
odos
Info
rmna
s –
U.P
.M. 21 22 2 21 22 2,p na a a b b b
b b b
A B
Apl
icad
a y
Mni
eros
de
Min
1 2 1 2m m mp p p pna a a b b b
e M
atem
átic
a .T
.S. d
e In
ge
,1
p
i j ik kjijk
p a b a b
Dep
to. d
e E
1,2, , 1,2, ,i m j n
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Taller 5 (cont.)
1. Leer m, p, n2 Leer A y B
mát
icos
2. Leer A y B
3. Desde i=1 hasta m, con paso 1, hacer:
Desde j=1 hasta n con paso 1 hacer:
Mét
odos
Info
rmna
s –
U.P
.M. Desde j=1 hasta n, con paso 1, hacer:
Desde k=1 hasta p, con paso 1, hacer:p(i j) = p(i j)+a(i k)*b(k j)
Apl
icad
a y
Mni
eros
de
Min
Fin bucle en j
p(i,j) = p(i,j)+a(i,k) b(k,j)Fin bucle en k
e M
atem
átic
a .T
.S. d
e In
ge
Fin bucle en i
4. Escribir P
Dep
to. d
e E 4. Escribir P
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Tipos de bucles. Bucle mientras … hacerSe utiliza cuando sabemos de antemano la condición necesariapara que una cierta tarea se repita
mát
icos
Mét
odos
Info
rmna
s –
U.P
.M.
Cond.V FCond.
Apl
icad
a y
Mni
eros
de
Min
PROCESO PROCESO
e M
atem
átic
a .T
.S. d
e In
ge
Las tareas que componen el proceso se realizan una y otra vez
Dep
to. d
e E Las tareas que componen el proceso se realizan una y otra vezmientras la condición que controla el bucle sea verdadera.PELIGRO: Si la condición siempre es verdadera, el bucle se
López Benito, A.
prepetirá infinitas veces. El ordenador se “cuelga”.
Programación y Métodos Numéricos. Curso 2011-12
Tipos de bucles. Bucle mientras … hacer (cont.)EJEMPLO:
Diseñar un algoritmo que permita sumar los primeros números
mát
icos
Diseñar un algoritmo que permita sumar los primeros númerosnaturales hasta que su suma sea mayor que un valor S prefijado.
S
Mét
odos
Info
rmna
s –
U.P
.M. S
suma = 0n 0
Apl
icad
a y
Mni
eros
de
Min
suma ≤ S
n = 0
e M
atem
átic
a .T
.S. d
e In
ge
n = n+1suma = suma+n
Dep
to. d
e E suma = suma+n
suma, n
López Benito, A.
suma, n
Programación y Métodos Numéricos. Curso 2011-12
Intercambio de valores entre dos variables
Sean dos variables a y b a las que previamente se les handado los valores a=a* y b=b*. Deseamos diseñar un
mát
icos
dado los valores a a y b b . Deseamos diseñar unalgoritmo tal que permita intercambiar los valores deambas variables, es decir, al final los valores de a y b
Mét
odos
Info
rmna
s –
U.P
.M. deben ser a=b* y b=a*.
Idea 1.
Apl
icad
a y
Mni
eros
de
Min
a=bb=a
a=b*b=b*
e M
atem
átic
a .T
.S. d
e In
ge
Idea 2.
b b*
Dep
to. d
e E c=bb=aa=c
c=b*b=a*a=b*
López Benito, A.
a=c a=b
Programación y Métodos Numéricos. Curso 2011-12
Búsqueda del mayor elemento de una listaDiseñar un algoritmo que permita encontrar el elemento demayor valor de un vector 1 2, , , nx x xx
mát
icos
n, x
max=x(1)
Mét
odos
Info
rmna
s –
U.P
.M.
i 2 1
max=x(1)pos=1
Apl
icad
a y
Mni
eros
de
Min i=2,n,1
max=x(i)si
e M
atem
átic
a .T
.S. d
e In
ge Max<x(i)max=x(i)pos=i
si
no
Dep
to. d
e E
López Benito, A.
max,pos
Programación y Métodos Numéricos. Curso 2011-12
Ordenar una lista (método de la burbuja)Diseñar un algoritmo que permita ordenar los elementos de unvector en orden decreciente 1 2, , , nx x xx
mát
icos Paso 1
Buscar entre x(1), x(2), …, x(n) el elemento de mayor valor.
Mét
odos
Info
rmna
s –
U.P
.M. Buscar entre x(1), x(2), …, x(n) el elemento de mayor valor.
Si éste es el x(i), intercambiar los valores de x(1) y x(i).
Paso 2
Apl
icad
a y
Mni
eros
de
Min Paso 2
Buscar entre x(2), x(3), …, x(n) el elemento de mayor valor.Si éste es el x(i), intercambiar los valores de x(2) y x(i).
e M
atem
átic
a .T
.S. d
e In
ge
( ), ( ) y ( )
Paso n-1
Dep
to. d
e E Comparar x(n-1) y x(n). Si x(n) es mayor que x(n-1),intercambiar sus valores.
López Benito, A.
Programación y Métodos Numéricos. Curso 2011-12
Ordenar una lista (método de la burbuja)
3, 5, 1, 9, 7, 2
mát
icos
, , , , ,
9 5 1 3 7 2
Mét
odos
Info
rmna
s –
U.P
.M. 9, 5, 1, 3, 7, 2
9 7 1 3 5 2
Apl
icad
a y
Mni
eros
de
Min 9, 7, 1, 3, 5, 2
9 7 5 3 1 2
e M
atem
átic
a .T
.S. d
e In
ge 9, 7, 5, 3, 1, 2
9 7 5 3 1 2
Dep
to. d
e E 9, 7, 5, 3, 1, 2
9 7 5 3 2 1
López Benito, A.
9, 7, 5, 3, 2, 1
Programación y Métodos Numéricos. Curso 2011-12
Ordenar una lista (método de la burbuja)
1. Leer n, x2 Desde i=1 hasta n 1 con paso 1 hacer:
mát
icos
2. Desde i=1 hasta n-1, con paso 1, hacer:imax = i
Mét
odos
Info
rmna
s –
U.P
.M. Desde j=i+1 hasta n, con paso 1, hacer:
Si x(j) > x(imax) entonces:i j
Apl
icad
a y
Mni
eros
de
Min
Fi d b l
imax = jFin condición
e M
atem
átic
a .T
.S. d
e In
ge Fin de bucle en j
Intercambiar valores de x(i) y x(imax)
Dep
to. d
e E
Fin de bucle en i
3 Escribir x
López Benito, A.
3. Escribir x