Está en la página 1de 29

0 Contenido

1 Arreglos Unidimensionales

Justificación

Declaración

Tamaño

Subíndices

2 Arreglos como Parámetros

3 Ámbito de las Variables locales, globales

4 Búsquedas

5 Ordenamiento

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 1
1 Arreglos Unidimensionales

Hasta ahora hemos visto:

Dividir el
problema en
sub problemas
Hacer el Algoritmo
Ejecutar el que invoca y
programa articula las
soluciones de cada
Verificar el sub problema
Programa
Escribir los
algoritmos para la
solución de cada
sub problema
Escribir las funciones en C++
Escribir el Programa (C++)
Compilar el Programa

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 2
1 Arreglos Unidimensionales Justificación

Hasta ahora hemos visto los datos como variables y constantes:


#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
float x1,y1,x2,y2,m,b; Una casilla de memoria por cada variable.

system("PAUSE");
return EXIT_SUCCESS;
}
Hasta ahora cada variable tiene asociado un solo valor.
En los problemas tales como: Haga un programa que lea N números y calcule su promedio. Hemos
utilizado la misma variable para leer el valor ingresado por el usuario, de esta manera la variable solo
tiene el último número leído.

¿Será posible almacenar un conjunto de valores y manejarlos como si fuera una sola variable?

¿Para el problema de leer los n números será posible almacenarlos, utilizarlos en el cálculo ?

Si es posible para esto sirven los son los arreglos

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 3
1 Arreglos Unidimensionales Definición

Un arreglo es un conjunto contiguo de espacios de memoria que


tiene el mismo nombre y almacena el mismo tipo de datos.
Por ejemplo para el problema lea 5 números y calcule su promedio
podríamos utilizar el arreglo Numeros.
Numeros[0] -37
Numeros[1] 45
Numeros[2] 62
Numeros[3] 31
Numeros[4] -125
Numeros es un arreglo de enteros de 5 posiciones que contiene los
números que queremos almacenar. (Numeros es una variable)

A través de Numeros puedo referenciar el valor que requiero por


medio de su posición. Por ejemplo en la cuarta posición tiene
almacenado el valor 31. Se referencia como Numeros[3]

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 4
1 Arreglos Unidimensionales Definición

Numeros[0] -37
Numeros[1] 45
Numeros[2] 62
Numeros[3] 31
Numeros[4] -125
Entonces, ¿Cómo declaro Numeros y uso Numeros en un
programa?
int Numeros[5]; // Se declara la variable Numeros de tipo int y entre corchetes
cuadrados la cantidad de elementos que va a contener
Para asignar los valores a las posiciones del arreglo
Numeros[0] = 37;
Numeros[1] = 45;
Numeros[2] = 62;
Numeros[3] = 31;
Numeros[4] = -125;

Numeros es el nombre del arreglo. Numeros [i] para 0<=i< 5 corresponde a las
posiciones o casillas del arreglo. Numeros[i] es la Notación de subíndice del arreglo
Los arreglos en C++ inician siempre con el subíndice 0
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 5
1 Arreglos Unidimensionales Definición

En este ejemplo se declara Numeros como un arreglo de 20 posiciones. Se inicializa


y después se presentan los valores que contiene Numeros en cada posición

#include <iostream>
using namespace std;
int main()
{
int Numeros[20] ,i; /* Declaración de Numeros, Arreglo de enteros de 20 posiciones,
i variable entera que va a servir de subindice para recorrer el arreglo */

for (i=0;i<20;i++) // inicializa el arreglo


Numeros[i] = i*8;

for (i=0;i<20;i++) // Presenta los valores almacenados en el arreglo.


cout<<i<<' '<<Numeros[i]<<endl;

return 0;
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 6
1 Arreglos Unidimensionales Definición

En este ejemplo se declara Numeros como un arreglo de 10 posiciones. Se le piden


los datos al usuario y después se presentan los valores que contiene Numeros en
cada posición
#include <iostream>
using namespace std;
int main()
{
int Numeros[10] ,i; // Declaración del Numeros Arreglo de enteros de 10 posiciones
(Tamaño 10)

for (i=0;i<10;i++) // inicializa el arreglo


{
cout<<" Número["<<i<<"]=" ;
cin>>Numeros[i];
}
for (i=0;i<10;i++) // Presenta los valores almacenados en el arreglo.
cout<<i<<' '<<Numeros[i]<<endl;

return 0;
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 7
1 Arreglos Unidimensionales Definición
Se debe tener en cuenta que no se puede leer todo el arreglo (cin>>arr) o escribir
todo el arreglo (cout<<arr)

Normalmente se procesa se lee y se escribe elemento por elemento del arreglo para
todos los tipos de datos (int, float, double, etc); excepto para los arreglos de
caracteres. Estos en C se utilizaban para manipular cadenas de caracteres (strings) y
en C++ por compatibilidad existe esta posibilidad
char cad[10] ;

cin>>cad; es posible hacer esta lectura porque los arreglos de caracteres lo permiten

En este caso si se digitan 10 caracteres el 10 será ignorado ya que se debe marcar el


último elemento del arreglo con el caracter de final de cadena ‘\0’

Si se digita ANITALAVALATINA

A N I T A L A V A ‘\0’

Si se digita CASA
C A S A ‘\0’ ? ? ? ? ?
Cuando se manipulan arreglos de caracteres se debe tener en cuenta que las cadenas siempre
terminan con ‘\0’
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 8
0 Contenido

1 Arreglos Unidimensionales

Justificación

Declaración

Tamaño

Subíndices

2 Arreglos como Parámetros

3 Ámbito de las Variables locales, globales

4 Búsquedas

5 Ordenamiento

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 9
1 Arreglos como parámetros a funciones
¿ Se pueden pasar arreglos como parámetros a las funciones?
#include <iostream>
using namespace std;
void capturar(int[],int);
void presentar(int[],int);

int main()
{ const int tam = 10;
int Numeros[tam] ,i; // Declaración del Numeros Arreglo de enteros de tam posiciones

capturar(Numeros,tam);
presentar(Numeros,tam);
return 0;
}
void capturar(int parr[],int ptam)
{
int i;
for (i=0;i<ptam;i++) // inicializa el arreglo
{
cout<<" Número["<<i<<"]=" ;
cin>>parr[i];
}
}
void presentar(int parr[],int ptam)
{
int i;
for (i=0;i<ptam;i++) // Presenta los valores almacenados en el arreglo.
cout<<i<<' '<<parr[i]<<endl;
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 10
1 Arreglos como parámetros a funciones
¿ Que tiene de diferente la función capturar en relación con las
que hemos visto hasta ahora?
void capturar(int[],int);

void capturar(int parr[],int ptam)


{
int i;
for (i=0;i<ptam;i++) // inicializa el arreglo
{
cout<<" Número["<<i<<"]=" ;
cin>>parr[i];
}
}

Que no se saca una copia del arreglo al pasarlo como parámetro.

Los arreglos en C++ pasan siempre como parámetros por referencia. Esto es, no se saca una copia de la variable
en la función a la que se llama, sino que se pasa su dirección en memoria (referencia), y tanto la función llamadora
como la llamada están utilizando la misma dirección de memoria para el parámetro parr. Si se modifica parr en la
función el capturar, el cambio se ve reflejado en el main, desde el que se invocó la función.

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 11
0 Contenido

1 Arreglos Unidimensionales

Justificación

Declaración

Tamaño

Subíndices

2 Arreglos como Parámetros

3 Ámbito de las Variables locales, globales

4 Búsquedas

5 Ordenamiento

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 12
3 Ámbito variables globales y locales

Hasta ahora el alcance de todas las variables que hemos utilizado son locales.
¿Por qué?

Porque solo han tenido como alcance las funciones en las que han sido definidas
i local en
int main()
{ const int tam = 10;
el main
int Numeros[tam] ,i; // Declaración del Numeros Arreglo de enteros de 5 posiciones, i variable entera que va a servir
de subindice para recorrer el arreglo

capturar(Numeros,tam);
presentar(Numeros,tam); i local en
return 0;
}
captura
void capturar(int parr[],int ptam)
{
int i;
for (i=0;i<ptam;i++) // inicializa el arreglo
{
cout<<" Número["<<i<<"]=" ;
cin>>parr[i];
} i local en
}
void presentar(int parr[],int ptam) presenta
{
int i;
for (i=0;i<ptam;i++) // Presenta los valores almacenados en el arreglo.
cout<<i<<' '<<parr[i]<<endl;
}
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 13
3 Ámbito variables globales y locales
Que pasaría si no declaro la variable i en la función captura?
El programa no compilaría porque no encuentra la variable
Para resolver este problema debo declarar i en la función, o declararla como global
i local en
int main()
{ const int tam = 10;
el main
int Numeros[tam] ,i; // Decalaración del Numeros Arreglo de enteros de 5 posiciones, i variable entera que va a servir
de subindice para recorrer el arreglo

capturar(Numeros,tam);
presentar(Numeros,tam); i
return 0;
}
eliminada
void capturar(int parr[],int ptam)
{
int i;
for (i=0;i<ptam;i++) // inicializa el arreglo
{
cout<<" Número["<<i<<"]=" ;
cin>>parr[i];
} i local en
}
void presentar(int parr[],int ptam) presenta
{
int i;
for (i=0;i<ptam;i++) // Presenta los valores almacenados en el arreglo.
cout<<i<<' '<<parr[i]<<endl;
}
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 14
3 Ámbito variables globales y locales
Que pasaría si no declaro la variable i en la función captura?
El programa no compilaría porque no encuentra la variable
Para resolver este problema debo declarar i en la función, o declararla como global
#include <iostream>
using namespace std;
void capturar(int[],int);
void presentar(int[],int);
int i; // variable global de alcance en todo este archivo, alcance Global para main, capturar y presentar
int main()
{ const int tam = 10;
int Numeros[tam] ,i; // Declaración del Numeros Arreglo de enteros de 5 posiciones, i oculta la i global para esta
función

capturar(Numeros,tam);
presentar(Numeros,tam);
return 0;
}
void capturar(int parr[],int ptam)
{
for (i=0;i<ptam;i++) // inicializa el arreglo // se utliza i Global
{
cout<<" Número["<<i<<"]=" ;
cin>>parr[i];
}
}
void presentar(int parr[],int ptam)
{
int i;//oculta la i global a esta función
for (i=0;i<ptam;i++) // Presenta los valores almacenados en el arreglo.
cout<<i<<' '<<parr[i]<<endl;
}
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 15
3 Ámbito variables globales y locales
Las variables globales se usan en sistemas grandes y complejos básicamente para:

• Definir variables de configuración y estado del sistema. Por ejemplo en un manejador de base de
datos se usa una serie de variables globales para definir el estado de cierta características de la
base de datos como por ejemplo formato de fecha vigente día mes año ó mes día año ó año
mes, día, número de decimales usados para cálculos, modo multi usuario o dedicado etc.
• Variables que se inicializan y después no cambian su valor y se utilizan en todos los módulos de un
sistema, por ejemplo el nombre de usuario, la carpeta en la que se buscarán los formatos de
reporte, las carpetas sobre las que se generaran los archivos de reporte guardados,.

Entonces debemos ser cuidadosos al definir variables globales, teniendo en cuenta los criterios
anteriormente mencionados

Las variables locales se usan en funciones y existen únicamente mientras la función es ejecutada. Las
variables locales en una función son las variables declaradas entre .los corchetes de inicio y fin de la
misma, pej:
bool funcion1(bool x, int y)
{
float z, k , q; // locales z k q.

}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 16
0 Contenido

1 Arreglos Unidimensionales

Justificación

Declaración

Tamaño

Subíndices

2 Arreglos como Parámetros

3 Ámbito de las Variables locales, globales

4 Búsquedas

5 Ordenamiento

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 17
4 Búsquedas

Es un problema muy común en informática informar si un valor está presente en un


conjunto de datos (buscar y encontrar). Los algoritmos que resuelven este tipo de
problemas se denominan algoritmos de búsqueda
Búsqueda en arreglos

Informar si un elemento está o no presente en el arreglo arr. Si esta presente debe indicar
en que posición en la que se encuentra.

arr[0] arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] arr[7]


15 35 -99 77,5 49,36 7900 -1500 267

int busqueda(float parr[], int tam, float buscado)


{
int i; Si llamamos busqueda con el
for (i =0;i<tam;i++) arreglo arr, tam = 8 y buscado =
if ( parr[i] == buscado) 77,5 la función retornará 3.
return i;
Si la llamamos con arr, tam = 8 y
return -1; buscado = 14 retornará -1
}
indicando que no se encuentra.

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 18
4 Búsquedas

Esta solución recorre todo el arreglo para informar si el elemento se encuentra o no. Si
se tuviera el arreglo ordenado se pudiera optimizar de la siguiente manera.
Búsqueda en arreglos
Informar si un elemento está o no presente en el arreglo arr. Si esta presente debe indicar
en que posición en la que se encuentra.
arr[0] arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] arr[7]
-1500 -99 15 35 49,36 77,5 267 7900
int busquedaO(float parr[], int tam, float buscado)
{
int i;
if (buscado < parr[0] | | buscado > parr[tam-1])
return -1; Si llamamos busqueda con el
arreglo arr, tam = 8 y buscado =
for (i =0 ; i<tam && parr[i]<buscado ; i++) ; 77,5 la función retornará 5.
if (i == tam)
return -1;
if (parr[i]==buscado) Si la llamamos con arr, tam = 8 y
return i; buscado = 18 retornará -1
else indicando que no se encuentra.
return -1;
}
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 19
4 Búsquedas
Esta solución recorre todo el arreglo en el peor de los casos si el elemento buscado está
hacia el final del mismo Podríamos optimizar aún más aprovechándonos del orden del
arreglo. Búsqueda Binaria

arr[0] arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] arr[7]


-1500 -99 15 35 49,36 77,5 267 7900
int busquedaBinaria(float parr[], int tam, float buscado)
{
int low=0;high,mid;
high = tam -1;
while (low < high)
{ mid=( low + high ) / 2;
if (parr[mid] == buscado)
return mid; Si llamamos busqueda con el
else arreglo arr, tam = 8 y buscado =
if (parr[mid] < buscado)
77,5 la función retornará 5.
low = mid +1;
else
high = mid -1; Si la llamamos con arr, tam = 8 y
} buscado = 18 retornará -1
return -1; indicando que no se encuentra.
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 20
0 Contenido

1 Arreglos Unidimensionales

Justificación

Declaración

Tamaño

Subíndices

2 Arreglos como Parámetros

3 Ámbito de las Variables locales, globales

4 Búsquedas

5 Ordenamiento

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 21
5 Ordenamiento
Como vimos en búsquedas tener el arreglo ordenado puede optimizar el tiempo de
solución. Por este motivo es importante resolver el problema de ordenar un arreglo

A continuación se presenta el algoritmo de ordenamiento conocido como burbuja, bubble


sort
void ordenar(float parr[],int tam)
{
int pasadas;i;
float tmp;
for (pasadas = 1 ; pasadas <= tam ; pasadas++)
{
for (i = 0; i <tam-1 ; i++)
{
if ( parr[I] > parr[I+1] )
{
tmp = parr[I];
parr[I] = parr[i+1];
parr[I+1] = tmp;
}
}
}
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 22
5 Ejercicios variables globales y locales

Ejemplo Variables Globales y Locales –


Función que indique si dos arreglos son iguales
Usando parametros Usando Variables Globales
#include <iostream> #include <iostream>
using namespace std; using namespace std;
bool iguales(int[], int[],int); bool iguales();
int main() const int tam = 4;
{ const int tam = 4; int arr1[tam] = {1,2,3,4} , arr2[tam] = {1,2,3,4};
int arr1[tam] = {1,2,3,4} , arr2[tam] = {1,2,3,4}; int main()
if (iguales(arr1,arr2,tam)) {
cout<<“Son Iguales”; if (iguales())
else cout<<“Son Iguales”;
cout<<“No Son Iguales” ; else
return 0; cout<<“No Son Iguales” ;
} return 0;
bool iguales(int parr1[], int parr2[],int ptam) }
{ int i; bool iguales()
for (i=0;i<ptam;i++)/ { int i;
{ for (i=0;i<tam;i++)/
if (parr1[i] != parr2[i]) {
return false; if (arr1[i] != arr2[i])
} return false;
return true; }
} return true;
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 23
5 Ejercicios variables globales y locales

Ejemplo Variables Globales y Locales – Arreglo Numeros Como parametro y Como variable global

Arreglo Números como variable global


Arreglo Números como parámetro #include <iostream>
#include <iostream> using namespace std;
using namespace std; void capturar();
void capturar(int[],int); void presentar(int[],int);
void presentar(int[],int); const int tam = 10;
int main() int Numeros[tam];
{ const int tam = 10; int main()
int Numeros[tam] ,i; // {int i;
capturar(Numeros,tam); capturar();
presentar(Numeros,tam); presentar(Numeros,tam);
return 0; return 0;
} }
void capturar(int parr[],int ptam) void capturar() ¿Qué Pasa si debo
{ int i; { int i; capturar dos arreglos
for (i=1;i<=ptam;i++) // inicializa el arreglo { for (i=1;i<=tam;i++) Globales?
cout<<" Número["<<i<<"]=" ; {
cin>>parr[i]; cout<<" Número["<<i<<"]=" ; ¿Debo crear dos
} cin>>Numeros[i]; funciones, una para cada
} } Arreglo?
void presentar(int parr[],int ptam) }
{ void presentar(int parr[],int ptam)
int i {
for (i=1;i<=ptam;i++) int i;
cout<<i<<' '<<parr[i]<<endl; for (i=1;i<=ptam;i++)
} cout<<i<<' '<<parr[i]<<endl;
}

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 24
5 Ejercicios variables globales y locales
Arreglo Números como parámetro Números1 y Numeros3 como variable global
#include <iostream> #include <iostream>
using namespace std; using namespace std;
void capturar(int[],int); void capturar1();
void presentar(int[],int); void capturar2();
int main() void presentar(int[],int);
{ const int tam = 10; const int tam = 10;
int Numeros[tam] ,i; // int Numeros1[tam];
capturar(Numeros,tam); int Numeros2[tam];
presentar(Numeros,tam); int main()
return 0; {int i;
} capturar1();
void capturar(int parr[],int ptam) capturar2();
{ int i; presentar(Numeros1,tam);
presentar(Numeros2,tam);
for (i=1;i<=ptam;i++) // inicializa el arreglo
{ return 0;
}
cout<<" Número["<<i<<"]=" ;
cin>>parr[i]; void capturar1()
} { int i; void presentar(int parr[],int ptam)
} for (i=1;i<=tam;i++) {
void presentar(int parr[],int ptam) { int i;
{ cout<<" Número["<<i<<"]=" ; for (i=1;i<=ptam;i++)
int i;//oculta la i global a esta funcióncin>>Numeros1[i]; cout<<i<<‘ ‘<<parr[i]<<endl;
for (i=1;i<=ptam;i++) } }
}
cout<<i<<' '<<parr[i]<<endl;
} void capturar2()
{ int i;
for (i=1;i<=tam;i++)
{
cout<<" Número["<<i<<"]=" ;
cin>>Numeros2[i];
}
} Moreno - 315 308 17 17
Pensamiento Algorítmico- Luis Carlos
GESTIÓN DEL CAMBIO TI 25
5 Ejercicios variables globales y locales

El uso de variables globales puede tener los siguientes inconvenientes:


Legibilidad menor. Al leer por primera vez el código de una función y
encontrar una expresión que utiliza múltiples variables, debemos buscar
donde está declarada cada variable y de que tipo es. También podemos
requerir varias funciones con el mismo objetivo pej. captura1 y captura2
(capturan arreglos que son globales)
Puede presentarse una alteración no deseada del contenido de una
variable global dentro de una función, por olvidar definir en la función una
variable local o un parámetro formal con ese nombre. Encontrar este tipo
de errores puede ser muy difícil.
Atenta contra la modularidad (descomposición de la solución en módulos
que solucionan problemas específicos ) y la reutlización (No se requiere
saber como está implementada una función ni como funciona, solo la
invoco con los argumentos adecuados) Cuando uso variables globales
debo saber el nombre que debo usar (el de la función) y verificar que otras
variables me puede cambiar la función para no evitar posibles efectos no
deseados al llamar la función.
Es importante recordar que en C++, todas las funciones están al mismo
nivel de ámbito. Es decir, no se puede definir una función dentro de otra
función.
Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17
GESTIÓN DEL CAMBIO TI 26
5 Arreglos Ejercicios

1. Se tiene un arreglo con el valor de las ventas mensuales del año anterior (12) meses

15000 700000 30000 250000 60000 78900 450000 98000 320000 4890

Hacer un programa en C++ que informe:

a. El mes en el que el volumen de ventas fue el mayor


b. El mes en el que el volumen de ventas fue el menor
c. El promedio de ventas

2. Implemente una función en C++ que informe si dos arreglos de tipo float son iguales:
La función recibe como parámetros los dos arreglos y su tamaño.

3. Implemente una función en C++ que informe si una palabra pasada como parámetro
en un arreglo de caracteres es palíndrome. Un palabra es palindrome si se lee de la
misma manera de izquierda a derecha que de derecha a izquierda
Por ejemplo ANITALAVALATINA es palindrome.
.
4. Haga un programa que dado un arreglo de enteros de tamaño 20 y un numero entero
num, informe cuantas veces aparece num en el arreglo

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 27
5 Arreglos Ejercicios

5. Si se tiene un arreglo con la lectura del peso de 50 estudiantes y se quiere elaborar un


informe por rangos de peso así

Rango 1 La cantidad de estudiantes entre 60 y 70 kilogramos

Rango 2 La cantidad de estudiantes entre 71 y 80 kilogramos

Rango 3 La cantidad de estudiantes entre 81 y 90 kilogramos

Rango 4 La cantidad de estudiantes que pesan más de 90 kilogramos

La información se debe dejar en una arreglo de cuatro posiciones (una para cada
posición) llamado rangos.

6. En un arreglo de enteros se tiene la tabulación de la calificación (1 a 10) dada por 50000


personas a la gestión del alcalde.. Esto es, cada posición del arreglo de tamaño 50000 tiene
un valor entre 1 y 10.

Se necesita saber cuántas personas calificaron con 1, cuantas con 2 y así sucesivamente, la
gestión del alcalde.
.

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 28
5 Arreglos Ejercicios

7. Haga una función que informe cual es la mediana de un conjunto de enteros


almacenados en un arreglo de 20 posiciones. La mediana es el elemento para el cual la
mitad de los elementos es mayor que el él y la otra mitad es menor que él.

8. Haga un programa que presente cuantas veces se repite cada carácter en una frase
almacenada en un arreglo de caracteres.

Pensamiento Algorítmico- Luis Carlos Moreno - 315 308 17 17


GESTIÓN DEL CAMBIO TI 29

También podría gustarte