Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > How to find number of times certain conditions happened in an array?

Reply
Thread Tools

How to find number of times certain conditions happened in an array?

 
 
lightaiyee@gmail.com
Guest
Posts: n/a
 
      11-26-2007
Dear Gurus,

I would like to implement a function that computes the number of times
a certain condition is met in a global array.

For example, I have an global array of size 500.
float array[500];

I have a function that finds the maximum of an array of size 50.
bool findMax50(float input[])

Next, I want to implement a function that can do the following;

Sum( findMax50(array), period)
If period is 20, then this function will start at the last element of
the global array and will return 1 if this element is a maximum among
the 50 elements it covers. Then, it moves on to the (last -1)th
element all the way to (last-20)th element. The Sum() function will
sum up the number of times maximum happened.

My greatest difficulty lies in how one can input a function as a
parameter into another function.

Can some Guru advise?



 
Reply With Quote
 
 
 
 
ayesha.noida@gmail.com
Guest
Posts: n/a
 
      11-26-2007
On Nov 26, 6:18 am, (E-Mail Removed) wrote:
> Dear Gurus,
>
> I would like to implement a function that computes the number of times
> a certain condition is met in a global array.
>
> For example, I have an global array of size 500.
> float array[500];
>
> I have a function that finds the maximum of an array of size 50.
> bool findMax50(float input[])
>
> Next, I want to implement a function that can do the following;
>
> Sum( findMax50(array), period)
> If period is 20, then this function will start at the last element of
> the global array and will return 1 if this element is a maximum among
> the 50 elements it covers. Then, it moves on to the (last -1)th
> element all the way to (last-20)th element. The Sum() function will
> sum up the number of times maximum happened.
>
> My greatest difficulty lies in how one can input a function as a
> parameter into another function.
>
> Can some Guru advise?


hi
 
Reply With Quote
 
 
 
 
Jim Langston
Guest
Posts: n/a
 
      11-26-2007
<(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Dear Gurus,
>
> I would like to implement a function that computes the number of times
> a certain condition is met in a global array.
>
> For example, I have an global array of size 500.
> float array[500];
>
> I have a function that finds the maximum of an array of size 50.
> bool findMax50(float input[])
>
> Next, I want to implement a function that can do the following;
>
> Sum( findMax50(array), period)
> If period is 20, then this function will start at the last element of
> the global array and will return 1 if this element is a maximum among
> the 50 elements it covers. Then, it moves on to the (last -1)th
> element all the way to (last-20)th element. The Sum() function will
> sum up the number of times maximum happened.
>
> My greatest difficulty lies in how one can input a function as a
> parameter into another function.
>
> Can some Guru advise?


What you are trying to do is not clear.

First off, you have findMax50 returning a bool, a true or false. That can't
express the max of an array.

Socond your Sum( findMax50(array), period), what is it supposed to return?

What is it you want at the end? It sounds like you may want to return a
std::vector from findMax50 which will have the largest 50 values from the
array. but what is Sum supposed to do? Is it output only? Is it supposed
to return a value?

I'm fairly sure what you are trying to achieve is doable, but I can't get a
grasp on what you are trying to accomplish.


 
Reply With Quote
 
Daniel T.
Guest
Posts: n/a
 
      11-26-2007
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

> I would like to implement a function that computes the number of times
> a certain condition is met in a global array.
>
> For example, I have an global array of size 500.
> float array[500];
>
> I have a function that finds the maximum of an array of size 50.
> bool findMax50(float input[])
>
> Next, I want to implement a function that can do the following;
>
> Sum( findMax50(array), period)
> If period is 20, then this function will start at the last element of
> the global array and will return 1 if this element is a maximum among
> the 50 elements it covers. Then, it moves on to the (last -1)th
> element all the way to (last-20)th element. The Sum() function will
> sum up the number of times maximum happened.
>
> My greatest difficulty lies in how one can input a function as a
> parameter into another function.
>
> Can some Guru advise?


I would do it with a template:

template < typename Fn >
void Sum( Fn f, int period )
{

}

You could create a function pointer variable, but the above is easier.
 
Reply With Quote
 
terminator
Guest
Posts: n/a
 
      11-26-2007
On Nov 26, 1:18 pm, (E-Mail Removed) wrote:
> Dear Gurus,
>
> I would like to implement a function that computes the number of times
> a certain condition is met in a global array.
>
> For example, I have an global array of size 500.
> float array[500];
>
> I have a function that finds the maximum of an array of size 50.
> bool findMax50(float input[])
>
> Next, I want to implement a function that can do the following;
>
> Sum( findMax50(array), period)
> If period is 20, then this function will start at the last element of
> the global array and will return 1 if this element is a maximum among
> the 50 elements it covers. Then, it moves on to the (last -1)th
> element all the way to (last-20)th element. The Sum() function will
> sum up the number of times maximum happened.
>
> My greatest difficulty lies in how one can input a function as a
> parameter into another function.
>

though as usual I cant make heads or tials of a post the answer to
your qustion:
> Can some Guru advise?


Is:

You can use a function pointer:

typedef ret_type (*funcptr)(param_types);
ret_type foo(param_types);
funcptr fptr=&foo;

alternatively you can use functioniods:

class my_functioniod_base{
public:
virtual ~my_functioniod_base()=0;
ret_type operator()(param_types) const =0;
};

struct Tfoo:
public my_functioniod_base
{
ret_type operator()(param_typs) const{/*define it here.*/};
};

Tfoo foo;

my_functioniod_base & fref=foo;
fref(params);//runs Tfoo:perator().

you can do a little template work too:

template<typename pred>
void run(pred p){
p();
};

void f();

run(&f);

have a look at the standard <algorithm> and <functional> headers too;
interesting tools you can find there.

yours,
FM.


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
Does the menu control output "span" tags under certain conditions Simon ASP .Net 1 06-11-2007 12:48 PM
Does the menu control output "span" tags under certain conditions Simon ASP .Net Web Controls 1 06-11-2007 12:48 PM
button OnClick override ignored but only under certain conditions? PJ6 ASP .Net 8 10-25-2005 12:29 AM
Count how many times find and replaced happened blnukem Perl Misc 9 04-30-2004 06:55 AM



Advertisments