áticos m étodos Infor n Algoritmia básica -...

45
Programación y Métodos Numéricos. Curso 2011-12 máticos Métodos Inform nas – U.P.M. Aplicada y M nieros de Min Algoritmia básica e Matemática .T.S. de Inge Algoritmia básica Depto. de E López Benito, A.

Transcript of áticos m étodos Infor n Algoritmia básica -...

Page 1: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 2: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 3: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 4: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 5: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 6: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 7: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 8: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 9: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 10: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 11: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 12: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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)

Page 13: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 14: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 15: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 16: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 17: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 18: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 19: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 20: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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:

Page 21: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 22: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 23: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 24: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

,

Page 25: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 26: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 27: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 28: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 29: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 30: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 31: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 32: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 33: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 34: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 35: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 36: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 37: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 38: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 39: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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”.

Page 40: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 41: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 42: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 43: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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.

Page 44: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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

Page 45: áticos m étodos Infor n Algoritmia básica - INICIOproyectomentor-upm.wdfiles.com/local--files/apuntes-1/Algoritmia_1... · Programación y Métodos Numéricos. Curso 2011-12 m

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