Γενικό Λύκειο > Τμηματικός προγραμματισμός

Υλοποίηση Ακέραιου Μέρους

(1/4) > >>

progmat:
Καλησπέρα σας,

μπορούμε να υλοποιήσουμε στη ΓΛΩΣΣΑ δική μας συνάρτηση για το Α_Μ(); Δηλαδή να γράψουμε μια συνάρτηση που να κάνει την ίδια δουλειά με την Α_Μ() χωρίς φυσικά να χρησιμοποιήσουμε την Α_Μ(); Ευχαριστώ για το χρόνο σας!

akalest0s:
Ίσως όχι η πιο κομψή λύση, still it gets the job done.

--- Κώδικας: Javascript ---ΠΡΟΓΡΑΜΜΑ εκτός_υλοποίησηΣυνΑ_ΜΜΕΤΑΒΛΗΤΕΣ  ΠΡΑΓΜΑΤΙΚΕΣ: αΑΡΧΗ  ΔΙΑΒΑΣΕ α  ΓΡΑΨΕ custom_A_M(α)ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ! ==================ΣΥΝΑΡΤΗΣΗ custom_A_M(α): ΑΚΕΡΑΙΑΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: i  ΠΡΑΓΜΑΤΙΚΕΣ: αΑΡΧΗ  i <- 0  ΟΣΟ i <= Α_Τ(α) ΕΠΑΝΑΛΑΒΕ    ΑΝ i < Α_Τ(α) ΚΑΙ i + 1 > Α_Τ(α) ΤΟΤΕ      custom_A_M <- i    ΤΕΛΟΣ_ΑΝ    i <- i + 1  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
υγ> αν δεν θες ούτε Α_Τ, τότε πάρε περιπτώσεις χωριστά "αν α=>0" και "αν α<0"

ApoAntonis:
@ akalestos,
 αν το a είναι αρνητικός, επιστρέφεις θετική τιμή
και νομίζω ότι στην περίπτωση που έχουμε δεκαδικό μέρος μηδέν δεν δουλεύει σωστά


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


--- Κώδικας: ---
i <- 0
ΟΣΟ ( i < a) ΕΠΑΝΑΛΑΒΕ
  i <-i+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ i = a TOTE
  AM<- i
ΑΛΛΙΩΣ
  AM <- i-1
ΤΕΛΟΣ_ΑΝ


--- Τέλος κώδικα ---

akalest0s:
Έχεις δίκιο. Η περίπτωση μηδενικού δεκαδικού μέρους, λύνεται απλά με ένα = στην πρώτη ανισότητα της Αν.
Τώρα πως μου ήρθε να γυρίζω πάντα θετικό αριθμό, δεν ξέρω! Τελείως άκυρο, δεν ξέρω τι σκεφτόμουν!  :D
Εύκολα διορθώνεται και αυτό, αλλά ο δικός σου κώδικας είναι καλύτερος, οπότε δεν μπαίνω στο κόπο να διορθώσω.

akalest0s:

--- Παράθεση από: ApoAntonis στις 01 Φεβ 2020, 10:58:53 μμ ---παίρνω δεδομένο ότι το ακέραιο μέρος το "χρησιμοποιούμε" μόνο για θετικούς:

--- Τέλος παράθεσης ---

Γράφω το ίδιο και για αρνητικούς, αν το θέλει ο progmat (με εμφώλευση, φυσικά υπάρχουν και άλλοι τρόποι)

--- Κώδικας: ---ΣΥΝΑΡΤΗΣΗ ΑΜ(α): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i
  ΠΡΑΓΜΑΤΙΚΕΣ: α
ΑΡΧΗ
  i <- 0
  ΟΣΟ i <= Α_Τ(α) ΕΠΑΝΑΛΑΒΕ
    i <- i + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ i = α ΤΟΤΕ
    AMv2 <- i
  ΑΛΛΙΩΣ
    ΑΝ α >= 0 ΤΟΤΕ
      AMv2 <- i - 1
    ΑΛΛΙΩΣ
      AMv2 <- -(i - 1)
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
--- Τέλος κώδικα ---

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση