Σελ. 1 από 4 123 ... ΤελευταίαΤελευταία
Εμφάνιση 1-15 από 47

Θέμα: C άσκηση

  1. #1
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    Question
    Γεια σας έχω μια άσκηση στην C(στα ubuntu) και έχω κολλήση.H άσκηση είναι η εξής:

    Δημιουργήστε ένα πρόγραμμα που ονομάζεται inch2cm.c που διαβάζει σε ένα δεδομένο μήκος σε ίντσες και το μετατρέπει σε μετρικούς της
    ισοδύναμο σε εκατοστά . Στη συνέχεια δημιουργήσετε ένα άλλο πρόγραμμα που ονομάζεται Celsius2Kelvin.c που διαβάζει σε μια
    θερμοκρασία σε βαθμούς Κελσίου και το μετατρέπει σε βαθμούς Κέλβιν ισοδύναμο του . Όλα τα προγράμματα θα πρέπει να αποδεχθούν το
    είσοδο του χρήστη ως επιχειρήματα του προγράμματος και δεν χρησιμοποιούν τη λειτουργία scanf . Ως εκ τούτου , προκειμένου να χρησιμοποιήσει το
    inch2cm πρόγραμμα για να μετατρέψετε 15 ίντσες ,ο χρήστης θα πρέπει να πληκτρολογήσετε στην προτροπή :

    inch2cm 15

    Μπορεί κάποιος να με βοηθήσει?

    Έχω προσπαθήσει την πρώτη αλλά πως μπορώ να την γράψω χωρίς την εντολή scanf?
    Πως μπορεί ο χρήστης να γράφει πχ. "inch2cm 15" αντί να γράφει μόνο το "15" για να του το μετατρέπει σε centemetres?

    Κώδικας:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
    float in_cm;
    char in_inches[4];
    
    printf("Convert inches: ");
    scanf("%s", &in_inches);
    
    in_cm = atoi(in_inches)*2.54;
    
    printf("%.2f cm\n", in_cm);
    return(0);
    
    }
    Τελευταία επεξεργασία από το μέλος cranky : 05-05-12 στις 15:15. Αιτία: Αίτημα χρήστη.

  2. #2
    Εγγραφή
    20-11-2006
    Ηλικία
    56
    Μηνύματα
    797
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    14566/1006
    ISP
    HOL
    DSLAM
    HOL - ΑΘΗΝΑ
    Router
    Pirelli (λευκό)
    SNR / Attn
    9(dB) / 15(dB)
    Path Level
    Interleaved
    Αυτό που ονομάζει "επιχειρήματα" εννοεί command-line arguments...

    Κώδικας:
    int main( int argc, char *argv[] )
    {
        ...
    }
    To argc σου λέει πόσες παραμέτρους πέρασε ο χρήστης στη γραμμή εντολών όταν κάλεσε το πρόγραμμά σου, και στον πίνακα *argv[] είναι αποθηκευμένες οι παράμετροι σε μορφή c-strings. Το argv[0] είναι πάντα το όνομα του προγράμματός σου, άρα το argc είναι πάντα τουλάχιστον 1.

    Άρα ότι σου πέρασε ο χρήστης (αν σου πέρασε κάτι) ξεκινάει από το argv[1]

  3. #3
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από migf1 Εμφάνιση μηνυμάτων
    Αυτό που ονομάζει "επιχειρήματα" εννοεί command-line arguments...

    Κώδικας:
    int main( int argc, char *argv[] )
    {
        ...
    }
    To argc σου λέει πόσες παραμέτρους πέρασε ο χρήστης στη γραμμή εντολών όταν κάλεσε το πρόγραμμά σου, και στον πίνακα *argv[] είναι αποθηκευμένες οι παράμετροι σε μορφή c-strings. Το argv[0] είναι πάντα το όνομα του προγράμματός σου, άρα το argc είναι πάντα τουλάχιστον 1.

    Άρα ότι σου πέρασε ο χρήστης (αν σου πέρασε κάτι) ξεκινάει από το argv[1]
    To άλλαξα αλλά το πρόβλημα τώρα είναι όταν το τρέχω στο τερματικό δεν με αφήνει να εισάγω αριθμό δηλαδή μου γράφει Convert inches: 0.00 και δεν προλαβαίνω να γράψω τίποτα.

    Κώδικας:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main( int argc, char *argv[] )
    {
    
    float in_cm;
    char in_inches[4];
    
    printf("Convert inches: ");
    
    
    in_cm = atoi(in_inches)*2.54;
    
    printf("%.2f cm\n", in_cm);
    return(0);
    
    }
    Τελευταία επεξεργασία από το μέλος kostkalaitz : 09-04-12 στις 22:05.

  4. #4
    Εγγραφή
    03-12-2005
    Περιοχή
    Ηράκλειο
    Ηλικία
    33
    Μηνύματα
    8.296
    Downloads
    7
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    110000/10999
    ISP
    Wind
    Router
    Zyxel VMG8623-T50B
    SNR / Attn
    23(dB) / 3.8(dB)
    Path Level
    Interleaved
    Κώδικας:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main( int argc, char *argv[] )
    {
            float in_cm;
    
            if (argc < 2){
                    puts("No argument given!");
                    return EXIT_FAILURE;
            }
    
            printf("Convert inches: ");
    
            in_cm = atoi(argv[1])*2.54;
    
            printf("%.2f cm\n", in_cm);
            return(0);
    }
    edit:
    Την παράμετρο τη δίνεις πρίν αρχίσει να τρέχει το πρόγραμμα!
    Δεν την παίρνει όταν τρέχει!

    Δηλαδή, πχ. ./a.out 15

  5. #5
    Εγγραφή
    01-06-2008
    Ηλικία
    52
    Μηνύματα
    1.404
    Downloads
    2
    Uploads
    0
    Ταχύτητα
    8192/512
    ISP
    Forthnet
    DSLAM
    Forthnet - Ν. ΣΜΥΡΝΗ
    SNR / Attn
    8(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από migf1 Εμφάνιση μηνυμάτων
    Αυτό που ονομάζει "επιχειρήματα" εννοεί command-line arguments...
    Καλά, φοβερό δεν είναι;

    Γι' αυτό είμαι και κατά των ελληνικών βιβλίων στον προγραμματισμό. Μεταφρασμένων ή μη.


  6. #6
    Εγγραφή
    17-02-2008
    Περιοχή
    Αθήνα
    Μηνύματα
    1.599
    Downloads
    10
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    10.997 / 109.996
    ISP
    Forthnet
    Router
    TPLink C7 - TG788vn v2
    SNR / Attn
    20,3(dB) / 3(dB)
    Path Level
    Interleaved
    Θέλεις να μάθεις C; Δεν είναι δύσκολη η άσκηση. Διάβασε λίγο. Αν θέλεις καθοδήγηση, ευχαρίστως. Ποιό ide χρησιμοποιείς; Ασε το ubuntu. Ξεκίνα με visual studio express και αφού γράψεις σωστά το πρόγραμμα κάνε compile στο ubuntu.
    Τσάμπα παιδεύεσαι.

  7. #7
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από MichaelSE Εμφάνιση μηνυμάτων


    Καλά, φοβερό δεν είναι;

    Γι' αυτό είμαι και κατά των ελληνικών βιβλίων στον προγραμματισμό. Μεταφρασμένων ή μη.

    MichaelSE η άσκηση κανονικά στα αγγλικά είναι εγώ έκανα την μετάφραση στο google για αυτό είναι έτσι

  8. #8
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από stel67 Εμφάνιση μηνυμάτων
    Θέλεις να μάθεις C; Δεν είναι δύσκολη η άσκηση. Διάβασε λίγο. Αν θέλεις καθοδήγηση, ευχαρίστως. Ποιό ide χρησιμοποιείς; Ασε το ubuntu. Ξεκίνα με visual studio express και αφού γράψεις σωστά το πρόγραμμα κάνε compile στο ubuntu.
    Τσάμπα παιδεύεσαι.
    Το κάνω στα ubuntu γιατί εκεί πρέπει να γίνει η άσκηση και εκεί έχουμε μάθει αλλά τώρα που το είπες θα το δοκιμάσω και σε visual studio express thanks

  9. #9
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από ownagE_ Εμφάνιση μηνυμάτων
    Κώδικας:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main( int argc, char *argv[] )
    {
            float in_cm;
    
            if (argc < 2){
                    puts("No argument given!");
                    return EXIT_FAILURE;
            }
    
            printf("Convert inches: ");
    
            in_cm = atoi(argv[1])*2.54;
    
            printf("%.2f cm\n", in_cm);
            return(0);
    }
    edit:
    Την παράμετρο τη δίνεις πρίν αρχίσει να τρέχει το πρόγραμμα!
    Δεν την παίρνει όταν τρέχει!

    Δηλαδή, πχ. ./a.out 15

    Φίλε έχεις δίκιο τώρα όμως δεν ξέρω πως να γράφει ο χρήστης πχ. ./a.out inch2cm 15 δηλαδή να το παίρνει μόνο έτσι όχι μόνο τον αριθμό "15" αυτό είναι τώρα το πρόβλημα μου.

  10. #10
    Εγγραφή
    01-06-2008
    Ηλικία
    52
    Μηνύματα
    1.404
    Downloads
    2
    Uploads
    0
    Ταχύτητα
    8192/512
    ISP
    Forthnet
    DSLAM
    Forthnet - Ν. ΣΜΥΡΝΗ
    SNR / Attn
    8(dB) / 30(dB)
    Παράθεση Αρχικό μήνυμα από kostkalaitz Εμφάνιση μηνυμάτων
    MichaelSE η άσκηση κανονικά στα αγγλικά είναι εγώ έκανα την μετάφραση στο google για αυτό είναι έτσι
    Συγγνώμη τότε. Νόμιζα ότι έτσι σου έδωσαν την εκφώνιση. Πάντως δεν είναι και πολύ μακριά η αυτόματη μετάφραση του google από αυτήν που γίνεται στα ελληνικά βιβλία προγραμματισμού. Έχω δει τερατουργήματα που αποπροσανατολίζουν τον αναγνώστη τελείως...

  11. #11
    Εγγραφή
    20-11-2006
    Ηλικία
    56
    Μηνύματα
    797
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    14566/1006
    ISP
    HOL
    DSLAM
    HOL - ΑΘΗΝΑ
    Router
    Pirelli (λευκό)
    SNR / Attn
    9(dB) / 15(dB)
    Path Level
    Interleaved
    Παράθεση Αρχικό μήνυμα από kostkalaitz Εμφάνιση μηνυμάτων
    Το κάνω στα ubuntu γιατί εκεί πρέπει να γίνει η άσκηση και εκεί έχουμε μάθει αλλά τώρα που το είπες θα το δοκιμάσω και σε visual studio express thanks
    Για C δεν θα σου πρότεινα να βάλεις VS Express, για τον λόγο πως την C την έχει παρατημένη στην αναθεώρηση C89. Αντίθετα σου προτείνω (ανεπιφύλακτα) την Pelles C (http://www.smorgasbordet.com/pellesc/), το Code::Blocks (με mingw32 toolchain, υπάρχουν μαζεμένα σε ένα download: http://www.codeblocks.org/downloads/26#windows) ή ένα σύγχρονο fork του Dev-C++ (http://orwellengine.blogspot.com/)

  12. #12
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    ok migf1 thanks

  13. #13
    Εγγραφή
    20-11-2006
    Ηλικία
    56
    Μηνύματα
    797
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    14566/1006
    ISP
    HOL
    DSLAM
    HOL - ΑΘΗΝΑ
    Router
    Pirelli (λευκό)
    SNR / Attn
    9(dB) / 15(dB)
    Path Level
    Interleaved
    Παράθεση Αρχικό μήνυμα από kostkalaitz Εμφάνιση μηνυμάτων
    ok φίλε thanks
    Τίποτα

    Η άποψή μου είναι να μείνεις στο Ubuntu, διότι εκεί θα μάθεις να δουλεύεις το βασικό tool-chain του gcc, χωρίς να στο "μασκαρεύει" κάποιο IDE με αυτοματοποιήσεις που σε απομακρύνουν από το να μάθεις πως λειτουργούν ΟΛΟΙ οι compilers!

    EDIT:
    Μόλις το μάθεις, και συνάμα θα κάνεις και μεγαλύτερα projects, μπορείς να πας συνειδητά πλέον σε κάποιο IDE

  14. #14
    Εγγραφή
    11-09-2009
    Ηλικία
    34
    Μηνύματα
    424
    Downloads
    4
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από migf1 Εμφάνιση μηνυμάτων
    Τίποτα

    Η άποψή μου είναι να μείνεις στο Ubuntu, διότι εκεί θα μάθεις να δουλεύεις το βασικό tool-chain του gcc, χωρίς να στο "μασκαρεύει" κάποιο IDE με αυτοματοποιήσεις που σε απομακρύνουν από το να μάθεις πως λειτουργούν ΟΛΟΙ οι compilers!
    Βασικά μια που ανοίξαμε το θέμα μήπως ξέρεις κανένα καλό βιβλίο για να λύσω αυτή την άσκηση?

  15. #15
    Εγγραφή
    20-11-2006
    Ηλικία
    56
    Μηνύματα
    797
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    14566/1006
    ISP
    HOL
    DSLAM
    HOL - ΑΘΗΝΑ
    Router
    Pirelli (λευκό)
    SNR / Attn
    9(dB) / 15(dB)
    Path Level
    Interleaved
    Η άσκηση δεν έχει κάποια ιδιαίτερη δυσκολία, εκτός αν σας την "πέταξε" χωρίς να έχει καλύψει την σχετική ύλη (πράγμα χλωμό). Για εισαγωγή σε προγραμματισμό με C προσωπικά προτείνω πάντα το "C Programming, a Modern Approach, 2nd Edition" του King.

Σελ. 1 από 4 123 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Προγραμματισμός c - Ασκηση
    Από Nicke στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 23
    Τελευταίο Μήνυμα: 27-02-21, 00:36
  2. άσκηση Ηλεκτροτεχνίας
    Από dimpallas στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 21
    Τελευταίο Μήνυμα: 24-12-08, 00:00
  3. Άσκηση σε C
    Από killbilll στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 5
    Τελευταίο Μήνυμα: 13-12-07, 03:18
  4. Ασκηση!!!
    Από funkyjohny στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 7
    Τελευταίο Μήνυμα: 08-12-07, 17:41
  5. ασκηση C
    Από kasadi στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 12
    Τελευταίο Μήνυμα: 09-09-07, 11:48

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας