Gallahad23 Δημοσ. 1 Δεκεμβρίου 2011 Δημοσ. 1 Δεκεμβρίου 2011 Γεια σας παιδια, Ειμαι καινουργιος στον χωρο του προγραμματισμου και θα ηθελα την βοηθεια σας σε μια ασκηση. εχω βρει μια ασκκηση που ναι μεν καταλαβαινω οτι τηα παει με αναδρομη (λογικα) αλλα θα ηθελα αν γινετε και εχετε την διαθεση φυσικα να με βοηθήσετε. Η ασκηση ειναι η εξης: πρεπει να κατασκευασουμε ενα προγραμμα που στο τερματικο του θα εμφανιζει τριγωνα με το στοιχειο *. π.χ ενα τριγωνο μεγεθους 3 ειναι το παρακατω * ** *** το μεγεθοσ του τριγωνου θα εκσαρταται απο τον αριθμο που θα εισαγει ο χρηστης. Αν δωθει ενασ αρνητικος αριθμος το τριγωνο θα πρεπει να ειναι απο την αλλη πλευρα. π.χ * ** *** επισης δν πρεπει να χρισημοποιηθουν οι εντολεσ for, while kai do-while. Ευχαριστω πολυ
xlomo Δημοσ. 1 Δεκεμβρίου 2011 Δημοσ. 1 Δεκεμβρίου 2011 (επεξεργασμένο) Ρίξε μια ματιά σε αυτό > private void Pyramid(int Max, int Line, int Pos){ int line=Line; int pos = Pos; if(line != Max){ if(pos != line){ System.out.print("*"); Pyramid(Max,line,Pos+1); }else{ System.out.println(); line++; Pos=0; Pyramid(Max, line, Pos); } } } Max είναι ο αριθμός που θα δίνει ο χρήστης και θα περνάει κάθε φορά ως παράμετρος για να ξέρει η εφαρμογή που να σταματήσει Line είναι η τρέχουσα γραμμή που τυπώνει το πρόγραμμα Pos είναι η θέση που θα γραφτεί το επόμενο * η κλήση της συνάρτησης γίνεται έτσι : Pyramid(6,0,0); αντί για 6 δώσε την τιμή που δίνει ο χρήστης Δουλεύει μόνο για θετικούς δεν κατάλαβα ακριβώς τη διαφορά στους αρνητικούς αλλά κάνε και εσύ το υπόλοιπο. Αν δεν καταλαβαίνεις τι γίνεται ρώτα ξανά. Επεξ/σία 2 Δεκεμβρίου 2011 από xlomo
nilosgr Δημοσ. 1 Δεκεμβρίου 2011 Δημοσ. 1 Δεκεμβρίου 2011 goto επιτρεπεται; :P Λοιπον σοβαρα, για να σε βοηθησω, ολες οι αναδρομες εχουν μια συνθηκη τερματισμου και ενα "εμεσο" loop που το κανεις με αναδρομικη κληση.
yincyun Δημοσ. 2 Δεκεμβρίου 2011 Δημοσ. 2 Δεκεμβρίου 2011 Αν δεν είναι πολύ αργά τσέκαρε ένα δικό μου κώδικα για τρίγωνο και τροποποίησέ το στη δική σου άσκηση.. >// triangle // * // ** // *** // **** // ***** // ****** public class triangle { public static void main(String[] args) { int upsos = 6; String c = "*"; //klisi tis static me8odou pou ektuponei to sxima Draw(upsos,c); } public static void Draw(int b , String c){ // loop b foron gia ka8e grammi for (int i=0;i<=b;i++) { //loop b-i foron gia tin ektuposi ton kenon for (int j=0;j<b-i;j++){ System.out.print(" "); } //loop b foron gia tin ektuposi tou xaraktira for (int j=b-i;j<b;j++){ System.out.print(c); } /* sunartisi print gia tin allagi grammis otan ftasei se platos tin timi tou upsous*/ System.out.println(); } } }
Gallahad23 Δημοσ. 5 Δεκεμβρίου 2011 Μέλος Δημοσ. 5 Δεκεμβρίου 2011 Σας ευχαριστω ολους σας για την βοηθεια ρε παιδια!!! Ειμαι οκ
odus Δημοσ. 29 Νοεμβρίου 2014 Δημοσ. 29 Νοεμβρίου 2014 Καλησπέρα παιδιά!! Θέλω κι εγώ βοήθεια σε κάτι παρόμοιο: Υποθέτουμε ότι m<n η συνάρτηση θα τυπώνει 2(n-m)+1 γραμμές με αστερίσκους όπου η πρώτη γραμμή έχει m αστερίσκους η επόμενη m+1 μέχρι τη γραμμή με n αστερίσκους. Μετά επαναλαμβάνεται μειώνοντας κατά 1 τους αστερίσκους μέχρι να γίνουν m. Για παράδειγμα η κλήση της trigono(4, 8) θα τυπώσει το: **** ***** ****** ******* ******** ******* ****** ***** **** μήπως μπορεί να βοηθήσει κανείς?
tr3quart1sta Δημοσ. 29 Νοεμβρίου 2014 Δημοσ. 29 Νοεμβρίου 2014 αποτι βλεπω μερικοι χρησιμοποιειτε κεφαλαια στην αρχη των ονοματων μεταβλητων και συναρτησεων, το οποιο στην Java δεν ειναι και τοσο καλο 1
defacer Δημοσ. 30 Νοεμβρίου 2014 Δημοσ. 30 Νοεμβρίου 2014 μήπως μπορεί να βοηθήσει κανείς? Αν έκανες τον κόπο να διαβάσεις το θέμα στο οποίο πόσταρες, παραπάνω υπάρχει έτοιμος κώδικας FFS που τυπώνει τρίγωνο. Δεδομένου ότι αυτό που θες εσύ είναι στην ουσία δύο τρίγωνα με κολλημένες πλάτες υποθέτω ότι μπορεί να σε βοηθήσει αν το μελετήσεις. Εκτός αν εννοείς να σε βοηθήσει == να σου το δώσει μασημένη μπουκιά. 1
Moderators Gi0 Δημοσ. 30 Νοεμβρίου 2014 Moderators Δημοσ. 30 Νοεμβρίου 2014 Φτου! ..παρα 1 μερα και κατι, δεν πιασαμε τα 4 χρονια φτυαρι
odus Δημοσ. 30 Νοεμβρίου 2014 Δημοσ. 30 Νοεμβρίου 2014 Αν έκανες τον κόπο να διαβάσεις το θέμα στο οποίο πόσταρες, παραπάνω υπάρχει έτοιμος κώδικας FFS που τυπώνει τρίγωνο. Δεδομένου ότι αυτό που θες εσύ είναι στην ουσία δύο τρίγωνα με κολλημένες πλάτες υποθέτω ότι μπορεί να σε βοηθήσει αν το μελετήσεις. Εκτός αν εννοείς να σε βοηθήσει == να σου το δώσει μασημένη μπουκιά. Εννοείται πως διάβασα τις παραπάνω λύσεις, γι'αυτό και έγραψα το δικό μου πρόβλημα εδώ αν το παρατήρησες, και η μόνη δυσκολία που βρίσκω στο πρόβλημα μου είναι και η μοναδική του διαφορά με το πρόβλημα του Gallahad23, η αναστροφή δηλαδή του τριγώνου από τη μεσαία γραμμή και κάτω. Αυτό ήλπιζα ότι κάποιος να με βοηθούσε να κατανοήσω.
Aztec Δημοσ. 30 Νοεμβρίου 2014 Δημοσ. 30 Νοεμβρίου 2014 http://www.insomnia.gr/topic/547650-χρήση-αναδρομής-σε-μέθοδο-της-java/page-2#entry53596300
t(o.ot) Δημοσ. 2 Δεκεμβρίου 2014 Δημοσ. 2 Δεκεμβρίου 2014 Καλησπέρα παιδιά!! Θέλω κι εγώ βοήθεια σε κάτι παρόμοιο: Υποθέτουμε ότι m<n η συνάρτηση θα τυπώνει 2(n-m)+1 γραμμές με αστερίσκους όπου η πρώτη γραμμή έχει m αστερίσκους η επόμενη m+1 μέχρι τη γραμμή με n αστερίσκους. Μετά επαναλαμβάνεται μειώνοντας κατά 1 τους αστερίσκους μέχρι να γίνουν m. Για παράδειγμα η κλήση της trigono(4, 8) θα τυπώσει το: **** ***** ****** ******* ******** ******* ****** ***** **** μήπως μπορεί να βοηθήσει κανείς? Ο αλγόριθμος είναι απλός: Για χ = m έως χ = n, τύπωσε χ αστερίσκους Για χ = n - 1 έως χ = m, τύπωσε χ αστερίσκους Σε ποιο σημείο ακριβώς έχεις πρόβλημα;
odus Δημοσ. 5 Δεκεμβρίου 2014 Δημοσ. 5 Δεκεμβρίου 2014 Ευχαριστώ για τη βοήθεια! t.(o.ot) εκεί ακριβώς είχα το πρόβλημα, το είχα γράψει έτσι και αντί να μου αντιστρέφει το τρίγωνο έκανε αυτό: **** ***** ****** ******* ******** **** ******** ***** ******** ****** ******** ******* ******** αλλά μετά διαπίστωσα ότι είχα κάνει μια μεγάλη βλακεία στα for και στην εμφώλευση,όμως το βρήκα με τη βοήθειά σας!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα