NetSurfer_g7 Δημοσιεύτηκε November 26, 2011 Κοινοποίηση Δημοσιεύτηκε November 26, 2011 Την Τεταρτη ο καθηγητης του μαθηματος"Εισαγωγη στον προγραμματισμο"μας εβαλε την πρωτη μας εργασια.Εδω υπαρχει η εκφωνηση.Αυτο που δενεχω καταλαβει καλα ειναι πως μπορουμε να ελενξουμε αμα ενας αριθμος ειναι πρωτος.Για το αμα ειναι "ευτυχισμενος" φανταζομαι οτι θα διαχωριζουμε τα ψηφια(με ακεραια διαιρεση) θα βρισκουμε το αθρισμα των τετραγωνων τους και θα επαναλαβουμε την διαδικασια μεχρι να καταληξουμε σε 1 ή στον αρχικο αριθμο.Επισεις δεν ξερω καλα πως χρησημοποιειται η συναρτηση παραγωγης τυχαιων αριθμων rand.Υπαρχει καποιος που να γνωριζει καλα την C και να εχει λυσει παρομοιο προβλημα ή εστω καποια ιστοσελιδα που να εχει ετοιμο προγραμμα ελενχου πρωτων αριθμων? Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
mitsos1 Δημ. November 26, 2011 Κοινοποίηση Δημ. November 26, 2011 (edited) Την Τεταρτη ο καθηγητης του μαθηματος"Εισαγωγη στον προγραμματισμο"μας εβαλε την πρωτη μας εργασια.Εδω υπαρχει η εκφωνηση.Αυτο που δενεχω καταλαβει καλα ειναι πως μπορουμε να ελενξουμε αμα ενας αριθμος ειναι πρωτος.Για το αμα ειναι "ευτυχισμενος" φανταζομαι οτι θα διαχωριζουμε τα ψηφια(με ακεραια διαιρεση) θα βρισκουμε το αθρισμα των τετραγωνων τους και θα επαναλαβουμε την διαδικασια μεχρι να καταληξουμε σε 1 ή στον αρχικο αριθμο.Επισεις δεν ξερω καλα πως χρησημοποιειται η συναρτηση παραγωγης τυχαιων αριθμων rand.Υπαρχει καποιος που να γνωριζει καλα την C και να εχει λυσει παρομοιο προβλημα ή εστω καποια ιστοσελιδα που να εχει ετοιμο προγραμμα ελενχου πρωτων αριθμων? n=0; for (i=1; i<=number; i++) { if (number/i==0) n+=1; } if (n==2) printf ("%d is a prime number",number); Ο number ειναι ενας τυχαιος ακεραιος αριθμος.Ετσι νομιζω οτι ειναι ο αλγοριθμος που βρισκει τους πρωτους αριθμους αλλα επειδη και εγω ειμαι πρωτοετης ας πει και καποιος πιο εμπειρος. Edited November 26, 2011 by mitsos1 Παράθεση Android is simple, it just takes a genius to understand its simplicity. Samsung Galaxy S4 die hard !! Samsung Galaxy S7 Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. November 26, 2011 Author Κοινοποίηση Δημ. November 26, 2011 n=0; for (i=1; i<=number; i++) { if (number/i==0) n+=1; } if (n==2) printf ("%d is a prime number",number); Ο number ειναι ενας τυχαιος ακεραιος αριθμος.Ετσι νομιζω οτι ειναι ο αλγοριθμος που βρισκει τους πρωτους αριθμους αλλα επειδη και εγω ειμαι πρωτοετης ας πει και καποιος πιο εμπειρος. Ευχαριστω.Νομιζω ομως οτι αντι για / στην διαιρεση πρεπει να μπει % αφου θελουμε να βρουμε αμα το ακεραιο υπολοιπο ισουται με 0.Αμα καποιος ξερει πως ακριβως χρησημοποιειται το rand ας το γραψει. Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
mitsos1 Δημ. November 26, 2011 Κοινοποίηση Δημ. November 26, 2011 Ευχαριστω.Νομιζω ομως οτι αντι για / στην διαιρεση πρεπει να μπει % αφου θελουμε να βρουμε αμα το ακεραιο υπολοιπο ισουται με 0.Αμα καποιος ξερει πως ακριβως χρησημοποιειται το rand ας το γραψει. Ναι εισαι σωστος για το % και να φανταστεις οτι αυτο πηγα και πειραξα στην τροποποιηση :lol: Παράθεση Android is simple, it just takes a genius to understand its simplicity. Samsung Galaxy S4 die hard !! Samsung Galaxy S7 Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
giothesuper Δημ. November 27, 2011 Κοινοποίηση Δημ. November 27, 2011 σε ποια ταξη αυτα? Παράθεση Φιλικά Γιώργος GIO......!!!!! ❼:respect: Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
mitsos1 Δημ. November 27, 2011 Κοινοποίηση Δημ. November 27, 2011 σε ποια ταξη αυτα? Εννοείς πότε τα κάνουμε αυτά;Αν εννοείς αυτό τότε εμείς κάνουμε c στο πρώτο εξάμηνο.Αυτό μπορεί να διαφέρει ανάλογα το τμήμα για παράδειγμα αλλού μπορεί να μην κάνουν καθόλου ή να κάνουν αργότερα. Παράθεση Android is simple, it just takes a genius to understand its simplicity. Samsung Galaxy S4 die hard !! Samsung Galaxy S7 Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. November 28, 2011 Author Κοινοποίηση Δημ. November 28, 2011 σε ποια ταξη αυτα? Εγω ειμαι στο 1ο ετος στο τμημα Πληροφορικης και τηλεπικοινωνιων του πανεπιστημιου Αθηνας.Τωρα αρχισαμε να μαθαινουμε C στο μαθημα "Εισαγωγη στον προγραμματισμο" και το προγραμμα που αναφερω παραπανω ειναι η πρωτη μας εργασια.Μπορω να πω οτι ειναι λιγο περιπλοκη για πρωτη εργασια.Θα μπορουσε να μας βαλει κατι πιο απλο για αρχη αφου ειμαστε ακομα αρχαριοι στην C. Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
zxr Δημ. November 29, 2011 Κοινοποίηση Δημ. November 29, 2011 Πρώτοι αριθμοί είναι οι αριθμοί που διαιρούνται μόνο με τη μονάδα και τον εαυτό τους πχ το 13. Για να βρεις αν ένας αριθμός Ν είναι πρώτος τον διαιρείς με όλους τους αριθμούς που είναι μικρότεροι του Ν κι αν έχει διαιρέτη τότε δεν είναι πρώτος. Προφανώς αυτό το κάνεις με το mod. H rand είναι συνάρτηση που χρησιμοποιείται κυρίως για την παραγωγή τυχαίων αριθμών. Για να την χρησιμοποιήσεις την αρχικοποιείς, srand(time(NULL)); και στη συνέχεια την χρησιμοποιείς rand() % 11 (το mod με το 11 είναι γιατί ήθελα αριθμούς σε μια συγκεκριμένη περιοχή.) Στείλε μου ένα mail να σου στείλω μερικούς κώδικες για μελέτη (όχι για αντιγραφή γιατί έτσι δεν θα μάθεις ποτέ). Υ.Γ.: Αυτά που σας έβαλε σαν πρώτη άσκηση είναι πολύ απλά. Που να δεις παρακάτω τι γίνεται! Παράθεση http://www.myphone.gr/gallery/data/500/ZXRFlame.jpg Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
greeker Δημ. November 30, 2011 Κοινοποίηση Δημ. November 30, 2011 μπορείς για λόγους βελτιστοποίσης-ταχύτητας να διαιρείς μέχρι τον ακέραιο που αντιστοιχεί στη ρίζα του Ν (sqrt(N)) αντί για N-1.. η απόδειξη είναι απλή και αφήνεται ως άσκηση στον αναγνώστη... αν θέλεις βοήθεια όμως το εξηγώ... Παράθεση μέτρον άριστον Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
mitsos1 Δημ. November 30, 2011 Κοινοποίηση Δημ. November 30, 2011 μπορείς για λόγους βελτιστοποίσης-ταχύτητας να διαιρείς μέχρι τον ακέραιο που αντιστοιχεί στη ρίζα του Ν (sqrt(N)) αντί για N-1.. η απόδειξη είναι απλή και αφήνεται ως άσκηση στον αναγνώστη... αν θέλεις βοήθεια όμως το εξηγώ... Δεν το καταλαβα. Παράθεση Android is simple, it just takes a genius to understand its simplicity. Samsung Galaxy S4 die hard !! Samsung Galaxy S7 Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
zxr Δημ. November 30, 2011 Κοινοποίηση Δημ. November 30, 2011 greeker δεν ξέρω αν επιτρέπει ο καθηγητής στους πρωτοετείς τη χρήση αυτών των συναρτήσεων . Το σύνηθες είναι να μην το επιτρέπει γιατί ο υπολογισμός της ρίζας μπαίνει σαν άσκηση συνήθως... Παράθεση http://www.myphone.gr/gallery/data/500/ZXRFlame.jpg Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
greeker Δημ. November 30, 2011 Κοινοποίηση Δημ. November 30, 2011 ορθόν... παρόλα αυτά αν θέλεις, έστω και επί χάρτου, mitsou1 δοκίμασε να υποθέσεις ότι έχεις σαρώσει του ακεραίους μέχρι το ρίζα(Ν)-1 και δεν έχεις βρει κανέναν που να διαιρεί ακριβώς τον Ν... έχει νόημα να ψάξεις παραπάνω; σαφώς και όχι, διότι τότε χρειάζεσαι 2 ακεραίους μεγαλύτερους από ρίζα(Ν)-1 που το γινόμενο δίνει Ν... αδύνατο όμως διότι τότε το γινόμενο θα είναι >Ν ;) Παράθεση μέτρον άριστον Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. December 9, 2011 Author Κοινοποίηση Δημ. December 9, 2011 Ευχαριστω πολυ.Την τελειωσα την ασκηση και μου τρεχει κανονικα.Ομως πριν προλαβουμε να χαλαρωσουμε λιγο μας εβαλε καπακι την 2η ασκηση.Εδω βρισκεται η εκφωνηση.Φαινεται πιο δυσκολη απο την 1η ασκηση.Δεν εχω καταλαβει πως μπορει το προγραμμα να διαβαζει ολοκληρη την αριθμητικη παρασταση σε 1 γραμμη και να εμφανιζει απο κατω το αποτελεσμα.Πρεπει να διαβαστει ολη σε 1 εντολη και μεταβλητη ή καθε χαρακτηρας σε ξεχωριστη?Υπαρχει κανεις που να ξερει πως γινεται η να εχει κανει κατι παρομοιο?Αμα υπαρχει ας δωσει τα φωτα του. Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
Techguru Δημ. December 9, 2011 Κοινοποίηση Δημ. December 9, 2011 (edited) Θα προσπαθουσα να παρω ολη την γραμμη με την fgets (θα την αποθηκευσει σε ενα πινακα χαρακτηρων) με το τελος της γραμμης που εδωσε ο χρηστης να ειναι το /n. Στην συνεχεια διαβαζοντας ενα ενα τους αριθμους μετετρεψε τους σε ακεραιους με το atoi (εχωντας τους αποθηκευμενους σε ενα αλλο πινακα char). Τα συν και τα πλην μπορεις να τα συμβολιζεις με 0 και 1 και αναλογα με ενα if να κανεις την πραξη μεταξυ των αριθμων. Edited December 9, 2011 by Techguru Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
zxr Δημ. December 9, 2011 Κοινοποίηση Δημ. December 9, 2011 Δεν ξέρω αν μπορούν να χρησιμοποιήσουν την fgets ως πρωτοετείς. Θα σου πρότεινα να κοιτάξεις να το κάνεις με την fscan. Στα ορίσματά της θα βάλεις τι θα διαβάζει και αναλόγως θα κάνεις τις πράξεις. Αν φτιάξεις να διαβάζει σωστά την είσοδο τότε τα bonus που λεει η άσκηση είναι εύκολα. Παράθεση http://www.myphone.gr/gallery/data/500/ZXRFlame.jpg Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. December 11, 2011 Author Κοινοποίηση Δημ. December 11, 2011 (edited) Θα προσπαθουσα να παρω ολη την γραμμη με την fgets (θα την αποθηκευσει σε ενα πινακα χαρακτηρων) με το τελος της γραμμης που εδωσε ο χρηστης να ειναι το /n. Στην συνεχεια διαβαζοντας ενα ενα τους αριθμους μετετρεψε τους σε ακεραιους με το atoi (εχωντας τους αποθηκευμενους σε ενα αλλο πινακα char). Τα συν και τα πλην μπορεις να τα συμβολιζεις με 0 και 1 και αναλογα με ενα if να κανεις την πραξη μεταξυ των αριθμων. Δυστυχως δεν επιτρεπεται ακομα να χρησημοποιησουμε strings και πινακες.Ολοι οι χαρακτηρες πρεπει να διαβαστουν με getchar.Απ'οτι καταλαβα πρεπει να τα διαβαζουμε χαρακτηρα-χαρακτηρα.Αυτο που δεν εχω καταλαβει ειναι πως θα διαβασουμε εναν αριθμο με πολλα ψηφια?Π.χ. το 53 θα το διαβασει σαν 5 και 3 αφου θα εχει διαβαστει χαρακτηρα-χαρακτηρα.Πως θα κανουμε το προγραμμα να καταλαβει οτι γραψαμε 53 και οχι 5 3 και να αποθηκευσει σε 1 μεταβλητη το 53 για να γινουν οι πραξεις? Edited December 11, 2011 by NetSurfer_g7 Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
gpou Δημ. December 11, 2011 Κοινοποίηση Δημ. December 11, 2011 Χρησιμοποιησε stringstream και operator << Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. December 12, 2011 Author Κοινοποίηση Δημ. December 12, 2011 Χρησιμοποιησε stringstream και operator << Δυστυχως στην συγκεκρειμενη εργασια απαγορευεται η χρηση πινακων και strings. Πως στο διαολο το κανουν με getchar???Παω να το κανω αλλα οι μεταβλητες αντι να παρουν σαν τιμες τα νουμερα που δινω παιρνουν τους αντιστοιχους κωδικους ASCII.Π.χ.αμα δωσω το 1 σε μια μεταβλητη,οταν παω να εκτυπωσω την τιμη της μεταβλητης μου δειχνει 49(που ειναι ο κωδικος του '1' στον πινακα ASCII)Πως να γινουν ετσι σωστα οι πραξεις αμα δινω 1 και καταλαβαινει 49??? Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
zxr Δημ. December 12, 2011 Κοινοποίηση Δημ. December 12, 2011 Σας έχει πει ο καθηγητής να το κάνετε μόνο με getchar(); Αν ναι τότε θα πρέπει να σαρώνεις το input χαρακτήρα-χαρακτήρα και να αποθηκεύεις τον κάθε χαρακτήρα σε μια μεταβλητή. Αυτό θα το κάνεις μέχρι να βρεις "+" ή "-". Μόλις βρεις τους παραπάνω τελεστές τότε ενώνεις τα ψηφία που έχεις μαζέψει από την getchar() σε έναν αριθμό και συνεχίζεις την σάρωση μέχρι να βρεις terminating character. Περίεργη υλοποίηση αλλά αν πρέπει να το κάνεις οπωσδήποτε με getchar()...... Παράθεση http://www.myphone.gr/gallery/data/500/ZXRFlame.jpg Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. December 21, 2011 Author Κοινοποίηση Δημ. December 21, 2011 Σας έχει πει ο καθηγητής να το κάνετε μόνο με getchar(); Αν ναι τότε θα πρέπει να σαρώνεις το input χαρακτήρα-χαρακτήρα και να αποθηκεύεις τον κάθε χαρακτήρα σε μια μεταβλητή. Αυτό θα το κάνεις μέχρι να βρεις "+" ή "-". Μόλις βρεις τους παραπάνω τελεστές τότε ενώνεις τα ψηφία που έχεις μαζέψει από την getchar() σε έναν αριθμό και συνεχίζεις την σάρωση μέχρι να βρεις terminating character. Περίεργη υλοποίηση αλλά αν πρέπει να το κάνεις οπωσδήποτε με getchar()...... Ευχαριστω.Σχεδον το ολοκληρωσα.Ομως πριν καν παραδωσουμε την 2η ασκηση μας εδωσε στο καπακι την 3η που ειναι τεραστιο παλουκι για εμας που ειμαστε ακομα αρχαριοι στην C. http://cgi.di.uoa.gr/~ip/iphw1112_3.pdf Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
zxr Δημ. December 22, 2011 Κοινοποίηση Δημ. December 22, 2011 Μόλις είδα για γάμους σταμάτησα το διάβασμα! :p Δεν είναι τοσό δύσκολη όσο φαίνεται. Το παν είναι να καταλάβεις τι ζητάει. Θα δεις ότι η υλοποίηση δεν είναι ανέφικτη. Θα το κοιτάξω πιο προσεκτικά και θα επανέλθω. Παράθεση http://www.myphone.gr/gallery/data/500/ZXRFlame.jpg Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. December 22, 2011 Author Κοινοποίηση Δημ. December 22, 2011 Αυτο ειναι το προβλημα.Οτι εχω καταμπερδευτει με την εκφονηση.Πως θα το υλοποιησω αμα δεν εχω καταλαβει καλα-καλα τι ζηταει?Και εχει και τεραστεια πολυπλοκοτητα.Για να υλοποιηθει σε προγραμμα πιστευω χρειαζεται παρα πολλες γραμμες κωδικα. Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
NetSurfer_g7 Δημ. January 23, 2012 Author Κοινοποίηση Δημ. January 23, 2012 Τελικα την παρατησα την 3η ασκηση διοτι ηταν απαλευτη.Τωρα ομως μας εδωσε την 4η ασκηση η οποια ειναι να φτιαξουμε εναν διερμηνευτη απο μια ανυπαρκτη γλωσσα(ipl) σε γλωσσα C.Ειναι εξαιρετικα δυσκολη και περιπλοκη για τοσο αρχαριους πρωτοετεις προγραμματιστες.Θελω ομως να την κανω,αφου δεν εκανα την 3η.Εδω υπαρχει η εκφωνηση:http://cgi.di.uoa.gr/~ip/iphw1112_4.pdf.Αμα υπαρχει καποιος εμπειρος που εχει καμια ιδεα,ας βοηθησει. Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
mitsos1 Δημ. March 15, 2012 Κοινοποίηση Δημ. March 15, 2012 Καλησπέρα παιδιά, πως μπορώ να δω αν ένας αριθμός που δίνει ο χρήστης είναι ακέραιος; Παράθεση Android is simple, it just takes a genius to understand its simplicity. Samsung Galaxy S4 die hard !! Samsung Galaxy S7 Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
greeker Δημ. March 15, 2012 Κοινοποίηση Δημ. March 15, 2012 Καλησπέρα παιδιά, πως μπορώ να δω αν ένας αριθμός που δίνει ο χρήστης είναι ακέραιος; Παίζει ρόλο πως τον ζητάς αυτό τον αριθμό. Ας πούμε ότι τον αποθηκεύεις σε float και θέλεις να δεις αν είναι ακέραιος. float f; scanf ("%f\n", &f); if (f == (int)f) { printf ("true\n"); } else { printf ("false\n"); } οπότε οι: 1, 2, 3.0, 15.00 θα δίνουν true ενώ οι: 1.23, 2.3, κλπ θα δίνουν false Παράθεση μέτρον άριστον Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.