Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
The moose likes Programming Diversions and the fly likes Pls fix this program Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Other » Programming Diversions
Reply locked New topic

Pls fix this program

sina sinchen

Joined: May 24, 2004
Posts: 9
Hallo everybody,

I have a file which indicates a link between 2 persons(column 1&2) and column3 is their relation.

1 2 1
2 3 1
1 3 1
3 4 1
3 5 1
4 5 1
5 4 1
6 7 1
6 8 1
7 8 1
7 8 2

SO i have here 8 persons(their links in coumn1&2) with relation1 as regulation and relation2 as interaction(column3).

I wrote a program which searches for the links between 3 persons in the following way:
if we consider 3 persons(a pattern) 1,2,3 then there should be a link between (1,2)(1,3)&(2,3) and the relation should be always1(regulation).Then the output should be those 3 persons(1,2,3).

*If there exists a reverselink between (2,1) and also when a link has both the relations(1&2-regulation and interaction)then the pattern should be ignored
For example in the case of 3,4,5.we have (3,4)(3,5)&(4,5) with the relation 1 and we also have a reverse regulation(5,4). In this case 3,4,5 shouldnot be counted.

Also6,7,8.Links (6,7)(6,8)&(7,8)all with relation 1 but at the lastline we also have a link (7,8)with a relation2.So it should also be ignored.

My program:


import*;import java.util.*;import java.lang.String.*;public class analysis8 { public analysis8() throws Exception { int A1=0; //int B1=0;int C1=0; int [][]x = new int[11][2];int j = 0;int k=0; int m=0;int q=0; PrintWriter p = new PrintWriter(new BufferedWriter(new FileWriter("E:/Final_files/output.txt"))); { int ln=0;int ln1=0;int count=0; String line,line1,A,B = " "; String value[] =new String[200]; String values[] =new String[200]; BufferedReader b1 = new BufferedReader(new FileReader("E:/Final_files/Transreg.txt")); LineNumberReader l = new LineNumberReader(b1); while(true) { line = l.readLine();if (line==null) break; StringTokenizer st = new StringTokenizer(line); ln = l.getLineNumber(); if (ln>=1) { //p.println(); int i = 0; while(st.hasMoreTokens()) { value[i] = st.nextToken(); x[j][i] = Integer.parseInt(value[i]);//p.print(x[j][i]+"\t"); i++; } j++; } }b1.close();//p.close(); for(int a=1; a<=9; a++){ for (int b=1; b<=9; b++){ for (int c=1; c<=9; c++){int B1=0;int C1=0; int B1R=0; int C1R=0; int A1R=0; int B1R1=0; int C1R1=0; for (j=0; j<=11;j++) { if(x[j][2]==1) if((a==x[j][0])&& (b== x[j][1])) { A1=a; B1=b; for(m=0;m<=11;m++) {if(x[m][2]==1) if((a==x[m][0])&& (c== x[m][1])) { A1=a; C1=c; for (k=0; k<=11;k++) {if(x[k][2]==1) if((B1==x[k][0])&& (C1== x[k][1])) { B1R=B1; C1R=C1; for (q=0; q<=11;q++){ if((B1R!=x[q][0])&& (A1!= x[q][1])){ if((C1R!=x[q][0])&& (A1!= x[q][1])){ if((C1R!=x[q][0])&& (B1R!= x[q][1])){ A1R=A1;B1R1=B1R;C1R1=C1R; /*if((C1==x[k][0])&& (B1== x[k][1])) if(B1!=0&&C1!=0) {p.println(A1+"\t"+C1+"\t"+B1);}*/ }}}} if(B1R!=0&&C1R!=0) {p.println(A1R+"\t"+B1R1+"\t"+C1R1);} } }}} } }}}}p.close(); } } public static void main(String s[]) throws Exception { new analysis8(); }}


THe original file which I have used as input has around 1300 persons and almost 6000 rows(links).Computational time is too much and also the baove program gives the output which considers reverse regulation.Which shouldnot happen?

Kindly correct my code running the sample input file given above.

The output should be 1,2,3 in the above case.

Thanx in advance
fred rosenberger
lowercase baba

Joined: Oct 02, 2003
Posts: 11153

I don't think you understand A) the purpose of this forum, and B) the purpose of this site.

This particular forum is about fun little games or puzzles. It is not the place to post your homework or your work tasks.

in general, this site is not going to fix your problems for you. this is mostly an educational site, where we try and help people learn to program and how to think about programming. You could post in specific forums specific questions about your code - but with your code formatted like this, very few folks (who are all volunteers) are going to take the time to read it.

If you are looking to have someone write/fix/maintain code for you, there is one forum you can try - the "Jobs Offered" forum. you might be able to find somebody there who would fix your code, but you'd have to pay them.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
sina sinchen

Joined: May 24, 2004
Posts: 9
Thanks anyway. I have fixed the problem myself.
Chetan Parekh
Ranch Hand

Joined: Sep 16, 2004
Posts: 3636
Originally posted by sina sinchen:
Thanks anyway. I have fixed the problem myself.


My blood is tested +ve for Java.
It is sorta covered in the JavaRanch Style Guide.
subject: Pls fix this program
Similar Threads
Question on multi dimensional array
is rectangle? Too many open files error
Finding a particular pattern in a file
where this program goes wrong(using 2D array)?