| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλησπέρα σας Είμαι καινούργιος στο φόρουμ και παίρνω το θάρρος να ζητήσω τη βοήθειά σας για ένα πρόβλημα στο οποίο έχω "σκαλώσει". Έστω ότι έχουμε δύο πίνακες: Στον πίνακα αριστερά εισάγουμε σε κάθε στήλη τα μήλα που πήρε κάθε μαθητής, διαχωρισμένα σε δύο κατηγορίες αυτά που πήρε κι έφαγε(πρώτη στηλη) κι αυτά που πήρε αλλά τα έχει ακόμη (δευτερη στηλη). Έστω πως θέλουμε να μοιράσουμε ισόποσα τα μήλα σε όλους τους μαθητές, βασιζόμενοι στο μέσο όρο μήλων ανά μαθητή. Εννοείται πως δεν υπολογίζονται οι μαθητές που λείπουν (κενά κελιά). Όμως, σε περίπτωση που κάποιος μαθητής πήρε μεν περισσότερα μήλα αλλά πρόλαβε και έφαγε τα πιό πολλά, θα μπορεί να δώσει μόνο αυτά που του έμειναν (δεν θα του μείνει χρέος-αρνητικός αριθμός). Τα αποτελέσματα του διαμοιρασμού θα πρέπει να ανγράφονται στον δεύτερο πίνακα δεξιά με το όνομα αυτού που δίνει (πρωτη στήλη), τον αριθμό μήλων που δίνονται (δεύτερη στήλη) και το όνομα αυτού που παίρνει (τρίτη στηλη). Έπειτα, θα πρέπει να ανανεώνεται ο πρώτος πίνακας στην δέυτερη στήλη του πρώτου πινακα με τα μήλα που έχει ο κάθε μαθητής μετά από τη μοιρασιά. Μάλλον σας κάνω δύκολη και περίπλοκη ερώτηση, αλλά κάθε ιδέα θα εκτιμηθεί δεόντως. Ευχαριστώ εκ των προτέρων |
|
#2
| |||
| |||
|
Χρόνια πολλά Δες μια λύση στο συνημμένο. Στη λύση υπέθεσα ότι στους μαθητές δίνονται μόνο ολόκληρα μήλα. Αυτό δημιουργεί κάποια προβλήματα: 1) Αν υποθέσουμε ότι οι μαθητές είναι N και τα μήλα που μοιράστηκαν αρχικά S, κάθε μαθητής δικαιούται S/N μήλα. Επειδή μπορεί να δοθούν μόνο ολόκληρα μήλα, κάθε μαθητής θα πάρει αρχικά D μήλα, όπου D είναι το ακέραιο πηλίκο S/N (D=INT(S/D) και θα περισσέψουν Y μήλα, όπου Y είναι το υπόλοιπο της ακέραιας διαίρεσης (Y=MOD(S;N)=S-D*N) Τα Y μήλα που περισσεύουν θα δοθούν από 1 σε Y μαθητές, τυχαία. Για το σκοπό αυτό δημιουργήθηκε η συνάρτηση rndKatanomi. 2) Ας υποθέσουμε ότι τα μήλα που θα επιστέψει κάθε ευνοημένος μαθητής (λαμβάνοντας υπόψη και τη δυνατότητα μετά το φάγωμα) είναι di, το άθροισμά τους Sd (Sd=Σdi, i=1..N), αυτά που θα έπρεπε να λάβει κάθε αδικημένος pi και το άθροισμά τους Sp (Sp=Σpi, i=1..N). Κάθε αδικημένος μαθητής θα πρέπει να λάβει, θεωρητικά,xi=Sd*pi/Sp. Επειδή μοιράζονται ολόκληρα μήλα, κάθε αδικημένος θα πάρει αρχικά ai, όπου ai είναι το ακέραιο μέρος του xi (ai=INT(xi)). Αν Sa είναι το άθροισμα των ai (Sa=Σai, i=1..N), η διαφορά K=Sd-Sa είναι τα μήλα που θα μείνουν για μοίρασμα, σε μια δεύτερη κατανομή. Τα K μήλα δίνονται από 1 στους K μαθητές με τα μεγαλύτερα δεκαδικά υπόλοιπα (xi-ai). Για το σκοπό αυτό δημιουργήθηκε η συνάρτηση IDMax(). Περισσότερα στο συνημμένο. Φιλικά/Γιώργος |
|
#3
| |||
| |||
|
Στο συνημμένο βελτιώθηκε ο τρόπος εμφάνισης της κατανομής των μήλων
|
|
#4
| |||
| |||
|
Εντυπωσιακή δουλειά! Ευχαριστώ πολύ για τον κόπο σας. Δεν περίμενα τόσο περίπλοκο και ογκώδη κώδικα. Ένα λάθος που έκανα στη διατύπωσή μου, ήταν πως για κάθε μαθητή αναγράφονται δύο ποσά: Τα μήλα που πήρε και έχει ήδη φάει και τα μήλα που πήρε και του έμειναν ανέγγιχτα. Επομένως, το σύνολο των μήλων του είναι το άθροισμα αυτών των δύο ποσών. Οπως και να έχει, θα μελετήσω τον κώδικα του παραδείγματος και θα βοηθηθώ για να προχωρήσω στην λύση του προβλήματός μου. Και πάλι ευχαριστώ και καλή χρονιά! |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
Η ώρα είναι 10:25.


Υβριδικός τρόπος
