Descarga la aplicación para disfrutar aún más
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
Compartir