मैं सराहना ओपी जावा के लिए नया है, इसलिए तरीकों पर विचार किया जा सकता है "उन्नत", फिर भी मुझे लगता है कि यह दिखाने के लिए कि कैसे आप एक हमला कर सकते हैं इस समस्या का उपयोग कर के लायक है इसे टुकड़ों में तोड़कर समस्या।
public void printTriangleLine(int rowNumber) {
// we have to work out what to put here
}
हम रिक्त स्थान की कुछ संख्या है, तो सितारों की कुछ संख्या मुद्रित करने के लिए है:
के, एक ही पंक्ति मुद्रित करने के लिए एक विधि लेखन विधि है जिसके नंबर लाइन यह है कह के बारे में सोचते हैं।
उदाहरण को देखते हुए, मैं देख सकता हूं कि (यदि पहली पंक्ति 0 है) यह (5-पंक्ति संख्या) रिक्त स्थान और (2 * पंक्ति संख्या + 1) सितारों है।
की एक विधि है कि हमारे लिए पात्रों की पंक्तियों प्रिंट आविष्कार है, और इसका इस्तेमाल करते हैं:
public void printTriangleLine(int rowNumber) {
printSequence(" ", 5 - rowNumber);
printSequence("*", 2 * rowNumber + 1);
System.out.println();
}
कि जब तक हम वास्तव printSequence() लिखने संकलन नहीं होगा, इसलिए की है कि करते हैं:
public void printSequence(String s, int repeats) {
for(int i=0; i<repeats; i++) {
System.out.print(s);
}
}
अब आप परीक्षण प्रिंटसेक्वेंस अपने आप पर कर सकते हैं, और आप परीक्षण प्रिंट ट्राइग्लिंगलाइन स्वयं ही कर सकते हैं। अभी के लिए तुम सिर्फ यह उन तरीकों main()
public static void main(String [] args) {
printSequence("a",3);
System.out.println();
printTriangleLine(2);
}
में सीधे फोन करके बाहर की कोशिश कर सकते हैं ... इसे चलाने और (अपनी आंखों से) सत्यापित करें कि यह आउटपुट:
aaa
*****
जब आप में आगे मिलता है प्रोग्रामिंग, आप यूनिट परीक्षण फ्रेमवर्क जैसे जुनीट का उपयोग करना चाहेंगे। मुद्रण के बजाय, आप printTriangleLine की तरह अधिक होने की संभावना लिखने बातें चाहते एक स्ट्रिंग (जो आप अपने कार्यक्रम में उच्च ऊपर से प्रिंट चाहते हैं) वापस जाने के लिए, और आप जैसे आदेशों के साथ अपने परीक्षण को स्वचालित होगा:
assertEquals(" *****", TriangleDrawer.triangleLine(2));
assertEquals(" *", TriangleDrawer.triangleLine(0))
अब हम हमारे पास त्रिकोण बनाने के लिए आवश्यक टुकड़े हैं।
public void drawTriangle() {
for(int i=0; i<5; i++) {
printTriangleLine(i);
}
}
हमने जो कोड लिखा है, वह अन्य लोगों द्वारा दिए गए उत्तरों की तुलना में थोड़ा लंबा है। लेकिन हम प्रत्येक चरण का परीक्षण करने में सक्षम हैं, और हमारे पास विधियां हैं जिनका उपयोग हम अन्य समस्याओं में फिर से कर सकते हैं। वास्तविक जीवन में, हमें किसी समस्या को तोड़ने के बीच सही संतुलन ढूंढना होगा, या बहुत कम तरीकों से। मैं वास्तव में बहुत कम तरीकों को पसंद करते हैं।
अतिरिक्त क्रेडिट के लिए:
- ताकि बजाय इस अनुकूलन System.out के मुद्रण, तरीकों एक स्ट्रिंग वापसी - अपने मुख्य() में तो आप का उपयोग
System.out.print(drawTriangle())
- ताकि इस अनुकूलित कर सकते हैं आप विभिन्न आकारों के लिए drawTriangle() से पूछ सकते हैं - यानी, आप
drawTriangle(3)
या drawTriangle(5)
- को बड़े त्रिकोणों के लिए काम कर सकते हैं। संकेत: आपको printTriangleLine() को एक नया "चौड़ाई" पैरामीटर जोड़ने की आवश्यकता होगी।
यहां आप अपना समाधान ढूंढ सकते हैं- http://java4732.blogspot.in/2016/08/pyramid-programs-in-java.html – Umesh