×
Επεξεργασία Προφίλ Επεξεργασία Avatar Επεξεργασία Υπογραφής Επεξεργασία Επιλογών E-mail και Κωδικός
×
Αποσύνδεση Οι Συνδρομές μου Το Προφίλ μου Τα Posts μου Τα Threads μου Λίστα Επαφών Αόρατος Χρήστης
Τι;
Πως;
Ταξινόμηση
Που;
Σε συγκεκριμένη κατηγορία;
Ποιος;
Αποτελέσματα Αναζήτησης
Συμπληρώστε τουλάχιστον το πεδίο Τι;

Το e-steki είναι μια από τις μεγαλύτερες ελληνικές διαδικτυακές κοινότητες με 67,220 μέλη και 2,423,165 μηνύματα σε 75,645 θέματα. Αυτή τη στιγμή μαζί με εσάς απολαμβάνουν το e-steki άλλα 479 άτομα.

Καλώς ήρθατε στο e-steki!

Εγγραφή Βοήθεια

Η γλώσσα προγραμματισμού C

teo (Θοδωρής)

Δραστήριο Μέλος

Ο Θοδωρής αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 426 μηνύματα.

O teo έγραψε: στις 22:42, 13-12-07:

#1
Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C
  • H C δημιουργήθηκε το 1972 στα Bell Labs από τον Dennis Ritchie καθώς, μαζί με τον Ken Thompson, σχεδίαζαν το λειτουργικό σύστημα UNIX. Στην ουσία, η C προήλθε από την γλώσσα B που είχε επινοήσει ο Thompson.
  • Αν και οι περισσότερες γλώσσες στοχεύουν στο να είναι χρήσιμες, συχνά επινοούνται και για άλλους λόγους. Για παράδειγμα, η Pascal σχεδιάσθηκε κυρίως για εκπαιδευτικούς σκοπούς(διδασκαλία αρχών προγραμματισμού) ενώ η BASIC σχεδιάσθηκε ως μια φιλική γλώσσα που μαθαίνεται εύκολα ακόμη και αν δεν υπάρχει εξοικείωση με τους Η/Υ.
  • Σε αντίθεση με τα παραπάνω, η C σχεδιάσθηκε για να αποτελέσει ένα χρήσιμο εργαλείο για προγραμματιστές. Η ραγδαία εξάπλωσή της και η καθιέρωσή της ως μιας από τις πιο σημαντικές γλώσσες προγραμματισμού οφείλεται στους εξής λόγους:
1.Περιλαμβάνει χαρακτηριστικά που η υπολογιστική επιστήμη θεωρεί ότι είναι επιθυμητά (π.χ η C επιτρέπει, με φυσικό τρόπο, στους χρήστες να χρησιμοποιούν αναλυτικό-εκ των άνω προς τα κάτω-ή/και δομημένο προγραμματισμό καθώς και αρθρωτό σχεδιασμό λογισμικού. Το αποτέλεσμα είναι ένα πιο αξιόπιστο και κατανοητό πρόγραμμα.)
2.Η C είναι μια αποτελεσματική γλώσσα που επωφελείται από τις δυνατότητες των σύγχρονων Η/Υ (τα C προγράμματα έχουν την τάση να είναι πιο συμπαγή και να εκτελούνται πιο γρήγορα).

3.Η C είναι μια μεταφέρσιμη(portable) γλώσσα (o C κώδικας που έχει γραφεί σε κάποιο σύστημα μπορεί να χρησιμοποιηθεί αυτούσιος και σε άλλα συστήματα)

4.Η C είναι ένα πανίσχυρο και ευέλικτο προγραμματιστικό εργαλείο (π.χ το 94%, περίπου, του λειτουργικού συστήματος UNIX είναι γραμμένο σε C συμπεριλαμβανομένων και μεταγλωττιστών και διερμηνευτών για άλλες γλώσσες όπως, η FORTRAN, η APL, η PASCAL, η LISP, η LOGO και η BASIC).

5.Η C παρέχει δυνατότητες λεπτομερούς ελέγχου της ροής του προγράμματος που συνήθως συσχετίζονται με τη συμβολική γλώσσα ASSEMBLY (επιτρέπει βελτιστοποίηση των προγραμμάτων για μέγιστη επίδοση).

6.H C είναι μια φιλική δομημένη γλώσσα που ενθαρρύνει τις καλές προγραμματιστικές συνήθειες



Προγραμματιστικές Πρακτικές
1)Αναλυτικός Προγραμματισμός(top-down programming)

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

2)Δομημένος Προγραμματισμός(structured programming)
Προγραμματισμός που παράγει προγράμματα με σαφή ροή και διαφανή σχεδιασμό. Συνήθως είναι ιεραρχικής δομής ή έχει και κάποιο βαθμό διαίρεσης σε υπομονάδες.
3)Αρθρωτός Προγραμματισμός(modular programming)
Αναλύουμε το πρόγραμμα σε πολλές, ανεξάρτητα μεταγλωττιζόμενες, υπομονάδες (modules). Η κάθε υπομονάδα εξάγει συγκεκριμένα στοιχεία (π.χ σταθερές,μεταβλητές,συναρτήσεις,διαδικασίες) που μπορούν να χρησιμοποιηθούν από τις άλλες υπομονάδες. Οι υπομονάδες κάνουν διαυγέις και ομαλές τις σχέσεις μεταξύ των κυριοτέρων τμημάτων ενός προγράμματος διευκολύνοντας τις ομαδικές προγραμματιστικές εργασίες.

ΣΤΑΔΙΑ ΔΗΜΙΟΥΡΓΙΑΣ ΚΑΙ ΕΚΤΕΛΕΣΗΣ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ C
  • Χρησιμοποιούμε έναν συντάκτη (editor) για να γράψουμε το πρόγραμμά μας σε ένα ʽ.cʼ αρχείο.
  • Υποβάλουμε το πρόγραμμά μας σε μεταγλώττιση χρησιμοποιώντας τον φιλικό μεταγλωττιστή (compiler) της C. Ο μεταγλωττιστής αρχικά θα ελέγξει το πρόγραμμά μας για πιθανά συντακτικά και σημασιολογικά σφάλματα. Αν δεν βρει σφάλματα, θα μεταφράσει το πρόγραμμα σε συμβολική γλώσσα και ο συμβολομεταφραστής θα δημιουργήσει ένα παράγωγο πρόγραμμα (object program) σε ʽ.οʼ αρχείο.
  • Στη συνέχεια, γίνεται η σύνδεση του παράγωγου προγράμματός μας με άλλα παράγωγα προγράμματα καθώς και με τις βιβλιοθήκες του συστήματος μέσω του συνδέτη(linker) και καταλήγουμε στη μορφή ενός εκτελέσιμου αρχείου (a.out).
  • Εκτελούμε το πρόγραμμά μας πληκτρολογώντας το όνομα του εκτελέσιμου αρχείου.
ΕΝΑ ΑΠΛΟ ΠΡΟΓΡΑΜΜΑ
Έστω το παρακάτω στο αρχείο test.c:

#include<stdio.h>
main()
{
printf(“Ena poly aplo C-programma.\n”);
}

Το πρόγραμμα είναι γνωστό και ως “πηγαίος κώδικας”(source code) ενώ το αρχείο στο οποίο αποθηκεύεται ονομάζεται “πηγαίο αρχείο” (source file).

Για να δημιουργήσουμε εκτελέσιμο αρχείο με χρήση του μεταγλωττιστή cc του UNIX:

Cc test.c

Αν δεν υπήρχαν σφάλματα στο πρόγραμμά μας τότε το αποτέλεσμα είναι να δημιουργηθεί ένα εκτελέσιμο αρχείο με όνομα a.out. Πληκτρολογώντας τώρα

a.out

Θα εμφανισθεί στην οθόνη του υπολογιστή μας το:

Ena poly aplo C-programma.
  • #include<stdio.h>
Πριν από κάθε C-πρόγραμμα εμφανίζονται οδηγίες προς τον μεταγλωττιστή μέσω του C-προεπεξεργαστή (C-preprocessor). Η παραπάνω οδηγία υποχρεώνει τον C-μεταγλώττιστή να διαβάσει και να μεταγλωττίσει το αρχείο επικεφαλίδας (header file) stdio.h που έχει σχέση με τη βιβίοθήκη Εισόδου/Εξόδου στην οποία βρίσκεται η συνάρτηση printf().
  • main()
Ένα C-πρόγραμμα αποτελείται από μια ή περισσότερες συναρτήσεις. Η βασική συνάρτηση που υπάρχει σε κάθε C-πρόγραμμα είναι η main(). Μέσα στις παρενθέσεις τοποθετούνται τα ορίσματα (arguments) τις συνάρτησης. Οι παρενθέσεις πρέπει πάντα να υπάρχουν ακόμη και αν δεν υπάρχουν ορίσματα. Ότι υπάρχει ανάμεσα στα άγκιστρα {}, αποτελεί το σώμα της συνάρτησης.
  • printf(“Ena poly aplo C-programma.\n”);
Η γραμμή αυτή αποτελεί μια δήλωση (statement) που καταλήγει (όπως άλλωστε όλες οι δηλώσεις της C) στο σύμβολο ʽ;ʼ. Η δήλωση αυτή είναι στην ουσία μια κλήση της συνάρτησης βιβλιοθήκης printf() με όρισμα τη συμβολοσειρά (δηλαδή, την ακολουθία χαρακτήρων) “Ena poly aplo C-programma.\n”. Οι συμβολοσειρές πρέπει να περικλείονται από διπλά εισαγωγικά. Ο ειδικός χαρακτήρας ʽ\nʼ ανήκει στις λεγόμενες ακολουθίες διαφυγής (escape sequences) και ονομάζεται χαρακτήρας νέας γραμμής (newline character). Το αποτέλεσμα αυτής της δήλωσης είναι να εμφανισθεί στην οθόνη το

Ena poly aplo C-programma.

Με τον δρομέα (Cursor) να τοποθετείται στην αρχή της επόμενης γραμμής.
ΑΠΛΑ ΠΡΟΓΡΑΜΜΑΤΑ ΣΕ C.
edited Τελευταία επεξεργασία από το χρήστη Γιώργος : 27-11-11 στις 16:13. Αιτία: Spoiler tag added.
2 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Subject to change (Λία)

Founder

H Λία αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Web developer . Έχει γράψει 9,465 μηνύματα.

H Subject to change έγραψε: στις 23:02, 13-12-07:

#2
Πολύ ενδιαφέρον το άρθρο, αλλά είναι δικό σου;
Αν όχι, πρέπει να βάλεις πηγή.
Επίσης, ίσως θα ήταν καλύτερο και πιο ξεκούραστο, αντί να αναφέρεις ορισμένες ασκήσεις μαζί με τις λύσεις τους, να δίνεις πχ μια κάθε εβδομάδα και να γίνεται σαν "διαγωνισμός" για τη λύση της! Έτσι πιστεύω θα είναι πιο χρήσιμο και πιο διασκεδαστικό, ενώ τώρα δύσκολα θα διαβάσει κάποιος όλο αυτό μονομιάς.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

teo (Θοδωρής)

Δραστήριο Μέλος

Ο Θοδωρής αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 426 μηνύματα.

O teo έγραψε: στις 11:09, 14-12-07:

#3
Ειναι καποιες ασκησεις που εχω κανει εγω για να μαθω καποια πραγματα στη C.

Οι πληροφοριες(η ιστορια της C) για τη C ειναι απο το TEI αθηνας του τμηματος πληροφορικης απο καποιες διαφανειες που βρισκονται στην διευθυνση ECLASS.CS.TEIATH.GR

σορι αλλα δεν εχω το χρονο για να τις παρουσιασω μια καθε εμβδομαδα. καλυτερα για μενα να τις παρουσιασω μονομιας.

Θα βαλω και αλλες ασκησεις αμα εχω το χρονο!
Αυτες οι ασκησεις θα εχουν να κανουν με αρχεια και δομες.
edited Τελευταία επεξεργασία από το χρήστη teo : 14-12-07 στις 16:03.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

pantelis1992

Νεοφερμένος

Ο pantelis1992 αυτή τη στιγμή δεν είναι συνδεδεμένος Έχει γράψει 31 μηνύματα.

O pantelis1992 έγραψε: στις 15:59, 27-11-11:

#4
Λοιπον παιδια μια ερωτηση για τη c.εκανα μια αναδρομικη συναρτηση (για τους αριθμους fibonachi)και θελω να βαλω εναν μετρητη οχι στη main αλλα στη συναρτηση fib για να μετρησω ποσες φορες εγινε η αναδρομικη κλιση(αναλογα με τον αριθμο που βαζουμε καθε φορα δλδ).Καμια βοηθεια??
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,956 μηνύματα.

O Γιώργος Hunt or be Hunted. έγραψε: στις 16:11, 27-11-11:

#5
Αρχική Δημοσίευση από pantelis1992
Λοιπον παιδια μια ερωτηση για τη c.εκανα μια αναδρομικη συναρτηση (για τους αριθμους fibonachi)και θελω να βαλω εναν μετρητη οχι στη main αλλα στη συναρτηση fib για να μετρησω ποσες φορες εγινε η αναδρομικη κλιση(αναλογα με τον αριθμο που βαζουμε καθε φορα δλδ).Καμια βοηθεια??
hint: Ψάξε για τον τύπο δεδομένων static.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

pantelis1992

Νεοφερμένος

Ο pantelis1992 αυτή τη στιγμή δεν είναι συνδεδεμένος Έχει γράψει 31 μηνύματα.

O pantelis1992 έγραψε: στις 16:18, 27-11-11:

#6
thanks θα το ψαξω αν και ακομα δεν καναμε τιποτα τετοιο ουτε στη θεωρια ουτε στο εργασηριο οποτε λογικα θα θελει αλλη λυση αλλα καλυτερα κιολας να μαθαινω!TY
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,956 μηνύματα.

O Γιώργος Hunt or be Hunted. έγραψε: στις 16:37, 27-11-11:

#7
Αρχική Δημοσίευση από pantelis1992
thanks θα το ψαξω αν και ακομα δεν καναμε τιποτα τετοιο ουτε στη θεωρια ουτε στο εργασηριο οποτε λογικα θα θελει αλλη λυση αλλα καλυτερα κιολας να μαθαινω!TY
Και που δεν το έχετε μάθει, τι σημαίνει;
Κοίτα (υποθέτοντας ότι είσαι 1ο έτος Γ' βάθμιας εκπαίδευσης) .... Είσαι στο 1ο έτος, όχι στην Δ' Λυκείου, οπότε μην μένεις στο τι σου έχουν δείξει. Ειδικά στον προγραμματισμό δεν υπάρχει "δεν μας το έχουν διδάξει".

Και απ' όσο ξέρω, αν θες να το κάνεις μέσα στη συνάρτηση, πρέπει να χρησιμοποιήσεις κάποιο τέτοιο τύπο. Αλλιώς global variables, που είναι ΚΑΚΗ προγραμματιστική τεχνική.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

antwwwnis (Αντωωωνης)

Διακεκριμένο μέλος

Ο Αντωωωνης αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Ηλεκτρολόγος μηχανικός και μας γράφει απο ΗΠΑ (Αμερική). Έχει γράψει 2,152 μηνύματα.

O antwwwnis ,αφού έκανε διατάσεις στα δάχτυλα του, έγραψε: στις 17:07, 27-11-11:

#8
Αρχική Δημοσίευση από Γιώργος
Και που δεν το έχετε μάθει, τι σημαίνει;
Κοίτα (υποθέτοντας ότι είσαι 1ο έτος Γ' βάθμιας εκπαίδευσης) .... Είσαι στο 1ο έτος, όχι στην Δ' Λυκείου, οπότε μην μένεις στο τι σου έχουν δείξει. Ειδικά στον προγραμματισμό δεν υπάρχει "δεν μας το έχουν διδάξει".

Και απ' όσο ξέρω, αν θες να το κάνεις μέσα στη συνάρτηση, πρέπει να χρησιμοποιήσεις κάποιο τέτοιο τύπο. Αλλιώς global variables, που είναι ΚΑΚΗ προγραμματιστική τεχνική.
Στους ΗΜΜΥ τυχαίνει καμιά φορά να χρειάζονται να γράψουν σε γλώσσα που δεν την έχουν διδαχθεί πουθενά;
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,956 μηνύματα.

O Γιώργος Hunt or be Hunted. έγραψε: στις 17:50, 27-11-11:

#9
Αρχική Δημοσίευση από antwwwnis
Στους ΗΜΜΥ τυχαίνει καμιά φορά να χρειάζονται να γράψουν σε γλώσσα που δεν την έχουν διδαχθεί πουθενά;
Φυσικά. Ξέρεις σε πόσα μαθήματα δίνονται εργασίες σε Java, αλλά Java δεν διδάσκεται πρακτικά πουθενά;
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Speedy

Διάσημο Μέλος

Ο Speedy αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Αγρίνιο (Αιτωλο/νία). Έχει γράψει 656 μηνύματα.

O Speedy έγραψε: στις 18:41, 27-11-11:

#10
Θα περνάς σαν παράμετρο στην συνάρτηση τον μετρητή αν δεν θες να χρησιμοποιήσεις global static μεταβλητή που σου πρότεινε ο Γιώργος, δηλαδή:

int fib1(int n,int counter) { counter++; if (n == 0) { return 0; } if (n == 1) { return 1; } return fib1(n - 1, counter) + fib1(n - 2,counter); }
edited Τελευταία επεξεργασία από το χρήστη Γιώργος : 28-04-12 στις 15:07. Αιτία: Code tags added.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

aergos

Δραστήριο Μέλος

Ο aergos αυτή τη στιγμή δεν είναι συνδεδεμένος Έχει γράψει 383 μηνύματα.

O aergos έγραψε: στις 20:58, 27-11-11:

#11
Αρχική Δημοσίευση από Speedy
Θα περνάς σαν παράμετρο στην συνάρτηση τον μετρητή αν δεν θες να χρησιμοποιήσεις global static μεταβλητή που σου πρότεινε ο Γιώργος, δηλαδή:

Δε θα δουλέψει αυτό με τον counter όπως το έχεις κάνει γιατί η συνάρτηση καλεί αναδρομικά 2 φορές τον εαυτό της και έτσι δημιουργούνται πολλά παρακλάδια με διαφορετικά instances του counter.
Επίσης αυτό που πρότεινε ο Γιώργος είναι εσωτερική στη συνάρτηση static μεταβλητή, όχι global.
edited Τελευταία επεξεργασία από το χρήστη Γιώργος : 28-04-12 στις 15:07. Αιτία: Spoiler tags
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

@nn@

Νεοφερμένος

H @nn@ αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 58 μηνύματα.

H @nn@ έγραψε: στις 15:11, 28-04-12:

#12
Γειά σας έχω μια απορία εδω και πόλυ καιρό. Μπορεί κάποιος να μου εξηγήσει τι είναι και σε τι χρησιμεύουν οι argc και argv που βαζουμε ως όρισμα στην main?
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Πληροφορικάριος

Πολύ δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 25 ετών και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 531 μηνύματα.

O Πληροφορικάριος έγραψε: στις 17:05, 28-04-12:

#13
main(int argc ,char *argv[])

Τα χρησιμοποιουμε για εισαγωγή δεδομένων οταν εκτελούμε το πρόγραμμα απο τη γραμμή εντολών..
Για να εκτελέσουμε το πρόγραμμα με όνομα esteki.exe γραφουμε:

esteki.exe παραμετρος1 παράμετρος2

οι παράμετροι χωρίζοντε με κενό και μπορουμε να βάλουμε ότι θέλουμε σε αυτούς.
Στο argc αποθηκέυετε το σύνολο τον παραμέτρων +1 για το όνομα του αρχείου(και αυτό παράμετρος είναι) π.χ. αν δώσαμε 2 παραμέτρους το argc γίνετε 3.
Το argv είναι ένας πίνακας δεικτών τύπου char.Έκει αποθηκεύονται οι παράμετροι που δώσαμε στο *argv[0] είναι το όνομα του αρχείου στο *argv[1] είναι η παράμετρος1 στο *argv[2] είναι η παράμετρος2 κλπ...

αν δώσουμε: esteki.exe party 2012
*argv[0]=="esteki.exe"
*argv[1]=="party"
*argv[2]=="2012"
(ξέρεις πως δουλεύει ο πίνακας δεικτών ε; )

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

@nn@

Νεοφερμένος

H @nn@ αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 58 μηνύματα.

H @nn@ έγραψε: στις 17:45, 28-04-12:

#14
Αρχική Δημοσίευση από Πληροφορικάριος
Ναι ξέρω πως δουλεύδουν οι πίνακες δικτών ευχαριστώ πολύ για την απάντηση είναι πολύ διευκρινιστική!!!
edited Τελευταία επεξεργασία από το χρήστη Γιώργος : 28-04-12 στις 17:51. Αιτία: Spoiler tag added.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

@nn@

Νεοφερμένος

H @nn@ αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 58 μηνύματα.

H @nn@ έγραψε: στις 23:58, 12-05-12:

#15
Μπορεί κάποιος να μου δώσει μια ιδέα για το πώς να ελέγχω αν τα στοιχεία που δίνει ο χρήστης είναι float ή char προσπάθησα να το κάνω με scanf αλλά δεν δουλεύει και έχω κολλήσει.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,956 μηνύματα.

O Γιώργος Hunt or be Hunted. έγραψε: στις 00:56, 13-05-12:

#16
Αρχική Δημοσίευση από @nn@
Μπορεί κάποιος να μου δώσει μια ιδέα για το πώς να ελέγχω αν τα στοιχεία που δίνει ο χρήστης είναι float ή char προσπάθησα να το κάνω με scanf αλλά δεν δουλεύει και έχω κολλήσει.
Δεν υπάρχει κάτι τέτοιο βασικά. Το float και το char είναι απλά πώς εσύ θα "διαβάσεις" τα δεδομένα σου και θα τα ερμηνεύσεις.
Με άλλα λόγια, όταν περιμένεις ένα δεδομένο Χ, που μπορεί να ανήκει είτε σε έναν τύπο Α, είτε σε έναν τύπο Β, τότε ο καλύτερος χειρισμός είναι να χρησιμοποιήσεις τον τύπο που καλύπτει και τα δύο και να πράττεις ανάλογα.

Πχ, αν περιμένεις είτε ακέραιους είτε πραγματικούς, τότε αποθηκεύεις αρχικά τα δεδομένα σου ως "πραγματικούς" κι από εκεί εξετάζεις τι είναι.
Αντίστοιχα, αν περιμένεις float η char, το καλύτερο θα ήταν να διαβάσεις char κι εκεί να δεις αν '0' <= x <= '9', φερ' ειπείν. Κοινώς, να αντιμετωπίσεις τους αριθμούς ως chars, αρχικά.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

@nn@

Νεοφερμένος

H @nn@ αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 58 μηνύματα.

H @nn@ έγραψε: στις 01:20, 13-05-12:

#17
Αυτό που λές να τα διαβάζει ως χαρακτήρες το έχω κάνει αλλά μετα πρέπει να το μετατρέψεις σε float και αυτό δεν είναι τοσο εύκολο γιατι τον αριθμό που θα δώσει πχ 12,3 τον αποθηκεύεις σε πίνακα χαρακτήρων και κάθε ψηφίο θα πάρει ξεχωριστή θέση στον πίνακα. Αυτό που σκεφτόμουν είναι με την scanf η οποία γυρνάει 1 όταν ειναί επιτυχης η εισάφωγή του στοιχείου και 0 όταν δεν είναι αλλά δεν δουλεύει:
Δείτε τον κώδικα μηπως έχω κάνει βλακία.

main()
float *FltArray;
int t,Dimention;
Dimention=10;

FltArray=(float*)malloc(sizeof(float)*Dimention);
printf("Please insert the numbers");
for(count=0;count<Dimention;count++)
{
t=scanf("%f",&FltArray[count]);
if(t!=1)
{
printf("the value must be a float number");
t=scanf("%f",&FltArray[count]);
}
{
return 0;
}
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

@nn@

Νεοφερμένος

H @nn@ αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Φοιτητής/τρια . Έχει γράψει 58 μηνύματα.

H @nn@ έγραψε: στις 01:23, 13-05-12:

#18
Για την ακρίβεια αυτό που κάνει οταν βάζω χαρακτήρα είναι να βγάζει συνέχεια στην οθόνη "the value must be a float number"
'
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Liakouras

Δραστήριο Μέλος

Ο Liakouras αυτή τη στιγμή δεν είναι συνδεδεμένος Έχει γράψει 358 μηνύματα.

O Liakouras έγραψε: στις 12:13, 13-05-12:

#19
Πάντως μπορείς να κάνεις μετατροπή ενός char σε float με την χρήση της συνάρτησης atoi()
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Lysippe

Περιβόητο Μέλος

H Lysippe αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 996 μηνύματα.

H Lysippe έγραψε: στις 13:15, 13-05-12:

#20
Δεν βλέπω καμιά αναγκαιότητα στον έλεγχο αυτού που δίνει ο χρήστης, με την έννοια που του δίνεις εσύ. Ένας καλός προγραμματιστής έχει πλήρη γνώση του τι έχει να κάνει και προσπαθεί να κάνει βέλτιστο το πρόγραμμά του. Τουτέστιν, είναι άσκοπο να βάζει συνθήκες και να κάνει ελέγχους, που δεν χρειάζονται ουσιαστικά.

Τα προγραμματάκια είναι εξειδικευμένα για συγκεκριμένη χρήση. Αφού ξέρεις ότι έχεις να κάνεις πχ με ακεραίους, εγκλωβίζεις τον χρήστη σε μία do... while, έως ότου δώσει ακέραιο αριθμό. Βάζεις και μία printf, που να του λέει δώσει ακέραιο αριθμό και τελείωσες. Τώρα αν χρειαστεί μία διαίρεση ας πούμε, μπορείς με casting να πάρεις αυτό που θέλεις.
1 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση
Απάντηση στο θέμα

Χρήστες

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα.
     
  • (View-All Tα παρακάτω 0 μέλη διάβασαν αυτό το θέμα τις τελευταίες 30 μέρες:
    Μέχρι και αυτή την στιγμή δεν έχει δει το θέμα κάποιο ορατό μέλος

Βρείτε παρόμοια