⊗jsPrCndTD 53 of 62 menu

Συζήτηση Υλοποίησης Ημερολογίου σε JavaScript

Το ημερολόγιο μας είναι ένας πίνακας με αριθμούς από 1 έως την τελευταία ημέρα του μήνα. Το πρόβλημα είναι ότι οι αριθμοί στον πίνακα στην πρώτη σειρά δεν πρέπει να ξεκινούν από το πρώτο κελί.

Αυτό είναι γενικά προφανές. Δεν είναι προφανές από ποιο ακριβώς κελί πρέπει να αρχίσουμε. Ας το σκεφτούμε.

Ας υποθέσουμε ότι η εβδομάδα αρχίζει από τη Δευτέρα, και αυτή είναι η ημέρα μηδέν. Σε αυτή την περίπτωση, ο αριθμός της ημέρας της εβδομάδας για την πρώτη ημέρα του μήνα αντιστοιχεί στον αριθμό των κενών κελιών πριν από αυτήν. Για παράδειγμα, η Πέμπτη θα έχει αριθμό 3 και πριν από αυτήν θα υπάρχουν 3 κενά κελιά.

Ένα ανάλογο πρόβλημα θα μας περιμένει στο τέλος του πίνακα. Εκεί επίσης πρέπει να αφήνουμε κενά κελιά μετά την τελευταία ημέρα του μήνα. Σε αυτή την περίπτωση, ο αριθμός των κενών κελιών θα είναι ίσος με το έξι, από το οποίο πρέπει να αφαιρέσουμε τον αριθμό της ημέρας της εβδομάδας της τελευταίας ημέρας του μήνα.

Ας σκεφτούμε τώρα, πώς θα δημιουργήσουμε τον πίνακά μας. Προφανώς, είναι πιο βολικό να έχουμε έναν δισδιάστατο πίνακα, σε κάθε υποπίνακα του οποίου θα υπάρχουν 7 στοιχεία (= αριθμός ημερών στην εβδομάδα). Ενώ στον πρώτο και στον τελευταίο υποπίνακα, μέρος των στοιχείων πρέπει να είναι κενά.

Αλγόριθμος Δράσης

Θα φτιάξουμε μια συνάρτηση που θα δημιουργεί έναν πίνακα αριθμών από 1 έως την τελευταία ημέρα του μήνα. Στη συνέχεια, θα φτιάξουμε μια συνάρτηση που θα προσθέτει στην αρχή του πίνακα τον απαραίτητο αριθμό κενών στοιχείων. Μια ανάλογη συνάρτηση πρέπει να προσθέτει κενά στοιχεία στο τέλος του πίνακα.

Μετά από αυτό, θα έχουμε έναν μονοδιάστατο πίνακα με αριθμό στοιχείων, πολλαπλάσιο του 7. Θα μετατρέψουμε αυτόν τον πίνακα σε δισδιάστατο με 7 στοιχεία σε κάθε υποπίνακα.

Στη συνέχεια, θα πάρουμε αυτόν τον δισδιάστατο πίνακα, θα τον επαναλάβουμε με βρόχους και θα δημιουργήσουμε τον πίνακά μας.

Αυτόν τον αλγόριθμο δράσης θα τον εκτελέσουμε σταδιακά στα επόμενα μαθήματα.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη