Eruyomo
Πολύ δραστήριο μέλος
Ο Μάνος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 39 ετών, Φοιτητής και μας γράφει απο Χανιά (Χανιά). Έχει γράψει 1,505 μηνύματα.
26-08-08
03:23
:xixi:
Επίσης, δεν χρειάζεται κάποιος να μπλέξει ούτε με malloc, ούτε με τίποτε τέτοιο. Θενκς γκοντ αυτό το παράδειγμα που έδειξες τουλάχιστον, μπορεί να γίνει με array, δεν βρίσκω λόγο για τον οποίο να γίνεται το εύκολο δύσκολο, το αντίθετο προσπαθούμε.
Δεν μπορείς να το κάνεις με array.
Ο array έχει σταθερό μέγεθος και απο πριν ορισμένο (παρόλο που υπάρχουν κάποιοι compilers που σε αφήνουν να το κάνεις αυτό ) Γενικά οι δηλώσεις μεταβλητών πρέπει να γίνονται στην αρχή
Άλλος μεγάλος βραχνάς. Οι διαφορετικοί compilers. Ο καθένας έχει διαφορετική συμπεριφορά, συμβατότητες/ασυμβατότητες με την ANSI C.
Δεν έχει νόημα να κάνεις C-like γλώσσα (θα μάθουν όσοι ενδιαφέρονται για πληροφορική για C όταν περάσουν στο αντιστοιχο ίδρυμα, ή μόνοι τους). Η C είναι και freeform γλώσσα, δηλαδή μπορείς να δώσεις στον κώδικα σου ότι σχήμα θέλεις, τελείως αντιαποδοτικό αν θέλεις να μάθεις αλγορίθμους (κοινώς, χάνεις τον μπούσουλα). Το οτι σε ζορίζουν τα ελληνικά δεν βγάζει και πολύ νόημα, η ψευδογλώσσα είναι για να γράφεται στο χαρτί και όχι στον υπολογιστή
Προς το παρόν, σκοπός είναι να το μάθετε όπως έχει για να περάσετε το μάθημα με καλό βαθμό. Μετά μαθένετε και C, και Java και Python και ότι θέλετε.
Πάντως για προγραμματισμό θα έπρεπε να μάθετε και διάφορα άλλα πράγματα πέρα απο γλώσσες προγραμματισμού και αλγορίθμους. άλγεβρα bool για αρχή,σύνολα, δομές δεδομένων, στοιχεία αρχιτεκτονικής υπολογιστών και λειτουργικών συστημάτων έχει ψωμί (αυτά τα κάναμε εμείς στα δύο πρώτα έτη οπότε νομίζω λίγο υπερβολικό να βγούν σε ένα μάθημα 3ης λυκείου)
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Eruyomo
Πολύ δραστήριο μέλος
Ο Μάνος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 39 ετών, Φοιτητής και μας γράφει απο Χανιά (Χανιά). Έχει γράψει 1,505 μηνύματα.
26-08-08
01:22
Παιδιά μην τρελένεστε.
H C μπορώ να σας εγγυηθώ 200% οτι δεν μπορεί να εξυπηρετήσει τον σκοπό του μαθήματος. Mιλάμε για μια γλώσσα επικύνδυνα κοντά στη γλώσσα μηχανής (ακόμα και η assembly που είναι ότι πιο κοντά υπάρχει στο 1 και το 0 χρησιμοποιείται μέσα απο C). Για αλγοριθμο δεν εξυπηρετεί.
Πχ. για να φτιάξουμε δυναμικά μια λίστα.
Άντε τώρα να εξηγήσεις τι είναι η malloc, τί είναι οι pointers (*) τα address references (&) και γιατί στον πύραυλο πρέπει να τα βάζουμε όλα μεσα σε {,}. Και όλα αυτά γιατί θες να φτιάξεις δυναμικά μια λίστα χαρακτήρων.
Επίσης πέρα της περιπλοκότητας που βάζει η C, υπάρχουν πολλοί τρόποι να κάνεις το ίδιο πράγμα και αυτό θα μπέρδευε τον μαθητή και σίγουρα δεν θα του μάθαινε γρί απο αλγόριθμους.
Πχ αν θες να προσπελάσεις το 12ο στοιχείο της λίστας που μόλις έφτιαξες, μπορείς να το κάνεις ώς.
ή
αν τώρα ήταν λίστα απο ακέραιους θα τό κανες ως
ή
Για να μην μιλήσουμε για τις "διευκολύνσεις" που εισάγει η C όπως το i++ (αύξηση μετά απο χρήση) ή το ++i (χρήση μετά απο αύξηση) και δεν συμμαζέυεται
H C μπορώ να σας εγγυηθώ 200% οτι δεν μπορεί να εξυπηρετήσει τον σκοπό του μαθήματος. Mιλάμε για μια γλώσσα επικύνδυνα κοντά στη γλώσσα μηχανής (ακόμα και η assembly που είναι ότι πιο κοντά υπάρχει στο 1 και το 0 χρησιμοποιείται μέσα απο C). Για αλγοριθμο δεν εξυπηρετεί.
Πχ. για να φτιάξουμε δυναμικά μια λίστα.
Code:
#include <stdio.h>
void main(){
int length=0;
char *list;
printf("Δώσε μέγεθος λίστας χαρακτήρων:");
scanf("%d",&length);
printf("Έδωσες %dn", length);
list=(char*)malloc(length*sizeof(char));
}
Επίσης πέρα της περιπλοκότητας που βάζει η C, υπάρχουν πολλοί τρόποι να κάνεις το ίδιο πράγμα και αυτό θα μπέρδευε τον μαθητή και σίγουρα δεν θα του μάθαινε γρί απο αλγόριθμους.
Πχ αν θες να προσπελάσεις το 12ο στοιχείο της λίστας που μόλις έφτιαξες, μπορείς να το κάνεις ώς.
Code:
list[12];
Code:
list + 12
Code:
list[12]
Code:
list + 12*sizeof(int)
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.