[C con Clase] Ayuda algoritmo en C++

Davidson, Steven srd4121 en njit.edu
Vie Abr 19 07:14:48 CEST 2013


Hola Martín,

2013/4/18 Martín Melo Godínez <nitram-210397 en hotmail.com>

> Hola, de nuevo yo molestando solo quisiera preguntarles algo, miren mi
> problema dice asi:
> Se disponen de “n” temperaturas de determinado lugar(México), y se desea
> calcular su media y determinar entre todas ellas cuales son superiores o
> iguales a esa.
> entiendo bien el programa, lo que me confunde esque me da variable e
> cantidades de temperatura, y pues por ejemplo si me da 6 tempraturas tengo
> que ingresar las temperaturas de las 6 y sacar su media, hasta ahí todo
> bien. Lo que no se como hacer es con decisión mostrar las temperaturas
> mayores o iguales a esa se que sería if(temp>=media) pero no se como
> declarar o imprimir las tempraturas “/ Si alguien me pudiera explicar se lo
> agradecería mucho
>

Como necesitas conocer todas las temperaturas, necesitas guardarlas.
Sugiero usar un array (o arreglo). Podrías crear un array con una cantidad
lo suficientemente grande para albergar la cantidad actual de temperaturas
que se usará. Por ejemplo,

float aTemps[1000];
int nCantActual = 0;

Tenemos una cantidad máxima de mil temperaturas, pero nuestros algoritmos
usarán 'nCantActual' para la cantidad actual.

Otra solución es usando un array dinámico. Esto implica algo más de gestión
por nuestra parte, ya que necesitamos que el array se adapte a nuevas
cantidades de elementos a guardar; es decir, necesitamos redimensionar el
array. Por ejemplo,

float *pTemps;
int nCantActual = 0;

Para la redimensión, podríamos hacerla para agregar un elemento más al
array:

1. nCantActual <- nCantActual + 1
2. Creamos un nuevo array dinámico:   ptr <-- new float[ nCantActual ]
3. Copiamos los elementos del original al nuevo:   copiar( ptr, pTemps,
nCantActual )
4. Liberamos la memoria del array original: pTemps
5. pTemps <-- ptr    (Asignamos el puntero del nuevo array a 'pTemps')

Sugiero que leas el capítulo 13 de nuestro curso de C++ acerca de los
operadores de punteros, y particularmente el apartado acerca de 'new' y
'delete'. Puedes dirigirte a:
http://c.conclase.net/curso/index.php?cap=013b#OP2_NewDelete


Espero que esto te oriente.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130419/3d68ce55/attachment.html>


Más información sobre la lista de distribución Cconclase