ARRAYS 1
Me parece mucho mejor hacerlo en 6 entregas. Además, quedará como una serie muy atractiva para MonterrosoTIC: cada entrada tendrá suficiente contenido para que el alumnado pueda trabajar varios días, pero sin resultar interminable.
Yo las organizaría así:
- Los arrays: dominar lo imprescindible (recorrer, buscar, sumar, máximo, mínimo, invertir…)
- Modificar arrays (insertar, eliminar, desplazar, ordenar…)
- Estructuras (
struct) y arrays de estructuras - Funciones y paso de parámetros. Dividir un programa grande
- Algoritmos típicos de Ingeniería (búsquedas, ratios, inserciones ordenadas, eliminaciones…)
- Simulacro completo del examen de Teleco de la UMA, resuelto paso a paso.
Creo que puede convertirse en una de las mejores series del blog.
De Bachillerato a Ingeniería (I)
Domina los arrays en C++ desde cero
La base para aprobar Programación I en la Universidad
“No tengas miedo a los arrays. Todos los programas grandes empiezan recorriendo una simple lista.”
Cuando un estudiante llega a primero de Ingeniería suele encontrarse con un problema inesperado. No son los punteros. Tampoco las clases ni la programación orientada a objetos. El primer gran muro suele llamarse arrays.
Muchos alumnos llegan desde Bachillerato sabiendo hacer pequeños programas: leer números, utilizar un if, repetir instrucciones con un for… Sin embargo, cuando les piden gestionar una colección de datos, aparecen las dudas. ¿Cómo se recorren? ¿Cómo se busca un elemento? ¿Cómo se elimina? ¿Cómo se inserta?
Precisamente eso es lo que ocurre en los primeros exámenes universitarios. Un buen ejemplo es el examen de Programación I del Grado en Ingeniería de Telecomunicación de la Universidad de Málaga, donde toda la práctica gira alrededor de un array que almacena los vagones de un tren.
La buena noticia es que casi todo ese examen se basa en unas pocas técnicas muy sencillas. Si las dominas, el resto consiste únicamente en combinarlas.
En esta serie vamos a aprenderlas desde cero.
Antes de empezar
Todos los ejercicios utilizarán únicamente lo que normalmente se aprende en Bachillerato:
- variables
- operadores
iffor- arrays
- funciones sencillas
No utilizaremos vectores (vector), listas (list) ni ninguna estructura avanzada de la biblioteca estándar. El objetivo es aprender cómo funcionan realmente los arrays.
¿Qué es un array?
Un array es un conjunto de variables del mismo tipo almacenadas una detrás de otra en memoria.
En lugar de escribir:
int nota1;
int nota2;
int nota3;
int nota4;
int nota5;
podemos escribir simplemente:
int notas[5];
Ahora tenemos cinco posiciones numeradas desde 0 hasta 4.
| Posición | Valor |
|---|---|
| 0 | 7 |
| 1 | 4 |
| 2 | 10 |
| 3 | 8 |
| 4 | 5 |
Para acceder a una posición utilizamos los corchetes.
cout << notas[2];
Mostrará:
10
El error más frecuente
Muchos estudiantes piensan que un array de cinco elementos tiene posiciones del 1 al 5.
No.
Siempre empiezan en 0.
notas[0]
notas[1]
notas[2]
notas[3]
notas[4]
Intentar acceder a
notas[5]
es un error muy serio.
Recorrer un array
La operación más importante de todas.
Si sabemos recorrer un array podremos resolver casi cualquier ejercicio.
for(int i=0;i<5;i++)
{
cout<<notas[i]<<endl;
}
Salida:
7
4
10
8
5
Observa que el contador i coincide exactamente con la posición del array.
Ejercicio 1
Crear un programa que lea cinco números y los muestre después por pantalla.
Ejemplo
Entrada
8
3
9
2
1
Salida
8
3
9
2
1
Solución
#include <iostream>
using namespace std;
int main()
{
int numeros[5];
for(int i=0;i<5;i++)
cin>>numeros[i];
for(int i=0;i<5;i++)
cout<<numeros[i]<<endl;
return 0;
}
Ejercicio 2
Calcular la suma
Leer diez números y calcular su suma.
Ejemplo
2 4 6 8 10 1 3 5 7 9
Resultado
55
Pista
Necesitamos una variable acumuladora.
suma=suma+numeros[i];
Solución
#include <iostream>
using namespace std;
int main()
{
int numeros[10];
int suma=0;
for(int i=0;i<10;i++)
cin>>numeros[i];
for(int i=0;i<10;i++)
suma=suma+numeros[i];
cout<<"La suma es "<<suma;
return 0;
}
Ejercicio 3
Calcular la media
Modificar el ejercicio anterior para calcular la media.
Resultado esperado
La media es 5.5
Ejercicio 4
Buscar el mayor
Leer diez números y mostrar cuál es el mayor.
Ejemplo
4 8 3 9 1 2 5 6 7 0
Resultado
El mayor es 9
La idea
Al principio suponemos que el mayor es el primero.
mayor=numeros[0];
Después recorremos el resto del array.
if(numeros[i]>mayor)
mayor=numeros[i];
Ejercicio 5
Buscar el menor
Igual que el anterior.
Ejercicio 6
Contar números pares
Entrada
5 8 2 7 10 9 6 3 4 1
Salida
Hay 5 numeros pares.
Ejercicio 7
Buscar un número
Leer diez números y después pedir otro número.
Indicar si existe o no.
Ejemplo
Introduce el numero a buscar: 12
No encontrado
Ejercicio 8
Mostrar la posición
Si existe, indicar también la posición.
Introduce el numero: 9
Encontrado en la posicion 3
Reto final
Escribe un programa que lea las notas de 30 alumnos y muestre:
- Nota máxima.
- Nota mínima.
- Nota media.
- Número de aprobados.
- Número de suspensos.
- Cuántos sobresalientes hay.
- La posición del primer 10.
- La posición del primer suspenso.
💡 Consejo de ingeniero: no intentes hacerlo todo de una vez. Primero consigue leer correctamente el array. Después calcula la media. Luego añade el máximo. Más tarde el mínimo. Los programas grandes se construyen igual que un edificio: ladrillo a ladrillo.
En la próxima entrega…
En la universidad no basta con recorrer un array. También tendrás que modificarlo: insertar elementos, eliminar otros y desplazar posiciones para mantener el orden. Esas operaciones aparecen constantemente en los exámenes de Ingeniería y serán el siguiente paso de nuestra serie.
Etiqueta:arrays, c++, ies monterroso, PROGRAMACIÓN, TELECO, tic
