Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C

Δημοσίευσηαπό panosarkan » 27 Νοέμ 2014, 19:06

Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!
panosarkan
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 27 Νοέμ 2014, 18:56
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό konnn » 27 Νοέμ 2014, 22:22

panosarkan έγραψε:Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!


Θα πρέπει να μας πεις που προβληματίζεσαι κατά την υλοποίηση .
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3566
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό panosarkan » 28 Νοέμ 2014, 01:58

konnn έγραψε:
panosarkan έγραψε:Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!


Θα πρέπει να μας πεις που προβληματίζεσαι κατά την υλοποίηση .
konnn έγραψε:
panosarkan έγραψε:Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!


Θα πρέπει να μας πεις που προβληματίζεσαι κατά την υλοποίηση .
Στη πρώτη είναι αναγκαίο να δώσω κάποιο n με τη scanf η δε χρειάζεται να δηλώσω καθόλου το n.Για το δεύτερο πρόβλημα δεν γνωρίζω πως μπορώ να μετατρέψω έναν ακέραιο σε δυαδικό(ίσως υπάρχει κάποια εντολή?) και επίσης ο δυαδικός θα πρέπει να είναι γραμμένος σε συμπλήρωμα ως προς 2?.... Ευχαριστώ πολύ
panosarkan
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 27 Νοέμ 2014, 18:56
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό konnn » 28 Νοέμ 2014, 18:01

panosarkan έγραψε:
konnn έγραψε:
panosarkan έγραψε:Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!


Θα πρέπει να μας πεις που προβληματίζεσαι κατά την υλοποίηση .
konnn έγραψε:
panosarkan έγραψε:Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!


Θα πρέπει να μας πεις που προβληματίζεσαι κατά την υλοποίηση .
Στη πρώτη είναι αναγκαίο να δώσω κάποιο n με τη scanf η δε χρειάζεται να δηλώσω καθόλου το n.Για το δεύτερο πρόβλημα δεν γνωρίζω πως μπορώ να μετατρέψω έναν ακέραιο σε δυαδικό(ίσως υπάρχει κάποια εντολή?) και επίσης ο δυαδικός θα πρέπει να είναι γραμμένος σε συμπλήρωμα ως προς 2?.... Ευχαριστώ πολύ


Για το πρώτο πρέπει να διευκρινήσεις από που θα διαβάζεις την ακολουθία, από τερματικό ή αρχείο;Για scanf δε νομίζω.

Για το δευτερο θα μετατρέψεις το στοιχείο σε bit με συνεχόμενη διαίρεση με το 2.Tο υπόλοιπο είναι το κάθε μπιτ. Google is your friend.

Είναι σχετικά βασικά όλα τα παραπάνω.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3566
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 28 Νοέμ 2014, 22:22

panosarkan έγραψε:Καλησπέρα παιδιά χρειάζομαι τη βοήθειά σας σε 2 προβληματάκια στη c.
1) Να γραφεί πρόγραμμα που θα διαβάζει μια ακολουθία n αριθμών και θα εμφανίζει τον αριθμό που εμφανίστηκε στην ακολουθία τις περισσότερες συνεχόμενες φορές.
2) Να γραφεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο και να εμφανίζει τον αριθμό των bits με τιμή 1.Για παράδειγμα αν ο χρήστης πληκτρολογήσει τον αριθμό 30(00000000000000000000000000011110 στο δυαδικο) να εμφανιζει 4.
Η υλοποίηση θα πρέπει να γίνει χωρίς τη χρήση πίνακα.
Ευχαριστώ πολύ εκ των προτέρων!


Για το 2) ουτως ή αλλως δεν χρειάζεται πίνακας. Μπορεις να το κάνεις πολυ εύκολα με μια μεταβλητή τύπου int. Η μεταβλητή δηλαδη θα κρατάει τον αριθμο των bits του αριθμου που έδωσες τα οποία ειναι '1'. Χρησιμοποίησε μια συνάρτηση η οποια θα επιστρέφει αυτη την μεταβλητή στην main και θα εκτυπώνεις απο εκει την τιμή της.

Έχεις διαβάσει καθολου για bitwise operators? και ολισθήσεις? με ολίσθηση γινεται αυτο στον αριθμο που θές και με πράξεις &.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2783
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 29 Νοέμ 2014, 12:45

Spoiler: show
Κώδικας: Επιλογή όλων

#include<stdio.h>
int count_ones(unsigned char ch)
{
       unsigned int c;
       for( c = 0; ch; ch >>=1)
           c+= ch & 1; // 1 -> 0000001
      return c;
}
int main(void)
{
      unsigned char ch;
      printf("Enter a character: ");
      scanf(" %c", &ch);
      printf("Number of set bits (1) in %c is : " , ch , count_ones(ch));

      return 0;
}

Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2783
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό konnn » 29 Νοέμ 2014, 17:51

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

1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3566
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό George Roupos » 20 Μαρ 2015, 18:25

Μπορείς ρε φίλε αυτό το πρόγραμμα (που σε δείχνει πόσο χρονών είσαι) να το κάνεις με συναρτήσεις , για να "διευκολύνεις" το πρόγραμμά σου να "τρέχει" πιο γρήγορα .
George Roupos
babeTUX
babeTUX
 
Δημοσιεύσεις: 3
Εγγραφή: 09 Μαρ 2015, 02:30
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό George Roupos » 20 Μαρ 2015, 18:50

Επειδιή το έτρεξα ρε φίλε το πρόγραμμά σου , με τους ελληνικούς χαρακτήρες δεν μου το εμφανίζει (μπορεί να το έκανα σε code::blocks) , σε λείπει μια εντολή για να σου εμφανίζει (οι ελληνικοί χαρακτήρες) η οποία είναι setlocale(LC_ALL,"ell");
Έχω C++ στα Windows ...
George Roupos
babeTUX
babeTUX
 
Δημοσιεύσεις: 3
Εγγραφή: 09 Μαρ 2015, 02:30
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό kostanikolakopoulos » 03 Ιούλ 2015, 20:35

για windows για να βγουν ελληνικα χρειαζεται και η εντολη system ("chcp 1253");
kostanikolakopoulos
babeTUX
babeTUX
 
Δημοσιεύσεις: 1
Εγγραφή: 03 Ιούλ 2015, 20:19
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι