Help on polymorphism in my code
Hi, I'd be glad if anyone could explain why java compiler gives errors
compiling a class of a simple application.
This is the scenario: class Point is meant to simplicistically abstract the
concept of 2D point (x and y are the coordinates). Class Point3D extends Point,
adding z coordinate. Attributes x, y and z are encapsulated (private and each
one with setter and getter methods).
There is a third class, called Ruler, its aim is to set the distance between
two 2D points or two 3D points using the polymorphic method
computeDistance(Point p1, Point p2).
The compiler fails compiling the class Ruler with this message:
Ruler.java:21: p1 is already defined in computeDistance(Point,Point)
Point3D p1 = (Point3D) p1;
^
Ruler.java:22: p2 is already defined in computeDistance(Point,Point)
Point3D p2 = (Point3D) p2;
^
2 errors
This is the relevant part of the class:
public class Ruler
private double distance;
public void computeDistance(Point p1, Point p2)
if (p1 instanceof Point && p2 instanceof Point)
// This is a 2D points case.
// Obtain x1, x2, y1, y2 via getX() and getY() then compute the
// distance.
else if (p1 instanceof Point3D && p2 instanceof Point3D)
// This is a 3D points case.
// Obtain x1, x2, y1, y2, z1, z2 using getX() and getY(), getZ().
// BUT, in order to obtain z1, z2 it is needed a casting between
// objects, because Point objects don't provide getZ(), while
// Point3D do.
Point3D p1 = (Point3D) p1;
Point3D p2 = (Point3D) p2;
else
// This case is not valid.
}If this piece of code is not enough I'll write in another post all the three
classes exactly as they are.
Thanks for any help!
In Point, declare a computeDistance:
public double computeDistance(Point other)
// compute and return distance from this point to other point;
}Override it in Point3D to account for the Z values:
public double computeDistance(Point other)
if (other instanceof Point3D)
// Cast to Point3D
// compute and return distance from this point to other point;
else
// decide how to handle (throw IllegalArgumentException, use Z=0, etc.)
}Or, just try the cast, and allow the ClassCastException to fail [instead of explicitly throwing IllegalArgumentException]. Just document whatever it should do.
In Ruler, do this, and it will do the polymorphism without instanceof:
public void computeDistance(Point p1, Point p2)
distance = p1.computeDistance(p2);
}
Similar Messages
-
i had to take my photoshop file into a hardrive because my dad was going to give me a new Mac and when things didn't work out and went back to my old one i use the time capsule thing to save everything before but didn't give me photoshop so i physically moved the file and tried to open it but then this error shows up
Please uninstall and reinstall the product.
If this problem still occurs, please contact Adobe technical support for help, and mention the error code shown at the bottom of this screen.
Error: 16
and when i click the uninstall app on the file it tells me this
The alias “Uninstall Adobe Photoshop CS6 2” can’t be opened because the original item can’t be found
and when i click fix alias i click on photoshop and the app just turns into photoshop and i just run in circles
please help thank youRun the cleaner tool and reinstall.
Use the CC Cleaner Tool to solve installation problems | CC, CS3-CS6
Download CS6 products
Mylenium -
Search Help "PREM" Restriction on Company Code
Dear Friends,
I have modified the screen SAPLKACB 0002. I HAVE APPLIED SEARCH HELP "PREM" ON COBL-PERNR(Personnel No).Now if u go to F-02 Transaction.We have a Company Code entered Say : 2200.
Now if we fill in the mandatory fields we go 2 next screen there we have personnel no field where i have
attached F4(Search Help).
Now i need 2 restrict the search help according to the company code.
if the Company Code i enter say 2100 and hIt enter.it should give me some king of msg that
the company code 2100 does not match the (F-02 Transaction Company Code:2200).
Please Guide as 2 how 2 Accomplish this.
Regards,
EssamHi if you need to do any thing to search help u need to create a search help exit for it.
check my [blog|https://wiki.sdn.sap.com/wiki/x/du0] on this code. -
I Need Help to Access The Source Code From A Form to Know the Calculation Formula
Hi,
I Need Help to Access The Source Code From A Form to Know the Calculation Formula. The application is a windows form application that is linked to SQL Server 2008. In one of the application forms it generates an invoice and does some calculations. I just
need to know where behind that form is the code that's doing the calculations to generate the invoice, I just need to get into the formula that's doing these calculations.
Thank you so much.Hi,
Thanks for the reply. This is a view and [AmountDue] is supposed to be [CurrentDueAmount] + [PastDueAmount] - [PaidAmount]. The view is not calculating [PaidAmount] right . Below is the complete code of the view. Do you see anything wrong in the code ?
Thanks.
SELECT [isi].[InvoiceID], [ii].[DueDate], [SubInvoiceID] = [isi].[ID], [INV_FacilityID] = [if].[ID], [if].[FacilityID],
[iff].[FacilityFeeID], [LoanID] = NULL, [isi].[PortfolioID], [isi].[Portfolio],
[PaymentType] = [isis_fee].[SectionType], [Name]
= [iff].[Name], [ReceivedAmount], [dates].[CurrentDueAmount],
[PastDueAmount] = CASE WHEN ISNULL([ReceivedAmount],
0) > 0 THEN [pastdue].[PastDueFeeAmount] + ISNULL([ReceivedAmount], 0)
WHEN ISNULL([ReceivedAmount], 0)
< 0 THEN /* We bring past due to zero and
apply reset to current. */ CASE WHEN [pastdue].[PastDueFeeAmount] + ISNULL([ReceivedAmount], 0)
< 0 THEN 0 ELSE [pastdue].[PastDueFeeAmount]
+ ISNULL([ReceivedAmount], 0) END WHEN ISNULL([ReceivedAmount], 0) = 0 AND
[pastdue].[PastDueFeeAmount] < 0 THEN 0 ELSE
[pastdue].[PastDueFeeAmount] END, [PaidAmount] = CASE WHEN ISNULL([ReceivedAmount], 0)
< 0 THEN /* We bring past due to zero and
apply rest to current. */ CASE WHEN [pastdue].[PastDueFeeAmount] + ISNULL([ReceivedAmount], 0)
< 0 THEN - ([pastdue].[PastDueFeeAmount]
+ ISNULL([ReceivedAmount], 0)) ELSE 0 END WHEN ISNULL([ReceivedAmount], 0) = 0 AND
[pastdue].[PastDueFeeAmount] < 0 THEN - [pastdue].[PastDueFeeAmount]
ELSE 0 END, [AmountDue] = [unpaid].[UnpaidFeeAmount], [ID] = [iff].[FacilityFeeID]
FROM [dbo].[INV_SubInvoice] isi JOIN
[dbo].[INV_Invoice] ii ON [isi].[InvoiceID]
= [ii].[ID] JOIN
[dbo].[INV_Facility] [if] ON [isi].[ID] = [if].[SubInvoiceID]
JOIN
[dbo].[INV_FacilityFee] iff ON [if].[ID] = [iff].[INV_FacilityID]
JOIN
(SELECT [sis_fee].[ID],
[sis_fee].[SectionTypeCode], [SectionType] = [st_fee].[Name], [sis_fee].[INV_FacilityFeeID]
FROM
[dbo].[INV_SubInvoiceSection] sis_fee JOIN
[dbo].[INV_SectionType] st_fee ON [sis_fee].[SectionTypeCode] = [st_fee].[Code]
WHERE [INV_FacilityFeeID]
IS NOT NULL AND [StatusCode] = 'BILL') isis_fee ON [iff].[ID] = [isis_fee].[INV_FacilityFeeID] JOIN
(SELECT [iffa].[SectionID],
[AccrualDeterminationDateMax] = MAX([iffa].[AccrualDeterminationDate]),
[AccrualDeterminationDateMin] = MIN([iffa].[AccrualDeterminationDate]), [CurrentDueAmount] = SUM([iffa].[AccruedFeeAmount]),
[ReceivedAmount] = SUM([iffa].[ReceivedFeeAmount])
FROM
[dbo].[INV_FacilityFeeAccrual] iffa
GROUP BY [iffa].[SectionID])
dates ON [isis_fee].[ID] = [dates].[SectionID] LEFT JOIN
(SELECT *
FROM
[dbo].[INV_FacilityFeeAccrual]) unpaid ON [dates].[SectionID] = [unpaid].[SectionID] AND
[dates].[AccrualDeterminationDateMax] = [unpaid].[AccrualDeterminationDate]
LEFT JOIN
(SELECT [SectionID],
[PastDueFeeAmount] = SUM([PastDueFeeAmount])
FROM
[dbo].[INV_FacilityFeeAccrual]
GROUP BY [SectionID]) pastdue
ON [dates].[SectionID] = [pastdue].[SectionID]
UNION
SELECT [isi].[InvoiceID], [ii].[DueDate], [SubInvoiceID] = [isi].[ID], [INV_FacilityID] = [if].[ID], [if].[FacilityID],
[FacilityFeeID] = NULL, [il].[LoanID], [isi].[PortfolioID], [isi].[Portfolio],
[PaymentType] = [isis_loan].[SectionType], [Name]
= [il].[Name], [ReceivedAmount], [CurrentDueAmount], [PastDueAmount] = CASE WHEN ISNULL([ReceivedAmount],
0) > 0 THEN [PastDueAmount] + ISNULL([ReceivedAmount],
0) WHEN ISNULL([ReceivedAmount], 0)
< 0 THEN /* We bring past due to zero and
apply rest to current. */ CASE WHEN [PastDueAmount] + ISNULL([ReceivedAmount], 0)
< 0 THEN 0 ELSE [PastDueAmount] + ISNULL([ReceivedAmount],
0) END WHEN ISNULL([ReceivedAmount], 0) = 0 AND
[PastDueAmount] < 0 THEN 0 ELSE [PastDueAmount]
END,
[PaidAmount] = CASE WHEN [isis_loan].[SectionTypeCode]
= 'LOAN_PRIN' THEN 0 ELSE CASE WHEN ISNULL([ReceivedAmount], 0)
< 0 THEN /* We bring past due to zero and
apply rest to current. */ CASE WHEN [PastDueAmount] + ISNULL([ReceivedAmount], 0)
< 0 THEN - ([PastDueAmount] + ISNULL([ReceivedAmount],
0)) ELSE 0 END WHEN ISNULL([ReceivedAmount], 0) = 0 AND
[PastDueAmount] < 0 THEN - [PastDueAmount]
ELSE 0 END END,
[AmountDue] = CASE WHEN [isis_loan].[SectionTypeCode]
= 'LOAN_PRIN' THEN [CurrentDueAmount] ELSE [unpaid].[AmountDue] END, [ID] = [il].[LoanID]
FROM [dbo].[INV_SubInvoice] isi JOIN
[dbo].[INV_Invoice] ii ON [isi].[InvoiceID]
= [ii].[ID] JOIN
[dbo].[INV_Facility] [if] ON [isi].[ID] = [if].[SubInvoiceID]
JOIN
[dbo].[INV_Loan] il ON [if].[ID] = [il].[INV_FacilityID]
JOIN
(SELECT [sis_loan].[ID],
[sis_loan].[SectionTypeCode], [SectionType] = [st_loan].[Name], [sis_loan].[INV_LoanID]
FROM
[dbo].[INV_SubInvoiceSection] sis_loan JOIN
[dbo].[INV_SectionType] st_loan ON [sis_loan].[SectionTypeCode] = [st_loan].[Code]
WHERE [INV_LoanID]
IS NOT NULL AND [StatusCode] = 'BILL') isis_loan ON [il].[ID] = [isis_loan].[INV_LoanID] JOIN
(SELECT [iffa].[SectionID],
[AccrualDeterminationDateMax] = MAX([iffa].[AccrualDeterminationDate]),
[AccrualDeterminationDateMin] = MIN([iffa].[AccrualDeterminationDate]), [CurrentDueAmount] = SUM([iffa].[ExpectedPrincipalAmount]),
[ReceivedAmount] = SUM([ReceivedPrincipalAmount])
FROM
[dbo].[INV_LoanPrincipalAmortization] iffa
GROUP BY [iffa].[SectionID]
UNION
SELECT [iffa].[SectionID],
[AccrualDeterminationDateMax] = MAX([iffa].[AccrualDeterminationDate]),
[AccrualDeterminationDateMin] = MIN([iffa].[AccrualDeterminationDate]), [CurrentDueAmount] = SUM([iffa].[AccruedInterestAmount]),
[ReceivedAmount] = SUM([ReceivedInterestAmount])
FROM
[dbo].[INV_LoanCashInterestAccrual] iffa
GROUP BY [iffa].[SectionID]
UNION
SELECT [iffa].[SectionID],
[AccrualDeterminationDateMax] = MAX([iffa].[AccrualDeterminationDate]),
[AccrualDeterminationDateMin] = MIN([iffa].[AccrualDeterminationDate]), [CurrentDueAmount] = SUM([iffa].[AccruedInterestAmount]),
[ReceivedAmount] = SUM([ReceivedInterestAmount])
FROM
[dbo].[INV_LoanPIKInterestAccrual] iffa
GROUP BY [iffa].[SectionID])
dates ON [isis_loan].[ID] = [dates].[SectionID] LEFT JOIN
(SELECT [AmountDue]
= [UnpaidPrincipalAmount], [SectionID], [AccrualDeterminationDate]
FROM
[dbo].[INV_LoanPrincipalAmortization]
UNION
SELECT [AmountDue]
= [UnpaidInterestAmount], [SectionID], [AccrualDeterminationDate]
FROM
[dbo].[INV_LoanCashInterestAccrual]
UNION
SELECT [AmountDue]
= [UnpaidInterestAmount], [SectionID], [AccrualDeterminationDate]
FROM
[dbo].[INV_LoanPIKInterestAccrual]) unpaid ON [dates].[SectionID] = [unpaid].[SectionID] AND
[dates].[AccrualDeterminationDateMax] = [unpaid].[AccrualDeterminationDate]
LEFT JOIN
(SELECT [PastDueAmount]
= SUM([PastDuePrincipalAmount]), [SectionID]
FROM
[dbo].[INV_LoanPrincipalAmortization]
GROUP BY [SectionID]
UNION
SELECT [PastDueAmount]
= SUM([PastDueInterestAmount]), [SectionID]
FROM
[dbo].[INV_LoanCashInterestAccrual]
GROUP BY [SectionID]
UNION
SELECT [PastDueAmount]
= SUM([PastDueInterestAmount]), [SectionID]
FROM
[dbo].[INV_LoanPIKInterestAccrual]
GROUP BY [SectionID]) pastdue
ON [dates].[SectionID] = [pastdue].[SectionID]
UNION
SELECT [isi].[InvoiceID], [ii].[DueDate], [SubInvoiceID] = [isi].[ID], [INV_FacilityID] = [if].[ID], [if].[FacilityID],
[FacilityFeeID] = NULL, [il].[LoanID], [isi].[PortfolioID], [isi].[Portfolio],
[PaymentType] = 'PIK Interest Applied', [Name]
= [il].[Name], [ReceivedAmount], [CurrentDueAmount] = - [dates].[CurrentDueAmount],
[PastDueAmount] = - CASE WHEN ISNULL([ReceivedAmount],
0) > 0 THEN [PastDueAmount] + ISNULL([ReceivedAmount], 0) WHEN ISNULL([ReceivedAmount], 0)
< 0 THEN /* We bring past due to zero and
apply rest to current. */ CASE WHEN [PastDueAmount] + ISNULL([ReceivedAmount], 0)
< 0 THEN 0 ELSE [PastDueAmount] + ISNULL([ReceivedAmount],
0) END WHEN ISNULL([ReceivedAmount], 0) = 0 AND
[PastDueAmount] < 0 THEN 0 ELSE [PastDueAmount]
END, [PaidAmount] = - CASE WHEN ISNULL([ReceivedAmount], 0)
< 0 THEN /* We bring past due to zero and
apply rest to current. */ CASE WHEN [PastDueAmount] + ISNULL([ReceivedAmount], 0)
< 0 THEN - ([PastDueAmount] + ISNULL([ReceivedAmount],
0)) ELSE 0 END WHEN ISNULL([ReceivedAmount], 0) = 0 AND
[PastDueAmount] < 0 THEN - [PastDueAmount]
ELSE 0 END, [AmountDue] = - [AmountDue], [ID] = [il].[LoanID]
FROM [dbo].[INV_SubInvoice] isi JOIN
[dbo].[INV_Invoice] ii ON [isi].[InvoiceID]
= [ii].[ID] JOIN
[dbo].[INV_Facility] [if] ON [isi].[ID] = [if].[SubInvoiceID]
JOIN
[dbo].[INV_Loan] il ON [if].[ID] = [il].[INV_FacilityID]
JOIN
(SELECT [sis_loan].[ID],
[sis_loan].[SectionTypeCode], [SectionType] = [st_loan].[Name], [sis_loan].[INV_LoanID]
FROM
[dbo].[INV_SubInvoiceSection] sis_loan JOIN
[dbo].[INV_SectionType] st_loan ON [sis_loan].[SectionTypeCode] = [st_loan].[Code]
WHERE [INV_LoanID]
IS NOT NULL AND [StatusCode] = 'BILL' AND [sis_loan].[SectionTypeCode] = 'LOAN_INT_PIK') isis_loan ON
[il].[ID] = [isis_loan].[INV_LoanID] JOIN
(SELECT [iffa].[SectionID],
[AccrualDeterminationDateMax] = MAX([iffa].[AccrualDeterminationDate]),
[AccrualDeterminationDateMin] = MIN([iffa].[AccrualDeterminationDate]), [CurrentDueAmount] = SUM([iffa].[AccruedInterestAmount]),
[ReceivedAmount] = SUM([ReceivedInterestAmount])
FROM
[dbo].[INV_LoanPIKInterestAccrual] iffa
GROUP BY [iffa].[SectionID])
dates ON [isis_loan].[ID] = [dates].[SectionID] LEFT JOIN
(SELECT [AmountDue]
= [UnpaidInterestAmount], [SectionID], [AccrualDeterminationDate]
FROM
[dbo].[INV_LoanPIKInterestAccrual]) unpaid ON [dates].[SectionID] = [unpaid].[SectionID] AND
[dates].[AccrualDeterminationDateMax] = [unpaid].[AccrualDeterminationDate]
LEFT JOIN
(SELECT [PastDueAmount]
= SUM([PastDueInterestAmount]), [SectionID]
FROM
[dbo].[INV_LoanPIKInterestAccrual]
GROUP BY [SectionID]) pastdue
ON [dates].[SectionID] = [pastdue].[SectionID] -
Please help me transform this C++ code to java code....
guys...please help me transform this C++ code to java code....please try to explain the code..thanks
[program]
#include <stdio.h>
#define ALIVE 1
#define DEAD 0
#define SZ 33
int stschk (int ,int );
main()
int s[SZ][SZ], i, j;
for (i=0; i<sz; i++ ) s[0] = DEAD;
for (j=0; j<sz; j++ ) s[0][j] = DEAD;
s[0][1] = ALIVE;
for (i=0; i<sz-1; i++) {
for ( j=1;j<sz;j++ ) {
s[i][j] = stschk(s[i][j-1],s[i+1][j];
if(s[i][j-1]==ALIVE) printf("*");
else printf(" ");
printf("\n");
int stschk(int s1,int s2)
if(((s1==DEAD)&&(s2==ALIVE))||
((s1==ALIVE)&&(s2==DEAD))) return ALIVE;
else return DEAD;Being picky, that's not C++, that's C. Standard headers in C++ dont' have .h after them, loop variables are scoped with the for, you use constants rather than #defines, etc..
C and C++ both don't initialise arrays by default; you'd have to write an initialiser to get it to zero out the array:
int s[sz][sz] = {};gcc will insert a call to memset to zero the array.
If the author was assuming that the array was zeroed out, there would be no point zeroing the first row and column.
The code reads values which haven't been initialised. If you mark such values explicitly undefined, and change the program to report an error when undefined, then you get several cases where the program makes such report.
So either it' s a primitive random number generator (some random number generators use uninitialised memory as a source of randomness), or it's buggy, or it's processing undefined data and throwing away the result. Either way, it cannot be directly be ported to Java if the undefined values (which are limited to a small area of the ouput) are significant. -
Please! help me with this wrong code, where is mistake
please! help me with this wrong code, where is mistake?
import java.util.Stack;
public class KnightsTour {
Vars locs[];
private int size, max=1, d=0, board[][];
public KnightsTour(int x,int y, int newSize)
size=newSize;
locs=new Vars[size*size+1];
for(int n=1;n<=size*size;n++)
locs[n]=new Vars();
board=new int[size+1][size+1];
for(int n=1;n<=size;n++)
for(int n2=1;n2<=size;n2++)
board[n][n2]=0;
locs[max].x=x;
locs[max].y=y;
locs[max].d=1;
board[x][y]=max;
max++;
class Vars{
int x;
int y;
int d;
public void GO()
int n=0;
while(max<=size*size)
n++;
d++;
if(d>8)
max--;
board[locs[max].x][locs[max].y]=0;
d=locs[max].d+1;
move();
printBoard();
public void move()
int x=locs[max-1].x, y=locs[max-1].y;
switch(d)
case 1:x--;y-=2;break;
case 2:x++;y-=2;break;
case 3:x+=2;y--;break;
case 4:x+=2;y++;break;
case 5:x++;y+=2;break;
case 6:x--;y+=2;break;
case 7:x-=2;y++;break;
case 8:x-=2;y--;break;
//System.out.println(" X: "+x+" Y: "+y+" |"+max);
if((x<1)||(x>size)||(y<1)||(y>size)){}
else if(board[x][y]!=0){}
else
locs[max].x=x;
locs[max].y=y;
locs[max].d=d;
board[x][y]=max;
max++;
d=0;
//printBoard();
public void printBoard()
for(int n=1;n<=size;n++)
for(int n2=1;n2<=size;n2++)
if(board[n2][n]<10)
System.out.print(board[n2][n]+" ");
else
System.out.print(board[n2][n]+" ");
System.out.println();
//System.out.println();
System.out.println();
public static void main (String[]args){
KnightsTour k = new KnightsTour(1,1,8);
}public class KnightsTour {
Vars locs[];
private int size, max = 1, d = 0, board[][];
public static void main (String[] args) {
KnightsTour k = new KnightsTour (1, 1, 8);
k.GO ();
public KnightsTour (int x, int y, int newSize) {
size = newSize;
locs = new Vars[size * size + 1];
for (int n = 1; n <= size * size; n++) {
locs[n] = new Vars ();
board = new int[size + 1][size + 1];
for (int n = 1; n <= size; n++) {
for (int n2 = 1; n2 <= size; n2++) {
board[n][n2] = 0;
locs[max].x = x;
locs[max].y = y;
locs[max].d = 1;
board[x][y] = max;
max++;
class Vars {
int x;
int y;
int d;
public void GO () {
int n = 0;
while (max <= size * size) {
n++;
d++;
if (d > 8) {
max--;
board[locs[max].x][locs[max].y] = 0;
d = locs[max].d + 1;
move ();
printBoard ();
public void move () {
int x = locs[max - 1].x, y = locs[max - 1].y;
switch (d) {
case 1:
x--;
y -= 2;
break;
case 2:
x++;
y -= 2;
break;
case 3:
x += 2;
y--;
break;
case 4:
x += 2;
y++;
break;
case 5:
x++;
y += 2;
break;
case 6:
x--;
y += 2;
break;
case 7:
x -= 2;
y++;
break;
case 8:
x -= 2;
y--;
break;
//System.out.println(" X: "x" Y: "y" |"+max);
if ((x < 1) || (x > size) || (y < 1) || (y > size)) {
} else if (board[x][y] != 0) {
} else {
locs[max].x = x;
locs[max].y = y;
locs[max].d = d;
board[x][y] = max;
max++;
d = 0;
//printBoard();
public void printBoard () {
for (int n = 1; n <= size; n++) {
for (int n2 = 1; n2 <= size; n2++) {
if (board[n2][n] < 10) {
System.out.print (board[n2][n] + " ");
} else {
System.out.print (board[n2][n] + " ");
System.out.println ();
//System.out.println();
System.out.println ();
}formatting ftw.
If you call GO () you get in an infinite loop. max gets decreased, and it loops while max is smaller then or equal to size * size. Is your looping logic correct ? -
Plz help me on the hangman code
Consider the venerable "hangman" game, in which a player attempts to guess a word one letter at a time. If you are unfamiliar with hangman, simply google it; you'll be playing in no time.
Consider the following abstract view of hangman. The input is an unknown word and a sequence of character guesses. There is also an implicit parameter, which is the number of incorrect guesses that may be made before losing the game. Even though you wouldn't implement an interactive hangman game this way, let's model this as:
static public int hangman (String puzzle, String guesses, int limit)
Requires: puzzle != null, guesses != null, limit >=0
Effects: returns the number of the guess that solves the
puzzle within the given limit on incorrect guesses.
If the puzzle is not solved within the limit, returns -1.
e.g.
hangman ("cat", "abct", 1) is 4 (solved)
hangman ("cat", "abct", 0) is -1 (hit the limit)
hangman ("cat", "abcd", 5) is -1 (gave up)
I wrote the following code but it gives me an error of array index out of bounds exception though it compiles correctly. If someone can help me in correcting the code or point out my mistake.
public class hangman
public static int hang(String puz,String gue,int lim)
int i,j,flag=0,ret=0;
char p[],g[];
p=puz.toCharArray();
g=gue.toCharArray();
one:
for(i=0;i<g.length;i++)
two:
for(j=0;j<p.length;j++)
if(g==p[j])
//take the element off the p array and resize p
if(p.length==1)
break one;
else
char b[]=new char[p.length];
for(int k=j+1;k<p.length;k++)
p[k-1]=p[k];
b=p;
p=new char[p.length-1];
for(int l=0;i<p.length;l++)
p[l]=b[l];
continue one;
else
if(j==p.length-1)
flag++;
else
continue two;
if(flag>lim)
return -1;
else
return 0;
public static void main(String args[])
int ret;
ret=hang("cat","abct",1);
System.out.println(ret);I wrote the following code but it gives me an error
of array index out of bounds exception though it
compiles correctly.I just want to point out a fundamental misunderstanding that this statement suggests you have.
Compiling just converts your source code into equivalent bytecode. The only errors you'll get during compilation are if the syntax is bad (like you forgot a semicolon, misspelled a method name, have an extra closing brace, etc.) or if you're trying to ues a vairialbe that the copmiler can't be sure will have been initialized, etc.
Compilation does NOT execute your code, and it has no way to determine the logical problem with, for instance, int[] arr = new int[0];
int x = arr[999]; The fact that x has zero elements and you're trying to access element 999 only comes to light at execution time.
So "I get an error at runtime even though it compiles fine" is kind of meaningless.
Note that I'm not trying to pick on you here. I just want to shift your thinking away from this fundamental misconception you seem to have. -
Need help in optimizing the ABAP code
Hi,
Can anyone help me in optimizing the code. Here the select statement has select within the loop. Need help in optimization.
WHEN '0CO_PC_PCP_03'.
LOOP AT C_T_DATA INTO TBL_KKBW_ITEM.
W_TABIX = SY-TABIX.
IF TBL_KKBW_ITEM-CURRENCY_TYPE EQ '20'.
SELECT SINGLE KALNR KALKA KADKY TVERS KADAT KOKRS INTO (W_KALNR, W_KALKA, W_KADKY, W_TVERS,
TBL_KKBW_ITEM-COSTING_DATE,
TBL_KKBW_ITEM-CONTROLLING_AREA)
FROM KEKO
WHERE KLVAR EQ TBL_KKBW_ITEM-COSTING_VARIANT
AND KADKY EQ TBL_KKBW_ITEM-COSTING_DATE
AND TVERS EQ TBL_KKBW_ITEM-COSTING_VERSION
AND MATNR EQ TBL_KKBW_ITEM-HEADER_MATERIAL
AND WERKS EQ TBL_KKBW_ITEM-HEADER_PLANT.
IF SY-SUBRC EQ 0.
SELECT SINGLE KOSTL INTO TBL_KKBW_ITEM-COST_CENTER
FROM CKIS WHERE KOSTL NE SPACE
AND KALNR EQ W_KALNR
AND KALKA EQ W_KALKA
AND KADKY EQ W_KADKY
AND TVERS EQ W_TVERS.
IF SY-SUBRC NE 0.
CLEAR TBL_KKBW_ITEM-COST_CENTER.
ENDIF.
ENDIF.
MODIFY C_T_DATA FROM TBL_KKBW_ITEM INDEX W_TABIX.
ELSE.
DELETE C_T_DATA INDEX W_TABIX.
ENDIF.
ENDLOOP.
Thanks,
Rani.hi
plz use the below code :
WHEN '0CO_PC_PCP_03'.
SELECT KALNR KALKA KADKY TVERS KADAT KOKRS INTO it_keko "declare internal table with the mentioned fields
" also select the fields to be used in where condition
FROM KEKO
for all entries in c_t_data
WHERE KLVAR EQ c_t_data-COSTING_VARIANT
AND KADKY EQ c_t_data-COSTING_DATE
AND TVERS EQ c_t_data-COSTING_VERSION
AND MATNR EQ c_t_data-HEADER_MATERIAL
AND WERKS EQ c_t_data-HEADER_PLANT.
"sort the tables on the fields used in where.
IF SY-SUBRC EQ 0.
SELECT KOSTL "and other fields to be used in where
INTO it _ckis
FROM CKIS
for all entries in c_t_data
WHERE KOSTL NE SPACE "use c_t_data
AND KALNR EQ W_KALNR
AND KALKA EQ W_KALKA
AND KADKY EQ W_KADKY
AND TVERS EQ W_TVERS.
IF SY-SUBRC NE 0.
CLEAR TBL_KKBW_ITEM-COST_CENTER.
ENDIF.
it_data[] = c_t_data. "declare it_data same as the extract structure
delete it_data where CURRENCY_TYPE NE '20'.
LOOP AT it_data assigning <fs_data>. "use field symbols
read from it_keko into wa_keko
where
KLVAR EQ <fs_data>-COSTING_VARIANT
AND KADKY EQ <fs_data>-COSTING_DATE
AND TVERS EQ <fs_data>-COSTING_VERSION
AND MATNR EQ <fs_data>-HEADER_MATERIAL
AND WERKS EQ<fs_data>-HEADER_PLANT
binary search.
if sy_subrc = 0.
similarly read from the second itab
ENDIF.
ENDLOOP.
c_t_data[] = it_data[].
Pls let me know in case of any issues
Regards,
Aparna
Edited by: Aparna KS on Jun 13, 2010 11:01 PM -
I purchased a digital itunes giftcard through paypal but can't seem to find a 'code' to use to redeem the card. Could someone help me find where that code would be found? I can see the paypal transaction details. jgm22
-> iTunes Cards & Codes
-
Can some body help me to develop labview code for generating pulse to drive ac servo motor
can some body help me to develop labview code for generating pulse to drive ac servo motor... i am using NI 9401 card ....tnx
Driving an AC servo motor would (I missed AC on the previous msg) requires some complex hardware. This is generally done by drivers specifically designed for this purpose. I doubt you will be able to accomplish this with the hardware you currently have and it might be cheaper to just buy a driver for it and control the speed through the driver.
-
I forgot restrictions cod in ipad air1 and don't off it , please help me for recovery this cod
i forgot restrictions cod in ipad air1 and don't off it , please help me for recovery this cod...
Locked Out, Forgot Lock or Restrictions Passcode, or Need to Restore Your Device: Several Alternative Solutions
A
1. iOS- Forgotten passcode or device disabled after entering wrong passcode
2. iPhone, iPad, iPod touch: Wrong passcode results in red disabled screen
3. Restoring iPod touch after forgotten passcode
4. What to Do If You've Forgotten Your iPhone's Passcode
5. iOS- Understanding passcodes
6. iTunes 10 for Mac- Update and restore software on iPod, iPhone, or iPad
7. iOS - Unable to update or restore
Forgotten Restrictions Passcode Help
iPad,iPod,iPod Touch Recovery Mode
You will need to restore your device as New to remove a Restrictions passcode. Go through the normal process to restore your device, but when you see the options to restore as New or from a backup, be sure to choose New.
You can restore from a backup if you have one from BEFORE you set the restrictions passcode.
Also, see iTunes- Restoring iOS software.
And also see How to Recover Forgotten iPhone, iPad Restrictions Passcode. -
Hi folks, can someone help me with my redemption code?
have a creative cloud id made last week.
but in order to install my products I have a redemption code needed but that I can't find anywhere. can someone help me???
Thank youI have a fully companies annual subscription of 69.99 a month.
but I can only download the 30-day trial versions.
and if I want to put on them completely firedamp should I enter a redemption code. could it be that the code later emailed word?
Met vriendelijke groet,
Dave Dros
Van: "hans-g." <[email protected]<mailto:[email protected]>>
Beantwoorden - Aan: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>>
Datum: dinsdag 21 oktober 2014 10:03
Aan: iMac <[email protected]<mailto:[email protected]>>
Onderwerp: Hi folks, can someone help me with my redemption code? have a creative cloud id made last week. but in order to install my products I have a redemption code needed but that I can't find anywhere. can someone help me??? Thank you
Hi folks, can someone help me with my redemption code? have a creative cloud id made last week. but in order to install my products I have a redemption code needed but that I can't find anywhere. can someone help me??? Thank you
created by hans-g.<https://forums.adobe.com/people/hans-g.> in Adobe Creative Cloud - View the full discussion<https://forums.adobe.com/message/6850359#6850359> -
Please help me on inter-company code configuration steps
Hi FICO Gurus,
Please can you help me on inter-company code configuration steps and accounting entries for the same.
Thanks for your help!!...
Thanks & Regards,
Kiranguys I still need help on this one...Thanks!
-
My iphone 4 is lost, who can help me find the iccid code of the SIM card in my iphone,my iphone's IMEI:01**********117.
plaese send the iccid code to my E-mail Box.
Thanks a lot.
<Personal Information Edited by Host>Will do, if that's the only option I have. Thanks for the quick response
-
HELP WITH AN OLDER VERSION CODE!!!!!
I am trying to figure out how to convert a code from an older version into JDK1.3.1_01.
Please HELP!
Here is my code............
mport java.awt.*;
import java.applet.*;
public class Race extends Applet {
private Button myButton; //use a button to start the race.
int race_square; //record the race square 70.
int t_square; //record the tortoise's position.
int h_square; //record the hare's position.
int clock; //record clock ticks.
public void init()
myButton=new Button("Start Clock") ; //add button to the top of panel.
add("North",myButton);
reset_v();
public void reset_v()
race_square=70; // total squares is 70
t_square=1; //start point =1
h_square=1; //start point=1
clock=0; //reset the clock to zero.
public void race() {
int i=0; //set some integer varibles.
int t_random=0; //random number for tortoise.
int h_random=0; //random number for hare.
Graphics g=getGraphics(); //define graphics.
Rectangle r = bounds(); //define painting boundary.
g.drawString("BANG !!!!!",100,r.height/2-80);
g.drawString("AND THEY'RE OFF !!!!!",100,r.height/2-70);
g.drawString(Integer.toString(clock),r.width/2,50); //show the zero clock time.
do{
try { Thread.sleep(1000);} //clock ticks 1 second.
catch (InterruptedException e){}
clock++;
g.setColor(Color.lightGray); //clear all the old drawings
g.fillRect(0,0,r.width,r.height);
g.setColor(Color.black);
g.drawString(Integer.toString(clock),r.width/2,50); //show the clock time.
t_random=getrandom(); // FOR TORTOISE
if (t_random<=5) t_square+=3; // 50% fast plod: 3 squares to the right.
else if (t_random>5 && t_random<=7)t_square-=6; // 20% slip: 6 squares to the left.
else t_square+=1; // 30% slow plod: 1 square to the right.
h_random=getrandom(); //FOR HARE
if (h_random<=2) {} // 20% sleep: not move at all.
else if (h_random>2 && h_random<=4)h_square+=9;// 20% big hop: 9 squares to the right.
else if (h_random==5) h_square-=12; // 10% big slip: 12 squares to the left.
else if (h_random>5 && h_random<=8)h_square+=1;// 30% slow hop: 1 square to the right.
else h_square-=2; // 20% small slip: 2 aquares to the left.
if(t_square<=0) t_square=1; //always start from 1.
if(t_square>race_square)t_square=race_square;
if(h_square<=0) h_square=1; //always start from 1.
if(h_square>race_square)h_square=race_square;
g.setColor(Color.red); //draw the tortoise's path: use red color.
g.fillRect(5,r.height/2-5,5*t_square,5);
g.drawString("T",5*t_square,r.height/2-7);
g.setColor(Color.blue); //draw the hare path: use blue color.
g.fillRect(5,r.height/2+1,5*h_square,5);
g.drawString("H",5*h_square,r.height/2+17);
g.setColor(Color.black); //draw the race squares.
g.drawLine(5,r.height/2,5+5*race_square,r.height/2);
for(i=5;i<=5+5*race_square;i+=5)
g.drawLine(i,r.height/2-5,i,r.height/2+5);
if (t_square==h_square &&t_square!=race_square) // tortoise bites the hare.
g.drawString("OUCH!!!",5+5*h_square,r.height/2-16);
}while ( t_square=race_square && h_square=race_square && t_square<=5+5*race_square;i+=5)
g.drawLine(i,r.height/2-5,i,r.height/2+5);
g.drawString("T",5,r.height/2-7); //mark tortoise
g.drawString("H",5,r.height/2+17); //mark hare
public int getrandom()
return( 1+(int)(Math.random()*10)); // generating the random number 1 to 10.
public boolean action(Event e, Object arg)
if (e.target instanceof Button)
reset_v(); //reset the initial variables.
race(); //use the button the start the race.
return true;You posted this yesterday, at
http://forum.java.sun.com/thread.jsp?forum=54&thread=185330
The code you've posted doesn't seem to include Ilikejava's suggested changes - which are, as far as I can tell, the major changes required to bring your applet in line with Java 1.3.
It will be easier to help if you show what is wrong with your code, if it's generating a compiler error message or throwing an exception.
Regards,
-Troy
Maybe you are looking for
-
How to -format text in web dynpro?
Hi all, I want to display text messages in web dynpro in different colors. and also to display some text in bold, some in italics etc How can i achieve that? Points assured for help?
-
GI quantity Delta issue with 2LIS_02_SCL
Hi Friends ! We are facing delta issue in the BI Prod. Hence to look into the issue, performed few steps in Test environment to check whether delta is performing or not. Mentioned below are the steps which are carried : 1. BW Setup a. Deletion of que
-
Rowlevel secuirty in Crystal reports when integrated in Enterprise portal
I have a very simple crystal report which is developed against ECC data using the Open Sql Driver. Do I have to included some kind of code/logic in the report design for the SAP row-level security that already exists on SAP server to pass to the Crys
-
Material list not showing after saving the sales document
Hi any body can give the answer for this question : AFTER SAVING THE SALES ORDER MATERIAL LIST IS NOT SHOWING . Thanks in advance
-
BI Composer - Error of Invalid BIPS Connection error
Hello Experts - When we select the subject area to create analysis in BI composer then we get "Invalid BIPS Connection" error. This mught not be related to BI COmposer. Could you help us here in debugging this issue. Thank you!