Howdy, Stranger!

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

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

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.