DumeNuke
Τιμώμενο Μέλος
Μπορώ με κάποιο τρόπο να χρησιμοποιήσω ως παράμετρο συνάρτησης μια στήλη δισδιάστατου πίνακα; Δηλαδή αντί αν εισάγω ολόκληρο τον πίνακα να εισάγω μόνο την στήλη που χρειάζομαι κάθε φορά; Δεν ξέρω πως να το γράψω :/
Νομίζω όχι. Από όσο θυμάμαι, μπορείς να στείλεις είτε ολόκληρο τον πίνακα ή μεμονωμένα κελιά του. Αν θες να στείλεις ολόκληρα σειρά ή στήλη, πρέπει να ονοματίσεις 1 προς 1 τα κελιά που την απαρτίζουν.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Γίνεται να δηλώσω μια μεταβλητή ως Πραγματική και να τις δώσω ακέραια τιμή; (π.χ. το 3);
Ναι, γίνεται. Αν ξέρεις ότι, ενώ η αρχική τιμή της μεταβλητής είναι ακέραια, στην πορεία αποκτά και δεκαδικά, τότε την ορίζεις ως πραγματική και εκχωρείς ακέραια τιμή.
Απλώς, άμα στην πορεία ΔΕΝ αποκτά δεκαδικά (παραμένει ακέραια) ενδέχεται να σου περικοπούν μόρια, γιατί ο βαθμολογητής θα πιστέψει ότι ξέρεις την διαφορά Πραγματικής και Ακέραιας μεταβλητής.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Ενώ η συνθήκη εξεταζόταν στην αρχή της επανάληψης, το βέλος που οδηγούσε στο βρόχγο ήταν αυτό του ΟΧΙ (Όσο ΟΧΙ(συνθήκη) επανάλαβε). Κάτι τέτοιο δεν υπάρχει μέσα στο βιβλίο και πολλοί δεν ξέραμε αν δικαιούμασταν να τροποποιήσουμε τη συνθήκη. Αντιθέτως, αν αντί για Όσο βάζαμε Μέχρις_ότου, με εσωτερικό Αν (για να εξασφαλίσουμε τον 1ο έλεγχο της Όσο που δεν προσφέρει η Μέχρις_ότου), τροποιούσαμε το διάγραμμα σε ένα βαθμό, αλλά αφήναμε αναλλοίωτη τη συνθήκη.
Υπήρξε μεγάλη αντίδραση μετά την παραλαβή των θεμάτων, δεδομένου ότι άλλοι υποστήριζαν ότι το Όσο είναι σωστό, άλλοι το Μέχρις_ότου και άλλοι ότι αμφότερα είναι σωστά. Το γεγονός είναι ότι όσοι έβαλαν Όσο τους το πήραν 100% σωστό. Εμένα που έβαλα Μέχρις_ότου, μου έκοψε 2 μόρια ο ένας εξεταστής και τίποτα ο δεύτερος.
Πάντως, δεδομένου του σαματά που έγινε πέρσυ στο διάγραμμα ροής, το αναμενόμενο είναι να βάλουν εντελώς normal ΔΡ φέτος και να κάνουν πατάτα σε κάποιο άλλο ερώτημα...
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Κάπου μέσα στη συνάρτηση πρέπει να γράψεις την εντολή:
Σ(χ) <- ....
Θες εντολή εκχώρησης για την συνάρτηση. Το υπόλοιπο είναι ολόσωστο!
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Πχ:
....
Κάλεσε ΔΙΑΔΙΚΑΣΙΑ1(μεταβλητή1,μεταβλητή2,μεταβλητή3,...,μεταβλητήΝ)
.....
ΔΙΑΔΙΚΑΣΙΑ1(variable1,variable2,variable3,....,variableN)
....
Απαραίτητη προϋπόθεση για την χρήση υποπρογραμμάτων είναι:
α) Να υπάρχει ίδιο πλήθος μεταβλητών μέσα στην παρένθεση, κατά την κλήση του υποπρογράμματος και
β) Να υπάρχει αντιστοιχία 1-1 στο είδος των μεταβλητών. Αν η μεταβλητή1 είναι ΛΟΓΙΚΗ, η variable1 πρέπει να είναι επίσης ΛΟΓΙΚΗ.
Τα ονόματα ΔΕΝ είναι απαραίτητο να είναι τα ίδια, αλλά ΔΕΝ δημιουργείται κανένα πρόβλημα αν είναι.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Αλγόριθμος Φυσαλίδα
___Για i από 2 μέχρι N
______Για j από N μέχρι i
_________Αν A[j-1]>A[j] τότε
____________temp <- A[j]
____________A[j] <- A[j-1]
____________A[j-1] <- temp
_________Τέλος_αν
______Τέλος_επανάληψης
___Τέλος_επανάληψης
Τέλος_αλγορίθμου
Ξεκινώντας από μέσα προς τα έξω (Αν, εσωτερικό Για, εξωτερικό Για):
Αν ικανοποιείται η συνθήκη, δηλαδή, το πάνω στοιχεία είναι μεγαλύτερο από το κάτω, τότε αλλάζουν θέση, ώστε να υπάρχει αύξουσα σειρά μεταξύ των δύο τους.
Ο εσωτερικός βρόγχος ξεκινάει από το τελευταίο στοιχείο του πίνακα και ανεβαίνει προς τα πάνω, μέχρι να βρει το στοιχείο i, ελέγχοντας και εφαρμόζοντας τη συνθήκη στα στοιχεία j και j-1.
Ο εξωτερικός βρόγχος, ουσιαστικά, υπάρχει ως φράγμα για τον εσωτερικό. Ξεκινάει από την τιμή 2 γιατί, αν ξεκινούσε από την 1, το j θα ανέβαινε ως την πρώτη θέση και θα σύγκρινε το στοιχείο της με το απο πάνω... το οποίο δεν υπάρχει (δεν ορίζεται A[0]. Επίσης γίνεται για την βελτιστοποίηση της ταχύτητας εκτέλεσης τους αλγορίθμου (εξηγείται παρακάτω).
Για να φαίνεται σχηματικά, έστω ο πίνακα [5,9,4,7,0,2,1]
Ξεκινάει να εκτελείται ο αλγόριθμος, το i παίρνει την τιμή 2 και εισέρχεται στον εσωτερικό βρόγχο. Το j παίρνει την τιμή 7 και ελέγχεται το 7ο και 6ο κελί. Το 1<2, άρα αντιμετίθονται.
[5,9,4,7,0,1,2]
To j παίρνει την τιμή 6 και ελέγχεται το 6ο και 5ο κελί. 1>0 άρα δεν αλλάζει τίποτα.
Η διαδικασία συνεχίζεται ως εξής:
j:5 -> [5,9,4,0,7,1,2]
j:4 -> [5,9,0,4,7,1,2]
j:3 -> [5,0,9,4,7,1,2]
j:2 -> [0,5,9,4,7,1,2]
Πλέον, το μικρότερο στοιχείο του πίνακα βρίσκεται στην 1η θέση. Το i αυξάνεται και γίνεται 3 και ξαναρχίζει από την αρχή ο εσωτερικός βρόγχος:
j:7 -> [0,5,9,4,7,1,2]
j:6 -> [0,5,9,4,1,7,2]
j:5 -> [0,5,9,1,4,7,2]
j:4 -> [0,5,1,9,4,7,2]
j:3 -> [0,1,5,9,4,7,2]
Αν ο εσωτερικός βρόγχος δεν σταματούσε στο i, αλλά στο 2, ΔΕΝ θα υπήρχε πρόβλημα. Θα γίνονταν κανονικά η σύγκριση 1>0 και η σειρά θα έμενε ίδια. ΟΜΩΣ, κατά την πρώτη ταξινόμηση, βεβαιωθήκαμε ότι το 1ο στοιχείο του πίνακα είναι το μικρότερο δυνατό. Άρα, ο έλεγχος αν το 1 είναι μικρότερο του 0 είναι περιττός.
Κατά παρόμοιο τρόπο, μετά το πέρας της 3ης εξωτερικής επανάληψης θα έχουμε:
j:4 -> [0,1,2,5,9,4,7]
Κατά τις 2 πρώτες εκτελέσεις βεβαιωθήκαμε ότι το 1ο στοιχείο είναι το μικρότερο, το 2ο στοιχείο είναι το 2ο στη σειρά μικρότερο. Επομένως, είναι περιττό να ελέγξουμε το 2 με το 1 και το 1 με το 0...
Κατά την τελευταία εκτέλεση του αλγορίθμου, θα εξεταστούν ΜΟΝΟ το τελευταίο και προτελευταίο στοιχείο, θα τελειώσουν και οι δύο βρόγχοι και ο αλγόριθμος θα τερματίσει.
Ο πίνακας θα έχει την εξής μορφή:
[0,1,2,4,5,7,9]
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Αλγοριθμος που να διαβαζει ενα ακειραιο και θα εμφανιζει τους διαιρετες του και το πληθος τους?!
Διάβασε x
πληθ<-0
Για i από 1 μέχρι x
Αν x mod i=0 τότε
Εμφάνισε i
πληθ<-πληθ+1
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε πληθ
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
νομιζω για το σχολειο μπορει να το κανει και σε αλγοριθμο αυτο και αν θυμαμαι και καλα κ στο τετραδιο μαθητη ετσι πρεπει να το εχει σε μια λυμενη ασκ
Η Α_Μ(χ) αποτελεί Συνάρτηση που υπάρχει στις Βιβλιοθήκες της ΓΛΩΣΣΑΣ. Στο πλαίσιο ενός Αλγορίθμου, δεν υπάρχει η έννοια της Βιβλιοθήκης. Οπότε, γράφοντας την έκφραση Α_Μ(χ), ζητάς να εκτελεστεί μια ενέργεια που δεν έχει οριστεί. Σαν να ζητάς από μαθητή Γυμνασίου να υπολογίσει την παράγωγο: Από τη στιγμή που δεν του έχεις διδάξει τι εστί παράγωγος, δεν γίνεται να ξέρει πώς να την υπολογίσει.
Αν θες να παραμένεις πιστά μέσα στα πλαίσια του μαθήματος, δεν μπορείς να χρησιμοποιήσεις την Α_Μ(χ) σε Αλγόριθμο. Βέβαια, αυτό σημαίνει ότι δεν πρόκειται και να σου ζητήσουν το σχετικό έλεγχο, παρά μόνο σε ΠΡΟΓΡΑΜΜΑ. Κανονικά, αν ο καθηγητής θέλει να σε αναγκάσει να ελέγξεις αν ο αριθμός είναι ακέραιος, πρέπει να ζητήσει ΠΡΟΓΡΑΜΜΑ σε ΓΛΩΣΣΑ.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
αν χ=Α_Μ(χ) τοτε
εμφανισε"ακεραιος"
τελος_αν
χωρις να ειμαι σιγουρη ομως
Μόνο σε ΠΡΟΓΡΑΜΜΑ. Σε αλγόριθμο δεν ισχύει κάτι τέτοιο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
μπορει να ειναι ακυρη η ερωτηση μου αλλα για ν=1 που 8α επρεπε να ειναι ενας κοκκος στο 1ο κουτακι 8α βγαινει 2 με αυτο το τυπο
Σωστή η παρατήρηση σου. Κανονικά ο τύπος είναι
Θεωρώ ότι η έρευση αθροίσματος μέσα από επανάληψη είναι υπερβολικά απλή:
sum<-0
Για i από 1 μέχρι 64
an<-2^(i-1) !δεν είναι δυνατή η χρήση () σε όνομα μεταβλητής
sum<-sum+an
Τέλος_επανάληψης
Εμφάνισε sum
Αν αφαιρέσεις την 3η σειρά κώδικα, το υπόλοιπο είναι κοινό σε κάθε άσκηση που ζητεί να βρεθεί άθροισμα, μέσα από επαναληπτική διαδικασία. Πιο μεθοδολογία πεθαίνεις....
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Κάνε μια σούμα και βγήκε η άσκηση.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Ότι έχω κάνει μέχρι στιγμής δεν με έχει δυσκολέψει ιδιαίτερα μπορώ να πω, και το βοήθημα που χρησιμοποιώ με βοηθά απίστευτα! Όσο για τη θεωρία, κατά κύριο λογο αυτοί που έδιναν το 2014(στατιστικά στοιχεία) έχασαν περισσότερο απο'κει παρά από 3ο,4ο Θέμα,φαντάσου. Μακάρι να συνεχίσει έτσι!
Κατά τα φαινόμενα, οι έννοιες των στοιχείων που συνθέτουν ένα προγραμματιστικό περιβάλλον (συντάκτης, διερμηνευτής/μεταφραστής κτλπ) ήταν anti-SOS, αλλά οι Σκοπιές που μελετάει η Πληροφορική τα Δεδομένα ήταν super-duper-SOS...
Ό,τι να 'ναι!
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Που έχεις πρόβλημα? πρώτα φτιάξε μία συνάρτηση που δέχεται ένα έτος και επιστρέφει αν είναι δίσεκτο.
Συνάρτηση? LoL
Αυτά διδάσκονται κάπου μετά τις απόκριες... Αμφίβολο είναι αν έχουν μπει στη Δομή Επανάληψης...
Τσέκαρε τη λύση σε Φυσική γλώσσα κατά βήματα:
1. Διαβάζεις την ημέρα, τον μήνα και το έτος.
2. Θα πρέπει το έτος να είναι τετραψήφιο, δηλαδή να ανήκει στο διάστημα [1000,9999].
3. Θα πρέπει ο μήνας να είναι στο διάστημα [1,12].
4. Αν ο μήνας έχει 31 ημέρες, η ημέρα θα είναι στο διάστημα [1,31].
5. Διαφορετικά, αν έχει 30 ημέρες, θα είναι στο διάστημα [1,30].
6α. Στην εξαίρετη περίπτωση που εξετάζουμε τον Φεβρουάριο και το έτος είναι δίσεκτο, η ημέρα θα είναι στο διάστημα [1,29].
6β. Σε διαφορετική περίπτωση, θα είναι στο διάστημα [1,28].
7. Αν ο έλεγχος πραγματοποιηθεί με επιτυχία, εμφανίζεται σχετικό μήνυμα.
8. Αλλιώς, αν προκύψει σφάλμα εισαγωγής δεδομένων, εμφανίζεται το αντίστοιχο μήνυμα.
Με βάση το υπόδειγμα, προσπάθησε να αναπτύξεις το σχετικό αλγόριθμο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Διάβασε διάρκεια, μηνύματα
Αν διάρκεια ≥ 1 τότε
Αν διάρκεια ≤ 60 τότε
κλιμακωτή ← διάρκεια* 1.5
σταθερή ← κλιμακωτή
αλλιώς_αν διάρκεια ≤ 200 τότε
κλιμακωτή ← 60*1.5 + (διάρκεια - 60)*0.9
σταθερή ← διάρκεια*0.9
αλλιώς
κλιμακωτή ← 60*1.6 + 140*0.9 + (διάρκεια - 200) div 3*0.04
σταθερή ← διάρκεια div 3*0.04
Αν (διάρκεια - 200) mod 3 ≠ 0 τότε
κλιμακωτή ← κλιμακωτή + 0.04
Τέλος_αν
Αν διάρκεια mod 3 ≠ 0 τότε
σταθερή ← σταθερή + 0.04
Τέλος_αν
Τέλος_αν
Τέλος_αν
κλιμακωτή ← κλιμακωτή + μηνύματα*0.3
σταθερή ← σταθερή + μηνύματα*0.3
Αν σταθερή < κλιμακωτή τότε
Εμφάνισε "Συμφέρει η σταθερή κατά: ", κλιμακωτή - σταθερή, " ευρώ!"
αλλιώς_αν σταθερή > κλιμακωτή τότε
Εμφάνισε "Συμφέρει η κλιμακωτή κατα: ", σταθερή - κλιμακωτή, " ευρώ!"
αλλιώς
Εμφάνισε "Κοστίζουν το ίδιο!"
Τέλος_αν
Τέλος Άσκηση
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Στις Πανελλήνιες, η εκφώνηση ορίζει ξεκάθαρα: "Να υπολογίζει και να εμφανίζει...". Ζητείται, δηλαδή, να γίνει Έξοδος δεδομένων στη οθόνη. Σε τέτοια περίπτωση, η χρήση της εντολής Αποτελέσματα μπορεί κάλλιστα να θεωρηθεί λάθος και να κοστίσει μόρια (1-2 το πολύ, αλλά στο τέλος μαζεύονται). Επομένως, αν η εκφώνηση δεν ορίζει ρητά "Να γίνει χρήση της εντολής Αποτελέσματα για Έξοδο", χρησιμοποιείς την Εμφάνισε.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
https://alkisg.mysch.gr/steki/index.php?topic=5209.msg54330#msg54330
https://alkisg.mysch.gr/steki/index.php?topic=914.0
Επομένως, για το ερώτημα 3, δεν υπάρχει σαφής απάντηση.
Σχετικά με τα 1 και 2, ναι, θα πρέπει οι μεταβλητές α,β να είναι πραγματικοί αριθμοί. Το θέμα είναι ότι, μέχρι την εισαγωγή στα ΠΡΟΓΡΑΜΜΑΤΑ και τις έτοιμες ΣΥΝΑΡΤΗΣΕΙΣ, δεν υπάρχει τρόπος να διαπιστώσεις αν ένας αριθμός είναι ακέραιος ή όχι... Θα ελέγξεις το υπόλοιπο της (x mod 1)? Δεν έχει λογική υπόσταση...
Στα ΠΡΟΓΡΑΜΜΑΤΑ, μπορείς να ελέγξεις την διαφορά [χ - Α_Μ(χ)], για να διαπιστώσεις αν το χ είναι ακέραιο ή όχι. Αλλά στο πλάσιο του Αλγορίθμου δεν υπάρχει κάποια μέθοδος και απλά θεωρούμε, προς διευκόλυνση μας, ότι τα α και β είναι ακέραιοι θετικοί, κατά την είσοδο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Ωστόσο, δεν ξέρω αν το απαιτεί η άσκηση...
Κατά τα άλλα, η κλήση Διαδικασίας/Συνάρτησης είναι τυπική διαδικασία και η έρευση αρτίου... παιχνιδάκι.
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DumeNuke
Τιμώμενο Μέλος
Οι παρακάτω ασκήσεις για πείτε τις λύσεις όσοι γνωρίζετε, γιατί κάποιο βοήθημα που έχω είμαι σίγουρος ότι τις έχεις λάθος
1β
2α
3δ
Λάθος
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.