Θέμα Γ

Ξεκίνησε από evry, 12 Ιουν 2018, 10:34:44 ΜΜ

« προηγούμενο - επόμενο »

epsilonXi

Παράθεση από: Κωστας τζιαννης στις 06 Ιουλ 2018, 05:47:31 ΜΜ
... πινακα χωρις να ξερω απο πριν το μεγεθος του και το δωσω σε καποιον να το κανει πχ σε c τοτε αυτος θα πρεπει να αλλαξει εντελως τον αλγοριθμο...

κι εγώ κατά της χρήσης πίνακα ήμουν και είμαι, αλλά για του λόγου το αληθές,
για δοκίμασε αυτό, δεν είναι javascript, είναι c:

Κώδικας: javascript
#include <stdio.h>

int main() {
    int m,i;
    printf("\n Enter array size: ");
    scanf("%d", &m);

    int a[m];
    for (i=0; i<m; i++) {
        a[i] = i;
        printf("\n %d",a[i]);
    }

}

evry

#46
Καλή σκέψη αλλά η C υποστηρίζει VLA πίνακες τους οποίους όμως δεν μπορούμε να τους χρησιμοποιούμε στην ψευδογλώσσα.
https://en.wikipedia.org/wiki/Variable-length_array

Θα μπορούσαμε επίσης να χρησιμοποιήσουμε το new/malloc, αλλά τότε ο πίνακας θα αποθηκευόταν στο heap.

Οι πίνακες της ψευδογλώσσας ορίζονται σε compile time. :o
Αντιλαμβάνομαι ότι αυτό που λέω είναι οξύμωρο, δηλαδή στατικές δομές και compile time σε ψευδογλώσσα, έλα όμως που το βιβλίο ορίζει έτσι ακριβώς την ψευδογλώσσα που χρησιμοποιούμε.


What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

bugman

Το που θα γίνει ο πίνακας είναι μια λεπτομέρεια που δεν έχει να κάνει με κάποιον αλγόριθμο. Υποτίθεται ότι η ψευδογλώσσα και η ΓΛΩΣΣΑ χρησιμοποιούνται για αλγόριθμους.

Κωστας τζιαννης

Παράθεση από: epsilonXi στις 10 Ιουλ 2018, 05:35:30 ΜΜ
κι εγώ κατά της χρήσης πίνακα ήμουν και είμαι, αλλά για του λόγου το αληθές,
για δοκίμασε αυτό, δεν είναι javascript, είναι c:

Κώδικας: javascript
#include <stdio.h>

int main() {
    int m,i;
    printf("\n Enter array size: ");
    scanf("%d", &m);

    int a[m];
    for (i=0; i<m; i++) {
        a[i] = i;
        printf("\n %d",a[i]);
    }

}


στο visual studio που εχω δεν το τρεχει παντως.απο την αλλη στο dev το τρεχει κανονικα

itt

Παράθεση από: Κωστας τζιαννης στις 11 Ιουλ 2018, 05:59:23 ΜΜ
στο visual studio που εχω δεν το τρεχει παντως

Ο msvc δεν υλοποιεί την C99 και δεν υποστήριζει VLA. https://docs.microsoft.com/en-us/cpp/c-language/ansi-conformance

Κωστας τζιαννης

Παράθεση από: itt στις 11 Ιουλ 2018, 06:06:32 ΜΜ
Ο msvc δεν υλοποιεί την C99 και δεν υποστήριζει VLA. https://docs.microsoft.com/en-us/cpp/c-language/ansi-conformance

α οκ εγω εκει τρεχω  παντως τα περισσοτερα που κανω γιατι εχει απειρες επιλογες απο γλωσσες να διαλεξεις και πολυ ωραιο περιβαλλον.οταν θελω να κανω κατι που εχει μεταβλητο μεγεθος πινακα χρησιμοποιω τη c++ κυριως γιατι εχει vectors που ειναι πολυ πιο διαχειρισιμοι με την εννοια οτι μπορεις να προσθετεις και να αφαιρεις θεσεις χωρις να δεσμευσεις παραπανω απο οσες χρειαζεσαι.πχ αντι να βαλεις ενα Ν μαχ=10^4 πχ και μετα να λες διαβασε α[ι] και καποιες θεσεις να μεινουν αχρισιμοποιητες ,στη c++ κανεις το ιδιο αλλα δε δεσμευεις παραπανω θεσεις αφου οταν τελειωσει το διαβασμα του πινακα δεσμευεις μονο τις θεσεις τις οποιες εχουν διαβαστει

itt

Παράθεση από: Κωστας τζιαννης στις 11 Ιουλ 2018, 06:17:08 ΜΜ
α οκ εγω εκει τρεχω  παντως τα περισσοτερα που κανω γιατι εχει απειρες επιλογες απο γλωσσες να διαλεξεις και πολυ ωραιο περιβαλλον.οταν θελω να κανω κατι που εχει μεταβλητο μεγεθος πινακα χρησιμοποιω τη c++ κυριως γιατι εχει vectors που ειναι πολυ πιο διαχειρισιμοι με την εννοια οτι μπορεις να προσθετεις και να αφαιρεις θεσεις χωρις να δεσμευσεις παραπανω απο οσες χρειαζεσαι.πχ αντι να βαλεις ενα Ν μαχ=10^4 πχ και μετα να λες διαβασε α[ι] και καποιες θεσεις να μεινουν αχρισιμοποιητες ,στη c++ κανεις το ιδιο αλλα δε δεσμευεις παραπανω θεσεις αφου οταν τελειωσει το διαβασμα του πινακα δεσμευεις μονο τις θεσεις τις οποιες εχουν διαβαστει

Το τι υπαγορεύει ένα standard κάποιας γλώσσας, δυστυχώς δεν είναι επαρκές επιχείρημα στη συζήτηση του τι μπορείς να κάνεις με την ψευδογλώσσα του μαθήματος. Συζήτηση που έχει γίνει πάρα πολλές φορές εδώ μέσα. Το ότι υπάρχουν γλώσσες (και κατ' επέκταση υλοποιήσεις αυτών) που υποστηρίζουν VLA είναι αδιαμφισβήτητο, αλλά εαν δεν υπάρξει κάποια επίσημη θέση σχετικά με τους περιορισμούς της ψευδογλώσσας, το τι κάνει η C είναι καθάρα φιλολογική συζήτηση.

Κωστας τζιαννης

Παράθεση από: itt στις 11 Ιουλ 2018, 06:28:43 ΜΜ
Το τι υπαγορεύει ένα standard κάποιας γλώσσας, δυστυχώς δεν είναι επαρκές επιχείρημα στη συζήτηση του τι μπορείς να κάνεις με την ψευδογλώσσα του μαθήματος. Συζήτηση που έχει γίνει πάρα πολλές φορές εδώ μέσα. Το ότι υπάρχουν γλώσσες (και κατ' επέκταση υλοποιήσεις αυτών) που υποστηρίζουν VLA είναι αδιαμφισβήτητο, αλλά εαν δεν υπάρξει κάποια επίσημη θέση σχετικά με τους περιορισμούς της ψευδογλώσσας, το τι κάνει η C είναι καθάρα φιλολογική συζήτηση.

μα ναι και γω για αυτο ειπα οτι καλυτερα να λαμβανεις τη χειροτερη περιπτωση μιας και η ψευδογλωσσα γενικα ειναι βοηθητικο προγραμματιστικο εργαλειο και λογικα στα πλαισια του μαθηματος θελαν να διδασκεται οσο πιο αυστηρα γινεται σε τετοιου ειδους θεματα.οποτε  καλυτερα να βγει μια τελικη αποφαση απο το υπουργειο που να αποσαφηνιζει μια και καλη αυτο το θεμα(αν δεν εχει ηδη βγει) ωστε να μην υπαρχουν σκοτωμοι καθε χρονο

Sergio

Μήπως κάποιες αναρτήσεις δεν ανήκουν σε αυτό το θέμα;;
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)