Me han planteado un ejercicio que aunque no sea muy complicado sirve para entender que en programación todo se puede hacer de múltiples maneras y que el único límite es la imaginación.
El enunciado del problema dice algo de este estilo: "Haga un histograma que guarde la frecuencia de las letras de abecedario incluyendo mayúsculas y minúsculas en un arreglo y que imprima la frecuencia de la letra, todo ello sin usar if ni case."
Un histograma no es más que un recuento de elementos de cada tipo que tengamos, que normalmente se representa en gráficas como la siguiente:
Sin if.... sin switch/case... imposible? no.. complicado? tampoco, solo es saber ver el problema desde otro ángulo. Aquí os dejo el código, creo que vale más la pena el código que toda explicación que pudiese hacer.
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
char letras[256] = {"Hoy puede ser un gran dia, tomatelo así."};
char histograma[256] = {0};
int i,j;
for( i = 0 ; i < strlen(letras) ; ++i )
{
histograma[letras[i]]++;
}
for( i = 0 ; i < 256 ; ++i )
{
std::cout << (char) i << ": ";
for(j = 0 ; j < histograma[i]; ++j)
{
std::cout << "*";
}
std::cout << std::endl;
}
system("pause");
return 0;
}
Muy bueno tu tutorial, necesito algo parecido, un arreglo que se llene aleatoriamente y luego imprima el histograma de acuerdo a los valores almacenados, ademas despues arreglarolo en forma de menor a mayor.
ResponderEliminarEspero puedas ayudarme, abajo el enunciado.
Existen diez alumnos:
1. Luis
2. Berta
3. Maria
4. Daniela
5. Josue
6. Fiorella
7. Marcos
8. Isabella
9. Pedro
10. Carlos
Quienes recibirán 20 cables de longitudes distintas que van desde 1cm a 35 cm de manera al azar, no recibirán cables de longitudes iguales. Representar cada cable con * por cada centímetro y al final de cada cable su longitud representada en unidades. Ej:
************ 12
Imprimir de manera automática todos los pasos de ordenamiento. Debe poder verse cada paso del ordenamiento en pantalla y diga en cuantos pasos se ha realizado una vez terminado el proceso de impresión de ordenamiento. Ej.
Cables de Isabella
=============
********* 9
****** 6
*** 3
************ 12
******* 7
********** 10
**** 4
*************** 15
******** 8
*********** 11
************** 14
* 1
************* 13
***** 5
**************** 16
******************** 20
******************* 19
************************* 25
*************************** 27
*********************************** 35
N pasos después
Cables de Isabella
=============
* 1
*** 3
**** 4
***** 5
****** 6
******* 7
******** 8
********* 9
********** 10
*********** 11
************ 12
************* 13
************** 14
*************** 15
**************** 16
******************* 19
******************** 20
************************* 25
*************************** 27
*********************************** 35
Cantidad de Pasos: N
Se debe poder elegir que se haga el ordenamiento de manera automática de los 10 alumnos o poder ver los cables del alumno y luego decidir si queremos ordenarlos o no.
Yo te ayudo... pero no te haré la tarea.
EliminarLas tareas que te encomiendan son para que practiques y aprendas, si te lo hago yo no ganarás nada.
Intentalo hacer tu y si ves que te quedas encallado en algún punto pon el código y te echaré un cable en base a tu código.
Nos vemos