Οι λέξεις στο αρχείο είναι με μικρά ή κεφαλαία ή και τα δύο ;
Εμφάνιση 16-24 από 24
-
14-10-10, 14:23 Απάντηση: Προγραμματισμός c - Ασκηση #16
-
14-10-10, 14:43 Απάντηση: Προγραμματισμός c - Ασκηση #17Κώδικας:
#include <stdio.h> #include <string.h> int isValidWord(int,char []); int main(){ int number=0; while (number<1000000 || number>9999999){ printf("dose ton kodiko:"); scanf("%d",&number);getchar(); if (number<1000000 || number>9999999) printf("prepei o ari8mos na einai 7psifios!!\n"); } FILE *fr=fopen ("lekseis.txt", "rt"); char a[10]; while(fgets(a, 10, fr) != NULL){ a[8]='\0'; if (isValidWord(number,a)==1) printf("\n i leksi %s dimioyrgi8ike apo ton ari8mo %d",a,number); //else //printf("\n i leksi %s den dimioyrgi8ike apo ton ari8mo %d",a,number); } fclose(fr); getchar(); return 0; } int isValidWord(int number ,char a[]){ char numberString[8]; char b; sprintf(numberString,"%d",number); int valid=1; for (int i=0;i<7;i++){ switch (a[i]){ case 'A': case 'B': b='1'; break; case 'C': case 'D': case 'E': b='2'; break; case 'F': case 'G': b='3'; break; case 'H': case 'I': case 'J': b='4'; break; case 'K': case 'L': b='5'; break; case 'M': case 'N': case 'O': b='6'; break; case 'P': case 'Q': case 'R': b='7'; break; case 'S': case 'T': b='8'; break; case 'U': case 'V': b='9'; break; case 'X': case 'Y': case 'Z': b='0'; break; default: b='x'; } if (b=='x' || numberString[i]!=b) return -1; } return valid; }
αρχείο lekseis.txt
Κώδικας:AGKLMNO ABCWIOSH XCGRESJH FFFFFFFF SDFGSDFG
πρέπει να σου πει ότι η AGKLMNO δημιουργήθηκε από τον 1355666
αλλά μάλλον δεν έχεις καταλάβει τι κάνει το πρόγραμμα.
εξηγώ λοιπόν.
ανοίγει το αρχείο και διαβάζει μία μία τις λέξεις.
αν βρει ότι μία λέξη του αρχείου έχει σχηματιστει από τον αριθμό που έδωσες
την εμφανίζει.
ΔΕΝ βρίσκει όλους τους συνδυασμούς λέξεων που προκύπτουν από το νούμερο που δίνεις.
-
14-10-10, 16:38 Απάντηση: Προγραμματισμός c - Ασκηση #18
Να και η δική μου λύση:
Κώδικας:#include <stdio.h> int main() { FILE *in = fopen("lexeis.txt", "r"); char lexi[8], noumera[8], gramma; int i,a; printf("Dose noumera: "); scanf("%s", noumera); while(!feof(in)) { a=0; fscanf(in, "%s\n", lexi); for (i=0; i<7; i++) { switch(lexi[i]) { case 'A': case 'B': gramma = '1'; if (gramma != noumera[i]) break; else a++; break; case 'C': case 'D': case 'E': gramma = '2'; if (gramma != noumera[i]) break; else a++; break; case 'F': case 'G': gramma = '3'; if (gramma != noumera[i]) break; else a++; break; case 'H': case 'I': case 'J': gramma = '4'; if (gramma != noumera[i]) break; else a++; break; case 'K': case 'L': gramma = '5'; if (gramma != noumera[i]) break; else a++; break; case 'M': case 'N': case 'O': gramma = '6'; if (gramma != noumera[i]) break; else a++; break; case 'P': case 'Q': case 'R': gramma = '7'; if (gramma != noumera[i]) break; else a++; break; case 'S': case 'T': gramma = '8'; if (gramma != noumera[i]) break; else a++; break; case 'U': case 'V': gramma = '9'; if (gramma != noumera[i]) break; else a++; break; case 'X': case 'Y': case 'Z': gramma = '0'; if (gramma != noumera[i]) break; else a++; break; } } if (a >= 6) printf("Lexi: %s\n", lexi); } system("pause"); fclose(in); }
-
14-10-10, 22:34 Απάντηση: Προγραμματισμός c - Ασκηση #19if (gramma != noumera[i])
break;
else
a++;
break;
Κώδικας:if (gramma==noumera[i]) a++; break;
if (a >= 6)
printf("Lexi: %s\n", lexi);
-όταν δίνεις 7ψήφιο αριθμό περιμένεις λέξη 7 χαρακτήρων
επομένως αρκεί το a==7
-επίσης δεν βγαίνει από το for - loop αν δεν ψάξει όλα τα γράμματα ακόμα και αν βρει
κάποιο που δεν ικανοποιεί τον δοσμένο αριθμό.
-διαφωνώ με το system("pause"); υπάρχουν πολλοί τρόποι όπως η getchar();
αλλά και πάλι για να δουλέψει το system("pause"); λείπει το #include <stdlib.h>
-επίσης λείπει η αμυντική εισαγωγή δεδομένων.
τι θα γίνει αν ο χρήστης δώσει νούμερο με 3 ψηφία?
-τέλος αμέσως μετά από κάθε scanf που χρησιμοποιείς βάζε και μία getchar();
-
14-10-10, 23:05 Απάντηση: Προγραμματισμός c - Ασκηση #20
Καλησπερα! Τελικα virxen ειχες δικιο. Το προγραμμα δουλευει. Ευχαριστω πολυ για τον κωδικα, τις παρατηρησεις και τα σχολια, βοήθησαν για να καταλαβω το προβλημα και την λυση. Το test που κανει η ασκηση: Εδωσα το νουμερο που ελεγε η ασκηση και τυπωθηκε η αναλογη λεξη.
Αλλα η ασκηση δεν λεει αν δωσεις οποιοδηποτε νουμερο τι θα γινει. Μαλλον ενα αλλο test θα μπορουσε να γινει με συγκεκριμενα νουμερα που ηδη πρεπει να γνωριζεις για να τσεκαρεις ποιες λεξεις(ή μια λεξη) τυπωνονται στην οθονη.
virxen εκει που γραφειςΚώδικας:sprintf(numberString,"%d",number); int valid=1; for (int i=0;i<7;i++)
Κώδικας:for (int i=0;i<7;i++)
Κώδικας:for (i=0;i<7;i++)
Κώδικας:char numberString[8]; char b; int i; sprintf(numberString,"%d",number); int valid=1; for (i=0;i<7;i++)
-
15-10-10, 14:29 Απάντηση: Προγραμματισμός c - Ασκηση #21
Σίγα το μπέρδεμα, κόψε κάτι...
Ναι, όντως, αυτό το είχα βάλει για κάποιο άλλο λόγο αλλά μετά ξέχασα να το βγάλω.
Δεν σε αναγκάζει κανένας να το κάνεις αυτό απλά για πιο γρήγορα χρειάζεται.
Δεν το ήξερα, ευχαριστώ για την πληροφορία.
Ας φτιάξουμε πρώτα το βασικό τμήμα και μετά θα έρθει και η απαλοιφή των bugs...
Στην προκειμένη περίπτωση είναι περιττό...
-
04-02-21, 13:30 σορρυ που το έχω γράψει εδώ αλλά δεν ξέρω πως να δημιουργήσω δικό μου θέμα..... #22
δεν ξέρω τι να κάνω με την εξής άσκηση που θα δείτε στην παρακάτω φώτο όποιος μπορεί ας με βοηθήσει...ευχαριστώ εκ των πρωτέρων
Υγ 1 εκεί που λέει two είναι τυπογραφικό
Υγ 2 πρέπει να το λύσω σε c
-
13-02-21, 22:00 Απάντηση: σορρυ που το έχω γράψει εδώ αλλά δεν ξέρω πως να δημιουργήσω δικό μου θέμα..... #23
Γενικά αντί να πας κατευθείαν να κάνεις την υλοποίηση σε πρώτη φάση έχεις να καταλάβεις τον αλγόριθμο που σου δίνει. Ο πιο απλός τρόπος (για μένα τουλάχιστον) είναι να διαβάσεις το κάθε bullet και να γράψεις σε μορφή ψευδοκώδικα αυτό που λέει.
Κώδικας:proc four(lim, xar) = pin <- array N chars [1] i <- 0 sum <- 0 while i < lim do [2] read pin if length(pin) < 5 or last(pin) == xar [3] print "WRONG" break end if for j = 0 to length(pin) do if not pin[i] in A-Z then [4] print pin[j] pin[j] <- C sum += 1 end if print sum, pin [5] end for i += 1 end while return i [6] end
Τελευταία επεξεργασία από το μέλος konfou : 14-02-21 στις 12:14. Αιτία: s/end/end if/
::1
-
27-02-21, 00:36 Re: σορρυ που το έχω γράψει εδώ αλλά δεν ξέρω πως να δημιουργήσω δικό μου θέμα..... #24Όσο περισσότερο σου κλέβουν τη ζωή, τόσο σε ταΐζουν με έθνος και φυλή..
Εθνικισμός και μετανάστες
Μία τάξη, φυλετικά διαχωρισμένη
Παρόμοια Θέματα
-
Βοήθεια σε άσκηση C++
Από lamoyo13 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 10Τελευταίο Μήνυμα: 23-05-12, 10:00 -
άσκηση Ηλεκτροτεχνίας
Από dimpallas στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 21Τελευταίο Μήνυμα: 24-12-08, 00:00 -
Άσκηση σε C
Από killbilll στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 5Τελευταίο Μήνυμα: 13-12-07, 03:18 -
Ασκηση!!!
Από funkyjohny στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 7Τελευταίο Μήνυμα: 08-12-07, 17:41 -
ασκηση C
Από kasadi στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 12Τελευταίο Μήνυμα: 09-09-07, 11:48
Bookmarks