Αποστολέας Θέμα: Εκτύπωση πολλαπλών **...  (Αναγνώστηκε 2233 φορές)

geoAlex

  • Ομάδα διαγωνισμάτων 2012
  • *
  • Μηνύματα: 23
Εκτύπωση πολλαπλών **...
« στις: 06 Ιαν 2012, 08:10:55 μμ »
Μελέτη περίπτωσης.
Ζητείται να περιγραφεί αλγόριθμος ο οποίος θα εμφανίζει το εξής συνδυασμό από αστεράκια με χρήση  της ΓΙΑ:
*
***
*****
*******
Μια ενδεικτική υλοποίηση του αλγορίθμου θα μπορούσε να γίνει με μια ΓΙΑ εμφωλευμένη σε ένα ΓΙΑ, δηλαδή:

Για i από 1 μέχρι 7 με_βήμα 2
  Για j από 1 μέχρι i
    Εμφάνισε "*"
  Τέλος_επανάληψης
Τέλος_επανάληψης

Το θέμα όμως είναι ότι ο εσωτερικός βρόχος υλοποιείται σε νέα γραμμή και δεν αποτυπώνει τα “*” το ένα δίπλα στο άλλο. Υπάρχει εντολή που απενεργοποιεί την εκτέλεση της “/newline” για κάποιες επαναλήψεις;  :-\

ΥΓ. Ο αλγόριθμος μπορεί να υλοποιηθεί και με την χρήση πολλαπλών ΑΝ, δεν είναι όμως αυτό το ζητούμενο. :-[
Γιώργος Αλεξίου

Πανάγος94

  • Βετεράνος
  • ****
  • Μηνύματα: 65
  • what doesn't kill you only makes you pissed off..
Απ: Εκτύπωση πολλαπλών **...
« Απάντηση #1 στις: 06 Ιαν 2012, 08:53:06 μμ »
εγώ το μόνο πράγμα που έχω στα υπόψη μου είναι να χρησιμοποιήσεις τον διερμηνευτή γλώσσας και στις ρυθμίσεις του να μην τσεκάρεις την επιλογή που λέει
"να μην επιτρέπεται συνένωση αλφαριθμητικών"

και επίσης ο αλγόριθμος θα μπορούσε να είναι κάπως έτσι:

Αλγόριθμος ασκ
Σ ← ""
Για ι από 1 μέχρι 1
  Σ ← ""
  Για κ από 1 μέχρι 4
    Σ ← Σ + "*"
    Εμφάνισε Σ
  Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος ασκ


ελπίζω να βοήθησα  ;D

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 988
Απ: Εκτύπωση πολλαπλών **...
« Απάντηση #2 στις: 06 Ιαν 2012, 09:24:37 μμ »
Δοκίμασε
Κώδικας: [Επιλογή]
Για i από 1 μέχρι 7 με_βήμα 2
  Για j από 1 μέχρι i
    Εμφάνισε "* "
  Τέλος_επανάληψης
  Εμφάνισε ""
Τέλος_επανάληψης

geoAlex

  • Ομάδα διαγωνισμάτων 2012
  • *
  • Μηνύματα: 23
Απ: Εκτύπωση πολλαπλών **...
« Απάντηση #3 στις: 06 Ιαν 2012, 10:16:36 μμ »
Ευχαριστώ Πανάγος94 για την επισήμανση στον διερμηνευτή,  :) ο αλγόριθμος που προτείνεις με βοήθησε σε αυτό (μιας και ζητάω περιττό αριθμό από "*"):

Κώδικας: [Επιλογή]
Σ ← ""
Για i από 1 μέχρι 7 με_βήμα 2
  Σ ← ""
  Για j από 1 μέχρι i
    Σ ← Σ + "*"
  Τέλος_επανάληψης
  Εμφάνισε Σ
Τέλος_επανάληψης

Το ωραίο είναι ότι αν τοποθετήσω το "Εμφάνισε Σ" μέσα στο 2ο loop του Για, δηλαδή:
Κώδικας: [Επιλογή]
Σ ← ""
Για i από 1 μέχρι 7 με_βήμα 2
  Σ ← ""
  Για j από 1 μέχρι i
    Σ ← Σ + "*"
    Εμφάνισε Σ
  Τέλος_επανάληψης
Τέλος_επανάληψης
τότε θα έχω την εμφάνιση ελατοειδούς κατατομής κατά το ήμισυ.  :P

Thnks και σε σένα sstergou για την πρότασή σου, δουλεύει άψογα.


Γιώργος Αλεξίου