2012-12-09 1 views
-4

내 탐색 방법()에 문제가 있습니다. 높이가 최대 높이이고 너비가 저장된 그림의 너비 합계 인 인 그림을 만들어야합니다. 앨범의 그림을 복사해야합니다 지금까지 새 그림으로 복사되고 그 그림은 explore() 메소드를 호출하여 표시됩니다. 내가 변수 가장 큰이 전체 폭을 들고 변수입니다 있으리라 믿고있어이 방법으로 어디에서 시작해야 할 지 혼동하고 있습니까?

public boolean addPicture(Picture thePicture, int where) 
{ 
int index = nPictsInAlbum; 
pictArray[index] = pictArray[index-1]; 

while(index > where) 
{ 
pictArray[where] = thePicture; 
nPictsInAlbum ++; 
} 
return true; 
} 

public void explore() 
{  
int maxHeight = 0; //max height for the picture 
int value = 0; 
int biggest = 0; 

for(int i = 0; i < pictArray.length; i++) 
{ 
nPictsInAlbum = pictArray[i]; 
if(value > maxHeight) 
{ 
biggest = value; 
maxHeight = i; 
} 
} 
+4

질문하지 않았습니다. 방금 진술을하고 코드 묶음을 게시했습니다. ** 구체적인 ** 질문을하십시오. – ApplePie

+3

* "문제가 있습니다."* [이 초보자 가이드] (http://www.patriciashanahan.com/beginner.html)로 시작하십시오. 그런 다음 * 특정 질문이있을 때 스택 오버플로 - [SSCCE] (http://sscce.org/) 형식의 들여 쓰기 된 코드를 사용하는 것이 좋습니다. –

+0

내 탐색 방법으로 작업하려면 어떻게해야합니까? – Smile13

답변

0

: 이 내가 가진 것입니다.

당신은 당신의 코드를 잘못 몇 가지 일을하고 있으며, 이러한 첫번째

  1. 당신은 변수의 서로 다른 유형의 nPictsInAlbum 여러 번 재사용되는 고정해야합니다. 너는 그렇게해서는 안된다. 나는 자바 프로그래머가 아니지만 혼란을 야기하기 때문에 적어도 다른 언어에서는 나쁜 습관이다. addPicture 메서드에서 해당 변수를 사용하여 최신 인덱스를 추적합니다. 그러나 explore 방법에서는 액세스하는 개별 그림을 임시로 저장하는 데이 방법을 사용합니다.

  2. explore 메서드에서는 그림 개체의 속성 \ 필드에 액세스하지 않습니다. 그림 개체에 어떤 속성 \ 필드가 있는지 알지 못하면 코드를 완전히 수정할 수 없습니다. 만약 이러한 두 가지 문제를 해결하는 경우

다음 논리 오류는 그래서로 바꾸어야 경우 (가변 biggest는 전체 폭이라고

  1. 가정된다 explore 방법이 더 자세한 설명이 필요합니다. 현재 사진의 높이가 이전에 저장된 사진보다 높다는 것을 알았을 때만 총 너비를 설정합니다. 상관없이 각 그림을 반복 할 때 항상 너비를 설정해야합니다.

  2. 그림의 전체 너비를 설정하면 추가하지 않고 전체 그림을 바꾸게됩니다. 귀하의 예에서 biggest = value은 그것을 추가하지 않을 것입니다. 당신은 biggest = biggest + value 당신은 당신이 방법을 할 때 시간이 걸릴 수 있는지 확인하려면


그렇게 할 것입니다. 무엇이 할 것인지, 어떤 변수가 필요한지, 다른 변수를 액세스 할 것인지, 그리고 무엇을 할 것인지에 대해 전술적으로 생각하십시오.

  1. 내가 모든 사진에서 최대 높이를 결정하는 코드의 재사용 가능한 조각을 필요 : 예를 들어, explore의 점은이 같은 생각 최대 높이와 ​​전체 폭을 결정하는 것입니다. 또한 모든 사진의 전체 폭을 가져옵니다.
  2. 따라서 변수 maxHeight와 totalWidth가 필요합니다.
  3. 이 코드에서 일련의 그림을 반복해야합니다.
  4. 그 루프에서, 그림의 높이가 maxHeight보다 큰지 확인해야합니다.그렇다면 maxHeight를 그림의 높이로 설정해야합니다.
  5. 그림의 높이에 액세스하려면 그림의 개체 구조가 무엇인지 모르기 때문에 picture.height 속성을 사용해야합니다.
  6. 사진의 높이에 관계없이 사진의 너비를 누적 합계에 더해야합니다. 따라서 사용하겠습니다. totalWidth = totalWidth + picture.width

희망 사항은 코드를 정리하고 잘 작동하는 데 도움이되기를 바랍니다.