Arreglos Andrés Fuenzalida Estructura de Datos Instituto IACC 27 de noviembre de 2017
Desarrollo
Se tiene un arreglo que contiene solo 20 números pares entre el 1 y 100. Realice un ejemplo en pseudocódigo para sumar todos sus valores, imprimir la posición y el valor del menor, la posición y el valor del mayor y el promedio de todos los números. Luego llévelo a código PHP. Imprima las pantallas de las salidas.
Pseudocódigo:
Proceso Tarea_2 // arreglo que contiene solo 20 números pares entre el 1 y 100 Dimension arreglo[20]; arreglo[0] <-2 arreglo[1] <-4 arreglo[2] <-6 arreglo[3] <-8 arreglo[4] <-10 arreglo[5] <-12 arreglo[6] <-14 arreglo[7] <-16 arreglo[8] <-18 arreglo[9] <-20 arreglo[10] <-22 arreglo[11] <-24 arreglo[12] <-26 arreglo[13] <-28 arreglo[14] <-30 arreglo[15] <-32 arreglo[16] <-34 arreglo[17] <-36 arreglo[18] <-38 arreglo[19] <-40 longi<-20 contador<- longi-1 Mostrar "A continuación se muestra un arreglo que contiene solo 20 números pares entre el 1 y 100: "; Mostrar ""; para i <-0 hasta longi-1 Hacer Mostrar "Posicion [" i "]: " arreglo[i];
FinPara //se realizará la sumatoria de todos los valores del arreglo suma<- 0 Para i <-0 hasta longi-1 Hacer suma<- suma + arreglo(i) FinPara promedio<- suma/longi
Escribir ("********************************************************"); Escribir ("Se procede a realizar una sumatoria de todos los valores de este arreglo, arrojando como resultado el valor de: "), suma; Escribir ("********************************************************"); Escribir "EL promedio de los valores del arreglo, es: " promedio; // imprimir la posición y el valor del mayor vmayor <- 0 Para i<-0 Hasta longi-1 Hacer Si arreglo[i] > vmayor Entonces vmayor <- arreglo[i] pos_mayor<-i //variable que guarda la posicion correspondiente al valor mayor FinSi FinPara Escribir ("********************************************************"); Mostrar 'La posición y valor del número mayor es: ' Mostrar "Posicion [" pos_mayor "]: " vmayor; // imprimir la posición y el valor del menor vmen <- 100 //Se debe colocar el valor maximo indicado para el arreglo, para asi buscar el valor menor. Para i<-0 Hasta longi-1 Hacer Si arreglo[i] < vmen Entonces vmen <- arreglo[i] pos_menor<-i //variable que guarda la posicion correspondiente al valor menor FinSi FinPara Escribir ("********************************************************"); Mostrar 'La posición y valor del número menor es: '
Mostrar "Posicion [" pos_menor "]: " vmen; FinProceso
PHP:
$arreglo[14] = 28; $arreglo[15] = 30; $arreglo[16] = 32; $arreglo[17] = 34; $arreglo[18] = 36; $arreglo[19] = 38; $arreglo[20] = 40; $longi = 20; $contador = $longi-1; echo 'A continuación se muestra un arreglo que contiene solo 20 números pares entre el 1 y 100: ',PHP_EOL; echo '',PHP_EOL; for ($i=0;$i<=$longi-1;$i++) { echo 'Posicion [',$i,']: ',$arreglo[$i+1],PHP_EOL; } // se realizará la sumatoria de todos los valores del arreglo $suma = 0; for ($i=0;$i<=$longi-1;$i++) { $suma = $suma+$arreglo[$i+1]; } $promedio = $suma/$longi; echo ('********************************************************'),PHP_EOL; echo ('Se procede a realizar una sumatoria de todos los valores de este arreglo, arrojando como resultado el valor de: '),$suma,PHP_EOL; echo ('********************************************************'),PHP_EOL; echo 'EL promedio de los valores del arreglo, es: ',$promedio,PHP_EOL; // imprimir la posición y el valor del mayor $vmayor = 0; for ($i=0;$i<=$longi-1;$i++) { if ($arreglo[$i+1]>$vmayor) { $vmayor = $arreglo[$i+1]; // variable que guarda la posicion correspondiente al valor mayor $pos_mayor = $i; } } echo ('********************************************************'),PHP_EOL; echo 'La posición y valor del número mayor es: ',PHP_EOL; echo 'Posicion [',$pos_mayor,']: ',$vmayor,PHP_EOL; // imprimir la posición y el valor del menor // Se debe colocar el valor maximo indicado para el arreglo, para asi buscar el valor menor.
$vmen = 100; for ($i=0;$i<=$longi-1;$i++) { if ($arreglo[$i+1]<$vmen) { $vmen = $arreglo[$i+1]; // variable que guarda la posicion correspondiente al valor menor $pos_menor = $i; } } echo ('********************************************************'),PHP_EOL; echo 'La posición y valor del número menor es: ',PHP_EOL; echo 'Posicion [',$pos_menor,']: ',$vmen,PHP_EOL; ?>
Se tiene un arreglo asociativo (utilizando clave-dato) que contiene solo 10 nombres de estudiantes y sus calificaciones. Luego, realice un cuadro comparativo donde indique las características del arreglo de la pregunta 1 y del arreglo asociativo de esta segunda pregunta, enumerando las diferencias que distinga en cada uno
Pseudocódigo:
Algoritmo tarea Escribir ("********************************************************"); Mostrar "" Mostrar "Ejercicio 2" Mostrar ""; // arreglo que contiene solo 10 nombres de estudiantes y sus calificaciones Dimension calificaciones[10]; calificaciones['Pedro'] <-5.5 calificaciones['Juan'] <-4.3 calificaciones['Diego'] <-3.0 calificaciones['Hugo'] <-6.1 calificaciones['Paco'] <-5.6 calificaciones['Luis'] <-7.0 calificaciones['Andres'] <-6.4 calificaciones['Manuel'] <-6.9 calificaciones['Carolina'] <-4.1 calificaciones['Francisca'] <-4.0 longi2<-10 contador2<- longi2-1 Mostrar "A continuación se muestra un arreglo que contiene las calificaciones de 10 estudiantes: "; Mostrar ""; Mostrar "Nombre: Pedro, Calificacion: " calificaciones['Pedro']; Mostrar "Nombre: Juan, Calificacion: " calificaciones['Juan']; Mostrar "Nombre: Diego, Calificacion: " calificaciones['Diego']; Mostrar "Nombre: Hugo, Calificacion: " calificaciones['Hugo']; Mostrar "Nombre: Paco, Calificacion: " calificaciones['Paco']; Mostrar "Nombre: Luis, Calificacion: " calificaciones['Luis']; Mostrar "Nombre: Andres, Calificacion: " calificaciones['Andres']; Mostrar "Nombre: Manuel, Calificacion: " calificaciones['Manuel'];
Mostrar "Nombre: Carolina, Calificacion: " calificaciones['Carolina']; Mostrar "Nombre: Francisca, Calificacion: " calificaciones['Francisca']; //Suma suma2 vmayor2 Entonces vmayor2 <- calificaciones['Pedro'] indice_mayor<-'Pedro' //variable que guarda el valor mayor FinSi Si calificaciones['Juan'] > vmayor2 Entonces vmayor2 <- calificaciones['Juan'] indice_mayor<-'Juan' //variable que guarda el indice mayor FinSi Si calificaciones['Diego'] > vmayor2 Entonces vmayor2 <- calificaciones['Diego'] indice_mayor<-'Diego' //variable que guarda el valor mayor FinSi Si calificaciones['Hugo'] > vmayor2 Entonces vmayor2 <- calificaciones['Hugo'] indice_mayor<-'Hugo' //variable que guarda el indice mayor FinSi Si calificaciones['Paco'] > vmayor2 Entonces vmayor2 <- calificaciones['Paco']
indice correspondiente al
correspondiente al valor
indice correspondiente al
correspondiente al valor
indice_mayor<-'Paco' //variable que guarda el indice correspondiente al valor mayor FinSi Si calificaciones['Luis'] > vmayor2 Entonces vmayor2 <- calificaciones['Luis'] indice_mayor<-'Luis' //variable que guarda el indice correspondiente al valor mayor FinSi Si calificaciones['Andres'] > vmayor2 Entonces vmayor2 <- calificaciones['Andres'] indice_mayor<-'Andres' //variable que valor mayor FinSi Si calificaciones['Manuel'] > vmayor2 Entonces vmayor2 <- calificaciones['Manuel'] indice_mayor<-'Manuel' //variable que valor mayor FinSi Si calificaciones['Carolina'] > vmayor2 Entonces vmayor2 <- calificaciones['Carolina'] indice_mayor<-'Carolina' //variable que valor mayor FinSi Si calificaciones['Francisca'] > vmayor2 Entonces vmayor2 <- calificaciones['Francisca'] indice_mayor<-'Francisca' //variable que valor mayor FinSi
guarda el indice correspondiente al
guarda el indice correspondiente al
guarda el indice correspondiente al
guarda el indice correspondiente al
Mostrar 'El alumno con la calificacion mayor, es: ' indice_mayor; Mostrar "Su nota, es: " vmayor2; Mostrar "";
//Valor menor vmen2<-7 Si calificaciones['Pedro'] < vmen2 Entonces vmen2 <- calificaciones['Pedro'] indice_menor<-'Pedro' //variable que guarda el indice correspondiente al valor menor FinSi
Si calificaciones['Juan'] < vmen2 Entonces vmen2 <- calificaciones['Juan'] indice_menor<-'Juan' FinSi Si calificaciones['Diego'] < vmen2 Entonces vmen2 <- calificaciones['Diego'] indice_menor<-'Diego' FinSi Si calificaciones['Hugo'] < vmen2 Entonces vmen2 <- calificaciones['Hugo'] indice_menor<-'Hugo' FinSi Si calificaciones['Paco'] < vmen2 Entonces vmen2 <- calificaciones['Paco'] indice_menor<-'Paco' FinSi Si calificaciones['Luis'] < vmen2 Entonces vmen2 <- calificaciones['Luis'] indice_menor<-'Luis' FinSi Si calificaciones['Andres'] < vmen2 Entonces vmen2 <- calificaciones['Andres'] indice_menor<-'Andres' FinSi Si calificaciones['Manuel'] < vmen2 Entonces vmen2 <- calificaciones['Manuel'] indice_menor<-'Manuel' FinSi Si calificaciones['Carolina'] < vmen2 Entonces vmen2 <- calificaciones['Carolina'] indice_menor<-'Carolina' FinSi Si calificaciones['Francisca'] < vmen2 Entonces vmen2 <- calificaciones['Francisca'] indice_menor<-'Francisca' FinSi Mostrar 'El alumno con la calificacion menor, es: ' indice_menor; Mostrar "Su nota, es: " vmen2; Mostrar ""; FinAlgoritmo
Cuadro Comparativo entre un Arreglo Común y un Arreglo Asociativo
Arreglo 1: 1 2 3 2 4 6 Arreglo 2: Pedro Juan 5 4
4 8
5 10
Diego 3
6 12
7 14
Hugo 6
8 16
9 10 11 12 13 14 15 16 17 18 19 20 18 20 22 24 26 28 30 32 34 36 38 40
Paco 5
Luis 7
Andres 6
Manuel Carolina 6 7
Francisca 2
Cuadro Comparativo: Arreglo Común Arreglo Asociativo (clave-dato) Para ubicar un dato, es necesario conocer la Para ubicar un dato, es necesario conocer la posición en la que fue almacenado. clave con la que fue almacenado. Puede ser recorrido fácilmente, en forma No puede ser recorrido en forma automática. automática. Facilidad para realizar operaciones entre los Dificultad para realizar operaciones entre valores contenidos en el arreglo. los valores contenidos en el arreglo. En pseudocódigo, el arreglo no acepta una En pseudocódigo, el arreglo si acepta una cantidad de elementos, mayor a la cantidad de elementos, mayor a la dimensión declarada. dimensión declarada.
Bibliografía
https://www.youtube.com/watch?v=ywVUXaQ1N8s&t=748s
IACC 2017, Contenido semana 2, Estructura de Datos