You are on page 1of 15

Tarea de la semana N°2

Carlos Castro Molina

Estructura De Datos

Instituto IACC

16.04.2018
INSTRUCCIONES

1. 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.

PHP
<?php

// arreglo que contiene solo 20 números pares entre el 1 y 100


$arreglo = array ();
$arreglo [1] = 6;
$arreglo [2] = 10;
$arreglo [3] = 18;
$arreglo [4] = 36;
$arreglo [5] = 48;
$arreglo [6] = 50;
$arreglo [7] = 64;
$arreglo [8] = 66;
$arreglo [9] = 72;
$arreglo [10] = 80;
$arreglo [11] = 82;
$arreglo [12] = 84;
$arreglo [13] = 86;
$arreglo [14] = 88;
$arreglo [15] = 90;
$arreglo [16] = 92;
$arreglo [17] = 94;
$arreglo [18] = 96;
$arreglo [19] = 98;
$arreglo [20] = 100;
$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;
?>

Pseudocodigo

Proceso Tarea_2
// arreglo que contiene solo 20 números pares entre el 1 y 100
Dimensión arreglo[20];
arreglo[1] <-6
arreglo[2] <-10
arreglo[3] <-18
arreglo[4] <-36
arreglo[5] <-48
arreglo[6] <-50
arreglo[7] <-64
arreglo[8] <-66
arreglo[9] <-72
arreglo[10] <-80
arreglo[11] <-82
arreglo[12] <-84
arreglo[13] <-86
arreglo[14] <-88
arreglo[15] <-90
arreglo[16] <-92
arreglo[17] <-94
arreglo[18] <-96
arreglo[19] <-98
arreglo[20] <-100

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 <-1 hasta longi-1 Hacer
Mostrar "Posición [" i "]: " arreglo[i];

FinPara
//se realizará la sumatoria de todos los valores del arreglo
suma<- 0

Para i <-1 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<-1 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<-1 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

2. 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.

Algoritmo tarea
Escribir ("********************************************************");
Mostrar ""
Mostrar "Ejercicio 2"
Mostrar "";

// arreglo que contiene solo 10 nombres de estudiantes y sus calificaciones


Dimensión calificaciones [10];
calificaciones['Rene'] <-6.2
calificaciones['Ana'] <-5.1
calificaciones['José'] <-4.0
calificaciones['Jeremías'] <-5.3
calificaciones['Jesús'] <-6.0
calificaciones['María'] <-5.5
calificaciones['Juan'] <-5.0
calificaciones['Pedro'] <-7.0
calificaciones['Gaspar'] <-6.9
calificaciones['Ramon'] <-5.2

longi2<-10
contador2<- longi2-1

Mostrar "A continuación se muestra un arreglo que contiene las calificaciones de 10


estudiantes: ";
Mostrar "";

Mostrar "Nombre: Rene, Calificación: " calificaciones['Rene'];


Mostrar "Nombre: Ana, Calificación: " calificaciones['Ana'];
Mostrar "Nombre: José, Calificación: " calificaciones['José'];
Mostrar "Nombre: Jeremías, Calificación: " calificaciones['Jeremías'];
Mostrar "Nombre: Jesús, Calificación: " calificaciones['Jesús'];
Mostrar "Nombre: María, Calificación: " calificaciones['María'];
Mostrar "Nombre: Juan, Calificación: " calificaciones['Juan'];
Mostrar "Nombre: Pedro, Calificación: " calificaciones['Pedro'];
Mostrar "Nombre: Gaspar, Calificación: " calificaciones['Gaspar'];
Mostrar "Nombre: Ramon, Calificación: " calificaciones['Ramon'];

//Suma
suma2<-
calificaciones['Rene']+calificaciones['Ana']+calificaciones['Jose']+calificaciones['Jeremias']
+calificaciones['Jesus']+calificaciones['Maria']+calificaciones['Juan']+calificaciones['Pedro']
+calificaciones['Gaspar']+calificaciones['Ramon'];
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['Rene'] > vmayor2 Entonces
vmayor2 <- calificaciones['Rene']
indice_mayor<-'Rene' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['Ana'] > vmayor2 Entonces
vmayor2 <- calificaciones['Ana']
indice_mayor<-'Ana' //variable que guarda el índice correspondiente al valor
mayor
FinSi
Si calificaciones['José'] > vmayor2 Entonces
vmayor2 <- calificaciones['José']
indice_mayor<-'José' //variable que guarda el índice correspondiente al valor
mayor
FinSi
Si calificaciones['Jeremías'] > vmayor2 Entonces
vmayor2 <- calificaciones['Jeremías']
indice_mayor<-'Jeremías' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['Jesús'] > vmayor2 Entonces
vmayor2 <- calificaciones['Jesús']
indice_mayor<-'Jesús' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['María'] > vmayor2 Entonces
vmayor2 <- calificaciones['María']
indice_mayor<-'María' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['Juan'] > vmayor2 Entonces
vmayor2 <- calificaciones['Juan']
indice_mayor<-'Juan' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['Pedro'] > vmayor2 Entonces
vmayor2 <- calificaciones['Pedro']
indice_mayor<-'Pedro' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['Gaspar'] > vmayor2 Entonces
vmayor2 <- calificaciones['Gaspar']
indice_mayor<-'Gaspar' //variable que guarda el índice correspondiente
al valor mayor
FinSi
Si calificaciones['Ramon'] > vmayor2 Entonces
vmayor2 <- calificaciones['Ramon']
indice_mayor<-'Ramon' //variable que guarda el índice 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['Rene'] < vmen2 Entonces
vmen2 <- calificaciones['Rene']
indice_menor<-'Rene' //variable que guarda el índice correspondiente
al valor menor
FinSi
Si calificaciones['Ana'] < vmen2 Entonces
vmen2 <- calificaciones['Ana']
indice_menor<-'Ana'
FinSi
Si calificaciones['José'] < vmen2 Entonces
vmen2 <- calificaciones['José']
indice_menor<-'José'
FinSi
Si calificaciones['Jeremías'] < vmen2 Entonces
vmen2 <- calificaciones['Jeremías']
indice_menor<-'Jeremías'
FinSi
Si calificaciones['Jesús'] < vmen2 Entonces
vmen2 <- calificaciones['Jesús']
indice_menor<-'Jesús'
FinSi
Si calificaciones['María'] < vmen2 Entonces
vmen2 <- calificaciones['María']
indice_menor<-'María'
FinSi
Si calificaciones['Juan'] < vmen2 Entonces
vmen2 <- calificaciones['Juan']
indice_menor<-'Juan'
FinSi
Si calificaciones['Pedro'] < vmen2 Entonces
vmen2 <- calificaciones['Pedro']
indice_menor<-'Pedro'
FinSi
Si calificaciones['Gaspar'] < vmen2 Entonces
vmen2 <- calificaciones['Gaspar']
indice_menor<-'Gaspar'
FinSi
Si calificaciones['Ramon'] < vmen2 Entonces
vmen2 <- calificaciones['Ramon']
indice_menor<-'Ramon'
FinSi

Mostrar 'El alumno con la calificacion menor, es: ' indice_menor;


Mostrar "Su nota, es: " vmen2;
Mostrar "";
FinAlgoritmo

Comparación de un Arreglo Común y un Arreglo Asociativo

Arreglo1:
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

Arreglo2:
Rene Ana José Jeremías Jesús María Juan Pedro Gaspar Ramon
6 5 4 5 6 5 5 7 6 5
Cuadro Comparativo:

Arreglo Común Arreglo Asociativo (clave-dato)

Para ubicar un dato, es necesario Para ubicar un dato, es necesario


conocer la posición en la que fue conocer la clave con la que fue
almacenado. almacenado.
Puede ser recorrido fácilmente, en No puede ser recorrido en forma
forma automática. automática.
Facilidad para realizar Dificultad para realizar operaciones
operaciones entre los valores entre los valores contenidos en el
contenidos en el arreglo. arreglo.
En pseudocódigo, el arreglo no En pseudocódigo, el arreglo si acepta
acepta una cantidad de elementos, una cantidad de elementos, mayor a la
mayor a la dimensión declarada. dimensión declarada.
Bibliografía

 Contenido de la semana 2
 Caselli, H. (2009). Manual de algoritmos y estructura de datos. 7.ª edición.