Professional Documents
Culture Documents
Dpto. de Informtica
y Sistemas
Definicin de Vector:
Asignacin
Ejemplo:
Algoritmo Inicializar_Vector
Final
32
UPC ALGORTMICA 33
Dpto. de Informtica
y Sistemas
De este modo veamos un ejemplo: Tenemos dos vectores con las mismas
caractersticas (tipo y longitud). Se pretende intercambiar los datos entre dos vectores
a b. Para ello utilizaremos un elemento de apoyo c.
Final
33
UPC ALGORTMICA 34
Dpto. de Informtica
y Sistemas
Para i de 1 a n hacer
Leer v(i)
Fin para
Para i de 1 a n hacer
Escribir v(i)
Fin para
Finalmente, decir que aunque por facilitar la comprensin de los ejemplos aqu
mostrados, se obviarn las operaciones de lectura y escritura realizndolas en forma
directa, los algoritmos de examen SIEMPRE debern indicarse estas operaciones
desarrolladas, es decir, por elementos.
Suma de vectores
Algoritmo suma_vectores
Constante n= ... Forma de resolver el problema del
Variable entera i predimensionamiento por exceso
Vectores reales a[1..n], b[1..n], c[1..n]
Leer a,b LECTURA DIRECTA, NO USAR!
Para i de 1 a n hacer
c(i) a(i)+b(i)
Fin para
Escribir c ESCRITURA DIRECTA, NO USAR!
Final
Los vectores que se suman han de ser del mismo tipo y dimensin.
34
UPC ALGORTMICA 35
Dpto. de Informtica
y Sistemas
Mdulo de un vector
Algoritmo modulo
constante n= ...
variable entera i
real modulo, suma_cuadrados
vector real a (1..n)
Leer a
suma_cuadrados 0.0
Para i de 1 a n hacer
suma_cuadrados suma_cuadrados + a(i)*a(i)
Fin para
modulo sqr (suma_cuadrados)
Escribir mdulo
Final
P ( x ) Pn x x Pn 1 x n 1 ... P1 x P0
Pude representarse mediante un vector donde sus elementos son los coeficientes
del polinomio.
Suma de polinomios
35
UPC ALGORTMICA 36
Dpto. de Informtica
y Sistemas
Algoritmo suma_polinomios
constante n=...
vectores reales p(0..n),q(0..n),r(0..n)
variable entera i
Leer p,q
Para i de 1 a n hacer
r(i) p(i) + q(i)
Fin para
Escribir r
Final
Evaluacin de un polinomio
Regla de Ruffini: valor p(x) para x=a . Se basa en dividir el polinomio p[0..n] por (x-a),
obteniendo el polinomio cociente, q[0..n-1]
qn-1 = pn
qn-2 = pn-1 +a qn-1
...
q0 = p1 + aq1
r = p0 + aq0
Algoritmo Ruffini
constante n=...
Variable real a
entera i
Vectores reales p(0..n), q(0..n-1)
Leer p
Leer a
q(n-1) p(n)
Para i de n-1 a 1 incremento -1 hacer
q(i-1) p(i) + a*q(i)
Fin para
r p(0)+a*q(0)
Escribir Polinomio cociente = q
Escribir Resto (valor de p(a) = , r
Final
36
UPC ALGORTMICA 37
Dpto. de Informtica
y Sistemas
r n t d a h m z o k s c
a1 a2 ... ak-1 ak ... ... ... ai ... ... an
Elementos desordenados
r n t d a h m z o k s c
a1 a2 ... ak-1 ak ... ... ... ai ... ... an
a n t d r h m z o k s c
a1 a2 ... ak-1 ak ... ... ... ai ... ... an
a c d h k m n o r s t z
37
UPC ALGORTMICA 38
Dpto. de Informtica
y Sistemas
Algoritmo Seleccin
constante n=...
variable entera i,j,k
real x variable de apoyo
vector de reales a(1..n)
Leer a
Escribir a
Final
Ejercicio Propuesto: Realizar la traza para la ordenacin por seleccin del vector
a=(75,63,8,15,26,12,2)
Bsqueda Lineal
38
UPC ALGORTMICA 39
Dpto. de Informtica
y Sistemas
Algoritmo bsqueda_lineal
constante n= ...
variable entera i
real x
vector de reales a(1..n)
Leer a
Leer x
y 1
si i n entonces
escribir ("Dato ";x;" Encontrado en la posicin: ";i)
sino escribir ("Dato no encontrado")
finsi
Final
Bsqueda Binaria
39
UPC ALGORTMICA 40
Dpto. de Informtica
y Sistemas
Algoritmo Busqueda_Dicotmica
constante n=...
variable entera i,j,m
real x
vector a(1..n)
Leer a
Leer x
i 1
j n
repetir
m (i+j)/2
si x < a(m) entonces
j m-1
finsi
si x > a(m) entonces
i m+1
finsi
hasta que (a(m)=x or i>j)
si a(m) = x entonces
escribir ("Dato ";x;" Encontrado en la posicin: ";m)
sino escribir ("Dato no encontrado")
finsi
Final
4.6.- MATRICES.
40
UPC ALGORTMICA 41
Dpto. de Informtica
y Sistemas
Al igual que en el caso de vectores, todos los elementos de una matriz deben ser
del mismo tipo. Declaracin:
Matriz tipo nombre (ndice fila mn..ndice fila mx, ndice col mn..ndice col mx)
Asignacin.
para i de 1 a m hacer
para j de 1 a n hacer
a(i,j) 0.0
fin para
fin para
para i de 1 a n hacer
para j de 1 a n hacer
si i=j entonces
I(i,j) 1
sino I(i,j) 0
finsi
fin para
fin para
41
UPC ALGORTMICA 42
Dpto. de Informtica
y Sistemas
para i de 1 a m hacer
para j de 1 a n hacer
leer a(i,j)
fin para
fin para
Al igual que con los vectores, a efectos de simplificar los algoritmos de ejemplo,
expresaremos en ocasiones la lectura y escritura de forma abreviada (NO PERMITIDO
EL EJERCICIOS DE EXAMEN):
leer a
escribir a
escribir c
Final
Evidentemente, las matrices han de ser del mismo tipo y deben tener las mismas
dimensiones.
leer a
leer x
42
UPC ALGORTMICA 43
Dpto. de Informtica
y Sistemas
para i de 1 a m hacer
para j de 1 a n hacer
b(i,j) x * a(i,j)
fin para
fin para
escribir b
Final
Producto matricial
leer a, b
para i de 1 a m hacer
para j de 1 a q hacer
c(i,j) 0.0
para k de 1 a n hacer
c(i,j) c(i,j) + a(i,k)*b(k,j)
fin para
fin para
fin para
escribir c
Final
Ejercicios Propuestos
43
UPC ALGORTMICA 44
Dpto. de Informtica
y Sistemas
4.- Sean dos matrices de dimensiones m,n y l,k. Disear un un algoritmo que detecte
aquellos elementos presentes en ambas matrices y los escriba, indicando su
posicin en las dos matrices (suponiendo que no hay valores repetidos dentro de
ninguna de las dos matrices).
7. Para un vector de 50 elementos imprima todas los valores que se encuentran el las
posiciones pares.
10. Realizar un algoritmo que permita sumar dos vectores de N posiciones, mostrar el
vector resultante y los dos originales.
11. Dado lis dgitos de un numero natural en un vector, calcular el nmero entero y
mostrarlo. Por ejemplo. V(4)= 1, 2, 4, 7, 3
El nmero resultarte entero es: 12473
12. Leer una matriz de NxN e imprimir la suma de la diagonal principal y la secundaria.
13. Leer una matrices de N x N, sume las columnas de la matriz y el resultado
almacenarlo en un vector de N posiciones.
14. Leer una matriz de NxM y encuentre el nmero mayor y el menor de la matriz.
44