ZAD4 #33
127
MainApp.java
127
MainApp.java
@ -1,7 +1,11 @@
|
||||
//package com.madrakrystian.algebra;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.util.Arrays;
|
||||
import java.util.Scanner;
|
||||
import java.util.Stack;
|
||||
|
||||
public class MainApp {
|
||||
|
||||
@ -24,54 +28,85 @@ public class MainApp {
|
||||
// Output: [[3,1,0,5,0,1,4,5,5], [5,2,1], DivisionError]
|
||||
|
||||
|
||||
// Input w programie dla przykladu 1
|
||||
// Podaj n:
|
||||
// 2
|
||||
// Pierwszy wielomian:
|
||||
// Podaj liczbe wyrazow w wielomianie:
|
||||
// 5
|
||||
// Podaj kolejne wyrazy wielomianu po przycisku enter
|
||||
// 1
|
||||
// 1
|
||||
// 1
|
||||
// 0
|
||||
// 1
|
||||
// Drugi wielomian:
|
||||
// Podaj liczbe wyrazow w wielomianie:
|
||||
// 3
|
||||
// Podaj kolejne wyrazy wielomianu po przycisku enter
|
||||
// 0
|
||||
// 1
|
||||
// 1
|
||||
|
||||
|
||||
|
||||
// czytanie inputu z System.in
|
||||
static Scanner reader = new Scanner(System.in);
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// wielomiany
|
||||
// liczniki indeksow wielomianow
|
||||
int counterFirst = 0, counterSecond = 0;
|
||||
|
||||
// wielomiany + pomocniczme stosy
|
||||
int polyOne[];
|
||||
Stack<Integer> p1 = new Stack<Integer>();
|
||||
int polyTwo[];
|
||||
Stack<Integer> p2 = new Stack<Integer>();
|
||||
|
||||
// wspolczynnik n
|
||||
int n=1;
|
||||
|
||||
//input
|
||||
do{
|
||||
System.out.println("Podaj n: ");
|
||||
// wpisz liczbe
|
||||
n = reader.nextInt();
|
||||
|
||||
}while(n > 1000 || n <= 0);
|
||||
String str;
|
||||
String input;
|
||||
|
||||
char temp;
|
||||
|
||||
System.out.println("Pierwszy wielomian: ");
|
||||
polyOne = fillPolynomial();
|
||||
//
|
||||
// poprawiony bardzo nieelegancki nowy input
|
||||
//
|
||||
|
||||
input = reader.nextLine();
|
||||
|
||||
BufferedReader read = new BufferedReader(
|
||||
new StringReader(input));
|
||||
|
||||
// od poczatku pierwszego wielomianu '['
|
||||
int i = 3;
|
||||
try {
|
||||
if ((str = read.readLine()) != null) {
|
||||
|
||||
if (str.length() > 0) {
|
||||
n = Character.getNumericValue(str.charAt(0));
|
||||
}
|
||||
temp = str.charAt(i);
|
||||
while(temp != ']') {
|
||||
|
||||
if(temp != ',') {
|
||||
p1.push(Character.getNumericValue(temp));
|
||||
counterFirst++;
|
||||
}
|
||||
i++;
|
||||
temp = str.charAt(i);
|
||||
}
|
||||
|
||||
// przejscie do drugiej tablicy (zakladamy ze wielomiany oddzielone sa spacja)
|
||||
i += 3;
|
||||
temp = str.charAt(i);
|
||||
|
||||
while(temp != ']') {
|
||||
|
||||
if(temp != ',') {
|
||||
p2.push(Character.getNumericValue(temp));
|
||||
counterSecond++;
|
||||
}
|
||||
i++;
|
||||
temp = str.charAt(i);
|
||||
}
|
||||
|
||||
// inicjalizacja tablic
|
||||
polyOne = new int[counterFirst];
|
||||
polyTwo = new int[counterSecond];
|
||||
|
||||
// wypelnianie tablic
|
||||
for(int j=polyOne.length-1; j>=0; j--) {
|
||||
|
||||
polyOne[j] = p1.pop();
|
||||
}
|
||||
|
||||
for(int j=polyTwo.length-1; j>=0; j--) {
|
||||
polyTwo[j] = p2.pop();
|
||||
}
|
||||
|
||||
System.out.println("Drugi wielomian: ");
|
||||
polyTwo = fillPolynomial();
|
||||
|
||||
// wyswietl wielomiany
|
||||
System.out.println("f:" + Arrays.toString(polyOne));
|
||||
@ -95,6 +130,31 @@ public class MainApp {
|
||||
reader.close();
|
||||
}
|
||||
|
||||
} catch(IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//input(old)
|
||||
/*
|
||||
do{
|
||||
System.out.println("Podaj n: ");
|
||||
// wpisz liczbe
|
||||
n = reader.nextInt();
|
||||
|
||||
}while(n > 1000 || n <= 0);
|
||||
|
||||
|
||||
System.out.println("Pierwszy wielomian: ");
|
||||
polyOne = fillPolynomial();
|
||||
|
||||
System.out.println("Drugi wielomian: ");
|
||||
polyTwo = fillPolynomial();
|
||||
*/
|
||||
|
||||
|
||||
reader.close();
|
||||
}
|
||||
|
||||
|
||||
// uzupelnianie tablicy
|
||||
public static int[] fillPolynomial() {
|
||||
@ -119,6 +179,7 @@ public class MainApp {
|
||||
return tab;
|
||||
}
|
||||
|
||||
|
||||
// dzielenie modulo tablicy
|
||||
public static int[] modTheTab(int tab[], int mod) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user