<identifier> expected (Java) -
i'm new java. i'm writing code create object of pascal's triangle , method allow me newton's binomial factor value. getting enigmatic " expected" error not tell me much. i've searched through google , so, no avail. i'm sorry comments , class names in native language, that's tutor wanted. have code working in c++ if of help.
the problem @ lines 17 , 56 (the method , constructor).
here's code of class:
package kp_lista04_java; import java.util.list; import java.util.arraylist; class trojkatpascalaexception extends exception { trojkatpascalaexception(string w) {super(w);} } class trojkatpascala { private list<list<integer>> matrix; private list<integer> row_final; private list<integer> row_temporary; public int wspolczynnik (int param_r, int param_p) throws (trojkatpascalaexception) { // r - numerator wiersza pascala int r = param_r; // p - numerator elementu wiersza pascala int p = param_p; if (p < 0 || p > r) { throw new trojkatpascalaexception(" element " + p + ": index out of range"); } else { // q - wartosc zadanego elementu // wiemy, ze zerowe ostatnie elementy sa zawsze rowne 1 int q; if (p == 0 || p == r) { q = 1; } // wiemy, ze pierwsze przedostatnie elementy // sa rowne numerowi wiersza else if (p == 1 || p == r-1) { q = r; } // przejscie (funkcja w rozumieniu matematycznym) // miedzy wierszem trojkata pascala // zapisanym w pamieci wektorem // w - numerator elementu wektora else { int w; if (p < math.ceil((float) r/2)) { w = p - 2; } else { w = r - p - 2; } q = matrix.get(r).get(w); } return q; } } trojkatpascala (int n_param) throws (trojkatpascalaexception) { int n = n_param; if (n < 0) { throw new trojkatpascalaexception("row " + n + ": index out of domain"); } else { matrix = new arraylist<list<integer>>(); (int u = 0; u < n + 1; ++u) { row_final = new arraylist<integer>(); row_temporary = new arraylist<integer>(); row_final.clear(); // inicjalizacja - wartosc elementu 2 w wierszu 4 // elementow zerowych, pierwszych, ostatnich przedostatnich // nie zapamietujemy row_final.add( 6 ); // //// petla generujaca odpowiedni wiersz // // - numer budowanego wiersza (int = 5; < u+1; ++i) { // wektor roboczy row_temporary.clear(); // tworzony jest pierwszy element wektora roboczego row_temporary.add(i-1 + row_final.get(0)); // j - liczba elementow wektora roboczego // korzystamy z faktu, ze wystarczy zapamietac // ~polowe elementow (wiersze sa symetryczne) int j = math.ceil((float) i/2) - 2; // r - numer tworzonego elementu wiersza roboczego (int r = 1; r < j; ++r) { // korzystamy z zaleznosci rekurencyjnej tworzenia // elementow row_temporary.add(row_final.get(r-1) + row_final.get(r)); } // w przypadku parzystych wierszy dodajemy dwukrotnosc // ostatniego elementu poprzedniego wiersza // wynika z faktu, ze wiersze sa symetryczne if (i % 2 == 0) { row_temporary.add(2 * row_final.get(row_final.size() - 1)); } // zastepujemy wiersz wejsciowy // wierszem wyjsciowym (roboczym) row_final.clear(); row_final = row_temporary; // usuwamy zbedna kopie wiersza roboczego z pamieci row_temporary.clear(); } matrix.add(row_final); } } } }
and code of test class:
package kp_lista04_java; public class trojkatpascalatest { public static void main( string[] arg ) { try { if (arg.length == 0) { throw new trojkatpascalaexception("no arguments given"); } else { trojkatpascala pascal_triangle; // n - zadany numer wiersza int n = integer.parseint(arg[0]); system.out.println("row range " + 0 + " " + n); pascal_triangle = new trojkatpascala(n); // p - zadany numer elementu w zadanym wierszu (int = 1; < arg.length; = + 2) { try { system.out.println("-----"); try { integer.parseint(arg[i]); } catch (numberformatexception e){ throw new trojkatpascalaexception("row " + arg[i] + ": index not integer"); } int r = integer.parseint(arg[i]); if (r < 0 || r > n) { throw new trojkatpascalaexception("row " + r + ": index out of range"); } system.out.println("row " + r + ":"); system.out.println(" element range 0 " + r); try { integer.parseint(arg[i+1]); } catch (numberformatexception e){ throw new trojkatpascalaexception(" element " + arg[i+1] + ": index not integer"); } int p = integer.parseint(arg[i+1]); int elemele = pascal_triangle.wspolczynnik(r, p); system.out.println(" element " + p + ": " + elemele); } catch (trojkatpascalaexception w) { system.out.println(w.getmessage()); } } } } catch (trojkatpascalaexception w) { system.out.println(w.getmessage()); } } }
thanks in advance.
there should no parentheses around exception
in method , constructor.
so change:
public int wspolczynnik (int param_r, int param_p) throws (trojkatpascalaexception) {
to:
public int wspolczynnik (int param_r, int param_p) throws trojkatpascalaexception {
and same constructor.
Comments
Post a Comment