Top Banner
Depto. de Matemática Aplicada y Métodos Informáticos E.T.S. de Ingenieros de Minas – U.P.M. Fundamentos de Programación. Curso 2011-12 López Benito, A., Conde Lázaro, C. Algoritmia básica
35

Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Aug 03, 2018

Download

Documents

dinhlien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Algoritmia básica

Page 2: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Introducción

Computación: Manipular la información y realizar los cálculos apropiados para resolver un problema

Algoritmo: Sucesión finita de pasos no ambiguos que se pueden ejecutar en un tiempo finito y que conducen a la solución de un problema

Ni la palabra computación ni la palabra algoritmo llevan implícita la palabra ordenador

Page 3: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Un poco de Historia Abu Jafar Muhammad Ibn Musa Al-Khwarizmi (Bagdad, 780-850)

Escribió el libro “Hisab al-jabr al-muqabala” (El arte de resolver ecuaciones)

La palabra algoritmo deriva de su nombre

La palabra algebra deriva del título de este libro

Page 4: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Resolución de un problema

Análisis del problema

Diseño del algoritmo

Programación del algoritmo

Definición del problema

Especificaciones de entrada

Especificaciones de salida

Codificación del programa

Ejecución del programa

Comprobación y depuración

Page 5: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Concepto de variable

Una variable es una ubicación de memoria en el computador o en la calculadora que tiene un nombre (identificador) y en la que se pueden almacenar diferentes valores.

Page 6: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Ejemplo 1 Diseñar un algoritmo que permita determinar el área de un círculo y la longitud de la circunferencia que lo circunscribe

Análisis del problema

1. Utilizar las fórmulas: a) Area = π*Radio*Radio b) Longitud = 2*π*Radio

2. Variable de entrada: Radio (real)

3. Variables de salida: Área y Longitud (reales)

Page 7: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Ejemplo 1 (cont.) Diseño del algoritmo

Recordar que un algoritmo debe cumplir: a) Indicar el orden de ejecución de los pasos b) Estar definido sin ambigüedad c) Ser finito

1. Leer la variable Radio

2. Aplicar las fórmulas: a) Area = π*Radio*Radio b) Longitud = 2*π*Radio

3. Escribir las variables Área y Longitud

C

F

R

A, L

a), b)

Page 8: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Ejemplo 2

Diseñar un algoritmo que permita calcular las raíces de la ecuación de segundo grado ax2+bx+c=0 (sólo en el caso de que las dos raíces sean reales)

Análisis del problema

1. Utilizar las fórmulas: a) x1 = (-b+sqrt(b2-4ac)/2a b) x2 = (-b-sqrt(b2-4ac)/2a

2. Variables de entrada: a, b, c (reales)

3. Variables de salida: x1 y x2 (reales)

Page 9: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Diseño del algoritmo

1. Leer las variables a, b y c

3. Escribir las variables x1 y x2

Ejemplo 2 (cont.)

2. Utilizar las fórmulas: a) x1 = (-b+sqrt(b2-4ac)/2a b) x2 = (-b-sqrt(b2-4ac)/2a

C

F

a,b c

x1, x2

a), b)

Page 10: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller

Diseñar un algoritmo que permita calcular el producto de las matrices A y B, ambas de dimensión 2x2 y elementos reales

Page 11: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Estructuras de bifurcación (condicionales)

Se producen cuando en un punto del algoritmo hay que tomar una decisión, cuyo resultado condiciona la marcha posterior del algoritmo

C

F

a,b

adiós

a > b

F

hola

si no

Ejemplo: Leer dos números a y b. Si a>b escribir “hola”, en caso contrario, escribir “adiós”

Page 12: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Ejemplo 3 Diseñar un algoritmo que permita calcular las raíces de la ecuación de segundo grado ax2+bx+c=0

Análisis del problema 1. Si b2-4ac ≥ 0, utilizar las fórmulas:

a) x1 = (-b+sqrt(b2-4ac))/2a b) x2 = (-b-sqrt(b2-4ac))/2a

3. Variables de entrada: a, b, c (reales)

4. Variables de salida: x1 y x2 (reales)

2. Si b2-4ac < 0, utilizar las fórmulas: a) x1 = −b/2a + I*sqrt(4ac−b2))/2a b) x2 = −b/2a − I*sqrt(4ac−b2))/2a

Page 13: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Ejemplo 3 (cont.) Diseño del algoritmo 1. Leer las variables a, b y c

4. Escribir las variables x1 y x2

2. Calcular d = b2 − 4ac 3. Si d ≥ 0 entonces: Utilizar las fórmulas:

x1 = (−b + sqrt(d))/2a x2 = (− b − sqrt(d))/2a

En caso contrario: Utilizar las fórmulas:

x1 = −b/2a + I*sqrt(d))/2a x2 = −b/2a − I*sqrt(d))/2a

Terminar condición

Page 14: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

x1 = (−b + sqrt(d))/2a x2 = (− b − sqrt(d))/2a

Ejemplo 3 (cont.) a,b,c

d > 0 si no

d = b2 − 4ac

x1 = −b/2a + I*sqrt(d))/2a x2 = −b/2a − I*sqrt(d))/2a

X1, x2

Page 15: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Un poco de Lógica 1 Los operadores lógicos permiten comparar el valor de dos constantes o variables

Operación Operador Igual que = Mayor o igual que >= Mayor que > Menor que < Menor o igual que <= Distinto a <>

Page 16: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Un poco de Lógica 2 Una variable lógica es el resultado de comparar el valor de dos constantes o variables mediante una operación lógica.

Una variable lógica sólo puede tomar dos valores: verdadero (T) o falso (F).

L = A * B

Operador lógico (=, >=, >, <, <=, <>)

Variable lógica ( T, F)

EJEMPLO A = 3, B = 7 L = A >= B L = Falso L = A <> B L = Verdadero

Page 17: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Un poco de Lógica 3 Las variables lógicas pueden operarse entre sí mediante las operaciones de relación. Las más usuales son and y or.

and El resultado de su aplicación es true si ambos operandos son true y es false si alguno de ellos es false.

or El resultado de su aplicación es true si alguno de los operandos es true y es false si ambos son false.

A B A and B

V V V

V F F

F V F

F F F

A B A or B

V V V

V F V

F V V

F F F

Page 18: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C. 18

Un poco de Lógica 4

L = (a>b) and (d<=c)

L = (a*b > c*d) or (a<=d)

L = (a*b > c*d) or (a>=d)

L = true

EJEMPLOS A = 5, B = -2, C = 4, D = -2

true true

false false

L = false

false true

L = true

Page 19: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 2

Diseñar un algoritmo que permita resolver la ecuación cúbica ax3+bx2+cx=d por el método de Ferro – Tartaglia – Cardano – Bombelli

1. Leer a, b, c, d

2. Calcular: 2 3

2

1 1 23 3 27

= − = − +

b cb bp c q da a a a a

3. Calcular: 2 3

2 3 = +

q pr

Page 20: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 2 (cont. 1) 3. Si r>0 entonces: Calcular: 3 3

2 2 = + − − +

q qy r r

En caso contrario: Si r=0 entonces: Calcular: 32

2=

qy

En caso contrario: Calcular:

2 2

2= = − ρ = +

qs t r s t

Si s>0 entonces: 13

θ =

tarctgs

En caso contrario:

Page 21: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Si s<0 entonces:

Taller 2 (cont. 2)

13 θ = + π

tarctgs

En caso contrario:

Si t>0 entonces: 6π

θ =

En caso contrario: 6π

θ = −

Fin de condición

Fin de condición

Fin de condición

32 cos= ρ θy Calcular:

Fin de condición

Fin de condición

Page 22: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 2 (cont. 3)

4. Calcular: 1 3= −

bx ya

5. Calcular: 1 1α = β = +α γ = +βa b x c x

6. Resolver la ecuación: 2 0α +β + γ =x x

Page 23: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 2 (cont. 4) a, b, c, d

p, q, r

r>0

y

si

r=0

y

si

no no

s, t, ρ

s<0

si

no

θ

t>0

si

no

θ θ

y

x1, α, β, ϒ

αx2+βx+γ=0

x1, x2, x3

Page 24: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Estructuras repetitivas (bucles)

Un bucle (loop) es un conjunto de instrucciones del programa que se repite varias veces.

EJEMPLO:

Diseñar un algoritmo que permita escribir los primeros N números naturales

1. Leer N 2. Hacer I=1 3. Escribir I 4. Si I<N hacer I=I+1 ir a 3 en caso contrario, TERMINAR

Page 25: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Ejemplo (cont.)

N

I=1

I

I<N si

no

FIN

I=I+1 Bucle

Page 26: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Tipos de bucles. Bucle desde … hasta Se utiliza cuando sabemos de antemano el número de veces que se va a repetir una cierta tarea

I=I0,N,Δ

PROCESO

La variable de control del bucle (I) se inicializa con el valor I0 y se va incrementando en una cantidad Δ (paso) con cada repetición. El proceso se detiene cuando I ≥ N.

I=I0

I≤N si

no

I=I0+Δ

PROCESO

Page 27: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Tipos de bucles. Bucle desde … hasta (cont.)

EJEMPLO:

Diseñar un algoritmo que permita escribir los primeros N números naturales

N

I=1,N,1

I

Page 28: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 3

Diseñar un algoritmo que permita calcular el producto escalar de los vectores u = (u1, u2, …, un) y v = (v1, v2, …, vn).

1 1 2 21

n

n n i ii

p u v u v u v u v=

= + + + =∑…

1. Leer n 2. Leer u, v 3. p ← 0 4. Desde i=1 hasta n, con paso 1, hacer: p ← p + ui*vi Fin bucle 5. Escribir p

Page 29: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Bucles anidados

Los bucles pueden anidarse uno dentro de otro, siempre y cuando se cumpla la condición:

Inicio bucle 1 Inicio bucle 2 Inicio bucle n Fin bucle n Fin bucle 2 Fin bucle 1

Inicio bucle 1 Inicio bucle 2 Inicio bucle n Fin bucle 2 Fin bucle n Fin bucle 1

Page 30: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Bucles anidados (cont.)

Veamos su funcionamiento con un ejemplo:

J=1,3,1

PROCESO

I=1,5,2

I = 1

J = 1, 2, 3

I = 3

J = 1, 2, 3

I = 5

J = 1, 2, 3

Page 31: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 4

Diseñar un algoritmo que permita calcular la suma de las matrices

11 12 1 11 12 1

21 22 2 21 22 2

1 2 1 2

,

n n

n n

m m mn m m mn

a a a b b ba a a b b b

a a a b b b

= =

A B

… …… …

� � � � � �… …

( ),i j ij ijijs a b a b= + = +

( )1,2, , 1,2, ,i m j n= =… …

Page 32: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 4 (cont.)

Para recorrer todos los elementos de una matriz (mxn) necesitamos dos bucles anidados:

i

j

Page 33: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Taller 4 (cont.)

1. Leer m, n 2. Leer A y B

3. Desde i=1 hasta m, con paso 1, hacer:

Fin bucle en i

Desde j=1 hasta n, con paso 1, hacer:

Fin bucle en j

4. Escribir S

s(i,j) = a(i,j) + b(i,j)

Page 34: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Tipos de bucles. Bucle mientras … hacer Se utiliza cuando sabemos de antemano la condición necesaria para que una cierta tarea se repita

Cond. V F

PROCESO

Cond.

PROCESO

Las tareas que componen el proceso se realizan una y otra vez mientras la condición que controla el bucle sea verdadera. PELIGRO: Si la condición siempre es verdadera, el bucle se repetirá infinitas veces. El ordenador se “cuelga”.

Page 35: Fundamentos de Programación. Curso 2011-12 - …agronomaps.wdfiles.com/local--files/apuntes-algoritmia/Algoritmia 1... · Algoritmia básica . Depto. de Matemática Aplicada y Métodos

Dep

to. d

e M

atem

átic

a A

plic

ada

y M

étod

os In

form

átic

os

E.T

.S. d

e In

geni

eros

de

Min

as –

U.P

.M.

Fundamentos de Programación. Curso 2011-12

López Benito, A., Conde Lázaro, C.

Tipos de bucles. Bucle mientras … hacer (cont.) EJEMPLO:

Diseñar un algoritmo que permita sumar los primeros números naturales hasta que su suma sea mayor que un valor S prefijado.

S

suma ≤ S

suma = 0 n = 1

suma = suma+n n = n+1

suma, n-1