Προς το περιεχόμενο

Γενικό thread αποριών για τη C#.


Alithinos

Προτεινόμενες αναρτήσεις

εδώ απλά είναι μια παραξενιά, μια αδυναμία του τελικού αποδέκτη, όχι της Μ2000.  

 

Α γίναμε και παράξενοι δηλαδή επειδή δε ξέρουμε Μ2000. Ωραία πάει η συζήτηση.

 

 

 

Basic εντολές είναι αυτές των παραδειγμάτων

 

Δεν είναι BASIC. Είναι Visual Basic.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 505
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσιευμένες Εικόνες

Όχι δεν είναι Visual Basic, είναι Basic ως προς ορισμένες εντολές.

ρίξε μια ματιά σε ότι κώδικα θέλεις!

https://rosettacode.org/wiki/Sieve_of_Eratosthenes\

 

 

(πίσω από τη Μ2000 δεν τρέχουν εντολές της VB6, αλλά γλώσσα μηχανής που έχει γίνει από source που είναι σε VB6, οι εντολές της Μ2000 δεν είναι εντολές της VB6...είναι κώδικας, δηλαδή δεν έχουμε αντιστοιχία εντολών M2000 με εντολές Visual Basic,  ένα προς ένα)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό με το Keyword...ατυχέστατο..τα keywords είναι σε μπλέ χρώμα..ξεχωρίζουν!

 

:rolleyes:

 

 

Αντί να αντιληφθείς λοιπόν την έλλειψη γνώσης απλών γλωσσών όπως η Basic, 

Μα δε θέλω να μάθω Basic Visual Basic!

Θέλω να μάθω C#, και είναι η πρώτη γλώσσα που ασχολούμαι σοβαρά, [Η πρώτη μου επαφή ήταν με τη πραγματική BASIC 1.1 σε έναν Amstrad] και μου κάνεις κήρυγμα επειδή προσπαθώντας να μάθω τη πρώτη μου γλώσσα δεν ξέρω ήδη κάποια άλλη γλώσσα!  :mrgreen:

 

Άμα ήταν για να μάθει κανείς τη πρώτη του γλώσσα να πρέπει να ξέρει ήδη άλλη γλώσσα, αυτή η γλώσσα δεν θα ήταν η πρώτη του!

Δεν στέκει καν ως πρόταση.

 

 

 

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

 

Δε θα κάτσω να αφιερώσω παραπάνω από ένα Χ ποσό του χρόνου μου για να κάνω υποθέσεις του τι μπορεί να κάνει το κάθε τι στη Μ2000. Τον λόγο τον είπε και ο defacer σε προηγούμενο μήνυμα. Γιατί θα μπορούσα να τον βρω και σε γλώσσες που μπορώ να καταλάβω, και σκοπός μου δεν είναι να μάθω Μ2000, αλλά να μάθω C# !

 

 

Αλλά κοίτα τι παίζει. Θα μάθεις τα βασικά με java, C, C# και μολις σου "πασσάρουν" ένα framework που είναι σαν να έχεις μια  νέα γλώσσα, τότε τι θα λες.."δεν το έγραψαν όπως θα το έγραφα εγώ, ο Alithinos;". Δεν θα κάνεις κανένα παράπονο και ή θα αφήσεις γιατί δεν πρόκειται να το καταλάβεις, ή με κόπο θα το μάθεις. Και μετά από δυο χρόνια θα το ξεχάσεις και πρέπει να πιάσεις το άλλο, και θα αρχίσεις τις συγκρίσεις, "αυτό το παλιό το είχε έτσι ενώ εδώ είναι αλλιώς..". Αυτά λοιπόν που στα χαζά αντιμετωπίζεις εδώ..θα είναι μόνιμα αύριο! Άρα μην γίνεσαι αρνητικός και άνοιξε το μυαλό σου και προσπάθησε!

 

 

Καταρχάς ποιος σου είπε ότι έχω σκοπό να εργαστώ σε μια επιχείριση στο μέλλον ?

 

Και ότι δεν έχω σκοπό πχ.

 

1. Να προσφέρω στη κοινότητα του ανοιχτού / ελεύθερου λογισμικού.

2. Να φτιάξω apps δικά μου και να τα εκμεταλλευτώ ως προϊόντα.

 

Όπου το 'προϊόν' θα πήγαινε απ' ευθείας στον τελικό χρήστη, ο οποίος δεν έχει ιδέα από frameworks και έτσι θα είχα την ελευθερία να χρησιμοποιήσω και να επιλέξω εγώ τι framework θα χρησιμοποιήσω ?

 

Αλλά ακόμα και αν χρειαζόταν κάθε 2 χρόνια να αλλάζω εργαλεία και να μαθαίνω νέα, θα μάθαινα εργαλεία τα οποία θα με βοηθούσαν με κάποιο τρόπο σε αυτό που θέλω να κάνω. Όχι κάτι άσχετο με αυτό που θέλω να κάνω. Στη παρούσα φάση, αυτό που θέλω να μάθω είναι τη C# και πως κάποια πράγματα γίνονται στη C#.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Basic του Amstrad

 

10 DEFINT a-z
20 INPUT "Limit";limit
30 DIM f(limit)
40 FOR n=2 TO SQR(limit)
50 IF f(n)=1 THEN 90
60 FOR k=n*n TO limit STEP n
70 f(k)=1
80 NEXT k
90 NEXT n
100 FOR n=2 TO limit
110 IF f(n)=0 THEN PRINT n;",";
120 NEXT

 

Συγνώμη αλλά δεν κάνω κήρυγμα...Μάθε ότι θέλεις! Η πρώτη γλώσσα που θες να μάθεις πραγματικά υπάρχει βέβαια. Αλλά όταν συζητάς για αλγόριθμο...θες να τον πάρεις στη γλώσσα που θες να μάθεις ή σε μια άλλη ώστε πραγματικά να μάθεις πώς να το κάνεις στη γλώσσα που θες πραγματικά να μάθεις; Δηλαδή το να "μάθεις" σημαίνει "φέρε το κώδικα σε C# να μάθω C#;"

Και έχεις σκοπό να φτιάξεις και εφαρμογή;

Το συζητάμε το πράγμα!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όχι δεν είναι Visual Basic, είναι Basic ως προς ορισμένες εντολές.

ρίξε μια ματιά σε ότι κώδικα θέλεις!

https://rosettacode.org/wiki/Sieve_of_Eratosthenes\

 

 

(πίσω από τη Μ2000 δεν τρέχουν εντολές της VB6, αλλά γλώσσα μηχανής που έχει γίνει από source που είναι σε VB6, οι εντολές της Μ2000 δεν είναι εντολές της VB6...είναι κώδικας, δηλαδή δεν έχουμε αντιστοιχία εντολών M2000 με εντολές Visual Basic,  ένα προς ένα)

 

Πολύ καλύτερο αυτό το λινκ.

Έριξα μια ματιά απ' ευθείας σε C#.

 

Και ξέρεις τι αντιλήφθηκα ?

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

 

Και ξέρεις τι ? Δεν έχω πάει ακόμα στις δομές δεδομένων. Οι δομές δεδομένων καλύπτονται στο Πανεπιστήμιο από το 2ο εξάμηνο.

Εγώ ασχολούμαι 6 μήνες και μόνος μου, και θες σε 6 μήνες και χωρίς καν να έχω δάσκαλο να ξέρω όσα ξέρουν οι φοιτητές σε 1 χρόνο ?  Δεν είναι ρεαλιστική απαίτηση.

 

Για την ιστορία, αν θες να ξέρεις τι έχω καλύψει έως τώρα, ξέρω τα εξής:

 

 

Ειδικά για τη C#:

 

* Δηλώσεις, πράξεις, scope, τύπων μεταβλητών / σταθερών.

* Ελεγκτικούς μηχανισμούς if,else if,else,switch.

* Βρόχους while,do while, for.

* Δημιουργία, κλήση, παραμέτρους, επιστροφή, scope συναρτήσεων.

* Τι είναι κλάση και πως ορίζω μια, constructor και destructor, το garbage collection του CLR.

* Δημιουργία, αρχικοποίηση, χρήση αντικειμένων.

* Να κάνω compile, build & run debug / release, deployment με installer στο Visual Studio.

 

 

 

Γενικά:

 

* Γενική εικόνα για τα βασικά υποδείγματα προγραμματισμού, πχ καταρράκτη.

* Τις βασικές αρχές του αντικειμενοστραφούς προγραμματισμού.

* Σχεδίαση flowchart.

* Βασικές γνώσεις για πράξεις άλγεβρας boolean.

* Περί επεξεργαστών, τι είναι το ALU,το CU, τα ολοκληρωμένα κυκλώματα...

 

 

Δομές δεδομένων είναι το επόμενο θέμα το οποίο θα αρχίσω να μαθαίνω... αφού πρώτα κάνω μια επανάληψη και εξασκηθώ στα όσα έχω ήδη μάθει έως τώρα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

οκ,

τώρα τοποθετήθηκες πιο σωστά. Μην σε πειράζει το "Δασκαλίστικο" ύφος μου. Πιάσε την ουσία! (αυτό είναι μόνιμο ζητούμενο όταν γράφω κάτι, να πιάνει αυτός που το διαβάζει την ουσία).

 

Αυτό που χρησιμοποίησαν στο παράδειγμα της C# λέγεται collection. (τέτοια δεν έχει η M2000, ίσως φτιάξω αργότερα, έχει όμως η VB6).  Ένα collection είναι μια δομή δεδομένων αλλά δεν μπορείς να την σκέφτεσαι έτσι..αλλά ως αντικείμενο. Και αυτό γιατί δεν σου δίνει την δυνατότητα να παίξεις με τους δείκτες εντός ή την Hash Function..(αν έχει τέτοια), αλλά σου δίνει μεθόδους και ιδιότητες.

Η ιστορία με τα αντικείμενα είναι ότι πρέπει να ξέρεις όλο το κατεβατό από μεθόδους και ιδιότητες. Αλλά ένα collection δεν έχει πολλά! Εδώ χρησιμοποιούν το ADD. Ενώ λοιπόν το παράδειγμα με την Basic χρησιμοποιεί έναν πίνακα ως flag (σημαία, ως boolean δηλαδή), το παράδειγμα με την C# φτιάχνει έναν BitArray δηλαδή το κάθε bit είναι στοιχείο (άρα μιλάμε για boolean..όπως ακριβώς στην Basic, αλλά στην Basic έπιανε έναν int).

 

Με το collection θέλει να κάνει κάτι κομψό, να κρατήσει μόνο όσους είναι πρώτοι αριθμοί. Και κάθε φορά τους κάνει add.

 

Η VB Net και η C# έχουν το ίδιο αντικείμενο Collection.

https://msdn.microsoft.com/en-us/library/ybcx56wz.aspx

 

Τώρα λοιπόν καταλαβαίνεις ότι η "δομή δεδομένων" χρησιμοποιήθηκε για καταχώρηση των πρώτων, άρα εντελώς "άσχετο" με τον αλγόριθμο που βγάζει τους πρώτους. (η εμφάνιση των πρώτων μπορούσε να γίνει με δεύτερο πέρασμα του πίνακα, όπως γίνεται στο πρόγραμμα με την Basic)

 

Και να διαβάσεις δομές δεδομένων...το collection είναι άσχετο (λειτουργικά για σένα) ενώ είναι σχετικό (αν είχες πρόσβαση στο κώδικά του, αλλά δεν έχεις).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αντικείμενο είναι οτιδήποτε στο προγραμματισμό έχει μεθόδους και ιδιότητες. Κλάση λέμε το blueprint, ή σχέδιο του αντικειμένου. Σε ορισμένες γλώσσες (c#) η κλάση και το αντικείμενο συμπίπτουν σε κάποιες περιπτώσεις όπως όταν η κλάση να λέγεται στατική, δηλαδή να μην χρειάζεται να φτιαχτεί αντικείμενο, γιατί το έχει φτιάξει "Στατικά" στο exe (στα data). Σε αυτές τις περιπτώσεις υπάρχει ο περιορισμός ότι δεν μπορεί αυτή η κλάση να κληρονομηθεί. (αφού δεν υπάρχει πια το blueprint...το σχέδιο).

 

https://msdn.microsoft.com/en-us/library/79b3xss3.aspx

 

Όμως επειδή εδώ η συζήτηση είναι για το Collection, αυτό είναι ένα αντικείμενο. Δεν είναι κάτι καινούργιο. Μια συλλογή (collection) είναι μια συλλογή αντικειμένων, αλλά βεβαίως είναι και αυτή ένα αντικείμενο. Άρα θα μπορούσε κανείς σε ένα στοιχείο μιας συλλογής να βάλει μια άλλη συλλογή!

Έδωσα στη προηγούμενη ανάρτησή μου αυτό εδώ: https://msdn.microsoft.com/en-us/library/ybcx56wz.aspx

Αλλά δεν το είδες μάλλον! Στη VB6 υπάρχει  https://msdn.microsoft.com/en-us/library/aa231021%28v=vs.60%29.aspx

Στις Net είναι πιο προχωρημένη, αφού έχει και διαφορετικά interfaces... π.χ.  ICollection τα οποία είναι ουσιαστικά αντικείμενα με βάσει το collection αλλά έχουν και πρόσθετες λειτουργίες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης

"Ένα collection είναι μια δομή δεδομένων αλλά δεν μπορείς να την σκέφτεσαι έτσι..αλλά ως αντικείμενο. Και αυτό γιατί δεν σου δίνει την δυνατότητα να παίξεις με τους δείκτες εντός ή την Hash Function..(αν έχει τέτοια), αλλά σου δίνει μεθόδους και ιδιότητες."

 

Μισή ντουζίνα λάθη σε μια μόλις πρόταση.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Και άλλα τόσα στις αποπάνω:

 

 


Αντικείμενο είναι οτιδήποτε στο προγραμματισμό έχει μεθόδους και ιδιότητες. Κλάση λέμε το blueprint, ή σχέδιο του αντικειμένου. Σε ορισμένες γλώσσες (c#) η κλάση και το αντικείμενο συμπίπτουν σε κάποιες περιπτώσεις όπως όταν η κλάση να λέγεται στατική, δηλαδή να μην χρειάζεται να φτιαχτεί αντικείμενο, γιατί το έχει φτιάξει "Στατικά" στο exe (στα data). Σε αυτές τις περιπτώσεις υπάρχει ο περιορισμός ότι δεν μπορεί αυτή η κλάση να κληρονομηθεί. (αφού δεν υπάρχει πια το blueprint...το σχέδιο).

 

 

 

Και εδώ κανείς αναρωτιέται... 

 

Να κάτσει να εξηγήσει τι και πως; Υπάρχει λόγος να μάθει στον συγκεκριμένο τι ακριβώς γίνεται; 

 

 

W/e.. εγώ δεν θα το κάνω. 

 

 

 

Υ.Γ.  Πού να βάλει κανείς μέσα και structs με methods! Έτσι γίνεται invalid όλη η παράγραφος!

Υ.Γ.2 Static class στην C# δεν γίνεται specialize λόγω DESIGN και όχι λόγω δυνατοτήτων των classes: http://stackoverflow.com/questions/774181/why-cant-i-inherit-static-classes

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Alithinos C κατέχεις?

 
#include<stdio.h>
int main(void)
{
      int n , d;
      printf(" Give n : \n");
      scanf("%d" , &n);

      for( d=2; d<n; d++)
           if( n % d == 0 ) /* Ψάχνει άν υπάρχει αριθμός με τον οποίο διαιρείται 
             τέλεια με αρχή το 2 (Το 0 και το 1 δεν ειναι πρώτοι). */
           break;
       if( d < n )
           printf(" %d is divisible by %d \n " , n , d);
       else
          printf("%d is prime \n" , n); /* Eφόσον δεν βρέθηκε κάποιος μικροτερός του 
              που να τον διαιρεί.*/
      return 0;
}
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Υπερβολές του Groot..όπως πάντα!

Το  ΥΓ2....λέει κάτι που είναι αντίθετο με αυτό που έγραψα; Τι σημαίνει "το έχει φτιάξει στατικά"; Η μάνα του ή ο σχεδιαστής της γλώσσας;...Άρα το By Design δεν καλύπτεται με την εξήγηση που έδωσα;

Και τα άλλα δεν είναι στο θέμα μας. Και τα struct είναι αντικείμενα αλλά έχουν ειδικό χειρισμό και θα μπερδέψει τον Alithinos..ή όποιον άλλο νέο ασχοληθεί.

 

(πάλι κάτι γνωστά τρωκτικά εμφανίστηκαν...αλλά τα έχω..σε αγνόηση...)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...