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 classExplanation / 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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.