desperately need help in code in c++ and fitting functions in a frame - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

desperately need help in code in c++ and fitting functions in a frame

crazzy_devilcrazzy_devil Posts: 2Member
i am soryy my english is very bad but ill try my best to explain.i need help with my c++ assignemnt urgently.

i want to create a frame and fit in this histograph(ATTACHED PICTURE BELOW) which i made with the help of the container, where the x-axsis is the number from like eksempet 0-10 and the y-axis is telling me how many numbers there are from 0-10. But i cant seem to code it (given below). its in the number its gettin from a container where the container read it from a indata.txt file. the diagram created is just trying to make the x and y axis and put it in a frame. SO my question really is how to create and fit the function in the frame of my histogram(ATTACHED PICTURE BELOW) and how to code it. plzzz can someone help me!! :'(

ps: plz scroll down and check teh histograph picture i have attached






#include
#include
#include
#include
#include
using namespace std;
void funk();
int getsum(vector vec);
int getsize(vector vec);
int getmax(vector vec);
int getmin(vector vec);
void getinterval(vector vec);

void funk() {
vector vec;
//int y;
ifstream in("Indata.txt");

int x, y, y2, y3, y4;
while (in>>x) {
vec.push_back(x);
}

y=vec.size();

y=getsum(vec);
y2=getsize(vec);
y3=getmax(vec);
y4=getmin(vec);
cout<<"
sum = "<<y<<"
size = "<<y2<<"
Max = "<<y3<<"
min = "<<y4;
getinterval(vec);
}

int getsum(vector<int> vec) {
int sum=0;
for (unsigned int i=0; i vec) {

int sz;
sz=vec.size();

return sz;
}

int getmax(vector vec) {
int max=0;

for (unsigned int i=0; i vec) {

int min=100000;

for (unsigned int i=0; ivec[i])
min=vec[i];
}

return min;
}

void getinterval(vector vec) {
int count1=0, count2=0, count3=0, count4=0, count5=0, count6=0, count7=0,
count8=0, count9=0;

for (unsigned int i=0; i0 && vec[i]<=10) {
count1++;
} else if (vec[i]>10 && vec[i]<=20) {
count2++;
} else if (vec[i]>20 && vec[i]<=30) {
count3++;
} else if (vec[i]>30 && vec[i]<=40) {
count4++;
} else if (vec[i]>40 && vec[i]<=50) {
count5++;
} else if (vec[i]>60 && vec[i]<=70) {
count6++;
} else if (vec[i]>70 && vec[i]<=80) {
count7++;
} else if (vec[i]>80 && vec[i]<=90) {
count8++;
} else if (vec[i]>90 && vec[i]<=100) {
count9++;
}
}

int array[10]= { count1, count2, count3, count4, count5, count6, count7,
count8, count9 };
int max=0;
int y=10, t=10, t2=0,t3=10;
cout<<endl<<endl;
for (unsigned int i=0; i<9; i++) {
y-=1;

cout<<y<<endl;
if (max<array[i]) {
max=array[i];
}

}

cout<<endl<<endl;

for (unsigned int i=0; i<9; i++) {

for (; max>0; max--) {
unsigned int i;
for (i = 0; i < 9; i++)

if (array[i] >= max)
cout << "**** ";
else
cout << " ";
cout << endl;

}
}
cout<<endl;
for (unsigned int i=0; i<10; i++) {
cout<<t<<" ";
t+=10;
}
cout<<endl;

for (unsigned int i=0; i<10; i++) {

cout<<t2<<" ";
t2=t3+1;
t3+=10;
}

}

int main() {
vector<int> vec;
funk();

return 0;
}

Comments

  • AsmGuru62AsmGuru62 Posts: 6,519Member
    [color=Blue]First, your array of counts is missing one value - there should be ten values and you have only nine.

    Second, the tasks like that is better done with arrays - instead of these grouped IF() statements you should have built the FOR() statement with clever limits:[/color]
    [code]
    int lowLimit = 0;
    int counts [10] = {0};

    for (int i=0; i<10; i++, lowLimit += 10)
    {
    if ((value >= lowLimit) && (value < (lowLimit+10))) ++(counts [i]);
    }
    [/code]
    [color=Blue]Third, about printing. You need a function, which will print one line from the chart. Line from the chart is based on a count indicated on the left side of chart (it begins with 60). So, the count is a parameter to the function as well as the array of counts. The function itself is a loop where you check every count against that value of a parameter:[/color]
    [code]
    [color=Green]//
    // pseudo-code
    //[/color]
    void PrintHistogramLine (int value, int count [])
    {

    for (int i=0; i<10; i++)
    {
    if (count [i] < value) <print 5 blanks>;
    else
    }

    }

    ...

    PrintHistogramLine (60, count);
    PrintHistogramLine (55, count);
    PrintHistogramLine (50, count);
    PrintHistogramLine (45, count);
    PrintHistogramLine (40, count);
    [color=Green]//
    // Or better make a loop here ^^^
    //[/color]
    [/code]
  • crazzy_devilcrazzy_devil Posts: 2Member
    could someone juss code the c++ for me?
Sign In or Register to comment.