Vkt678 Δημοσ. 2 Δεκεμβρίου 2014 Δημοσ. 2 Δεκεμβρίου 2014 Καλησπέρα.Θα ήθελα να με βοηθήσετε και να μου δώσετε τα φώτα σας στην άσκηση αυτή.Η εκφώνηση της άσκησης είναι επισυναπτόμενη σε μορφή pdf.Θα εκτιμούσα ιδιαιτέρως αν με βοηθήσετε στην επίλυση της το συντομότερο δυνατό.Επίσης σας παραθέτω και ένα κομμάτι κώδικα για να δείτε στο σημείο στο οποίο βρίσκομαι.Ευχαριστώ εκ των προτέρων και ελπίζω μέσα από τις συζητήσεις και ανταλλαγή ιδεών να φτάσουμε στην τελική λύση. [code/] #include<stdio.h> int main(void) { int i,ch,flag_diesi=1,flag_eis=0,; ch=getchar(); while(ch!=EOF) { if (ch == '#') { flag_diesi=1; while( ch!= '\n') { putchar(ch); ch=getchar(); } } else { while( ch!= ';' || flag_eis==1) { if(ch == '"') { if (flag_eis==0) flag_eis=1; else flag_eis=0; } if (ch == '{' && flag_eis==0) putchar(ch); else { printf("\n"); for(i=0;i<=metr;i++) metr++; printf("\t"); } if (ch == '}'&& flag_eis==0 ) putchar(ch); else { printf("\n"); metr--; for(i=0;i<=metr;i++) { printf("\t"); } putchar(ch); } } } ch=getchar(); } return 0; } iphw1415_2.pdf iphw1415_2.pdf
conkal Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 ο τακης το ξερει οτι βαζεις το ινσομνια να σου βγαζει τις ασκησεις??
Vkt678 Δημοσ. 3 Δεκεμβρίου 2014 Μέλος Δημοσ. 3 Δεκεμβρίου 2014 χαχα μπα δεν νομίζω....Κοίτα δεν απαιτώ ατόφια την λύση,εξάλου βλέπεις πως έχω προσπαθήσει..απλά θέλω να την συζητήσω για να προχωρήσω γιατί όπως βλέπεις έχω κολλήσει..Πρωτοετής και εσύ ή μεγαλύτερο έτος?;p
conkal Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 διδακτορικος Χωρις πλακα προσπαθησε την περισσοτερο μονος σου . Μονο ετσι θα μαθεις και αμα ζορισει η κατασταση βλεπεις.
Vkt678 Δημοσ. 3 Δεκεμβρίου 2014 Μέλος Δημοσ. 3 Δεκεμβρίου 2014 Μπράβο ρε φίλε!Οπότε η άσκηση παίζει να σου φαίνεται αστεία έτσι?Τι θα έλεγες να μου δώσεις μια βοήθεια? Έχει ζορίσει αρκετά..Η προθεσμία είναι μέχρι την παρασκευή και δεν αντέχω άλλο να σπάω το κεφάλι μου..Η προηγούμενη άσκηση(αν θυμάσαι με τους πρώτους αριθμούς είχε μια βάση,ένα μαθηματικό θεώρημα...αυτή τίποτα.....)Και συμφωνώ ότι με το παίδεμα και τη συνεχή ενασχόληση μαθαίνεις προγραμματισμό αλλά τώρα έχει ξεφύγει από τα λογικά πλαίσια
conkal Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 πλακα κανω. Ρε συ δεν ειμαι καν στην σχολη μας πια. ειμαι αλλου . Ημουν φοιτητης πριν αρκετα χρονια. Αν βρω χρονο θα την κοιταξω αυριο (απλα μην νομιζεις οτι χρονος περισσευει)
Vkt678 Δημοσ. 3 Δεκεμβρίου 2014 Μέλος Δημοσ. 3 Δεκεμβρίου 2014 Θα το εκτιμούσα ιδιαιτέρως αν με βοηθούσες.Σίγουρα και ο δικός σου χρόνος είναι περιορισμένος και το καταλαβαίνω.Πάντως ευχαριστώ για το ενδιαφέρον και αν ασχοληθείς στείλε τις ιδέες σου
MeTaXaS4 Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 φτιάξε τα code tags, φτιάξε συναρτήσεις για κάθε τι που σου ζητάει να κάνει το πρόγραμμα
Vkt678 Δημοσ. 3 Δεκεμβρίου 2014 Μέλος Δημοσ. 3 Δεκεμβρίου 2014 Τι εννοείς code tags? Μέχρι τώρα έχω σκεφτεί αυτές τις περιπτώσεις..καμία ιδέα για άλλη περίπτωση?
MeTaXaS4 Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 τα code tags στο 1ο σου post για να φαίνεται ωραία ο κώδικας!
παπι Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 http://www.insomnia.gr/topic/549780-%CE%B1%CF%83%CE%BA%CE%B7%CF%83%CE%B7-c/οπως λεει στο #7 #define FLAG_PRINT ( 1 << 0 ) #define FLAG_NEWLINE ( 1 << 1 ) #define FLAG_TABS ( 1 << 2 ) void print_tabs(int count) { int i; for(i = 0; i < count; i++) putchar('\t'); } int main() { int ch; int fflags = 0; int lflags = 0; int tab = 0; while ( (ch = getchar()) != EOF ) { //////////////// flag setting switch(ch) { case ';': fflags |= FLAG_PRINT; lflags |= FLAG_NEWLINE | FLAG_TABS; break; case '{': fflags |= 0 ; lflags |= FLAG_NEWLINE | FLAG_TABS | FLAG_PRINT; tab++; break; case '}': fflags |= FLAG_NEWLINE | FLAG_TABS; lflags |= FLAG_NEWLINE | FLAG_TABS | FLAG_PRINT; tab--; break; case ' ': fflags |= FLAG_PRINT; break; default: if(!isspace(ch)) fflags |= FLAG_PRINT; } //////////////////////////////////////// /// first order flags if(fflags & FLAG_PRINT) putchar(ch); if(fflags & FLAG_NEWLINE) putchar('\n'); if(fflags & FLAG_TABS) print_tabs(tab); // last order flags if(lflags & FLAG_PRINT) putchar(ch); if(lflags & FLAG_NEWLINE) putchar('\n'); if(lflags & FLAG_TABS) print_tabs(tab); //reset fflags = 0; lflags = 0; } return 0; } Εχω δυο set απο flags, τα οποια κανουν το ιδιο πραμα, με την διαφορα οτι πρωτα θα εκτελεστουν τα πρωτα, και δευτερα τα δευτερα. πχ, οταν βλεπω ; λεω στο μηχανημα, πρωτα εκτυπωσε το ch, μετα βαλε newline και tabs. Το αποτελεσμα int test(x){if(x){print("true");}else{print("false");}return 0;}^Z int test(x){ if(x){ print("true"); } else{ print("false"); } return 0; } → 3
Vkt678 Δημοσ. 3 Δεκεμβρίου 2014 Μέλος Δημοσ. 3 Δεκεμβρίου 2014 MetaXaS4 θύμισε μου λίγο πως φτιάχνω τα code tags.. Παπι αυτό το κομμάτι κώδικα καλύπτει κάθε περίπτωση?Δεν έχω καταλάβει 1ον τι σημαίνει αυτό ( 1 << 2 ) και 2ον τι σημαίνει η εντολή που περιέχει =| όπως αυτό lflags |= FLAG_NEWLINE | FLAG_TABS | FLAG_PRINT; Sorry για τις πολλές ερωτήσεις αλλά τώρα μαθαίνω σιγά σιγά και μπαίνω στο κλίμα..Ευχαριστώ πολύ
MeTaXaS4 Δημοσ. 3 Δεκεμβρίου 2014 Δημοσ. 3 Δεκεμβρίου 2014 ο γούγλης είναι φίλος σου... άλλο =| (δεν ξέρω αν υπάρχει τέτοιος operator) και άλλο |=http://en.wikipedia.org/wiki/Bitwise_operations_in_C#Bitwise_operators αν δεις λίγο τους bitwise operator θα καταλάβεις τι είναι το 1<<2 και το |= όπως και το | μόνο του. [code ] [/code ] χωρίς τα κενά
Vkt678 Δημοσ. 3 Δεκεμβρίου 2014 Μέλος Δημοσ. 3 Δεκεμβρίου 2014 Ναι η αλήθεια είναι ότι βιάστηκα να απαντήσω,με ένα απλό search το βρήκα πριν μου στείλεις;p Btw ο κώδικας που έχω υλοποιήσει μέχρι τώρα είναι ο παρακάτω: #include<stdio.h> int main(void) { int i,ch,flag_diesi=1,flag_eis=0,; ch=getchar(); while(ch!=EOF) { if (ch == '#') { flag_diesi=1; while( ch!= '\n') { putchar(ch); ch=getchar(); } } else { while( ch!= ';' || flag_eis==1) { if(ch == '"') { if (flag_eis==0) flag_eis=1; else flag_eis=0; } if (ch == '{' && flag_eis==0) putchar(ch); else { printf("\n"); for(i=0;i<=metr;i++) metr++; printf("\t"); } if (ch == '}'&& flag_eis==0 ) putchar(ch); else { printf("\n"); metr--; for(i=0;i<=metr;i++) { printf("\t"); } putchar(ch); } } } ch=getchar(); } return 0; } Το θέμα είναι να συνεχίσω με αυτό που έχω κάνει μέχρι τώρα ή να ακολουθήσω το σκεπτικό του παπι? Στο δικό μου κώδικα βρίσκομαι σε αδιέξοδο ή μάλλον δεν μπορώ να σκευτώ κάτι παραπάνω,ίσως με τον άλλο τρόπο να οδηγηθώ στην επίλυση της.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα