Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need help with a Java problem: -------------------------------------------------

ID: 3846052 • Letter: N

Question

Need help with a Java problem:

-----------------------------------------------------------------------------------------------------------------------------------------------------

Chord.java:

import java.util.Arrays;

import stdlib.StdAudio;

public class Chord {
private double duration, frequencies[];

public Chord(double duration, double[] frequencies) {
this.duration = duration;
this.frequencies = frequencies;
}
  
public void play() {
playChord(duration, frequencies);
}

private void playChord(double duration, double[] frequencies) {
   final int sliceCount = (int) (StdAudio.SAMPLE_RATE * duration);
   final double[] slices = new double[sliceCount+1];
   for (int i = 0; i <= sliceCount; i++) {
       double chord = 0.0;
       for (double frequency: frequencies) {
           chord += Math.sin(2 * Math.PI * i * frequency / StdAudio.SAMPLE_RATE);
       }
       slices[i] = chord/frequencies.length;
   }
   StdAudio.play(slices);
}

@Override
public String toString() {
return "[" + duration + ": "
+ Arrays.toString(frequencies) + "]";
}

  
}

TestFinalAnswer.java:

package finalanswer;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Random;

import stdlib.StdIn;

import stdlib.StdOut;

public class TestFinalAnswer {

               public static <Item extends Comparable<? super Item>> boolean isSorted(Item[] a) {

                              for (int i = 0; i < a.length-1; i++) {

                                             if (a[i].compareTo(a[i+1]) > 0) return false;

                              }

                              return true;

               }

               public static void main(String[] args) {

                              StdOut.println("*** " + FinalAnswer.yourName() + " ***");

                              StdOut.println();

                              Integer[] array = new Integer[12];

                              Random r = new Random();

                              for (int i = 0; i < array.length; i++) {

                                             array[i] = r.nextInt(1000);

                              }

                              StdOut.println("Array before sorting: " + Arrays.toString(array));

                              FinalAnswer.minpqSort(array);

                              StdOut.println("Array after sorting: " + Arrays.toString(array));

                              StdOut.println("Array is sorted: " + isSorted(array));

                              StdOut.println();

                              Queue<String> queue = new Queue<String>();

                              queue.enqueue("first");

                              queue.enqueue("second");

                              queue.enqueue("third");

                              queue.enqueue("fourth");

                              StdOut.println("Queue before reversing: " + queue);

                              FinalAnswer.reverseQueue(queue);

                              StdOut.println("Queue after reversing: " + queue);

                              StdOut.println();

                              double[] frequencies = {110.0, 110.0*1.224, 110.0*1.224*1.224};

                              ArrayList<Chord> risingChords = FinalAnswer.createRisingChordList(0.2, frequencies, 10);

                              for (Chord risingChord: risingChords) {

                                             StdOut.println("Playing: " + risingChord);

                                             risingChord.play();

                              }

                              StdOut.println();

                              ArrayList<CTATrain> ctaTrains = new ArrayList<CTATrain>();

                              StdIn.fromFile("data/CTAdata.txt");

                              while (!StdIn.isEmpty()) {

                                             int runNumber = StdIn.readInt();

                                             String lineColor = StdIn.readString();

                                             String nextStation = StdIn.readString();

                                             String arrivalTime = StdIn.readString();

                                             ctaTrains.add(new CTATrain(runNumber, lineColor, nextStation, arrivalTime));

                              }

                              StdOut.println("--- Trains before sorting ---");

                              for (CTATrain ctaTrain: ctaTrains) {

                                             StdOut.println(ctaTrain);

                              }

                              StdOut.println();

                              ctaTrains.sort(null);

                              StdOut.println("--- Trains after sorting by run number ---");

                              for (CTATrain ctaTrain: ctaTrains) {

                                             StdOut.println(ctaTrain);

                              }

                              StdOut.println();

                              ctaTrains.sort((CTATrain t1, CTATrain t2) -> (t1.getArrivalTime().compareTo(t2.getArrivalTime())));

                              StdOut.println("--- Trains after sorting by arrival time ---");

                              for (CTATrain ctaTrain: ctaTrains) {

                                             StdOut.println(ctaTrain);

                              }

                              StdOut.println();

                              StdOut.println("=== " + FinalAnswer.yourName() + " ===");

               }

}

Instructions 1. In Eclipse, create a package called finalanswer. Copy and place into the package the file TestFinalAnswer.java provided below. 3. Copy into the package the Chord class provided below 4. n the package, create a class called Final Answer. All of the static methods you are a to write will go in this class

Explanation / Answer

   public static ArrayList<Chord> createRisingChordList(double duration , double []frequencies , double count){

      

       ArrayList<Chord> alist = new ArrayList<Chord>();

       double multfactor = 1;

       for(int i=0;i<count;++i){

          

           double freq[] = new double[frequencies.length];

           for(int j=0;j<freq.length;++j){

               freq[i] = frequencies[i]*multfactor;

           }

          

           Chord c = new Chord(duration, freq);

           multfactor = multfactor*1.224;

          

           alist.add(c);

       }

       return alist;

      

   }
================
Thanks, let me know if there is any concern. Its a static method, create Class and just add it

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote