Results 1 to 14 of 14
Like Tree3Likes
  • 3 Post By Norm

Thread: Missed school, need help getting started

  1. #1
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Missed school, need help getting started

    Hey guys I've missed class the last two weeks and missed the lesson on this, so i am lost on how to get started on this recursion problem.

    Heres the problem: "In the language of an alien race, all words take the form of Blurbs. A Blurb is a Whoozit followed by one or more Whatzits. A Whoozit is the character x followed by zero or more y's. A Whatzit is a q followed be either a z or a d, followed by a Whoozit. Design and implement a recursive program that generates random Blurbs in this alien language."

    Heres what i have so far
    Java Code:
    //CLASS WHOOZIT
    import java.util.Random;
    public class Whoozit
    {
        private String second;
        private int num;
        private Random rand;
        private String Whoozit;
        public Whoozit()
        {
            rand = new Random();
            Whoozit = "x";
            second = "y";
            num = rand.nextInt(100);
            makeWhoozit(Whoozit, second, num);
        }
        private void makeWhoozit(String x, String y, int times)
        {
            for(int counter = 0; counter < times; counter++)
            {
                Whoozit += second;
            }
        }
        public String toString()
        {
            return Whoozit;
        }
    }
    //CLASS WHATZIT
    import java.util.Random;
    public class Whatzit
    {
        private int choice;
        private Random rand;
        private Whoozit whoozit;
        private String whatzit;
        public Whatzit()
        {
            rand = new Random();
            whoozit = new Whoozit();
            whatzit = "q";
            choice = rand.nextInt(2);
            makeWhatzit(choice, whoozit);
        }
        private void makeWhatzit(int num, Whoozit append)
        {
            if (num == 0)
            {
                whatzit += "d";
            }
            else
            {
                whatzit += "z";
            }
            whatzit += append;
        }
        public String toString()
        {
            return whatzit;
        }
    }
    //CLASS BLURB
    import java.util.Random;
    public class Blurb
    {
        private int num;
        private Whoozit who;
        private Whatzit what;
        private Random rand;
        private String blurb;
        public Blurb()
        {
            who = new Whoozit();
            what = new Whatzit();
            rand = new Random();
            num = rand.nextInt(100);
            makeBlurb(who, what, num);
        }
        private void makeBlurb(Whoozit whos,  Whatzit whats, int iterations)
        {
            blurb = whos.toString();
            for(int counter = 0; counter < iterations; counter++)
            {
                blurb += whats.toString();
                whats = new Whatzit();
            }
        }
        public String toString()
        {
            return blurb;
        }
    }
    How would i make this recursive?
    Last edited by jcarosella10; 03-09-2012 at 07:00 PM.

  2. #2
    Fubarable's Avatar
    Fubarable is offline Moderator
    Join Date
    Jun 2008
    Posts
    19,316
    Blog Entries
    1
    Rep Power
    25

    Default Re: Missed school, need help getting started

    Quote Originally Posted by jcarosella10 View Post
    Hey guys I've been on vacation the last two weeks ...
    This is not really our concern.


    ...and am lost on how to get started on this recursion problem.
    ....
    How would i make this recursive?
    What in particular are you confused on? What have you tried? What errors are you seeing?

  3. #3
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    oh, its just that i have no clue where the recursive part should be. I've been reading through my code and cannot find where to put in a recursive statement

  4. #4
    Norm's Avatar
    Norm is online now Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    16,589
    Rep Power
    23

    Default Re: Missed school, need help getting started

    One thing that would be helpful would be to make a list of what each term in the language means or how it is defined.
    When I was learning programming languages, several of them were defined in a format called BNF.
    A formal listing of the language's rules could make it easier to see the format and patterns.

  5. #5
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    ok thanks, ill try that now

  6. #6
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    So Blurb = Whoozit + n Whatzits
    Whatzit = q + z *or* d + Whoozit
    Whoozit = x + n ys
    So the recursion needs to be in both the Blurb and the Whoozit classes?

  7. #7
    Norm's Avatar
    Norm is online now Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    16,589
    Rep Power
    23

    Default Re: Missed school, need help getting started

    Looks like the random bit is the "or more" part of the language.
    Can you write a method that generates a Blurb without any "or more" additions?

  8. #8
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    I'll try, its just confusing because i wasnt given a limit on how many trailing appendages there could be.

  9. #9
    Norm's Avatar
    Norm is online now Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    16,589
    Rep Power
    23

    Default Re: Missed school, need help getting started

    There's an older guy at my sailing club like that. He just rambles on and on and on and on...

  10. #10
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    haha very funny. heres my new code, but when it prints the blurbs it outputs the memory address. Any clues to why?
    Java Code:
    //DRIVER
    public class driver
    {
        public static void main(String[] args)
        {
            System.out.println("Here are some random blurbs:");
            System.out.println(Blurb.generateRandom());
            System.out.println(Blurb.generateRandom());
            System.out.println(Blurb.generateRandom());
            System.out.println(Blurb.generateRandom());
            System.out.println(Blurb.generateRandom());
            System.out.println(Blurb.generateRandom());
            System.out.println(Blurb.generateRandom());
        }
    }
    //BLURB CLASS
    public class Blurb 
    {
        private Whoozit whoozit;
        private OnePlusWhatzit whatzits;
        public Blurb (Whoozit whoozit, OnePlusWhatzit whatzits) 
        {
            this.whoozit = whoozit;
            this.whatzits = whatzits;
        }
        public static Blurb generateRandom() 
        {
            return new Blurb(Whoozit.generateRandom(), OnePlusWhatzit.generateRandom());
        }
        public String toString() 
        {
            return whoozit.toString() + whatzits.toString();
        }
    }
    //ABSTRACT CLASS ONEPLUSWHATZIT
    public abstract class OnePlusWhatzit 
    {
        static java.util.Random generate = new java.util.Random();
        public static OnePlusWhatzit generateRandom () 
        {
            boolean doMore = generate.nextBoolean();
            if (doMore) 
                return TwoPlusWhatzit.generateRandomTwo(); 
            else 
                return OneWhatzit.generateRandomOne();
        }
    }
    //CLASSTWOWHATZIT
    class TwoPlusWhatzit extends OnePlusWhatzit 
    {
        private Whatzit whatzit;
        private OnePlusWhatzit whatzits; 
        public TwoPlusWhatzit (Whatzit whatzit, OnePlusWhatzit whatzits) {
            this.whatzit = whatzit;
            this.whatzits = whatzits;
        }
        public static TwoPlusWhatzit generateRandomTwo () 
        { 
            return new TwoPlusWhatzit(Whatzit.generateRandom(), OnePlusWhatzit.generateRandom());
        }
        public String toString () 
        {
            return whatzit.toString() + whatzits.toString(); 
        }
    }
    //CLASS ONEWHATZIT
    
    class OneWhatzit extends OnePlusWhatzit 
    {
        private Whatzit whatzit;
        public OneWhatzit (Whatzit whatzit) 
        {
            this.whatzit = whatzit;
        }
        public static OneWhatzit generateRandomOne () 
        { 
            return new OneWhatzit(Whatzit.generateRandom());
        }
        public String toString () 
        { 
            return whatzit.toString();
        }
    }
    //CLASSWHOOZIT
    public class Whoozit 
    {
        private int numberOfYs;
        private static java.util.Random generate = new java.util.Random();
        public Whoozit(int numberOfYs) 
        { 
            this.numberOfYs = numberOfYs; 
        }
        public static Whoozit generateRandom() 
        {
            return new Whoozit(Math.abs(generate.nextInt()));
        }
        public String toString() 
        {
            return "xy..." + numberOfYs + "...";
        }
    }
    Output:

    Here are some random blurbs:
    xy...381535951...Whatzit@2961116fWhatzit@23bfa3a2
    xy...1929679965...Whatzit@7a8ff303
    xy...1452746471...Whatzit@9b88d2Whatzit@6333934dWh atzit@4f0bd71c
    xy...560559566...Whatzit@125797cfWhatzit@34afa071
    xy...825184086...Whatzit@764e75bcWhatzit@1913c652W hatzit@61413e5a
    xy...516538825...Whatzit@264b898
    xy...1415322755...Whatzit@22930462
    Last edited by jcarosella10; 03-09-2012 at 09:26 PM.

  11. #11
    Norm's Avatar
    Norm is online now Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    16,589
    Rep Power
    23

    Default Re: Missed school, need help getting started

    Post the output if you have questions about it.

  12. #12
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    just edited it into the last one

  13. #13
    Norm's Avatar
    Norm is online now Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    16,589
    Rep Power
    23

    Default Re: Missed school, need help getting started

    Whatzit@22930462
    That is from the default toString() method for the Whatzit method. Add a toString() method that returns what you want to see.

  14. #14
    jcarosella10 is offline Member
    Join Date
    Mar 2012
    Location
    Vestal, NY
    Posts
    36
    Rep Power
    0

    Default Re: Missed school, need help getting started

    That worked, thank you

Similar Threads

  1. One that Oracle missed
    By DarrylBurke in forum Forum Lobby
    Replies: 0
    Last Post: 12-07-2011, 07:00 PM
  2. Something to get me started?
    By Spidermine in forum New To Java
    Replies: 3
    Last Post: 10-18-2011, 03:27 AM
  3. Get me started?
    By neworlbush25 in forum New To Java
    Replies: 4
    Last Post: 03-26-2009, 05:16 PM
  4. Getting started
    By hornsby in forum NetBeans
    Replies: 1
    Last Post: 03-12-2009, 07:47 AM
  5. Have I missed Something ???
    By Exponential_P in forum New To Java
    Replies: 12
    Last Post: 01-05-2009, 04:27 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •