Gracias! sin embargo aún espero la respuesta! (soy nuevo en el foro, hice la publicación lo más basica acorde con el tema y de manera rápida... jijiji)
Saludos Foristas de elhacker.net. El algoritmo debería ser capaz de tomar una serie de datos aleatorios, conseguir el máximo y el mínimo de ellos, sacar la diferencia; y optar por si desea obtener un maximo de bandas (intervalos) entre el maximo y el mínimo de los numeros (para así calcular su espesor) ó bien el espesor de las bandas (para asi calcular su numero), y luego lee los numeros y los clasifica a segunda de a cual banda pertenece. Todo corre bien, hasta que debe clasificar los números, pues no aparecen registrados en las bandas que corresponden. He revisado el algoritmo una y otra vez, pero no doy con el fallo.
Adjunto el Algoritmo a continuación (trabaja con notas de materias ó boletas, como un ejemplo para iniciar la verificación en cada parte del programa y constatar que funciona. El programa muestra los resultados paso a paso con la finalidad de ir siguiendo su comportamiento):
#include <iostream.h> #include <conio.h> #include <math.h> #include <string.h> #include <stdlib.h> int main(void) { //Declaración de variables int i=1,k=1,l=0,j=0; char ans='s'; float notas,delta=0.00; // //Inicio del programa // //>>>>>>>>>>>>> SOLICITUD DE VALORES AL USUARIO <<<<<<<<<<<<<<<<<<<<<<<<< // do { cout<<"Introduzca valor: "<<endl; cin>>notas[k]; cout<<"algún nuevo valor? s/n"<<endl; cin>>ans; if(ans=='s') { k+=1; } } while(ans=='s'); // // //>>>>>>>>>>>>> DESARROLLO DE LAS CLASES PARA LA LISTA DE VALORES <<<<<<<<<<<<<<<<<<<<<<<<< // //determinación del diferencial y número de bandas float max=0,min=50000,dif;//<<<<< DECLARACIÓN DE VARIABLES!!!!!>>>>> do { if(notas>max) { max=notas; } if(notas<min) { min=notas; } i+=1; } while(i<=k); dif=max-min; cout<<"indique ahora como desea calcular las bandas:"<<endl; cout<<"escriba 1 si desea usar el diferencial para obtener el numero de bandas."<<endl; cout<<"escriba 2 si desea calcular la delta desde un número de bandas preferido"<<endl; cin>>l;cout<<endl;
if(l==1)/*<<<< Para tipos caracter largos, como palabras ó lineas de palabras, deben siempre usarse comillas dobles, aún cuando variables.>>>>*/ { {
cout<<"indique su espesor de banda preferido:"<<endl; cin>>delta; j=(dif/delta)+1; cout<<"cantidad de bandas calculadas: "<<j<<endl; } } else if(l==2) { cout<<"indique la cantidad de bandas que desea ahora:"<<endl; cin>>j; delta=dif/j; cout<<delta<<endl; } //desarrollo de los límites de banda y clasificación de los datos. // // /*la computadora procederá a delimitar las bandas ahora.*/ // // float maxbanda,minbanda;////<<<<< DECLARACIÓN DE VARIABLES!!!!!>>>>> /*if(l==1) cout<<"su espesor de banda preferido debe ser ajustado por el numero de bandas."<<endl; {delta=dif/j;cout<<"su espesor de banda actual: "<<delta<<endl;}*/ i=1; do { if(i==1) { minbanda=min-0.1; maxbanda=minbanda+delta; } else { minbanda=maxbanda[i-1]; maxbanda=minbanda+delta; } cout<<"banda "<<i<<" minimo: "<<minbanda<<" maximo: "<<maxbanda<<endl; i+=1; } while(i<=j); i=1; // // /*la computadora procederá a clasificar datos ahora.*/ // // int t=1,s=0;float banda[l][t];//<<<<< DECLARACIÓN DE VARIABLES!!!!!>>>>> i=1; l=1; // do { // for(i=1;i<=k;i++) { if(notas<=maxbanda[l] && notas>minbanda[l]) { banda[l]=notas; // t+=1; } else { banda[l]=0; //t+=1; } } // l+=1; i=1; //t=1; } while(l<=j); // l=1; do { do { cout<<"banda "<<l<<"."<<i<<" valor: "<<banda[l][t]<<endl; i+=1;