Arreglos
Andrs Fuenzalida
Estructura de Datos
Instituto IACC
27 de noviembre de 2017
Desarrollo
Se tiene un arreglo que contiene solo 20 nmeros pares entre el 1 y 100. Realice un ejemplo
en pseudocdigo para sumar todos sus valores, imprimir la posicin y el valor del menor,
la posicin y el valor del mayor y el promedio de todos los nmeros. Luego llvelo a cdigo
PHP. Imprima las pantallas de las salidas.
Pseudocdigo:
Proceso Tarea_2
// arreglo que contiene solo 20 nmeros 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 continuacin se muestra un arreglo que contiene solo 20 nmeros 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 posicin 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 posicin y valor del nmero mayor es: '
Mostrar "Posicion [" pos_mayor "]: " vmayor;
// imprimir la posicin 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 posicin y valor del nmero menor es: '
Mostrar "Posicion [" pos_menor "]: " vmen;
FinProceso
PHP:
<?php
// arreglo que contiene solo 20 nmeros pares entre el 1 y 100
$arreglo = array();
$arreglo[1] = 2;
$arreglo[2] = 4;
$arreglo[3] = 6;
$arreglo[4] = 8;
$arreglo[5] = 10;
$arreglo[6] = 12;
$arreglo[7] = 14;
$arreglo[8] = 16;
$arreglo[9] = 18;
$arreglo[10] = 20;
$arreglo[11] = 22;
$arreglo[12] = 24;
$arreglo[13] = 26;
$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 continuacin se muestra un arreglo que contiene solo 20 nmeros 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 posicin 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 posicin y valor del nmero mayor es: ',PHP_EOL;
echo 'Posicion [',$pos_mayor,']: ',$vmayor,PHP_EOL;
// imprimir la posicin 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 posicin y valor del nmero 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
caractersticas del arreglo de la pregunta 1 y del arreglo asociativo de esta segunda pregunta,
enumerando las diferencias que distinga en cada uno
Pseudocdigo:
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 continuacin 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<-
calificaciones['Pedro']+calificaciones['Juan']+calificaciones['Diego']+calificaciones['Hugo']+calif
icaciones['Paco']+calificaciones['Luis']+calificaciones['Andres']+calificaciones['Manuel']+calific
aciones['Carolina']+calificaciones['Francisca'];
Mostrar "";
Mostrar "La sumatoria de las calificaciones, es: " suma2;
//Promedio
promedio2<-suma2/longi2
Mostrar "";
Mostrar "El promedio de las calificaciones, es: " promedio2;
Mostrar "";
//Valor mayor
vmayor2<-0
Si calificaciones['Pedro'] > vmayor2 Entonces
vmayor2 <- calificaciones['Pedro']
indice_mayor<-'Pedro' //variable que guarda el indice correspondiente al
valor mayor
FinSi
Si calificaciones['Juan'] > vmayor2 Entonces
vmayor2 <- calificaciones['Juan']
indice_mayor<-'Juan' //variable que guarda el indice correspondiente al valor
mayor
FinSi
Si calificaciones['Diego'] > vmayor2 Entonces
vmayor2 <- calificaciones['Diego']
indice_mayor<-'Diego' //variable que guarda el indice correspondiente al
valor mayor
FinSi
Si calificaciones['Hugo'] > vmayor2 Entonces
vmayor2 <- calificaciones['Hugo']
indice_mayor<-'Hugo'//variable que guarda el indice correspondiente al valor
mayor
FinSi
Si calificaciones['Paco'] > vmayor2 Entonces
vmayor2 <- calificaciones['Paco']
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 guarda el indice correspondiente al
valor mayor
FinSi
Si calificaciones['Manuel'] > vmayor2 Entonces
vmayor2 <- calificaciones['Manuel']
indice_mayor<-'Manuel' //variable que guarda el indice correspondiente al
valor mayor
FinSi
Si calificaciones['Carolina'] > vmayor2 Entonces
vmayor2 <- calificaciones['Carolina']
indice_mayor<-'Carolina' //variable que guarda el indice correspondiente al
valor mayor
FinSi
Si calificaciones['Francisca'] > vmayor2 Entonces
vmayor2 <- calificaciones['Francisca']
indice_mayor<-'Francisca' //variable que guarda el indice correspondiente al
valor mayor
FinSi
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 Comn y un Arreglo Asociativo
Arreglo 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
Arreglo 2:
Pedro Juan Diego Hugo Paco Luis Andres Manuel Carolina Francisca
5 4 3 6 5 7 6 6 7 2
Cuadro Comparativo:
Arreglo Comn Arreglo Asociativo (clave-dato)
Para ubicar un dato, es necesario conocer la Para ubicar un dato, es necesario conocer la
posicin en la que fue almacenado. clave con la que fue almacenado.
Puede ser recorrido fcilmente, en forma No puede ser recorrido en forma
automtica. automtica.
Facilidad para realizar operaciones entre los Dificultad para realizar operaciones entre
valores contenidos en el arreglo. los valores contenidos en el arreglo.
En pseudocdigo, el arreglo no acepta una En pseudocdigo, el arreglo si acepta una
cantidad de elementos, mayor a la cantidad de elementos, mayor a la
dimensin declarada. dimensin declarada.
Bibliografa
https://www.youtube.com/watch?v=ywVUXaQ1N8s&t=748s
IACC 2017, Contenido semana 2, Estructura de Datos