Logo Studenta

array paralelo y corrimiento

¡Este material tiene más páginas!

Vista previa del material en texto

CLASE teorica
ARRAY o (vectores) Unidimensional paralelos
Este concepto se da cuando hay una relación entre las componentes de igual subíndice (misma posición) de un array y otro.
1
2
3
4
5
EJEMPLO 1
Hacer un algoritmo que cargue un array con los nombres y otro con las edades de las mismas personas que son cargadas en el array nombres.
VAR vec_nombre: array[1..100] de string
 vec_edad: array[1..100] de entero
 i : entero
 i:=1
 MIENTRAS i<= 100 HACER
 Mostrar(“nombre de la persona”) 
 Leer( vec_nombre[i] )
 Mostrar(“edad de la persona”)
 Leer( vec_edad[i] )
 
 i:= i + 1
 
1
2
3
4
5
Ramón
Karina
 
Marcela
Federico
Hernán
1
2
3
4
5
25
20
 
18
22
26
Marcela
18
Ramón
25
Karina
20
Federico
22
Hernán
26
Proceso Promedio ( vec_edad: array[1..100] de entero, var pro: real)
 var i: entero
 suma: entero
 Inicio
 i:=1
 suma:=0
 MIENTRAS i<= 5 HACER 
 suma:= suma + vec_edad[i]
 i:= i + 1
 pro := suma / 5 
 fin
Proceso Visualiza_Edad_Pro ( vec_edad: array[1..100] de entero,
 vec_nombre:array[1..100] de entero, pro_edad: real) 
 var i: entero
 Inicio
 i:=1
 MIENTRAS i<= 5 HACER 
 SI vec_edad[i] < pro_edad ENTONCES 
 Mostrar(“Nombre de alumnos de edad menor que el promedio”, vec_nombre[i])
 i:= i + 1
 
 fin
1
2
3
4
5
Ramón
Karina
 
Marcela
Federico
Hernán
1
2
3
4
5
25
20
 
18
22
26
22.5
18
22.5
Marcela
25
20
Karina
22
Federico
26
Desplazamiento de los elementos del ARRAY o (vectores) de izquierda a derecha. (Corrimiento a derecha)
1
2
3
4
5
25
20
 
18
22
26
Acciones a seguir para hacer el corrimiento
Primer paso guardar el ultimo elemento del vector o array en una variable auxiliar aux := vec[N] en este caso VEC[5].
Y luego mover cada elemento del vector hacia la derecha.
Veamos gráficamente el (Corrimiento a derecha)
1
2
3
4
5
25
20
 
18
22
26
Aux:=
26
22
1
2
3
4
5
25
20
 
18
22
22
20
1
2
3
4
5
25
20
 
18
20
22
25
1
2
3
4
5
25
25
 
18
20
22
18
1
2
3
4
5
18
25
 
18
20
22
Aux:=
26
26
Algoritmo
Proceso CorrimientoDerecha ( var vec: array[1..100] de entero)
 var i: entero
 aux: entero
 Inicio
 i:=100
 aux:= vec[100]
 MIENTRAS i > 1 HACER 
 vec[i] := vec[i-1]
 i:= i – 1
 vec[1]:= axu
 fin
1
2
3
4
5
21
45
 
14
56
98
1
2
3
4
5
30
39
 
18
42
88
Union de los elementos de dos ARRAY o (vectores) ordenados 
1
2
3
4
5
 
6
7
8
9
10
 
Comparar cual de los dos es menor e insertar en el vector C , ES decir A[i] < B[j] entonces C[k] toma el valor de A[i], incrementar el índice (i) e índice (k).
Caso contrario C[k] toma el valor de B[j] e incrementar índice (J) e índice (k)
A
C
B
14
14
18
18
21
21
30
30
39
39
42
42
45
45
56
56
88
88
98
Proceso UnionABC ( A: array[1..100] de entero, B: array[1..100] de entero,
 var C: array[1..200] de entero) 
 var i: entero
 j: entero
 k: entero
 Inicio
 i:=1
 MIENTRAS i <= 100 and j <= 100 HACER 
 SI A[i] < B[j] ENTONCES 
 C[k]:= A[i]
 i:= i + 1
 SINO
 C[k]:= B[j]
 j:= j + 1
 k:= k +1
 
 Si i < = 100 ENTONCES // no termino el array A
 MIENTRAS i <= 100 HACER 
 C[k]:= A[i]
 i:= i + 1
 k:= K + 1
 SINO // no termino el array B
 MIENTRAS j <= 100 HACER 
 C[k]:= B[j]
 j:= j + 1
 k: = k + 1
 fin
Algoritmo de Unión de dos vectores y genera un tercer vector ordenado
125
88
 
32
36
105
1
2
3
4
5
5
2
 
8
255
96
Array de Dos dimensiones o Matrices
25
20
 
18
22
26
1
2
3
Filas
Columnas
Declaración
VAR mat_entero : array [1..3,1..5] de entero 
Asignación
 
 mat_entero[1,1]:= 32
 mat_entero[2,5]:= 96 
Proceso de Carga por fila una Matriz
Proceso CargaMatFila ( var mat : array[1..3,1..5] de entero)
 var i, j : entero
 Inicio
 i:= 1 // fila
 j:= 1 // columna
 
 MIENTRAS i <= 3 HACER // fila
 j := 1
 MIENTRAS j<= 5 HACER // columna
 Mostrar( “Ingrese un numero entero en la matriz”)
 Leer ( mat[i,j] ) 
 j:= j + 1
 
	 i : = i + 1
 Fin
 
125
88
 
32
36
105
5
2
 
8
255
96
25
20
 
18
22
26
Proceso de Suma los elemento de la fila y lo guarda en un vector
Es decir el elemento de la primer posición del vector tiene la suma de todos los elementos de la fila. Vec[i] : = Mat[i , j ]
Proceso CargaMatFila ( Mat : array[1..3,1..5] de entero, var Vec array[1..3] 
 de entero)
 var i, j : entero
 Inicio
 i:= 1 // fila
 j:= 1 // columna
 
 PARA i := 1 hasta 3 HACER // fila
 
 PARA j := 1 hasta 5 HACER // columna
 Vec[i] := Vec [ i ] + Mat [ i , j ]
 
 
 
 Fin
 
125
88
 
32
36
105
5
2
 
8
255
96
25
20
 
18
22
26
1
2
3
8
18
 
32
157
245
281
353
458
15
270
366
43
63
85
111
image1.png
image2.jpeg

Continuar navegando