When the program starts up it should draw a vertical line


Question One: Mirror Box Drawings

For this problem, you're going to write a program that makes mirror box drawings. Before we get into the specifics of what we'd like you to do, I thought I'd share some screenshots of the completed pro - gram!

942_mirror box.png

The program that you will write lets the user draw pictures on the canvas. Whenever the user clicks or drags the mouse, the program draws filled black circles at the mouse location, giving the appearance of drawing with a thick black marker. What makes this program interesting is that whenever the user draws a figure on one half of the window, the program will automatically draw the mirror of that pic - ture on the other half. This lets you draw aesthetically pleasing pictures by just giving one half of the picture and letting the program figure out the other half for you.

More specifically, the program should work as follows:

  • When the program starts up, it should draw a vertical line from the top of the screen to the bot- tom that cleanly divides the window in half. This makes it easier for the user to see the mirror effect.
  • When the user presses the mouse anywhere in the window or drags the mouse over the window, you should draw two black circles of radius RADIUS centered at two points in the window: the location where the user clicked or dragged, and that same point mirrored across the center line.

The user should be able to click and drag the mouse anywhere in the window, meaning that they can draw in the left half of the window and have it mirrored to the right or in the right half of the window and have it mirrored to the left.

import  acm.program.*; import  acm.graphics.*; import  java.awt.event.*;

public class  MirrorBox  extends   GraphicsProgram  {

/* The radius of  each  circle  that should be  drawn.  */

private static  final double  RADIUS  = 5.0;

Question 2: RNA Hairpins                                                                      

RNA strands consist of strings of nucleotides, molecules which encode genetic information. Computa- tional biologists typically represent each RNA strand as a string made from four different letters - A, C, G, and U - each of which represents one of the four possible nucleotides.

Each of the the four nucleotides has an affinity for a specific other nucleotide. Specifically:

A has an affinity for U (and vice-versa)                  C has an affinity for G (and vice-versa)

This sometimes causes RNA strands to fold over and bind with themselves. Consider this RNA strand:

195_RNA.png

If you perfectly fold this RNA strand in half, you get the following:

542_RNA1.png

Notice that each pair of nucleotides - except for the A and the G on the far right - are attracted to the corresponding nucleotide on the other side of the RNA strand:

611_RNA2.png

Because of the natural affinities of the nucleotides in the RNA strand, the RNA strand will be held in this shape. This is an example of an RNA hairpin, a structure that plays an important biological role.

For the purposes of this problem, we'll say that an RNA strand forms a hairpin if

  • it has even length (so that it can be cleanly folded in half);
  • it has length at least four (so that there's something to hold the ends together); and
  • all of its nucleotides, except for the middle two, have an affinity for its corresponding nucleo - tide when folded over. (The middle two nucleotides in a hairpin might coincidentally have an affinity for one another, but it's not required. For example, CAUG forms a hairpin.)

Your job is to write a method

private boolean  isRNAHairpin(String rna)

that accepts as input an RNA string and reports whether the described RNA strand would form an RNA hairpin. You can assume that the input string consists purely of the characters A, C, G, and U (all in up - per case, for simplicity), but you should make no other assumptions about the string. Here are some sample inputs and sample outputs:

isRNAHairpin("AU")  should return  false isRNAHairpin("GACC") should return  true isRNAHairpin("GAUC") should return  true

isRNAHairpin("UUUAAA")  should return  true

isRNAHairpin("UUUCAAA")  should return  false

Feel free to tear out this page as a reference, and write your answer on the next page.

private boolean  isRNAHairpin(String rna)

Solution Preview :

Prepared by a verified Expert
JAVA Programming: When the program starts up it should draw a vertical line
Reference No:- TGS0924908

Now Priced at $30 (50% Discount)

Recommended (96%)

Rated (4.8/5)