THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: Βασιλεία on June 13, 2007, 09:58:52 am



Title: Εργασία C 2007
Post by: Βασιλεία on June 13, 2007, 09:58:52 am
3η Εργασία C

Η λειτουργία μιας μηχανής ελέγχεται από ένα ηλεκτρονικό υπολογιστή. Η μηχανή είναι συνδεδεμένη με ένα σύστημα 16 διακοπτών με το άνοιγμα ή με το κλείσιμο των οποίων ρυθμίζεται η λειτουργία της. Ακόμη η κατάσταση της μηχανής αναγνωρίζεται από την ύπαρξη ή όχι τάσης σε μια σειρά από 8 ακροδέκτες. Ο ηλεκτρονικός υπολογιστή που ελέγχει τη μηχανή συνδέει τις θύρες Α και B, μέσω ενός συστήματος προσαρμογής, με τους 16 διακόπτες (8 διακόπτες για κάθε θύρα) έτσι ώστε να ενεργοποιείται ένας διακόπτης αν το byte που θα σταλεί σε κάποια από τις θύρες αυτές έχει την τιμή 1 στο αντίστοιχο bit. Οι 8 ακροδέκτες που δηλώνουν την κατάσταση της μηχανής συνδέονται, με κατάλληλο σύστημα προσαρμογής, με τη θύρα C.
Να γραφεί το πρόγραμμα το οποίο να ορίζει τις μεταβλητές Α, Β και C, τύπου unsigned char, οι διευθύνσεις των οποίων να θεωρηθούν ως οι διευθύνσεις των τριών θυρών εισόδου εξόδου με τις οποίες επικοινωνεί ο υπολογιστής με τη μηχανή. Το πρόγραμμα να εισάγει από το πληκτρολόγιο τη θέση των διακοπτών που θα ενεργοποιηθούν (το μέγιστο 8 διακόπτες) και αφού σχηματισθεί το αντίστοιχο byte να καταχωρείται στη θύρα Α και να εμφανίζεται στην οθόνη ο αριθμός που αντιστοιχεί σε αυτό.
 Στη συνέχεια να διαβάζει το περιεχόμενο της θύρας C (το περιεχόμενο της θύρας C είναι μια τιμή που διαβάζεται από το πληκτρολόγιο) και να εμφανίζει στην οθόνη οι θέσεις των bits τα οποία έχουν τιμή 1. Το πρόγραμμα να ενεργοποιεί στη θύρα B όσους διακόπτες αντιστοιχούν στα bit της θύρας C και έχουν τιμή 0 ενώ να απενεργοποιεί τους διακόπτες εκείνους για τους οποίους στην αντίστοιχη θέση της θύρας C εμφανίζεται το bit να έχει την τιμή 1. Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη.
Τέλος, αν θεωρηθεί ότι οι αντίστοιχοι διακόπτες των θυρών Α και Β είναι συνδεδεμένοι και εν σειρά (το αντίστοιχο κύκλωμα διαρρέεται από ρεύμα όταν και οι δύο διακόπτες είναι κλειστοί) να εμφανίζονται στην οθόνη οι θέσεις των διακοπτών για τους οποίους, ενώ ο ένας από τους δύο είναι κλειστός το αντίστοιχο κύκλωμα δε διαρέεται από ρεύμα. 

Σημ: Να χρησιμοποιηθούν αποκλείστηκα οι δυαδικοί τελεστές.

Χμμμ..."λίγο" δύσκολη φαίνεται... :-\


Title: 3η Εργασία-Απορίες
Post by: stefos on June 13, 2007, 10:09:08 am
''λίγο"...?
Την διαβασα 2-3 φορές αλλα δεν μπηκα στη λογικη της.


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 13, 2007, 10:58:47 am
..Δείτε και τo περσινό τοπικ για την εργασία C!


Title: 3η Εργασία-Απορίες
Post by: MARIOS on June 13, 2007, 11:32:22 am
Φίλοι μου καλοί αυτή θα είνια η πιο δύσκολη εργασία σας αλλά και η πιο ωραία!!!


Title: 3η Εργασία-Απορίες
Post by: PallasFTW on June 13, 2007, 11:39:44 am
!!!thnx guys!Επιτέλους την βρήκα την ^$%$^ την αγκύλη!!! ^wav^ ^wav^ ^wav^
άφησα και κενό στο τέλος να είμαι σίγουρος ^kaloe^


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 13, 2007, 11:47:25 am
Μάριε πέρσι την εργασία δεν την κάνατε μόνο με δυαδικούς τελεστές ε?Παρόλο που λέει από κάτω "αποκλειστικά"..Στο for μπορούμε να χρησιμοποιήσουμε κανά =,< έτσι δεν είναι?


Title: 3η Εργασία-Απορίες
Post by: vasso on June 13, 2007, 12:56:56 pm
Θεωρία για τους δυαδικούς τελεστές και γενικότερα για τη χρήση των δυαδικών *, έχει και στο βιβλίο ή μόνο ότι έχει στις σημειώσεις;

υγ. δυαδικών *= δυαδικών οτιδήποτε


Title: 3η Εργασία-Απορίες
Post by: Wade on June 13, 2007, 15:08:45 pm
Quote
Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη.

Εδώ εννοεί να εμφανίζεται ο ASCII χαρακτήρας που αντιστοιχεί στο byte που έχει το B, ή να εμφανίζεται για παράδειγμα 01110111;


Title: 3η Εργασία-Απορίες
Post by: vasso on June 13, 2007, 15:15:42 pm
το πρώτο.


Title: 3η Εργασία-Απορίες
Post by: Wade on June 13, 2007, 15:24:26 pm
Ευχαριστώ :)  Και όταν λέει "να εμφανίζεται στην οθόνη ο αριθμός που αντιστοιχεί σε αυτό" για το Α, εννοεί σε δυαδική μορφή;


Title: 3η Εργασία-Απορίες
Post by: vasso on June 13, 2007, 15:27:14 pm
όχι δεν νομίζω... πρέπει να εννοεί πάλι τον char... έτσι το αντιλαμβάνομαι εγώ. Άλλωστε δεν είναι πρακτικό για το χρήστη να δουλεύει με δυαδικούς...


Title: 3η Εργασία-Απορίες
Post by: Wade on June 13, 2007, 15:29:28 pm
Σκέφτηκα και ένα άλλο ενδεχόμενο: Μήπως εννοεί να θεωρήσουμε τον Α σαν αριθμό σε δυαδικό σύστημα και να τον μετατρέψουμε σε δεκαδικό;  Δε νομίζω, αλλά λέμε μήπως...


Title: 3η Εργασία-Απορίες
Post by: vasso on June 13, 2007, 15:33:16 pm
Ο Α είναι unsigned char δηλαδή καταλαμβάνει 8 bits.
Αυτός ο 8άbitος αριθμός στο δυαδικό σύστημα αντιστοιχεί σε έναν αριθμό (από -64 ως 63 αν δεν κάνω λάθος) στο δεκαδικό. Τη μετατροπή δεν την κάνουμε εμείς, την κάνουν οι compilers. Το "τρομακτικό" κομμάτι της εργασίας είναι ότι εμείς θα μεταβάλλουμε τις τιμές των bits και όχι των byte ολόκληρων όπως κάναμε μέχρι τώρα (άρα και δεν χρειαζόταν να δουλέψουμε με 0/1)

Το πρόγραμμά μας κάνει τη δουλειά του στο δυαδικό και εκτυπώνει δεκαδικούς.


Title: 3η Εργασία-Απορίες
Post by: Wade on June 13, 2007, 15:38:12 pm
Ο Α είναι unsigned char δηλαδή καταλαμβάνει 8 bits.
Αυτός ο 8άbitος αριθμός στο δυαδικό σύστημα αντιστοιχεί σε έναν αριθμό (από -64 ως 63 αν δεν κάνω λάθος) στο δεκαδικό. Τη μετατροπή δεν την κάνουμε εμείς, την κάνουν οι compilers.

Ο κωδικός ASCII δεν είναι ίσος με την τιμή που θα είχε αν το παίρναμε σαν αριθμό και το μετατρέπαμε στο δεκαδικό σύστημα.  Για παράδειγμα, το 9 σε ASCII είναι 00111001, αλλά ο αριθμός 9 στο δυαδικό σύστημα είναι 00001001.


Title: 3η Εργασία-Απορίες
Post by: Βασιλεία on June 14, 2007, 10:35:37 am
Μιας και βλέπω ότι κάποιοι κατάλαβαν τι θέλει η ασκηση...δεν το γνωστοποιούν και σεμάς???
 :D ;)


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 14, 2007, 11:03:07 am
Για το Α:δίνουμε τις θέσεις των διακοπτών που θέλουμε να ενεργοποιηθούν,από 1-8,πχ΄3 7 5..Αρα θα πρέπει να σχηματιστεί ενα byte που αποτελείται απο ταεξής bit  00101010..Η αρίθμηση γίνεται απο τα αριστερά  στα δεξιά.Αυτό το μετατρέπεις σε δεκαδικό,και παίρνεις την τιμή του Α την οπία εκτυπώνεις

Για το C:Δίνεις κανονικά μια τιμή και την μετατρέπεις σε δυαδικό,εκτυπώνεις τις θέσεις των μπιτ που είναι 1

Για το Β:  B=~C

Για τα Α κ Β:Αν τα αντίστοιχα bit είναι διαφορετικά εκτυπώνεις τις θέσεις τους.

Επίσης "πάιζει"πολύ ολίσθηση στα 2 πρώτα ερωτήματα.


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 14, 2007, 11:12:43 am
Ααα..και προφανώς εννοείται ότι χρησιμοποιούμε κ άλλους τελεστές όπου αυτό θεωρηθεί αναγκαίο!!σιγά μην γίνεται πρόγραμμα μόνο με δυαδικούς,ΑΜΑΝ ΑΥΤΕΣ ΟΙ ΗΛΙΘΙΕΣ ΕΚΦΩΝΗΣΕΙΣ!!!!!!!!!!


Title: 3η Εργασία-Απορίες
Post by: xenia on June 14, 2007, 11:13:10 am
Εννοείται!


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 14, 2007, 11:15:56 am
Εννοείται!
ΕΣΥ ΤΙ ΘΕΣ ΤΩΡΑ ΡΕΕΕ!!? :D


Title: 3η Εργασία-Απορίες
Post by: xenia on June 14, 2007, 11:17:52 am
:(


Title: 3η Εργασία-Απορίες
Post by: harris on June 14, 2007, 17:42:30 pm
Για το Α:δίνουμε τις θέσεις των διακοπτών που θέλουμε να ενεργοποιηθούν,από 1-8,πχ΄3 7 5..Αρα θα πρέπει να σχηματιστεί ενα byte που αποτελείται απο ταεξής bit  01010100..Η αρίθμηση γίνεται απο τα αριστερά στα δεξιά.Αυτό το μετατρέπεις σε δεκαδικό,και παίρνεις την τιμή του Α την οπία εκτυπώνεις
τι εννοεις ρε συ..δεν καταλαβαινω αφού λεει:
Το πρόγραμμα να εισάγει από το πληκτρολόγιο τη θέση των διακοπτών που θα ενεργοποιηθούν (το μέγιστο 8 διακόπτες) και αφού σχηματισθεί το αντίστοιχο byte να καταχωρείται στη θύρα Α και να εμφανίζεται στην οθόνη ο αριθμός που αντιστοιχεί σε αυτό.
αρα εγω δινω στο προγραμμα πχ. 0 1 0 1 0 0 1 1 (αυτη ειναι η θεση των διακοπτων)και μετα βρισκω ποιος αριθμος ειναι..
στην υλη σε ποιο σημειο βρισκεστε;


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 14, 2007, 18:17:17 pm
Αυτό που λες το σκέφτηκα,αλλά ετσι εισάγεις όλα τα bit,ακόμα και τους διακόπτες που δεν ενεργοποιούνται(αυτά που είνα 0) ενώ οπως  λέει "να εισάγει από το πληκτρολόγιο τη θέση των διακοπτών που θα ενεργοποιηθούν"εγώ καταλαβαίνω ότι δηλώνεις τη θέση του διακόπτη που σε ενδιαφέρει να ενεργοποιηθεί πχ 0 0 0 1 0 0 1 0,θέλουμε ο διακόπτης που βρίσκεται στη θέση 4(από δεξιά προς αριστερά) και στη θέση 7 να είναι ενεργοποιημένοι,άρα δηλώνω το 4 και το 7 στο πληκτρολόγιο χωρίς να μας απασχολούν οι άλλοι διακόπτες που έτσι κ αλλιώς δεν ενεργοποιούνται!!..



 


Title: 3η Εργασία-Απορίες
Post by: sarovios on June 14, 2007, 18:25:05 pm
Δεν καταλαβαινω τιποτααααα!!!!!!   :-\


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 14, 2007, 18:34:38 pm
xa,xa υπομονή :P


Title: 3η Εργασία-Απορίες
Post by: sarovios on June 14, 2007, 18:39:51 pm
Μου αρεσει που ο Κορτεσης στο πρωτο μαθημα ειπε οτι θα βοηθησει τα παιδια της θετικης. Το ενιωσε κανεις αυτο??????   >:(


Title: 3η Εργασία-Απορίες
Post by: eddie on June 14, 2007, 18:50:32 pm
Εγώ πάντως από πρόπερσι που πρωτοέκανα το μάθημα,αυτό προσπαθώ να καταλάβω...


Title: 3η Εργασία-Απορίες
Post by: harris on June 14, 2007, 19:22:16 pm
Μου αρεσει που ο Κορτεσης στο πρωτο μαθημα ειπε οτι θα βοηθησει τα παιδια της θετικης. Το ενιωσε κανεις αυτο??????   >:(
ναι οντως το νιωσατε...βαθια αυτο
Quote
εγώ καταλαβαίνω ότι δηλώνεις τη θέση του διακόπτη
οταν λεει θεση εννοει 2 καταστασεις
a)ο διακοπτης ειναι ανοιχτος αρα παιρνει την τιμη 0
b)ο διακοπτης ειναι κλειστος αρα παιρνει την τιμη 1
ετσι νομιζω οτι ειναι


Title: 3η Εργασία-Απορίες
Post by: vasso on June 14, 2007, 19:33:24 pm
εγώ πάντως το έκανα όπως λέει ο bo@rd.
Ζήτησα να μου δώσει τις θέσεις των διακοπτών που ενεργοποιούνται (1-8) τις έβαλα σε πίνακα και μετά σύμφωνα με τα δεδομένα του πίνακα καταχώρησα το Α..


Title: 3η Εργασία-Απορίες
Post by: harris on June 14, 2007, 19:34:24 pm
ΕΙΝΑΙ ΤΡΑΓΙΚΟ ΛΑΘΟΣ...πλακα κανω! 8) 8) 8)


Title: 3η Εργασία-Απορίες
Post by: vasso on June 14, 2007, 19:53:54 pm
Quote
εγώ καταλαβαίνω ότι δηλώνεις τη θέση του διακόπτη
οταν λεει θεση εννοει 2 καταστασεις
a)ο διακοπτης ειναι ανοιχτος αρα παιρνει την τιμη 0
b)ο διακοπτης ειναι κλειστος αρα παιρνει την τιμη 1
ετσι νομιζω οτι ειναι

εκφώνηση:
...Το πρόγραμμα να εισάγει από το πληκτρολόγιο τη θέση των διακοπτών που θα ενεργοποιηθούν (το μέγιστο 8 διακόπτες) ...
u see.. we've got a point!


Title: 3η Εργασία-Απορίες
Post by: Wade on June 14, 2007, 19:59:32 pm
Για το Α:δίνουμε τις θέσεις των διακοπτών που θέλουμε να ενεργοποιηθούν,από 1-8,πχ΄3 7 5..Αρα θα πρέπει να σχηματιστεί ενα byte που αποτελείται απο ταεξής bit  01010100..Η αρίθμηση γίνεται απο τα αριστερά στα δεξιά.Αυτό το μετατρέπεις σε δεκαδικό,και παίρνεις την τιμή του Α την οπία εκτυπώνεις

Για το C:Δίνεις κανονικά μια τιμή και την μετατρέπεις σε δυαδικό,εκτυπώνεις τις θέσεις των μπιτ που είναι 1

Για το Β:  B=~C

Για τα Α κ Β:Αν τα αντίστοιχα bit είναι διαφορετικά εκτυπώνεις τις θέσεις τους.

Επίσης "πάιζει"πολύ ολίσθηση στα 2 πρώτα ερωτήματα.

Να συμπληρώσω ότι όταν ζητάει να εκτυπωθεί ο Β, θέλει να εκτυπωθεί σε δυαδική μορφή.


Title: 3η Εργασία-Απορίες
Post by: vasso on June 14, 2007, 20:00:49 pm
:D καλά που το είπες! Δεν το είχα προσέξει!


Title: 3η Εργασία-Απορίες
Post by: Mikros_Nikolas on June 14, 2007, 20:29:19 pm
Εγώ δεν μπορώ να καταλάβω αυτό :
Quote
Να γραφεί το πρόγραμμα το οποίο να ορίζει τις μεταβλητές Α, Β και C, τύπου unsigned char, οι διευθύνσεις των οποίων να θεωρηθούν ως οι διευθύνσεις των τριών θυρών εισόδου εξόδου με τις οποίες επικοινωνεί ο υπολογιστής με τη μηχανή.

Που μπορεί να χρησιμεύσει; Αν έλεγε "οι οποίες να θεωρηθούν οι τρεις θύρες εισόδου εξόδου" ;;;


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 14, 2007, 21:41:18 pm
Εγώ δεν μπορώ να καταλάβω αυτό :
Quote
Να γραφεί το πρόγραμμα το οποίο να ορίζει τις μεταβλητές Α, Β και C, τύπου unsigned char, οι διευθύνσεις των οποίων να θεωρηθούν ως οι διευθύνσεις των τριών θυρών εισόδου εξόδου με τις οποίες επικοινωνεί ο υπολογιστής με τη μηχανή.

Που μπορεί να χρησιμεύσει; Αν έλεγε "οι οποίες να θεωρηθούν οι τρεις θύρες εισόδου εξόδου" ;;;
Καλή ερώτηση..Εγώ πιστεύω πώς το γράφει έτσι για να μας δώσει να καταλάβουμε ότι το περιεχόμενο των διευθύνσεων Α,Β,C είναι αυτό που μεταφέρεται μεταξύ εισόδου-εξόδου..δηλαδή τα b;its 1-8..As γράψουν κ οι υπόλοιποι κ βλέπουμε..


Title: 3η Εργασία-Απορίες
Post by: Wade on June 14, 2007, 22:11:25 pm
Εγώ πάλι το εκτύπωσα σε δεκαδική...Γιατί λέει η τιμή του byte,θα μπορούσε να λεγε να εκτυπωθεί το byte,αν ήθελε δυαδική..

Εγώ ρώτησα τον κ. Συμεωνίδη και μου είπε ότι το θέλουν σε δυαδική μορφή...


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 15, 2007, 20:11:10 pm
Δηλαδη ο C θα είναι δυαδικός αριθμός ;


Title: 3η Εργασία-Απορίες
Post by: vasso on June 15, 2007, 20:19:29 pm
Δηλαδη ο C θα είναι δυαδικός αριθμός ;


ξαναρώτα. Ο C είναι αριθμός anyway. Ο υπολογιστής τον βλέπει σε δυαδική μορφή, σε μας τον τυπώνει σε δεκαδική. Ο χρήστης εισάγει δεκαδική, το pc τον επεξεργάζεται σε δυαδική. Εξαίρεση είναι πχ όταν του ζητάμε να τυπώσει την δυαδική μορφή του Β...


Title: 3η Εργασία-Απορίες
Post by: Jalk on June 15, 2007, 20:35:41 pm
Ρε παιδιά...εισάγω πράξη με το αποκλειστικό or και δεν την κάνει ο κωλοcompiler....Το shift+6 δεν είναι το αποκλειστικό or;


Title: 3η Εργασία-Απορίες
Post by: Jalk on June 15, 2007, 20:41:13 pm
Για το Α:δίνουμε τις θέσεις των διακοπτών που θέλουμε να ενεργοποιηθούν,από 1-8,πχ΄3 7 5..Αρα θα πρέπει να σχηματιστεί ενα byte που αποτελείται απο ταεξής bit  01010100..Η αρίθμηση γίνεται απο τα αριστερά στα δεξιά.Αυτό το μετατρέπεις σε δεκαδικό,και παίρνεις την τιμή του Α την οπία εκτυπώνεις

Για το C:Δίνεις κανονικά μια τιμή και την μετατρέπεις σε δυαδικό,εκτυπώνεις τις θέσεις των μπιτ που είναι 1

Για το Β:  B=~C

Για τα Α κ Β:Αν τα αντίστοιχα bit είναι διαφορετικά εκτυπώνεις τις θέσεις τους.

Επίσης "πάιζει"πολύ ολίσθηση στα 2 πρώτα ερωτήματα.

Να συμπληρώσω ότι όταν ζητάει να εκτυπωθεί ο Β, θέλει να εκτυπωθεί σε δυαδική μορφή.
Λέει η ΤΙΜΗ του Β, δηλαδή η τιμή του byte....
Εγώ κατάλαβα ότι θέλει πχ Αν  είναι 00000011 να εμφανίζει 3...


Title: 3η Εργασία-Απορίες
Post by: Wade on June 15, 2007, 20:43:42 pm
Ρε παιδιά...εισάγω πράξη με το αποκλειστικό or και δεν την κάνει ο κωλοcompiler....Το shift+6 δεν είναι το αποκλειστικό or;

Ναι, αυτό είναι...  Τώρα το πρόβλημα μπορεί να είναι σε κάποιο άλλο άσχετο μέρος του κώδικα...  Αλλά τι ακριβώς εννοείς όταν λες ότι δεν το κάνει;  Βγάζει σφάλμα, ή δε βγάζει σωστό αποτέλεσμα;

Λέει η ΤΙΜΗ του Β, δηλαδή η τιμή του byte....
Εγώ κατάλαβα ότι θέλει πχ Αν  είναι 00000011 να εμφανίζει 3...

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


Title: 3η Εργασία-Απορίες
Post by: Jalk on June 15, 2007, 20:47:14 pm
Ρε παιδιά...εισάγω πράξη με το αποκλειστικό or και δεν την κάνει ο κωλοcompiler....Το shift+6 δεν είναι το αποκλειστικό or;

Ναι, αυτό είναι...  Τώρα το πρόβλημα μπορεί να είναι σε κάποιο άλλο άσχετο μέρος του κώδικα...  Αλλά τι ακριβώς εννοείς όταν λες ότι δεν το κάνει;  Βγάζει σφάλμα, ή δε βγάζει σωστό αποτέλεσμα;

Λέει η ΤΙΜΗ του Β, δηλαδή η τιμή του byte....
Εγώ κατάλαβα ότι θέλει πχ Αν  είναι 00000011 να εμφανίζει 3...

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

Πχ Β=255 Α=19

D=Β^Α
μου βγαζει D=255 δ

δεν είναι αλλού λάθος γιατί ελέγχω παντού τις τιμές με printf

αν είναι έτσι όπως το είπες  για το Β : ΑΝΟΙΞΤΕ ΤΟ ΒΙΒΛΙΟ ΤΗΣ C++ ΣΤΙΣ ΣΕΛΙΔΕΣ 236-237


Title: 3η Εργασία-Απορίες
Post by: vasso on June 15, 2007, 20:53:25 pm
Jalk και εγώ το είχα αυτό το πρόβλημα. Το αποκλειστικό ορ κρατούσε μόνο την τιμή του Β. Τελικά αποθήκευσα την τιμή του Α σε άλλη μεταβλητή και επιτέλους με υπάκουσε..


Title: 3η Εργασία-Απορίες
Post by: Jalk on June 15, 2007, 21:05:59 pm
Jalk και εγώ το είχα αυτό το πρόβλημα. Το αποκλειστικό ορ κρατούσε μόνο την τιμή του Β. Τελικά αποθήκευσα την τιμή του Α σε άλλη μεταβλητή και επιτέλους με υπάκουσε..

Ουγκ; :???:
ΕΛΕΟΣ
Δε πιάνει σε μένα...


Title: 3η Εργασία-Απορίες
Post by: vasso on June 15, 2007, 21:14:05 pm
Βασικά, με τις πριντφ εγώ εντόπισα το πρόβλημα. Αφού τύπωνα το Α, μετά έπαιρνε την πρωτοβουλία και το μηδένιζε... Άγνωσται αι βουλαί του compiler...


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 15, 2007, 21:17:39 pm
Βασικά, με τις πριντφ εγώ εντόπισα το πρόβλημα. Αφού τύπωνα το Α, μετά έπαιρνε την πρωτοβουλία και το μηδένιζε... Άγνωσται αι βουλαί του compiler...
Γραψτο έτσι :
printf("%u",A);
και δεν θα στο μηδενίσει.


Title: 3η Εργασία-Απορίες
Post by: Mikros_Nikolas on June 15, 2007, 21:39:41 pm
Quote
Ρε παιδιά...εισάγω πράξη με το αποκλειστικό or και δεν την κάνει ο κωλοcompiler....Το shift+6 δεν είναι το αποκλειστικό or;


Δεν ξέρω αν έχουμε το ίδιο ακριβώς πρόβλημα αλλά δοκίμασε αυτό που λέει ο ampoulog. Εγώ όταν όριζα το Α πχ έγραφα scanf("%i",&A), ενώ πρέπει scanf("%u",&A). Όταν είχα i (και εσείς Jalk,vasso λογικά) ,
 ο Α έμπαινε σε 2 byte και τα πρώτα 8 bits ήταν προφανώς 0. Οπότε  δούλευε το XOR πάντα πάνω σε μηδενικά.


Title: 3η Εργασία-Απορίες
Post by: vasso on June 15, 2007, 21:49:53 pm
Quote
Ρε παιδιά...εισάγω πράξη με το αποκλειστικό or και δεν την κάνει ο κωλοcompiler....Το shift+6 δεν είναι το αποκλειστικό or;


Δεν ξέρω αν έχουμε το ίδιο ακριβώς πρόβλημα αλλά δοκίμασε αυτό που λέει ο ampoulog. Εγώ όταν όριζα το Α πχ έγραφα scanf("%i",&A), ενώ πρέπει scanf("%u",&A). Όταν είχα i (και εσείς Jalk,vasso λογικά) ,
 ο Α έμπαινε σε 2 byte και τα πρώτα 8 bits ήταν προφανώς 0. Οπότε  δούλευε το XOR πάντα πάνω σε μηδενικά.

Μα δεν εισάγουμε τον Α απο το πληκτρολόγιο...


Title: 3η Εργασία-Απορίες
Post by: Mikros_Nikolas on June 15, 2007, 21:54:04 pm
Οκ λάθος. Για τον C εννούσα αλλά έτσι κι αλλιώς παράδειγμα έφερα :(


Title: 3η Εργασία-Απορίες
Post by: Mikros_Nikolas on June 15, 2007, 22:14:10 pm
Για μια στιγμή νόμισα ότι το κατάφερα αυτό το @$%@$% XOR αλλά πάλι τα ίδια.
(συγγνώμη για τα συνεχόμενα posts)


Title: 3η Εργασία-Απορίες
Post by: mysterious on June 16, 2007, 01:04:01 am
Πώς εμφανίζουμε τη δυαδική μορφή ενός χαρακτήρα?


Title: 3η Εργασία-Απορίες
Post by: Jalk on June 16, 2007, 01:18:02 am
Πώς εμφανίζουμε τη δυαδική μορφή ενός χαρακτήρα?

ΒΙΒΛΙΟ ΤΗΣ C++  ΣΕΛΙΔΕΣ 236-237


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 16, 2007, 01:20:27 am
Επίσης το C τι τον δίνετε να είναι  από το πληκτρολόγιο??αριθμός ή χαρακτήρας...δηλαδή όταν σας το ζητάει πληκτρολογείτε 'Α' ή ας πούμε 213?

Γιατί στην 1η περίπτωση θα πρέπει να εξάγουμε τον ASCII κωδικό του ενώ στη δεύτερη να μετατρέψουμε τον δεκαδικό σε δυαδικό.


edit..Αμάν πια αυτές οι εκφωνήσεις τους!!!Από μόνες τους ένα compile θέλουν για να καταλαβουμε τι θέλουν!!


Title: 3η Εργασία-Απορίες
Post by: mysterious on June 16, 2007, 01:55:58 am
Aν κάποιος/α την έχει κάνει και είναι σίγουρος/η ότι είναι σωστή ας δώσει κάποιες αρχικές τιμές
και τα αποτελέσματα για να τσεκάρουν οι υπόλοιποι.


Title: 3η Εργασία-Απορίες
Post by: SolidSNK on June 16, 2007, 03:27:41 am
ΑΝΑΚΟΙΝΩΣΗ

Προγραμματα o Nh!

Τώρα ανοίξαμε για όλους τους  thmmyδες που θέλουν να ξεφορτωθουν το μάθημα δομημένος προγραμματισμός!
Ενα pm αρκει, απόλυτη εχεμύθεια και εγκυρότητα!

Sharing is caring !


Title: 3η Εργασία-Απορίες
Post by: Wade on June 16, 2007, 07:24:35 am
Επίσης το C τι τον δίνετε να είναι  από το πληκτρολόγιο??αριθμός ή χαρακτήρας...δηλαδή όταν σας το ζητάει πληκτρολογείτε 'Α' ή ας πούμε 213?

Γιατί στην 1η περίπτωση θα πρέπει να εξάγουμε τον ASCII κωδικό του ενώ στη δεύτερη να μετατρέψουμε τον δεκαδικό σε δυαδικό.


edit..Αμάν πια αυτές οι εκφωνήσεις τους!!!Από μόνες τους ένα compile θέλουν για να καταλαβουμε τι θέλουν!!

Νομίζω ότι το C πρέπει να το εισάγουμε ως ακέραιο στο δεκαδικό σύστημα, ας πούμε 213.  Αν δεν κάνω λάθος, δε νομίζω πως χρειάζονται πουθενά κωδικοί ASCII.


Title: 3η Εργασία-Απορίες
Post by: TeeKay on June 16, 2007, 11:27:15 am
Μήπως μπορεί κάποιος να εξηγήσει κιόλας τι ακριβώς είναι το C; Δηλαδή τι συμβολίζει αυτή η τιμή που εισάγουμε από το πληκτρολόγιο; Σορρυ αν η ερώτηση φαίνεται ηλίθια, αλλά πραγματικά δεν καταλαβαίνω τίποτα...  :(


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 11:36:44 am
Βασικά, με τις πριντφ εγώ εντόπισα το πρόβλημα. Αφού τύπωνα το Α, μετά έπαιρνε την πρωτοβουλία και το μηδένιζε... Άγνωσται αι βουλαί του compiler...
Και εγώ την πρώτη φορά που είχα τρέξει το πρόγραμμά μου, ενώ δούλευε κανονικά, όταν έφτανε να εντοπίσει τα ζητούμενα κυκλώματα έδινα λανθασμένες τιμές. Με printf διάσπαρτες βρήκα ότι --κρατήσου!-- η Α μηδενιζόταν αμέσως μετά αφού έδινα τιμή στη μεταβλητή C :D :D :D Το έλυσα με το να ορίσω τη C όχι πάνω-πάνω μαζί με τις άλλες, αλλά λίγο πριν χρειαστεί να της δώσω τιμή (από το πληκτρολόγιο).

Aν κάποιος/α την έχει κάνει και είναι σίγουρος/η ότι είναι σωστή ας δώσει κάποιες αρχικές τιμές
και τα αποτελέσματα για να τσεκάρουν οι υπόλοιποι.
Τί εννοείς αρχικές τιμές; Τις τιμές των a,b,c; Μπορείς να ελέγξεις αν στις βγάζει σωστά, κάνοντας δυαδικές πράξεις στο χαρτί π.χ.αν η Α έχει τιμή 10010001, τότε αντιστοιχεί στον αριθμό 145. Αν η C τιμή 32 τότε αντιστοιχεί στο δυαδικό 00100000 και η τιμή του Β που θα σταλεί θα είναι 11011111. Άρα Α^Β θα είναι 01001110 άρα τα κυκλώματα 2,3,4,7 είναι τα ζητούμενα.

Νομίζω ότι το C πρέπει να το εισάγουμε ως ακέραιο στο δεκαδικό σύστημα, ας πούμε 213.  Αν δεν κάνω λάθος, δε νομίζω πως χρειάζονται πουθενά κωδικοί ASCII.
Και εγώ ως αριθμό τον εισήγαγα. Η εκφώνηση δεν αποσαφηνίζει.

Μήπως μπορεί κάποιος να εξηγήσει κιόλας τι ακριβώς είναι το C; Δηλαδή τι συμβολίζει αυτή η τιμή που εισάγουμε από το πληκτρολόγιο; Σορρυ αν η ερώτηση φαίνεται ηλίθια, αλλά πραγματικά δεν καταλαβαίνω τίποτα...  :(
Η C είναι μια μεταβλητή μεγέθους 1 byte της οποίας τα bits αντιστοιχούν το κάθε ένα με έναν ακροδέκτη (από τους οχτώ που έχει η μηχανή). Έτσι η τιμή που εισάγεις από το πληκτρολόγιο αντιστοιχεί σε ένα δυαδικό αριθμό με οχτώ bits, που το κάθε ένα αντιστοιχεί σε έναν ακροδέκτη. Η κάθε θέση του bit παίρνει φυσικά 0 ή 1 και έτσι ορίζεις την κατάσταση του αντίστοιχου ακροδέκτη. Πορφανώς η τιμή που πρέπει να εισάγεις είναι 0-255.
Και όπως λέει και η εκφώνηση, η καταστάσεις των ακροδεκτών ορίζουν και την κατάσταση των 8 διακοπτών της Β θύρας.


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 12:13:13 pm
Στην ουσία αυτό που θέλει είναι να δει αν έχουμε καταλάβει την χρήση του συμπληρώματος ,δηλαδή
B=~C.


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 12:18:01 pm
Βασικά, με τις πριντφ εγώ εντόπισα το πρόβλημα. Αφού τύπωνα το Α, μετά έπαιρνε την πρωτοβουλία και το μηδένιζε... Άγνωσται αι βουλαί του compiler...
Και εγώ την πρώτη φορά που είχα τρέξει το πρόγραμμά μου, ενώ δούλευε κανονικά, όταν έφτανε να εντοπίσει τα ζητούμενα κυκλώματα έδινα λανθασμένες τιμές. Με printf διάσπαρτες βρήκα ότι --κρατήσου!-- η Α μηδενιζόταν αμέσως μετά αφού έδινα τιμή στη μεταβλητή C :D :D :D Το έλυσα με το να ορίσω τη C όχι πάνω-πάνω μαζί με τις άλλες, αλλά λίγο πριν χρειαστεί να της δώσω τιμή (από το πληκτρολόγιο).

Aν κάποιος/α την έχει κάνει και είναι σίγουρος/η ότι είναι σωστή ας δώσει κάποιες αρχικές τιμές
και τα αποτελέσματα για να τσεκάρουν οι υπόλοιποι.
Τί εννοείς αρχικές τιμές; Τις τιμές των a,b,c; Μπορείς να ελέγξεις αν στις βγάζει σωστά, κάνοντας δυαδικές πράξεις στο χαρτί π.χ.αν η Α έχει τιμή 10010001, τότε αντιστοιχεί στον αριθμό 145. Αν η C τιμή 32 τότε αντιστοιχεί στο δυαδικό 00100000 και η τιμή του Β που θα σταλεί θα είναι 11011111. Άρα Α^Β θα είναι 01001110 άρα τα κυκλώματα 2,3,4,7 είναι τα ζητούμενα.

Νομίζω ότι το C πρέπει να το εισάγουμε ως ακέραιο στο δεκαδικό σύστημα, ας πούμε 213.  Αν δεν κάνω λάθος, δε νομίζω πως χρειάζονται πουθενά κωδικοί ASCII.
Quote
Και εγώ ως αριθμό τον εισήγαγα. Η εκφώνηση δεν αποσαφηνίζει.
Βασικά ο Συμμεονίδης(-ή όπως αλλιώς λεγεται -) είχε πει -σε σχετική ερώτηση - ότι τον C αυτός θα τον έβαζε αριθμό-τώρα το θέμα είναι πως το εννοεί ο Κορτέσης.
Πάντως και εγώ αριθμό τον έβαλα.


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 12:19:09 pm
Sorry που έβαλα και το δικό μου κείμενο σε παράθεση> :-[ :-[ :-[


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 13:05:15 pm
Το έκανες επίτηδες >:( δε σου ξαναμιλάω ποτέ ξανά :-\



 :D :D :D


Title: deleted
Post by: BOBoMASTORAS on June 16, 2007, 13:25:19 pm
deleted


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 13:31:30 pm
 :???: Δεν νομίζω ότι έχω βγει εκτός μνήμης, τουλάχιστον δεν βλέπω πώς θα μπορούσα να το καταφέρω αυτό, αφού δεν χρησιμοποιώ πίνακες. Με ποιόν άλλο τρόπο μπορεί να βγω εκτός μνήμης;


Title: 3η Εργασία-Απορίες
Post by: MARIOS on June 16, 2007, 13:35:44 pm
:???: Δεν νομίζω ότι έχω βγει εκτός μνήμης, τουλάχιστον δεν βλέπω πώς θα μπορούσα να το καταφέρω αυτό, αφού δεν χρησιμοποιώ πίνακες. Με ποιόν άλλο τρόπο μπορεί να βγω εκτός μνήμης;

Απλώς και μόνο ξεχνώντας ένα σύμβολο!!


Όπως και να έχει πολύ μπερδεμένος αυτός ο Κορτέσης!!Πήγα να την κατεβάσω να την δω για να βοηθήσω και εγώ αλλά ρε παιδί μου μόνο μέχρι την μισή διάβασα!!  ^seestars^ Βασικά είναι και η ζάστη που δεν αντέχεται!!


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 13:42:11 pm
Ένα σύμβολο όπως; Υπόψην ότι μου τρέχει μια χαρά, είτε το τρέξω μέσα από τον compiler είτε ως αρχείο .exe

Βασικά μπορεί και να μηδένιζα την Α κατα λάθος, και σβήνοντας-γράφοντας εντολές printf να την έσβησα αυτή τη λανθασμένη εντολή και να μην το κατάλαβα. Πάντως αυτή τη στιγμή τρέχει μια χαρά χωρίς πρόβλημα.


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 13:48:39 pm
Το έκανες επίτηδες >:( δε σου ξαναμιλάω ποτέ ξανά :-\



 :D :D :D
Δεν θα το αντάξω αυτο . ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D
Τεσπα .
Προσπαθησα να επεξεργαστω λίγο τα  quote  ,
Νομιζα ότι έλλειπε ένα και να τα αποτελέσματα.


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 13:52:47 pm
Ένα σύμβολο όπως; Υπόψην ότι μου τρέχει μια χαρά, είτε το τρέξω μέσα από τον compiler είτε ως αρχείο .exe

Βασικά μπορεί και να μηδένιζα την Α κατα λάθος, και σβήνοντας-γράφοντας εντολές printf να την έσβησα αυτή τη λανθασμένη εντολή και να μην το κατάλαβα. Πάντως αυτή τη στιγμή τρέχει μια χαρά χωρίς πρόβλημα.
Πάντως το σημαντικό είναι ότι δουλεύει μία χαρα .


Title: 3η Εργασία-Απορίες
Post by: mysterious on June 16, 2007, 14:27:13 pm
Επιτέλους τέλος και για μένα.

Αν και επειδή χρησιμοποίησα μια ουρανοκατέβατη τακτική με τις δυνάμεις
του 2, στα 2 πρώτα ερωήματα έκανα χρήση του "==".  Πειράζει?


Title: 3η Εργασία-Απορίες
Post by: pmousoul on June 16, 2007, 15:39:03 pm
Ένα σχηματάκι είναι πάντα χρήσιμο... (Kάντε δεξί κλικ και View Image και zoom γιατί στο post είναι σε σμίκρυνση και δεν φαίνεται καλά...)
(http://users.auth.gr/pmousoul/images/sxhma.png)

1. Ένας πίνακας int temp[8] θα ήταν χρήσιμος για την αποθήκευση των καταστάσεων και την προβολή τους στην οθόνη!

2. Όταν θέλουμε να αποθηκεύσουμε τον διαδικό που βρίσκεται στον πίνακα πολλαπλασιάζουμε το περιεχόμενο του temp[0] με 2^0, το temp[1] με 2^1 (το ^ συμβολίζει δύναμη !!!)... κ.ο.κ. προσθέτοντας τα μερικά αθροίσματα στον unsigned char Α ώστε ο υπολογιστής να αποθηκεύσει τελικά στον Α τον δυαδικό αριθμό που θέλουμε! Το αντίστροφο θα κάνουμε με τον C όπου θα εισάγουμε τον αριθμό και στην συνέχεια θα τον διαιρούμε με 2 και θα παίρνουμε το υπόλοιπο (1 ή 0) για να το τοποθετήσουμε στον temp[ ] και να μπορέσουμε να τυπώσουμε στην οθόνη τα bits που είναι 1 ελέγχοντας κάθε φορά με ένα if!

3. Στον Β εισάγουμε το συμπλήρωμα του C το οποίο γίνεται αμέσως με τον δυαδικό τελεστή συμπληρώματος (γιατί η ουσία είναι πως ο υπολογιστής στην μνήμη τα αποθηκεύει όλα σε δυαδική μορφή, δηλ. εάν δώσουμε στον C το 3, στην μνήμη του υπολογιστή θα αποθηκευτεί το 00000011). Η τιμή του B μπορεί τώρα να εμφανιστεί στην οθόνη χωρίς να κάνουμε τίποτα το ιδιαίτερο - χρησιμοποιούμε την ίδια μέθοδο (συνάρτηση) που χρησιμοποιήσαμε για τον C (διαίρεση διά 2 και αποθήκευση στον temp[ ]).

4. Tέλος κάνουμε ένα ΧOR στους Α, Β για να βρούμε πoιο υποκύκλωμα (Α(i-bit) και Β(i-bit)) δεν διαρέεται από ρεύμα αποθηκεύοντας το αποτέλεσμα της πράξης σε έναν unsigned char result και έπειτα κάνοντας και πάλι χρήση της μεθόδου που μετατρέπει τον δεκαδικό που αντιστοιχεί στον result σε δυαδικό (ότι έγινε με τον B και C - είναι η ίδια μέθοδος) τυπώνουμε τον temp[ ] που έχει το ζητούμενο! 


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 15:56:59 pm
Επιτέλους τέλος και για μένα.

Αν και επειδή χρησιμοποίησα μια ουρανοκατέβατη τακτική με τις δυνάμεις
του 2, στα 2 πρώτα ερωήματα έκανα χρήση του "==".  Πειράζει?

Τι ακριβώς εννοείς <<με τις δυνάμεις του δύο>>, ποιος ο συλογισμό σου;


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 16:00:03 pm
Ένα σχηματάκι είναι πάντα χρήσιμο... (Kάντε δεξί κλικ και View Image και zoom γιατί στο post είναι σε σμίκρυνση και δεν φαίνεται καλά...)
(http://users.auth.gr/pmousoul/images/sxhma.png)

1. Ένας πίνακας int temp[8] θα ήταν χρήσιμος για την αποθήκευση των καταστάσεων και την προβολή τους στην οθόνη!

2. Όταν θέλουμε να αποθηκεύσουμε τον διαδικό που βρίσκεται στον πίνακα πολλαπλασιάζουμε το περιεχόμενο του temp[0] με 2^0, το temp[1] με 2^1 (το ^ συμβολίζει δύναμη !!!)... κ.ο.κ. προσθέτοντας τα μερικά αθροίσματα στον unsigned char Α ώστε ο υπολογιστής να αποθηκεύσει τελικά στον Α τον δυαδικό αριθμό που θέλουμε! Το αντίστροφο θα κάνουμε με τον C όπου θα εισάγουμε τον αριθμό και στην συνέχεια θα τον διαιρούμε με 2 και θα παίρνουμε το υπόλοιπο (1 ή 0) για να το τοποθετήσουμε στον temp[ ] και να μπορέσουμε να τυπώσουμε στην οθόνη τα bits που είναι 1 ελέγχοντας κάθε φορά με ένα if!

3. Στον Β εισάγουμε το συμπλήρωμα του C το οποίο γίνεται αμέσως με τον δυαδικό τελεστή συμπληρώματος (γιατί η ουσία είναι πως ο υπολογιστής στην μνήμη τα αποθηκεύει όλα σε δυαδική μορφή, δηλ. εάν δώσουμε στον C το 3, στην μνήμη του υπολογιστή θα αποθηκευτεί το 00000011). Η τιμή του B μπορεί τώρα να εμφανιστεί στην οθόνη χωρίς να κάνουμε τίποτα το ιδιαίτερο - χρησιμοποιούμε την ίδια μέθοδο (συνάρτηση) που χρησιμοποιήσαμε για τον C (διαίρεση διά 2 και αποθήκευση στον temp[ ]).

4. Tέλος κάνουμε ένα ΧOR στους Α, Β για να βρούμε πoιο υποκύκλωμα (Α(i-bit) και Β(i-bit)) δεν διαρέεται από ρεύμα αποθηκεύοντας το αποτέλεσμα της πράξης σε έναν unsigned char result και έπειτα κάνοντας και πάλι χρήση της μεθόδου που μετατρέπει τον δεκαδικό που αντιστοιχεί στον result σε δυαδικό (ότι έγινε με τον B και C - είναι η ίδια μέθοδος) τυπώνουμε τον temp[ ] που έχει το ζητούμενο! 
Έχω την αίσθηση ότι ο Κορτέσης είχε πει να αποφύγουμε να χρησιμοποιήσουμε πίνακα και να δουλέψουμε αποκλειστικά με δυαδικούς τελεστές.


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 16, 2007, 16:04:17 pm
Mysterious και ngine13  συγγνώμη που θα σας την πώ..αλλά απαιτείται λύση αποκλειστικά με δυαδικούς τελεστές.Συνεπώς πίνακες,δυνάμεις του 2,αλλά και τελεστές πρόσθεσης είναι αχρειάστοι..Εναλλακτικά μπορείτε να χρησιμοποιήσετε ολίσθηση αντί για όλα τα προηγούμενα...


Title: 3η Εργασία-Απορίες
Post by: pmousoul on June 16, 2007, 16:16:49 pm
Mysterious και ngine13  συγγνώμη που θα σας την πώ..αλλά απαιτείται λύση αποκλειστικά με δυαδικούς τελεστές.Συνεπώς πίνακες,δυνάμεις του 2,αλλά και τελεστές πρόσθεσης είναι αχρειάστοι..Εναλλακτικά μπορείτε να χρησιμοποιήσετε ολίσθηση αντί για όλα τα προηγούμενα...

Η λογική είναι η ίδια... :) (Με ολίσθηση δεξιά διαιρείς και με ολίσθηση αριστερά πολλαπλασιάζεις!)

ΥΓ. : Άσε και κανέναν που δεν την έκανε να καταλάβει... ;)


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 16:22:29 pm
Mysterious και ngine13  συγγνώμη που θα σας την πώ..αλλά απαιτείται λύση αποκλειστικά με δυαδικούς τελεστές.Συνεπώς πίνακες,δυνάμεις του 2,αλλά και τελεστές πρόσθεσης είναι αχρειάστοι..Εναλλακτικά μπορείτε να χρησιμοποιήσετε ολίσθηση αντί για όλα τα προηγούμενα...

Η λογική είναι η ίδια... :) (Με ολίσθηση δεξιά διαιρείς και με ολίσθηση αριστερά πολλαπλασιάζεις!)

ΥΓ. : Άσε και κανέναν που δεν την έκανε να καταλάβει... ;)
Δεν είναι ακριβώς όμως αυτό που ζητάει .
Και φαντάζομαι ότι η άσκηση αυτή μπήκε για να μάθουμε μερικά πράγματα για τους διαδικούς τελεστές και την χρήση τους.


Title: 3η Εργασία-Απορίες
Post by: pmousoul on June 16, 2007, 16:24:53 pm
Mysterious και ngine13  συγγνώμη που θα σας την πώ..αλλά απαιτείται λύση αποκλειστικά με δυαδικούς τελεστές.Συνεπώς πίνακες,δυνάμεις του 2,αλλά και τελεστές πρόσθεσης είναι αχρειάστοι..Εναλλακτικά μπορείτε να χρησιμοποιήσετε ολίσθηση αντί για όλα τα προηγούμενα...

Η λογική είναι η ίδια... :) (Με ολίσθηση δεξιά διαιρείς και με ολίσθηση αριστερά πολλαπλασιάζεις!)

ΥΓ. : Άσε και κανέναν που δεν την έκανε να καταλάβει... ;)
Δεν είναι ακριβώς όμως αυτό που ζητάει .
Και φαντάζομαι ότι η άσκηση αυτή μπήκε για να μάθουμε μερικά πράγματα για τους διαδικούς τελεστές και την χρήση τους.

Γι' αυτό και δεν έγραψα όλη την εργασία... ;D


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 16, 2007, 18:09:21 pm
Για το Α:δίνουμε τις θέσεις των διακοπτών που θέλουμε να ενεργοποιηθούν,από 1-8,πχ΄3 7 5..Αρα θα πρέπει να σχηματιστεί ενα byte που αποτελείται απο ταεξής bit  00101010..Η αρίθμηση γίνεται απο τα δεξιά στα αριστερά.

Αν η αρίθμηση γίνεται από τα δεξιά στα αριστερά, τοτέ το αποτέλεσμα για το 3 7 5 δεν θα έπρεπε να είναι 01010100?  :???:


Title: 3η Εργασία-Απορίες
Post by: ippocrates9 on June 16, 2007, 18:17:10 pm
Για το Α:δίνουμε τις θέσεις των διακοπτών που θέλουμε να ενεργοποιηθούν,από 1-8,πχ΄3 7 5..Αρα θα πρέπει να σχηματιστεί ενα byte που αποτελείται απο ταεξής bit  00101010..Η αρίθμηση γίνεται απο τα δεξιά στα αριστερά.

Αν η αρίθμηση γίνεται από τα δεξιά στα αριστερά, τοτέ το αποτέλεσμα για το 3 7 5 δεν θα έπρεπε να είναι 01010100?  :???:

Ναι!!


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 16, 2007, 18:36:13 pm
Nαι σορρυ βλακεία δικιά μου..


ΓΑΜΩΤΟ!! τώρα έχω δώσει την εργασία,και τα μπέρδεψα..του έχω γράψει πώς η αρίθμηση είναι από δεξιά προς τα αριστερά ενώ ισχύει το ανάποδο για το πρόγραμμα που έκανα!!...δεν μπορούμε να μεταβάλουμε το αρχείο που δώσαμε?κοιτα να δείς λάθη...

edit:ΟΚ το βρήκα πώς διορθώνεται!


Title: 3η Εργασία-Απορίες
Post by: mysterious on June 16, 2007, 19:02:45 pm
Mysterious και ngine13  συγγνώμη που θα σας την πώ..αλλά απαιτείται λύση αποκλειστικά με δυαδικούς τελεστές.Συνεπώς πίνακες,δυνάμεις του 2,αλλά και τελεστές πρόσθεσης είναι αχρειάστοι..Εναλλακτικά μπορείτε να χρησιμοποιήσετε ολίσθηση αντί για όλα τα προηγούμενα...
Επηρεασμένος από τα λόγια σου Bo@rD-RiDeR αφαίρεσα τον πίνακα και το "==" και το έκανα αποκλειστικά με δυαδικούς (εκτος απ'το i<8 στα loops), αλλά και πάλι δεν χρησιμοποιήσα ολίσθηση άλλα τις δυνάμεις του 2.


Τι ακριβώς εννοείς <<με τις δυνάμεις του δύο>>, ποιος ο συλογισμό σου;


Εξηγούμαι για τις δυνάμεις του 2: (ΠΡΟΣΟΧΗ SPOILERS)


    printf("Enter the value of gate C:\n");
    unsigned char C;
    scanf("%u",&C);
    printf("\nPositions of C's bits with value of 1:\n");
    for(i=0;i<8;i++){

                     if(C&square(7-i))
                         printf("%d\n",i+1);
                     }


Aφού οι δυνάμεις του 2 έχουν την ιδιότητα:
20 = 1 = 00000001
21 = 2 = 00000010
22 = 4 = 00000100
...
...
27 =128=10000000

*Όπου square συνάρτηση που υπολογίζει το 27-i


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 16, 2007, 19:09:08 pm
Για τις δυνάμεις του 2 νόμιζα ότι θα χρησιμοποιούσες κανά τελεστή...τελικά είναι η εντολή square? :???:

Τότε είναι ολόσωστο..λάθος δικό μου!


Title: 3η Εργασία-Απορίες
Post by: pmousoul on June 16, 2007, 19:39:41 pm
Mysterious και ngine13  συγγνώμη που θα σας την πώ..αλλά απαιτείται λύση αποκλειστικά με δυαδικούς τελεστές.Συνεπώς πίνακες,δυνάμεις του 2,αλλά και τελεστές πρόσθεσης είναι αχρειάστοι..Εναλλακτικά μπορείτε να χρησιμοποιήσετε ολίσθηση αντί για όλα τα προηγούμενα...

Η λογική είναι η ίδια... :) (Με ολίσθηση δεξιά διαιρείς και με ολίσθηση αριστερά πολλαπλασιάζεις!)

ΥΓ. : Άσε και κανέναν που δεν την έκανε να καταλάβει... ;)

Λοιπόν... πιο ξεκάθαρα!

Πολλαπλασιασμός με i δύναμη του 2 = Ολίσθηση αριστερά i θέσεις.

Διαίρεση με i δύναμη του 2 = Ολίσθηση δεξιά i θέσεις.

Πρόσθεση μερικών αθροισμάτων = ΧΟR

O πίνακας που ανέφερα πριν υπάρχει μόνο και μόνο για να απεικονίζονται πιο κομψά τα αποτελέσματα στην οθόνη! Και μία απλή μεταβλητή unsigned char temp αρκεί...


Title: 3η Εργασία-Απορίες
Post by: skantzo on June 16, 2007, 20:51:26 pm
"Τέλος, αν θεωρηθεί ότι οι αντίστοιχοι διακόπτες των θυρών Α και Β είναι συνδεδεμένοι και εν σειρά (το αντίστοιχο κύκλωμα διαρρέεται από ρεύμα όταν και οι δύο διακόπτες είναι κλειστοί) να εμφανίζονται στην οθόνη οι θέσεις των διακοπτών για τους οποίους, ενώ ο ένας από τους δύο είναι κλειστός το αντίστοιχο κύκλωμα δε διαρέεται από ρεύμα."
ερώτηση :ποιοι ειναι αυτοι οι δυο διακόπτες? πού ειναι?


Title: 3η Εργασία-Απορίες
Post by: Wade on June 16, 2007, 21:02:12 pm
"Τέλος, αν θεωρηθεί ότι οι αντίστοιχοι διακόπτες των θυρών Α και Β είναι συνδεδεμένοι και εν σειρά (το αντίστοιχο κύκλωμα διαρρέεται από ρεύμα όταν και οι δύο διακόπτες είναι κλειστοί) να εμφανίζονται στην οθόνη οι θέσεις των διακοπτών για τους οποίους, ενώ ο ένας από τους δύο είναι κλειστός το αντίστοιχο κύκλωμα δε διαρέεται από ρεύμα."
ερώτηση :ποιοι ειναι αυτοι οι δυο διακόπτες? πού ειναι?

Αν για παράδειγμα τα Α και Β είναι ως εξής:

Α: 00100111
Β: 01000011

Στις θέσεις που μαύρισα, μόνο ένας από τους δύο διακόπτες είναι κλειστός, άρα δε διαρρέεται από ρεύμα.  Θέλει να εμφανίσουμε τις θέσεις στις οποίες μόνο ένας από τους 2 αντίστοιχους διακόπτες είναι κλειστός (στο συγκεκριμένο παράδειγμα τους διακόπτες στις θέσεις 2, 3 και 6).


Title: 3η Εργασία-Απορίες
Post by: skantzo on June 16, 2007, 21:03:16 pm
ευχαριστώ


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 21:08:31 pm
Για αυτό που ειπώθηκε για τη χρήση μόνο δυαδικών τελεστών: Και εγώ με ολίσθηση το έλυσα, αλλά:
1ον-- ο τελεστής "+" χρησιμοποιείται στην εντολή επανάληψης που πρέπει να χρησιμοποιηθεί (εκτός και αν γίνει με while πράγμα νομίζω χωρίς ιδιαίτερο νόημα ή με τον τελεστή "++")
2ον-- ο τελεστής "==" χρησιμοποιείται για έλεγχο αν π.χ. α==α|β (λέω τώρα ένα παράδειγμα).
3ον-- Ο τελεστής "=" χρησιμοποιείται π.χ. για να πούμε ότι temp=temp<<1;

Αν λοιπόν οι τελεστές "+","==" και "=" χρησιμοποιήθηκαν, υπάρχει πρόβλημα;
(Δεν χρησιμοποίησα πουθενά πίνακες).


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 21:08:54 pm
"Τέλος, αν θεωρηθεί ότι οι αντίστοιχοι διακόπτες των θυρών Α και Β είναι συνδεδεμένοι και εν σειρά (το αντίστοιχο κύκλωμα διαρρέεται από ρεύμα όταν και οι δύο διακόπτες είναι κλειστοί) να εμφανίζονται στην οθόνη οι θέσεις των διακοπτών για τους οποίους, ενώ ο ένας από τους δύο είναι κλειστός το αντίστοιχο κύκλωμα δε διαρέεται από ρεύμα."
ερώτηση :ποιοι ειναι αυτοι οι δυο διακόπτες? πού ειναι?

Αν για παράδειγμα τα Α και Β είναι ως εξής:

Α: 00100111
Β: 01000011

Στις θέσεις που μαύρισα, μόνο ένας από τους δύο διακόπτες είναι κλειστός, άρα δε διαρρέεται από ρεύμα.  Θέλει να εμφανίσουμε τις θέσεις στις οποίες μόνο ένας από τους 2 αντίστοιχους διακόπτες είναι κλειστός (στο συγκεκριμένο παράδειγμα τους διακόπτες στις θέσεις 2, 3 και 6).
Θέλει τις 2,3,6 ή μήπως τισ θέσεις τις μετράμε από δεξιά προς τα αριστερα;


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 21:12:11 pm
Για αυτό που ειπώθηκε για τη χρήση μόνο δυαδικών τελεστών: Και εγώ με ολίσθηση το έλυσα, αλλά:
1ον-- ο τελεστής "+" χρησιμοποιείται στην εντολή επανάληψης που πρέπει να χρησιμοποιηθεί (εκτός και αν γίνει με while πράγμα νομίζω χωρίς ιδιαίτερο νόημα ή με τον τελεστή "++")
2ον-- ο τελεστής "==" χρησιμοποιείται για έλεγχο αν π.χ. α==α|β (λέω τώρα ένα παράδειγμα).
3ον-- Ο τελεστής "=" χρησιμοποιείται π.χ. για να πούμε ότι temp=temp<<1;

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


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 21:17:53 pm
Καλά μάλλον η ερώτησή μου ήταν από προφανής έως χαζή, απλά επειδή αυτό το "αποκλειστικά με δυαδικούς τελεστές" βλέπω ότι γενικά προβληματίζει, το ρώτησα. Η εκφώνηση θα ήταν προτιμότερο να λέει με περισσότερη σαφήνεια τί δεν πρέπει να χρησιμοποιηθεί διότι η φράση "αποκλειστικά με δυαδικούς τελεστές" δεν σημαίνει ότι οι πίνακες πρέπει να αποφευχθεί να χρησιμοποιηθούν (εγώ δεν χρησιμοποίησα όμως κάποιος άλλος μπορεί κάλιστα να χρησιμοποίησε και με απολύτως σωστό τρόπο, όπως ο mysterious)


Title: 3η Εργασία-Απορίες
Post by: mysterious on June 16, 2007, 21:32:36 pm
Καλά μάλλον η ερώτησή μου ήταν από προφανής έως χαζή, απλά επειδή αυτό το "αποκλειστικά με δυαδικούς τελεστές" βλέπω ότι γενικά προβληματίζει, το ρώτησα. Η εκφώνηση θα ήταν προτιμότερο να λέει με περισσότερη σαφήνεια τί δεν πρέπει να χρησιμοποιηθεί διότι η φράση "αποκλειστικά με δυαδικούς τελεστές" δεν σημαίνει ότι οι πίνακες πρέπει να αποφευχθεί να χρησιμοποιηθούν (εγώ δεν χρησιμοποίησα όμως κάποιος άλλος μπορεί κάλιστα να χρησιμοποίησε και με απολύτως σωστό τρόπο, όπως ο mysterious)

Mα δεν χρησιμοποίησα πίνακες..
Αυτό το "αποκλειστικά με δυαδικούς τελεστές" σε συνδυασμό με τη δομή της άσκησης σου λέει ουσιαστικά:
χρησιμοποίησε μια-δυο φορες ολίσθηση (ή το δυαδικό and), μία το συμπλήρωμα και μία το XOR.


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 16, 2007, 21:44:54 pm
Quote from: mysterious
Mα δεν χρησιμοποίησα πίνακες../quote]
Ναι, σόρρυ μπερδεύτηκα, άλλο άτομο είχα στο μυαλό μου. Τέσπα.

Αυτό το "αποκλειστικά με δυαδικούς τελεστές" σε συνδυασμό με τη δομή της άσκησης σου λέει ουσιαστικά:
χρησιμοποίησε μια-δυο φορες ολίσθηση (ή το δυαδικό and), μία το συμπλήρωμα και μία το XOR.
Ναι και εγώ έτσι το έκανα.


Title: 3η Εργασία-Απορίες
Post by: FireStarter on June 16, 2007, 22:10:18 pm
Λοιπόν...έχοντας μπερδευτεί ακόμη περισσότερο αφότου διάβασα τα παραπάνω posts περί δυαδικών τελεστών κι έχοντας χρησιμοποιησει πινακες του τύπου bitA[8], bitC[8]...για να παραστήσω τα bits των θυρών Α,Β,C θελω να κάνω μια ερώτηση, μιας και δεν σκαμπάζω πολλά απο C: Πως στα κομμάτια θα δώσουμε τις θέσεις των bit με τιμή 1 χωρίς την χρήση πινάκων?

Για την 3η εργασία και τις εκφωνήσεις γενικώς θα ηθελα να προσθέσω:  >:(  :angry4:  ^aytoxeir^ ^kremala^


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 16, 2007, 22:16:12 pm
x=1 <===> 00000001

Aν θέςν είναι ο 3ος διακότης ανοικτός δηλαδή  00100000

τότε κάνεις x=x<<5;


Aρα για τον n διακόπτη   ==>χ=χ<<(8-n);


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 22:23:32 pm
Λοιπόν...έχοντας μπερδευτεί ακόμη περισσότερο αφότου διάβασα τα παραπάνω posts περί δυαδικών τελεστών κι έχοντας χρησιμοποιησει πινακες του τύπου bitA[8], bitC[8]...για να παραστήσω τα bits των θυρών Α,Β,C θελω να κάνω μια ερώτηση, μιας και δεν σκαμπάζω πολλά απο C: Πως στα κομμάτια θα δώσουμε τις θέσεις των bit με τιμή 1 χωρίς την χρήση πινάκων?

Για την 3η εργασία και τις εκφωνήσεις γενικώς θα ηθελα να προσθέσω:  >:(  :angry4:  ^aytoxeir^ ^kremala^
Ενας αριθμός στον υπολογιστή παριστάνεται σε δυαδική μορφή.
Οι δυαδικοί τελεστές χρησιμοποιούνται από τον προγραμματιστή για να επηρεάσει αυτή τη μορφή.
Ο αριθμός 254 είναι σε δυαδική μορφή ο 11111110.
Αυτό που μπορείς να πεις εσύ στον υπολογιστεί είναι να ελέγχει αν κάθε στοιχείο είναι ίσο με ένα από την θέση 1 εως την 8 και να ολισθαίνει κάθε φορά μία θέση .
Στο φυλλάδιο υπάρχει παράδειγμα στις σελίδες 63 - 64 .
Αν το διαβάσεις πιστεύω ότι θα σου λυθούν πολλές απορίες.


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 22:26:05 pm
x=1 <===> 00000001

Aν θέςν είναι ο 3ος διακότης ανοικτός δηλαδή  00100000

τότε κάνεις x=x<<5;


Aρα για τον n διακόπτη   ==>χ=χ<<(8-n);
Για τον τρίτο διακόπτη γράφεις 00100000 ή πρέπει να είναι 00000100 ( με την λογική ότι αριθμούμε τους δυαδικούς αριθμούς από δεξιά προς τα αριστερά);


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 16, 2007, 22:34:37 pm
Ναι από δεξιά προς τα αριστερά είναι πιο σωστό όπως λές..αλλά δεν νομίζω να πάρει λάθος και αυτό που γράφω ,με τη λογική του όταν έχεις 8 διακόπτες μπροστά σου,1ο θεωρείς πάντα αυτόν που βρίσκεται στο αριστερό σου χέρι..


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 16, 2007, 23:07:45 pm
Ok thanks


Title: 3η Εργασία-Απορίες
Post by: crystal on June 17, 2007, 00:11:51 am
Run-Time Check Failure #2 - Stack around the variable 't' was corrupted.

Μου το εμφανιζει στο visual studio αυτο.. δλδ??


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 17, 2007, 02:15:55 am
Δηλαδή πάνε στον Borland C... Όσο πιο απλός ο κομπάιλερ τόσο λιγότερα έρρορς έχει. Πάνε αναλογικά με την πολυπλοκότητα. Συν ότι το Βίζουαλ Στούντιο είναι της Μάικροσοφτ το οποίο λέει πολλα.  :P

(Σόρρυ που δεν έχω μια πιο συγκεκριμένη απάντηση  :-\)


Title: 3η Εργασία-Απορίες
Post by: Wade on June 17, 2007, 08:55:51 am
Run-Time Check Failure #2 - Stack around the variable 't' was corrupted.

Μου το εμφανιζει στο visual studio αυτο.. δλδ??

Στον Borland έχει μία επιλογή να μεγαλώσεις το stack, αλά δεν ξέρω αν υπάρχει αντίστοιχη επιλογή στο Visual Studio.  Δεν ξέρω όμως αν αυτό είναι το πρόβλημα, γιατί δν πιστεύω να χρησιμοποίησες τόση μνήμη για να μη φτάνει στο stack...  Μήπως έχεις κάνει κάποιο λογικό λάθος κάπου στον κώδικα;


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 17, 2007, 10:51:42 am
Χωρίς να ξέρω τίποτα από τον κομπ. του βίζουαλ στούντιο, επειδή βλέπω για πίνακα και μεταβλητή, ενδεχομένως να όρισες ως μέγεθος του πίνακα τη μεταβλητή t που δεν γίνεται (εκτός και αν την έχεις κάνει define)


Title: 3η Εργασία-Απορίες
Post by: elisabeth on June 17, 2007, 15:58:17 pm
Run-Time Check Failure #2 - Stack around the variable 't' was corrupted.

Μου το εμφανιζει στο visual studio αυτο.. δλδ??

το ποιο πιθανό ειναι να έχεις λογικό λάθος. αν μιλάμε για τη συγκεκριμένη εργασία ειναι απίθανο να χρησιμοποίησες τόση πολύ μνημη.
Αν έχεις το msdn library μπορείς να κάνεις error search(εχει κάποια επιλογή απο τα μενου πάνω στο vs) και να δώσεις τον 16δικο αριθμό του λάθους. εκει θα εχει περισσότερες πληροφορίες.


Title: 3η Εργασία-Απορίες
Post by: elisabeth on June 17, 2007, 16:00:31 pm
α, και έλεγξε τα loop γιατι αυτό που φαντάζομαι είναι να έχεις κάποιο απο το οποίο δεν βγαίνει το πρόγραμμα.


Title: 3η Εργασία-Απορίες
Post by: TED on June 17, 2007, 16:10:19 pm
Λοιπόν, για την ύψωση σε δύναμη, και ειδικά για τον αριθμό 2 η δυαδική μορφή είναι η εξής:
έστω οτι θέλουμε να υπολογίσουμε το 2 στην 3η, και το αποτέλεσμα να το αποθηκέυσουμε στο dinamh (σε μορφή char πάντα)
char dinamh;
dinamh=(char)1;
 dinamh=dinamh<<3


πράγμα που σημαίνει, για να διαβάζουμε και να δημιουργούμε ένα byte μπορούμε απλώς να κάνουμε το εξής:

int i, a;
unsigned char A=(char)0, temp=(char)0;

for (i=0;i<8;i++)
 {
 printf("eisagete thn katastash tou %dou diakopth, 1 an einai anoixtos kai 0 an einai kleistos\n",i+1);
 scanf("%d",&a);
 if (a==1)
  {
  temp=(char)1;
  temp=temp<<i;
  A=A|temp;
  }
 }
printf("%d",(int)A);
}


Title: 3η Εργασία-Απορίες
Post by: crystal on June 17, 2007, 16:34:23 pm
Χωρίς να ξέρω τίποτα από τον κομπ. του βίζουαλ στούντιο, επειδή βλέπω για πίνακα και μεταβλητή, ενδεχομένως να όρισες ως μέγεθος του πίνακα τη μεταβλητή t που δεν γίνεται (εκτός και αν την έχεις κάνει define)

Μεχρι το κομματι που εχω γραψει δεν εχω χρησιμοποιησει πινακα :(

Thanx για τις απαντησεις σας everybody..


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 17, 2007, 19:56:52 pm
Για το πρώτο κομμάτι:
Αν ζητάει από τον χρήστη την κατάσταση του κάθε διακόπτη, τότε γίνεται απλά χωρίς πίνακα, όπως έγραψε και ο ΤΕD, αλλά ξεφεύγει απ' την εκφώνηση που λέει "να εισάγει την θέση των διακοπτών που θα ενεργοποιηθούν".
Απ' την άλλη, αν ζητάει αριθμό θέσης πχ 3, 4, 8, τότε πάει σύμφωνα με την εκφώνηση, αλλά όσοι το έκαναν μέχρι στιγμής απ' ότι διαβάζω, χρησιμοποίησαν πίνακα, που ξεφεύγει από το "μόνο διαδικοί τελεστές"...

Υπάρχει κάτι ενδιάμεσο, χωρίς πίνακες και χωρίς εισαγωγή μη ενεργών διακοπτών;
(Να ξέρω, άμα δεν υπάρχει να μην ψάχνω τζάμπα  :P)


Title: 3η Εργασία-Απορίες
Post by: SolidSNK on June 17, 2007, 20:00:26 pm
Για το πρώτο κομμάτι:
Αν ζητάει από τον χρήστη την κατάσταση του κάθε διακόπτη, τότε γίνεται απλά χωρίς πίνακα, όπως έγραψε και ο ΤΕD, αλλά ξεφεύγει απ' την εκφώνηση που λέει "να εισάγει την θέση των διακοπτών που θα ενεργοποιηθούν".
Απ' την άλλη, αν ζητάει αριθμό θέσης πχ 3, 4, 8, τότε πάει σύμφωνα με την εκφώνηση, αλλά όσοι το έκαναν μέχρι στιγμής απ' ότι διαβάζω, χρησιμοποίησαν πίνακα, που ξεφεύγει από το "μόνο διαδικοί τελεστές"...

Υπάρχει κάτι ενδιάμεσο, χωρίς πίνακες και χωρίς εισαγωγή μη ενεργών διακοπτών;
(Να ξέρω, άμα δεν υπάρχει να μην ψάχνω τζάμπα  :P)

Υπάρχει τρόπος :)


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 17, 2007, 20:03:17 pm
+1


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 17, 2007, 20:03:26 pm
Γιάτι δεν μου είπατε ψέματα να μην παιδεύομαι;;  ^kremala^

Χίντ πλίζ :P


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 17, 2007, 20:05:14 pm
x=1 <===> 00000001

Aν θέςν είναι ο 3ος διακότης ανοικτός δηλαδή  00100000

τότε κάνεις x=x<<5;


Aρα για τον n διακόπτη   ==>χ=χ<<(8-n);
αυτό...ύστερα τον πχ 6ο διακοπτη  που θα θελήσεις τον κάνεις; ένα OR στο χ κ.ο.κ


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 17, 2007, 20:10:46 pm
Θένκς. Βασικά το είδα μόλις έστειλα το δικό μου. Όλα τα προηγούμενα πόστ τα είχα διαβάσει χθες, δεν κατάλαβα τιποτα γιατι ήμουν σε φάση ημινάρκωσης και σήμερα δεν μπήκα στον κόπο να τα ξαναδιαβάσω.
Στην πρόσθεση του επόμενου διακόπτη μπλέκομαι,αφού έχει εισαχθεί ο προηγούμενος, στο θέμα των μεταβλητών που θα χρησιμοποιήσω, αλλά θα το παλέψω, που θα μου πάει.  ;)


Title: 3η Εργασία-Απορίες
Post by: TED on June 17, 2007, 20:30:09 pm
Μπορείς να χρησιμοποιείσεις τον αριθμο που βάζει ο χρήστης για να κάνεις αντίστοιχο αριθμό shift.... (δεν έχω χρόνο τώρα, θα γράψω αναλυτικά το βράδυ άν δέν εχει απαντηθεί)


Title: 3η Εργασία-Απορίες
Post by: TED on June 18, 2007, 00:37:04 am
Μία εκδοχή θα ήταν η εξής:
int i, num;
unsigned char temp, A;
for (i=0;i<8;i++)
{
 printf("eisagete ton %do diakopth pou 8elete na energopoihsete",i);
 scanf("%d",&num);
temp=(char)1;
temp=temp<<(num-1);
A=A|temp;

 printf("an epi8imeite na energopoihsete kai allo diakopth grapste 1, alliws 0");
 scanf("%d",&flag);
if (flag==0)
 break;
}

οπότε σε κάθε επανάληψη θα εισάγει και το αντίστοιχο bit. Βέβαια χρειάζεται και αρκετούς ελέγχους τιμών, αλλά τους παραλείπω για λόγους συντομίας...


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 18, 2007, 02:06:05 am
Θένκς θένκς το έλυσα. Μόλις το τελείωσα το πρόγραμμα.
Το έκανα το πρώτο σκέλος χώρις πίνακα, απλώς ζητούσα πρώτα να δώσει ο χρήστης αριθμό διακοπτών που θα ενεργοποιήσει. Η άλλη εκδοχή. Φχαριστώ πάντως.  :)


Title: 3η Εργασία-Απορίες
Post by: Christy on June 18, 2007, 15:45:14 pm
Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη.

εδω θα θελει να εμφανιζει τον δεκαδικο αριθμο που αντιπροσωπευει η ακολουθια των 0 και 1 ή να εμφανιζει τις θεσεις στις οποιες εχουμε 0 και 1???

ταχω δει ολα με αυτην την εργασια  :o :o :o :o


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 18, 2007, 16:11:24 pm
Θέλει το δυαδικό αριθμό τον ανίστοιχο να εμφανίζει, π.χ.00111000


Title: 3η Εργασία-Απορίες
Post by: perukas on June 18, 2007, 16:44:44 pm
ρε παιδια αμα καποιος εχει τελειωσει το προγραμμα(κι ας μη νοπμιζει οτι ειναι σωστο)
ασ το βαλει στα downloads να δουμε κι εμεις τι γινεται γιατι εχς καταμπερδευτει....

κατι ειχα κανει και μετα κοιταξα κι εδς και εχασα τον μπουσουλα.....

(αυτο ειναι θερμη παρακληση σε οποιον εχει καλη καρδια)....


Title: 3η Εργασία-Απορίες
Post by: asxetos on June 18, 2007, 20:43:24 pm
εχω γραψει αυτο για να μου βρισκει που εχει 1 η θυρα C αλλα δεν μου δειχνει τα σωστα bit :-\ :'( :'(

λιγη βοηθεια?????


for(i=0;i<8;i++){
      x=2^i;
      k=x;
      if((C&x)==k){
           printf("\n To %do bit tis C einai 1\n",i+1);
       }
   }


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 18, 2007, 20:53:13 pm
εχω γραψει αυτο για να μου βρισκει που εχει 1 η θυρα C αλλα δεν μου δειχνει τα σωστα bit :-\ :'( :'(

λιγη βοηθεια?????


for(i=0;i<8;i++){
      x=2^i;
      k=x;
      if((C&x)==k){
           printf("\n To %do bit tis C einai 1\n",i+1);
       }
   }
Ισχύει ^ ;;;;
Δεν νομίζω!!!!


Title: 3η Εργασία-Απορίες
Post by: TED on June 18, 2007, 21:43:24 pm
ο τελεστης ^ συμβολίζει μόνο το XOR. Η ύψωση σε δύναμη χρειάζεται επανάληψη και πολλαπλασιασμό σε κάθε επανάληψη. Αλλά αυτό δεν είναι δυαδική πράξη...


Title: 3η Εργασία-Απορίες
Post by: Masked_senses on June 18, 2007, 22:52:06 pm
ti omorfi askisi..


Title: 3η Εργασία-Απορίες
Post by: asxetos on June 18, 2007, 23:16:37 pm
κατι τελευταιο.... :P

για το τελευταιο μερος της ασκησης εκανα 

 x=1;
   
   for(i=0;i<8;i++){
      if(i!=0){
          x=x*2;
      }      
      if((A^B)==x){
         printf("\n Sto %do zeugari diakoptwn o enas einai kleistos kai o allos anoiktos,ara den uparxei reuma",i+1);
      }
   }

κατι πρεπει να μην πηγαινει καλα μ αυτο.... δεν μου βγαζει τπτ οταν κανω compile

thank's για το παραπανω


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 18, 2007, 23:56:21 pm
Θέλει το δυαδικό αριθμό τον ανίστοιχο να εμφανίζει, π.χ.00111000

Εξακριβωμένα πράγματα? γιατί μιλάει για τιμή... Στο C ζητούσε αριθμό για το C και εννοούσε δεκαδικό... Κωλοεκφώνηση.
Και αν τελικά πρέπει να εμφανιστεί σε μπάιναρι, γίνεται αυτό μόνο με διαδικούς τελεστές?  :???:


Title: 3η Εργασία-Απορίες
Post by: SolidSNK on June 19, 2007, 00:13:10 am
Oxi.-


Title: deleted
Post by: BOBoMASTORAS on June 19, 2007, 00:15:39 am
deleted


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 19, 2007, 00:17:05 am
Oxi.-

Αυτό πήγαινε στο "Εξακριβωμένα πράγματα" ή στο "μόνο με διαδικούς τελεστές"? :P

Τελικά η άσκηση τι (σκατά) ζητάει?


Title: 3η Εργασία-Απορίες
Post by: OtiNaNAi on June 19, 2007, 01:04:25 am
Να συμβαλλω κ εγω στην γενικοτερη προσπαθεια, μιας κ τωρα κανω την ασκηση αν και το χω περασει το μαθημα


Συγκεκριμενα ενας τροπος για να εμφανισετε τα bit του C με τιμη 1 χρησιμοποιοντας μονο δυαδικους τελεστες ειναι ο παρακατω

for (i=0;i<8;i++)
   {
      temp=(char)1;
      temp=temp<<i;
      if (C&temp)
      {
         printf("%d  ",i);
      }
   }


Title: 3η Εργασία-Απορίες
Post by: TED on June 19, 2007, 01:06:50 am
κατι τελευταιο.... :P

για το τελευταιο μερος της ασκησης εκανα 

 x=1;
   
   for(i=0;i<8;i++){
      if(i!=0){
          x=x*2;
      }      
      if((A^B)==x){
         printf("\n Sto %do zeugari diakoptwn o enas einai kleistos kai o allos anoiktos,ara den uparxei reuma",i+1);
      }
   }

κατι πρεπει να μην πηγαινει καλα μ αυτο.... δεν μου βγαζει τπτ οταν κανω compile

thank's για το παραπανω


Κατ'αρχάς δεν ξέρω άν δουλεύει το (A^B)==x, άν δηλαδή δεν χρειάζεται απαραίτητα να βάλεις ==(char)x.

Τώρα, νομίζω υπάρχει και λογικό λάθος: το Α^Β σε κάθε επανάληψη θα έχει την ίδια τιμή, δηλαδή άν για παράδειγμα απο τα Α και Β προκύπτει το byte 01000101 θα έχει την τιμή 69 και η συνθήκη Α^Β==x δέν θα είναι ποτέ αληθής. Γι'αυτό δεν σου βγάζει τίποτα. Θα πρέπει να διαχωρίσεις τις τιμές του A^B και μετά να κάνεις την σύγκριση. (Και βέβαια το x*2 δέν είναι δυαδική πράξη...)

Να συμβαλλω κ εγω στην γενικοτερη προσπαθεια, μιας κ τωρα κανω την ασκηση αν και το χω περασει το μαθημα


Συγκεκριμενα ενας τροπος για να εμφανισετε τα bit του C με τιμη 1 χρησιμοποιοντας μονο δυαδικους τελεστες ειναι ο παρακατω

for (i=0;i<8;i++)
   {
      temp=(char)1;
      temp=temp<<i;
      if (C&temp)
      {
         printf("%d  ",i);
      }
   }

+1
πολύ καλή σκέψη!


Title: 3η Εργασία-Απορίες
Post by: vasso on June 19, 2007, 01:07:49 am
Αν έχουμε δηλώσει την τεμπ ως τσαρ, χρειάζεται να βάλουμε και (τσαρ) πριν το 1? έτσι από περιέργεια ρωτάω..


Title: 3η Εργασία-Απορίες
Post by: OtiNaNAi on June 19, 2007, 01:10:16 am
Να συμβαλλω κ εγω στην γενικοτερη προσπαθεια, μιας κ τωρα κανω την ασκηση αν και το χω περασει το μαθημα


Συγκεκριμενα ενας τροπος για να εμφανισετε τα bit του C με τιμη 1 χρησιμοποιοντας μονο δυαδικους τελεστες ειναι ο παρακατω

for (i=0;i<8;i++)
   {
      temp=(char)1;
      temp=temp<<i;
      if (C&temp)
      {
         printf("%d  ",i);
      }
   }

Κατι παρομοιο μπορει να γινει κ οταν θελουμε να εκτυπωσουμε τον Β σε δυαδικη μορφη απλα αντι να τυπωνουμε το i θα τυπωνουμε 0 η 1

Quote
πολύ καλή σκέψη!

Ο παλιος ειναι αλλιος !!!


Title: 3η Εργασία-Απορίες
Post by: Jalk on June 19, 2007, 01:22:50 am
Code:
 for (i=0;i<8;i++)
     {
         if (c%2==1) printf ("to bit sti thesi %d tis thyras C exei timi 1\n",i+1);
         c=c>>1;
     }


Αυτό δηλαδή σας χαλάει;


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 19, 2007, 01:28:15 am
Code:
 for (i=0;i<8;i++)
     {
         if (c%2==1) printf ("to bit sti thesi %d tis thyras C exei timi 1\n",i+1);
         c=c>>1;
     }


Αυτό δηλαδή σας χαλάει;

Περιλαμβάνει έναν έξτρα τελεστή % που δεν είναι δυαδικός, σε σχέση με τις άλλες λύσεις.
(Ναι, είμαι σπαστικός, το ξέρω :D)


Title: 3η Εργασία-Απορίες
Post by: TED on June 19, 2007, 02:12:35 am
Αν έχουμε δηλώσει την τεμπ ως τσαρ, χρειάζεται να βάλουμε και (τσαρ) πριν το 1? έτσι από περιέργεια ρωτάω..

Ουσιαστικά από άποψη αποτελέσματος είναι το ίδιο, είτε βάλεις char είτε όχι. Αλλά δεν είναι πιό λογικό στη θέση του Α που είναι char να δώσουμε ένα byte σε μορφή char και όχι σε μορφή int?


Title: 3η Εργασία-Απορίες
Post by: SolidSNK on June 19, 2007, 03:01:44 am
Oxi.-

Αυτό πήγαινε στο "Εξακριβωμένα πράγματα" ή στο "μόνο με διαδικούς τελεστές"? :P

Τελικά η άσκηση τι (σκατά) ζητάει?


Ουπς ασάφεια. Στο "μόνο με διαδικούς τελεστές"  :)


Title: 3η Εργασία-Απορίες
Post by: ampoulog on June 19, 2007, 09:20:50 am
Ασαφές δεν λες τίποτα.


Title: 3η Εργασία-Απορίες
Post by: PallasFTW on June 19, 2007, 12:58:02 pm
 ^banghead^  αυτό ακριβώς τίποτα παραπάνω


Title: 3η Εργασία-Απορίες
Post by: sarovios on June 19, 2007, 12:59:39 pm
Μία εκδοχή θα ήταν η εξής:
int i, num;
unsigned char temp, A;
for (i=0;i<8;i++)
{
 printf("eisagete ton %do diakopth pou 8elete na energopoihsete",i);
 scanf("%d",&num);
temp=(char)1;
temp=temp<<(num-1);
A=A|temp;

 printf("an epi8imeite na energopoihsete kai allo diakopth grapste 1, alliws 0");
 scanf("%d",&flag);
if (flag==0)
 break;
}

οπότε σε κάθε επανάληψη θα εισάγει και το αντίστοιχο bit. Βέβαια χρειάζεται και αρκετούς ελέγχους τιμών, αλλά τους παραλείπω για λόγους συντομίας...

τι είναι αυτό το num αν επιτρέπεται?


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 19, 2007, 13:20:49 pm
Η θέση του διακόπτη που θέλουμε να ενεργοποιηθεί.


Title: deleted
Post by: BOBoMASTORAS on June 19, 2007, 13:31:47 pm
deleted


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 19, 2007, 13:35:13 pm
Τελικά BOBoMASTORAS το ότι η τιμή της Α μηδενίζεται μόλις δώσω τιμή στη C οφείλεται σίγουρα σε δικό μου λάθος (όμως πουθενά δεν χρησιμοποίησα πίνακες) και που λύνεται ορίζοντας αλλού τη C, ή ενδέχεται να είναι bug του compiler;


Title: 3η Εργασία-Απορίες
Post by: Grecs on June 19, 2007, 14:17:11 pm
Τελικά BOBoMASTORAS το ότι η τιμή της Α μηδενίζεται μόλις δώσω τιμή στη C οφείλεται σίγουρα σε δικό μου λάθος (όμως πουθενά δεν χρησιμοποίησα πίνακες) και που λύνεται ορίζοντας αλλού τη C, ή ενδέχεται να είναι bug του compiler;
Wanderer ειχα το ιδιο προβλημα απλα δηλωσε μια μεταβλητη D και γραψε πριν δηλωσεις την C D=A με πεδεψε πολυ ωρα αυτη η μαλακεια


Title: 3η Εργασία-Απορίες
Post by: sarovios on June 19, 2007, 14:19:26 pm
τι είναι αυτό το %dou?


Title: 3η Εργασία-Απορίες
Post by: PallasFTW on June 19, 2007, 14:40:09 pm
Quote
τι είναι αυτό το %dou?
στη θεση του %d θα εμφανιστει ο ακεραιος που υπαρχει εξω απο τα "  "
αρα το αποτελεσμα θα ειναι του 1ου 2ου κτλ


Title: 3η Εργασία-Απορίες
Post by: Wade on June 19, 2007, 14:44:19 pm
Όσον αφορά αυτό το πρόβλημα με τα ανεξήγητα λάθη (π.χ. μηδενισμός Α), ελέγξτε αν στον κώδικά σας κάπου προσπελαύνετε θέση μνήμης που είναι εκτός ορίων...


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 19, 2007, 14:48:22 pm
Όσον αφορά αυτό το πρόβλημα με τα ανεξήγητα λάθη (π.χ. μηδενισμός Α), ελέγξτε αν στον κώδικά σας κάπου προσπελαύνετε θέση μνήμης που είναι εκτός ορίων...
Είσαι σίγουρος; Δεν χρησιμοποίησα pointers ή πίνακες ούτε καμιά συνάρτηση πέρα από τις συνηθισμένες, οπότε δεν μπορώ να φανταστώ με ποιόν τρόπο θα μπορούσα να προσελαύσω εκτός ορίων μνήμη :???: Βασικά ξέρει κανείς σε ποιές περιπτώσεις γίνεται αυτό;

Grecs ευχαριστώ για τη συμβουλή, αλλά το έλυσα με άλλον τρόπο το πρόβλημα :) (ορίζοντας αλλού τη C)


Title: 3η Εργασία-Απορίες
Post by: Wade on June 19, 2007, 14:52:38 pm
Αυτό πρότεινε ως μια πιθανή αιτία του προβλήματος ο κ. Κορτέσης...  Μπορεί και να μην είναι αυτό.  Πάντως πιθανόν να οφείλεται σε κάποιο λογικό λάθος.


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 19, 2007, 14:54:57 pm
Α και μια ερώτηση από περιέργεια: ο τελεστής "-" έχει μεγαλύτερη προτεραιότητα από τον τελεστή "<<" ή ">>";


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 19, 2007, 15:29:32 pm
Ναι. "+" και "-" είναι μία θέση πάνω από "<<" και ">>".
Σύμφωνα πάντα με το βιβλιαράκι των σημειώσεων Κορτέση (a.k.a. "Ιερή Βίβλος") που κρατώ στα χέρια μου. Αμήν.  :P


Title: 3η Εργασία-Απορίες
Post by: sarovios on June 19, 2007, 16:07:08 pm
το τρίτο ερώτημα γίνεται να το στείλει κάποιος?


Title: 3η Εργασία-Απορίες
Post by: wetman0 on June 19, 2007, 16:42:12 pm
Ρε παιδια επειδη δεν θυμαμαι σε ASCII κωδικα οι αριθμοι πανε κανονικα στο διαδικο (πχ. 3 = 00000011) η οχι?


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 19, 2007, 16:43:56 pm
Οχι!άλλο ο ASCII του χαρακτήρα 3 και άλλο ο δυαδικός του αριθμού 3!Εδώ δεν χρειαζόμαστε ASCII,δουλεύουμε μόνο με δυαδικούς


Title: 3η Εργασία-Απορίες
Post by: PallasFTW on June 19, 2007, 16:47:18 pm
παιδια οταν λεμε κλειστος διακοπτης εννοουμε οτι διαρρεεται απο ρευμα αρα ο κλειστος διακοπτης αντιστοιχει σε 1??


Title: 3η Εργασία-Απορίες
Post by: Nikos! on June 19, 2007, 16:48:17 pm
Ρε παιδια οταν λεει "Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη¨" εννοει σε δυαδικη η δεκαδικη μορφη?


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 19, 2007, 16:51:31 pm
παιδια οταν λεμε κλειστος διακοπτης εννοουμε οτι διαρρεεται απο ρευμα αρα ο κλειστος διακοπτης αντιστοιχει σε 1??
σωστός...

Ρε παιδια οταν λεει "Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη¨" εννοει σε δυαδικη η δεκαδικη μορφη?

Σε δυαδική,ο σύμφωνα με τον υπεύθυνο καθηγητή!


Title: 3η Εργασία-Απορίες
Post by: vasso on June 19, 2007, 16:57:44 pm
παιδια οταν λεμε κλειστος διακοπτης εννοουμε οτι διαρρεεται απο ρευμα αρα ο κλειστος διακοπτης αντιστοιχει σε 1??
σωστός...

Δηλαδή ενεργοποιώ έναν διακόπτη σημαίνει τον ανοίγω; δηλαδή κόβω το ρεύμα του κλάδου;
και ο wade και ο wanderer γιατί με κοροϊδέψανε ότι σημαίνει το αντίθετο;


Title: 3η Εργασία-Απορίες
Post by: Nikos! on June 19, 2007, 16:59:55 pm
Δηλαδη και στη θυρα Α "να εμφανίζεται στην οθόνη ο αριθμός που αντιστοιχεί σε αυτό." σε δεκαδικη εδω λογικα ε?


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 19, 2007, 17:08:41 pm


παιδια οταν λεμε κλειστος διακοπτης εννοουμε οτι διαρρεεται απο ρευμα αρα ο κλειστος διακοπτης αντιστοιχει σε 1??
σωστός...

Δηλαδή ενεργοποιώ έναν διακόπτη σημαίνει τον ανοίγω; δηλαδή κόβω το ρεύμα του κλάδου;
και ο wade και ο wanderer γιατί με κοροϊδέψανε ότι σημαίνει το αντίθετο;
Οχι!!κλειστός=ενεργοποιημενος=κατάσταση 1...μια χαρά σου τα παν.. :P


Title: 3η Εργασία-Απορίες
Post by: Nikos! on June 19, 2007, 17:10:22 pm
thanks Βoard.... η ασκηση ειναι μια τρελα!!!!!!!!!! ;D ^sfinaki^


Title: 3η Εργασία-Απορίες
Post by: Wade on June 19, 2007, 18:47:11 pm
και ο wade και ο wanderer γιατί με κοροϊδέψανε ότι σημαίνει το αντίθετο;

Κακοπροαίρετη Βάσω :P

Δηλαδη και στη θυρα Α "να εμφανίζεται στην οθόνη ο αριθμός που αντιστοιχεί σε αυτό." σε δεκαδικη εδω λογικα ε?

Ναι, δεκαδική...  Αλλά εγώ προσωπικά το έβαλα να εμφανίζει και δυαδική και δεκαδική και στις δύο περιπτώσεις για να είμαι καλυμμένος...


Title: 3η Εργασία-Απορίες
Post by: stefos on June 19, 2007, 19:14:22 pm

Ρε παιδια οταν λεει "Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη¨" εννοει σε δυαδικη η δεκαδικη μορφη?

Σε δυαδική,ο σύμφωνα με τον υπεύθυνο καθηγητή!
[/quote]
Aν το ζητουσε σε δυαδικη μορφη γιατι να λεει "Η τιμη του byte" κ οχι απλως ..."το byte";


Title: 3η Εργασία-Απορίες
Post by: TED on June 19, 2007, 21:04:40 pm

Ρε παιδια οταν λεει "Η τιμή του byte που θα σταλεί στην θύρα B να εμφανίζεται στην οθόνη¨" εννοει σε δυαδικη η δεκαδικη μορφη?

Σε δυαδική,ο σύμφωνα με τον υπεύθυνο καθηγητή!
Aν το ζητουσε σε δυαδικη μορφη γιατι να λεει "Η τιμη του byte" κ οχι απλως ..."το byte";
[/quote]

Λοιπόν, επειδή πολύ ασχοληθήκαμε με αυτές τις άθλιες διατυπώσεις, θεωρώ πως αυτό δεν παίζει ρόλο στην άσκηση και απλώς το βάζω όπως θέλω. Κανείς δεν μου το απαγόρεψε, ή το ζήτησε διαφορετικά. Σωστό και έτσι, σωστό και αλλιώς. Και από λογική άποψη και τα 2 είναι εύλογα αποτελέσματα. Άν θέλει πιό συγκεκριμένα προγράμματα, να δίνει πιό συγκεκριμένες εκφωνήσεις. (εδώ ταιριάζει η φράση "όπως έστρωσε θα κοιμηθεί")...!!!


Title: 3η Εργασία-Απορίες
Post by: vasso on June 19, 2007, 21:07:43 pm
Βασικά είχε πλάκα σήμερα που πέρασα από το εργαστήριο και ρώτησα τον Αντρέα για την εργασία.. Του είπα ότι δεν χρησιμοποίησα μόνο δυαδικούς τελεστές και γέλασε.. προφανώς και κάτι τέτοιο δεν γινόταν... οπότε δεν παίζει άγχος...


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 19, 2007, 21:58:08 pm
μιλησα σημερα με τον κ.κορτεση μεταφερω κομματια τν ρωτησα για την περιβοητη σημειωση "κυριε φορ μπορουμε να χρησιμοποιησουμε?" και μου ειπε προφανως συνεχιζω "τοτε γιατι γραφεται αποκλειστικη χρηση δυαδικων τελεστων?" και μ πε ειναι θεμα ερμηνειας δηλαδη για παραδειγμα δεν επιτρεπεται λεει να χρησιμοποιησεις το %(μοντουλο) στην συγκεκριμενη ασκηση(ο νοων νοειτω :D)ενω μπορεις καλιστα να κανεις χρηση του i++ για παραδειγμα


Title: 3η Εργασία-Απορίες
Post by: Tempus Fugit on June 19, 2007, 23:20:26 pm
Εγώ σήμερα πάντως, όταν μας μιλούσε ο Κορτέσης για τις scanf και printf που δέχονται προδιαγραφές της μορφής "%_" όπου _ = d,o,u,i κτλ ρώτησα -ψιλιασμένος από την άσκηση- αν υπάρχει προδιαγραφή που να σου τυπώνει αριθμό σε binary σύστημα, γιατί %d είναι δεκαδικό, %x  είναι δεκαεξαδικό και %o είναι οκταδικό. Και μου απαντάει "όχι, δεν υπάρχει, αν θέλεις να τυπώνει δυαδικό, πρέπει να γράψεις μία ρουτίνα όπως αυτό που σας ζητούσε η άσκηση που είχατε να κάνετε."

Α... το ζητούσε δηλαδή...  8)


Title: 3η Εργασία-Απορίες
Post by: Mendoza on June 19, 2007, 23:24:51 pm
Ε ναι ζητούσε και ένα for η άσκηση..δεν το είδατε??


Title: 3η Εργασία-Απορίες
Post by: SolidSNK on June 20, 2007, 00:17:45 am
Βασικά είχε πλάκα σήμερα που πέρασα από το εργαστήριο και ρώτησα τον Αντρέα για την εργασία.. Του είπα ότι δεν χρησιμοποίησα μόνο δυαδικούς τελεστές και γέλασε.. προφανώς και κάτι τέτοιο δεν γινόταν... οπότε δεν παίζει άγχος...

Μα γίνεται!!!


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 20, 2007, 00:43:55 am
Γίνεται; Δηλαδή με ποιόν δυαδικό θα αντικαταστούσες εσύ τον τελεστή "=="; :???:


Title: 3η Εργασία-Απορίες
Post by: TED on June 20, 2007, 01:06:26 am
όταν μία τιμή είναι 0 τότε θεωρείται σαν ψευδής συνθήκη. Αν έχουμε Α==Β τότε η συνθήκη Α^Β δεν 8α μας δίνει 0? ίσως μπορούμε να βγάλουμε άκρη από αυτό...


ίσως το !(Α^Β)?

εδιτ: ναι, δουλεύει...


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 01:25:58 am
Γίνεται; Δηλαδή με ποιόν δυαδικό θα αντικαταστούσες εσύ τον τελεστή "=="; :???:
απλα δεν θα κανεις χρηση αυτου το τελεστη γιατι ειναι λαθος σε καλυψα? :D


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 01:29:25 am
Εγώ σήμερα πάντως, όταν μας μιλούσε ο Κορτέσης για τις scanf και printf που δέχονται προδιαγραφές της μορφής "%_" όπου _ = d,o,u,i κτλ ρώτησα -ψιλιασμένος από την άσκηση- αν υπάρχει προδιαγραφή που να σου τυπώνει αριθμό σε binary σύστημα, γιατί %d είναι δεκαδικό, %x  είναι δεκαεξαδικό και %o είναι οκταδικό. Και μου απαντάει "όχι, δεν υπάρχει, αν θέλεις να τυπώνει δυαδικό, πρέπει να γράψεις μία ρουτίνα όπως αυτό που σας ζητούσε η άσκηση που είχατε να κάνετε."

Α... το ζητούσε δηλαδή...  8)
δε παιζει φαση μπορουν βεβαια να μας το επιβεβαιωσουν παιδια που ειχαν εργαστηριο σημερα και την ειδαν λυμενη......αλλα γενικα πιστευω οτι η8ελε τον δεκαδικο στην εκτυπωση και κατι αλλο που συμπερανα οσο ρωτας τελικα τοσο μπερδευεσαι :P


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 20, 2007, 01:35:20 am
όταν μία τιμή είναι 0 τότε θεωρείται σαν ψευδής συνθήκη. Αν έχουμε Α==Β τότε η συνθήκη Α^Β δεν 8α μας δίνει 0? ίσως μπορούμε να βγάλουμε άκρη από αυτό...


ίσως το !(Α^Β)?

εδιτ: ναι, δουλεύει...
Αν το πας έτσι, τότε και το "!" δεν είναι δυαδικός τελεστής 8)


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 20, 2007, 01:43:29 am
Γίνεται; Δηλαδή με ποιόν δυαδικό θα αντικαταστούσες εσύ τον τελεστή "=="; :???:
απλα δεν θα κανεις χρηση αυτου το τελεστη γιατι ειναι λαθος σε καλυψα? :D
Dark Hunter, είσαι η πηγή της γνώσεως και της λογικής, έρχεσαι πάντα σε στιγμές όπου το σκοτάδι της αμάθειας & της άγνοιας κατασπαράζει το πνεύμα μας, να ακτινοβολήσεις το υπερένδοξο λευκό φως της σοφίας και δύναμής σου, και με απλές αλλά συνάμα υποθάλπτουσες το νόημα της υπάρξεως συμβουλές να μας καθοδηγήσεις στο δρόμο της αυτογνωσίας και της ψυχικής λύτρωσης...

ΕΙΔΕΣ ΤΙ ΕΓΚΩΜΙΑ ΣΟΥ ΠΛΕΚΩ;;;!!! :D :D :D


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 01:51:32 am
και προς στιγμην πιστεψα οτι επεσες για υπνο :P.....σημερα παντως χαθηκες απο προσωπου γης τι εγινε ποια σε απασχολει? :P


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 20, 2007, 01:58:12 am
Πολλές ερωτήσεις κάνεις ^shifty^


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 02:00:03 am
Πολλές ερωτήσεις κάνεις ^shifty^
απο ενδιαφερον μηπως επαθες κατι :D


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 20, 2007, 02:05:31 am
Don't worry, επι του παρόντος όλα είναι υπο έλεγχο :P

Αχ... :-[

υ.γ.:Η εργασία πώς σου φάνηκε; Καλή; Σε περίπτωση που βαρέθηκες να διαβάσεις τα προηγούμενα μηνύματα, άκου αυτό το κουφό: Όταν έδινα τιμή στη C, αυτόματα χωρίς καμιά προειδοποίηση η τιμή της Α γινόταν μηδέν! :D :D Το έλυσα το πρόβλημα, όμως ακόμα αναρωτιέμαι γιατί συνέβη αυτό... μάλλον θα ρωτήσω αύριο στο εργαστήριο πότε μπορεί να συμβεί αυτό (δεν χρησιμοποίησα πίνακες ή πόιντερς)


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 02:09:08 am
αρχικα πηγα με πινακες αλλα στην πορεια βρηκα μια καλυτερη λυση πιο απλη.....με λιγα λογια πιστευω το εξης σαν υλοποιηση η ασκηση ηταν πολυ ευκολη η εκφωνηση ηταν gtp τρεις λαλουν και δυο χορευουν κτλ.....


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 02:13:06 am
εισαι offline και ομως απαντας.......μηπως εισαι χακερ :D???


Title: 3η Εργασία-Απορίες
Post by: Wanderer on June 20, 2007, 02:16:42 am
? A, βασικά τόσην ώρα ήμουν "φανερός", απλά τώρα πηγαίνοντας να κάνω μια αλλαγή στο προφίλ μου κατα λάθος ξε-τσέκαρα την αντίστοιχη επιλογή...

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

Άντε φεύγω. Καληνύχτα και τα λέμε αύριο!


Title: 3η Εργασία-Απορίες
Post by: ^^DaRk_HunTeR on June 20, 2007, 02:18:45 am
αυριο?μπαααα εγω αυριο θα κανω βουτιες...πλατσα πλουτσα....στη χαλκιδικη........καλο μαθημα ;D ;D


Title: 3η Εργασία-Απορίες
Post by: TED on June 20, 2007, 02:47:26 am
όταν μία τιμή είναι 0 τότε θεωρείται σαν ψευδής συνθήκη. Αν έχουμε Α==Β τότε η συνθήκη Α^Β δεν 8α μας δίνει 0? ίσως μπορούμε να βγάλουμε άκρη από αυτό...


ίσως το !(Α^Β)?

εδιτ: ναι, δουλεύει...
Αν το πας έτσι, τότε και το "!" δεν είναι δυαδικός τελεστής 8)

Εχεις και ένα δίκιο σ'αυτό...