User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the Java section within the Software Development category of DaniWeb, a massive community of 456,533 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,906 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Java advertiser: Lunarpages Java Web Hosting
Views: 2559 | Replies: 5
Reply
Join Date: Aug 2004
Posts: 11
Reputation: srthomso is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 0
srthomso srthomso is offline Offline
Newbie Poster

Help How would i recode as a function?

  #1  
Aug 11th, 2004
I have some code which examines an array to see if it contains a particular value:

boolean found = false;

int []a = new int[100];

populate(a); // populates the array a with a set of random values

int valueToFind = 123; // or whatever we want to find

while((n < 100) && (! found)){
if(a[n] == valueToFind){
found = true;
}
else {
n = n + 1;
}
}

However i'm struggling with re-coding this as a function with parameters and/or a return value to be able to work with any size array.

Then how could I create a second function to give me a value stored in a particular location on the array?

Why is programmin so difficult to learn?! lol

Hope some1 can help, thanks

Steve
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Aug 2004
Location: Hanover
Posts: 152
Reputation: cosi is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 1
cosi's Avatar
cosi cosi is offline Offline
Junior Poster

Re: How would i recode as a function?

  #2  
Aug 11th, 2004
Hey srthomso,

Programming isn't difficult, you just have to be exposed to code. I'd recommend going to the library or bookstore and obtaining a good book.

That said, let me explain how you can create a function for the job you require. Every array has a length parameter. So a.length in this example is 100. I would recommend using a for loop to iterate this array. You can simply return from the function when you have found the item. I hope you'll find this code neater. Don't fret; after you see a couple code patterns like this you'll get a hang of programming.

[/quote]
boolean contains(int[] a, int numToFind) {
    for (int i = 0; i < a.length; i++) {
        if (a[i] == numToFind)
                return true;
    }
     return false;
}



Ed
Reply With Quote  
Join Date: Aug 2004
Location: Hanover
Posts: 152
Reputation: cosi is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 1
cosi's Avatar
cosi cosi is offline Offline
Junior Poster

Re: How would i recode as a function?

  #3  
Aug 11th, 2004
Oh I left this out.

If you are calling this function from within main(...),
you'd best label the function static.

static boolean contains(int[] a, int numToFind) {
    ....


call the function like this:
contains(a, 123);

You can even do this:
if (contains(a, 123))
System.out.println("Blah!");
else
System.out.println("");
Reply With Quote  
Join Date: Aug 2004
Posts: 11
Reputation: srthomso is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 0
srthomso srthomso is offline Offline
Newbie Poster

Re: How would i recode as a function?

  #4  
Aug 11th, 2004
I'm not sure I quite understand what you have done here:-S
Reply With Quote  
Join Date: Aug 2004
Location: Hanover
Posts: 152
Reputation: cosi is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 1
cosi's Avatar
cosi cosi is offline Offline
Junior Poster

Re: How would i recode as a function?

  #5  
Aug 12th, 2004
hey srthomso,

I would like to help more, but I need to understand how much you know and go from there. Have you learned about the for construct?

for (int i = 0; i < N; i++) {
    //... loop contents here
    // first loop iteration i = 0
    // second loop iteration i = 1
    //  ...
    // ends with i = N-1
    // for a total of N times.
}

a for loop like this will execute for N times. This is equivalent to
int i = 0;
while (i < N) {
    //.... loop contents here
    i++;
}

Did you understand what I did in the function?

public static boolean function(int a) // <-- function that takes an integer and returns a boolean (true / false)

So put a loop in the funtion to iterate through all of array A. This function will print out all the values in array A.

public static boolean function(int[] A) {

   for (int i=0; i<A.length; i++) {
       // loop will execute A.length times
       System.out.println(A[i]);
   }
}


Now you want to search for an object in the array right? So a bit more logic to add... we'll add another function parameter that contains the value of the number to find in the array. We'll call this function parameter valueToFind.

public static boolean contents(int[] A, int valueToFind) {

   for (int i=0; i<A.length; i++) {
       // loop will execute A.length times
       if (A[i] == valueToFind) {
            // Hark! Mission accomplished we have found our value.
            // therefore, we return true to tell the function that called
            // this one that YES we have found a value
            // The function immediately returns to the place you called it.
            return true;
       }
   }

   // We ONLY get to this spot in the code if we have gone through all
   // the elements of array A, and none of them were the value
   // we wanted.  Mission failed.  Tell caller that we did not find value.
   return false;
}


Let me know what bit of knowledge you're missing. My advice to you is to simply try playing around with the code. Step through the code in a debugger if you have to. And I strongly encourage you to buy a good book and read up on the language.


Ed
Reply With Quote  
Join Date: Aug 2004
Posts: 11
Reputation: srthomso is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 0
srthomso srthomso is offline Offline
Newbie Poster

Re: How would i recode as a function?

  #6  
Aug 12th, 2004
Cheers m8 u're a diamond! that certainly has helped! i'm thinkin of doin a java course, so any little helpful hinters are great!
Thanks again.
Steve
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb Java Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the Java Forum

All times are GMT -4. The time now is 4:38 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC