mam w pliku maxTAB.java taki kod:
Ukryta treść:
Kod: Zaznacz cały
import java.io.*;
public class maxTAB {
//O(n^3)
public void maxtab1 (int [] tab, int n){
int plus=0;
int max=-1;
int first=0;
int last=0;
for(int i=0; i<n; i+=1){
plus+=2;
for(int j=i; j<n; j+=1){
plus+=2;
int sum=0;
for(int h=i; h<=j; h+=1){
sum+=tab[h];
plus+=3;
}
if(sum>max) {
max=sum;
first=i;
last=j;
}
plus++;
}
}
System.out.println("MaxTab1: ");
System.out.println("suma dodawan i porownan: "+ plus);
System.out.println("maksymalna podtablica: ");
if(max>0){
for(int i=first; i<=last; i+=1){
System.out.print(tab[i]+" ");
}
System.out.println("suma= " +max);
}
System.out.println("<nic>");
}
//O(n^2)
public void maxtab2 (int[] tab, int n){
int max;
int plus=0;
int[] sum = new int[n];
sum[0]=max=tab[0];
int first=0;
int last=0;
for(int i=1; i<n; i+=1){
sum[i]=sum[i-1]+tab[i];
plus+=4;
if(sum[i]>max){
max=sum[i];
last=i;
}
plus++;
}
for(int i=1; i<n; i+=1){
plus+=2;
for(int j=i; j<n; j+=1){
plus+=2;
if(sum[j]-sum[i-1]>max) {
max=sum[j]-sum[i-1];
first=i;
last=j;
plus+=2;
}
plus+=3;
}
}
System.out.println("MaxTab2: ");
System.out.println("suma dodawan i porownan: "+ plus);
System.out.println("maksymalna podtablica: ");
if(max>0){
for(int i=first; i<=last; i+=1){
System.out.print(tab[i]+" ");
}
System.out.println("suma= " +max);
}
System.out.println("<nic>");
}
//O(n)
public void maxtab3 (int[] tab, int n){
int max=0;
int plus=0; //suma dodawan i porownan
int first=-1;
int last=-1;
int FIRST=-1; //poczatek maksymalnej podtablicy konczacej sie na i-tym elemencie
int MAX=0;
if(tab[0]>=0){
max=MAX=tab[0];
first=last=0;
FIRST=0;
}
plus++;
for(int i=1; i<n; i+=1){
plus+=2;
if(tab[i]>=0){
MAX=MAX+tab[i];
if(FIRST==-1) {FIRST=i;}
if(MAX>=max){
max=MAX;
last=i;
}
plus+=3;
}
else{
if(MAX+tab[i]<=0){
FIRST=-1;
MAX=0;
}
plus+=2;
}
plus++;
}
System.out.println("MaxTab3: ");
System.out.println("suma dodawan i porownan: "+ plus);
System.out.println("maksymalna podtablica: ");
if(max>0){
for(int i=first; i<=last; i+=1){
System.out.print(tab[i]+" ");
}
System.out.println("suma= " +max);
}
System.out.println("<nic>");
}
//************************************************************
//pobieranie z pliku itp
public static String getString()
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try{
String line = br.readLine();
return line;
}
catch(IOException e){
System.out.println("Blad odczytu ");
return "";
}
}
//--------------------------------------------------------
public static int getInt() throws IOException
{
int lnum;
String s = getString();
lnum = Integer.parseInt(s);
return lnum;
}
//--------------------------------------------------------
public static String getStringFromFile(BufferedReader br1 ) throws
IOException
{
// read a line from the file (to see if there's data present)
String theInputString = new String();
theInputString = br1.readLine() ;
return theInputString;
}
//----------------------------------------------------------
public static int getIntFromFile(BufferedReader br1) throws IOException
{
int lnum;
String s = getStringFromFile(br1);
try{
lnum =Integer.parseInt(s);
return lnum;
}
catch(NumberFormatException e){
System.out.println("Blad podczas konwersji liczby"); }
return 0;
}
//------------------------------------------------------
//**************************************************************************
//programik
public void main(String[] args) throws IOException
{
try
{
System.out.println("Podaj nazwe pliku: ");
String fname = getString();
BufferedReader br1 = new BufferedReader(new FileReader(fname));
// read a line from the file
String theInputString = new String();
int n=Integer.parseInt(getStringFromFile(br1));
int[] tab = new int[n];
int i=0;
while((theInputString = getStringFromFile(br1)) != null){
tab[i++] =Integer.parseInt(theInputString);
}
br1.close(); //close the file
maxtab1(tab, n);
maxtab2(tab, n);
maxtab3(tab, n);
}
catch (Exception e){
System.err.println(e.getMessage());
e.printStackTrace();
}
}
}
java.lang.NoSuchMethodError: main
Exception in thread "main"
i nie rozumiem dlaczego nie rozpoznaje mi maina
bardzo proszę o pomoc