Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα!

Είμαι ολοκαίνουριος στην c και έχω αυτήν την εργασία. Θέλω ένα πρόγραμμα που να διαβάζει εναν αριθμό του δεκαδικού συστήματος (πχ. 9) και να δίνει ως αποτέλεσμα τον αντίστοιχο στο δυαδικό σύστημα. Ό,τι έχω σκεφτεί χρειάζεται επανάληψη την οποία δεν έχουμε μάθει ακόμα. Υπάρχει τρόπος να λυθεί χωρίς επανάληψη, πίνακα? Γενικά ψάχνω λύση με όσο το δυνατόν πιο απλές εντολές...

έχω γράψει αυτόν τον κώδικα, ο οποίος βέβαια δεν είναι ολοκληρωμένος. Με μια επανάληψη απο το b=a νομίζω θα λυνόταν αλλά μπουχουχου δεν ξέρω. Υπάρχει άλλος τρόπος?

>#include <stdio.h>

int main ()
{
   int a,b;
   
   printf("Dose enan arithmo\n"); 
   scanf("%d",&a); 
   getchar();
   
   printf ("O arithmos autos sto dyadiko susthma einai: ");
   getchar();
   
   b=a;
   b=b%2;
   a=a/2;
   
   if (b==1)
   {
           printf("1\b\b");
           getchar();
   }
   else
   {
       printf ("0\b\b");
       getchar();
   }
   b=a;
   
   return 0;
}

Ευχαριστώ εκ των προτέρων για την βοήθεια

ΥΓ. Δεν ζητάω να μου κάνετε την έργασία, ούτε θέλω να κλέψω τον χρόνο σας, απλά αν μπορουσατε να με καθοδηγήσετε.

Δημοσ.

Βασικά... είναι λάθος (εάν κατάλαβα καλά τι θες να κάνεις).

 

Εάν εγώ σου δώσω τον 9, τι δυαδικό σύστημα λέμε; :P

 

Οπότε ο αλγόριθμος πάει ως εξής:

 

Εισαγωγή χαρακτήρων

Έλεγχος εάν είναι 0 ή 1

Εάν ναι, μετατροπή σε δεκαδικό

Εάν όχι, κάνε κάτι :P

 

 

Για την μετατροπή, μπορείς είτε να υλοποιήσεις έναν bit array και απλά να τον χειριστείς ή μπορείς να κάνεις πράξεις μόνος σου (την μετατροπή δλδ).

Δημοσ.

όχι, βασικά θέλω να διαβάζει εναν αριθμό του δεκαδικού συστήματος (πχ. 9) και να δίνει ως αποτέλεσμα τον αντίστοιχο στο δυαδικό σύστημα

edit: το βάζω και στο πρώτο ποστ για να μην μπερδέψει κι άλλο κόσμο.

edit2: αα τώρα το είδα. Είχα βάλει στο printf "ο αριθμός στο δεκαδικό σύστημα είναι:" γι αυτό σε μπέρδεψα. Τώρα το άλλαξα. Το σωστό είναι "Ο αριθμός στο δυαδικό σύστημα είναι:"

Δημοσ.

αν ήσουν για C++

θα ήταν οκ το

>
#include <iostream>
#include <bitset>

using namespace std;
int main(void)
{
  cout<<bitset<8>(10);
}

 

πάντως αυτό βρίσκω μόνο να σου κάνει(χωρίς επανάληψη)

>
#include<stdio.h>

void printbin(int num)
{
  int binnum;

  binnum=num%2;
  num=num/2;
  
  if (num!=0) printbin(num);

  printf("%d",binnum);

  return;
}

int main(void)
{
  int posnumber,binnum;
  printf("Enter a positive number : ");
  scanf("%d",&posnumber);   
  printbin(posnumber);
  printf("\n");
  return 0;
}
//the code isn't mine
//http://www.nvnews.net/vbulletin/showpost.php?p=726823&postcount=2

Δημοσ.

Και η αναδρομή επανάληψη δεν λογίζεται;

 

 

...

πάντως αυτό βρίσκω μόνο να σου κάνει(χωρίς επανάληψη)

>
#include<stdio.h>

void printbin(int num)
{
  int binnum;

  binnum=num%2;
  num=num/2;
  
  if (num!=0) printbin(num);

  printf("%d",binnum);

  return;
}

int main(void)
{
  int posnumber,binnum;
  printf("Enter a positive number : ");
  scanf("%d",&posnumber);   
  printbin(posnumber);
  printf("\n");
  return 0;
}
//the code isn't mine
//http://www.nvnews.net/vbulletin/showpost.php?p=726823&postcount=2

Δημοσ.

Είναι σίγουρο πως μπορεί να γίνει χωρίς επαναλήψεις (loop); Δεν μου 'ρχεται κάποια λύση χωρίς loop.

Δεν γνωρίζω, ελπίζω πως ναι...

 

 

 

αν ήσουν για C++

θα ήταν οκ το

>
#include <iostream>
#include <bitset>

using namespace std;
int main(void)
{
  cout<<bitset<8>(10);
}

 

πάντως αυτό βρίσκω μόνο να σου κάνει(χωρίς επανάληψη)

>
#include<stdio.h>

void printbin(int num)
{
  int binnum;

  binnum=num%2;
  num=num/2;
  
  if (num!=0) printbin(num);

  printf("%d",binnum);

  return;
}

int main(void)
{
  int posnumber,binnum;
  printf("Enter a positive number : ");
  scanf("%d",&posnumber);   
  printbin(posnumber);
  printf("\n");
  return 0;
}
//the code isn't mine
//http://www.nvnews.net/vbulletin/showpost.php?p=726823&postcount=2

δεν έχω πολύ χρόνο τώρα αλλά το βράδυ που θα γυρίσω θα το μελετήσω και θα σου πω.

Με μια πρώτη ματιά πάντως μ'αρέσει!

 

 

Μηπως ο χρηστης δινει αριθμο απ το 0 ως το 9 ;

ναι μπορείς να το πεις και αυτό..

βέβαια αν όντως ζητάει μόνο από 0 εώς 9 η λύση είναι απλή.

όχι δεν είπε κάτι τέτοιο.

 

ευχαριστώ για τις απαντήσεις

Δημοσ.

Έκανα εναν υπαινιγμό στο post #5 αλλά δεν έπιασες το νόημα.

 

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

Ο κάθε επίδοξος, καλό είναι πριν ανοίξει νέο θέμα, να χρησιμοποιεί και την αναζήτηση του forum που και που...

 

 

Επίσης, αναρωτιέμαι πως γίνεται οι σχολές (ειδικά οι μεγάλες) να μην έχουν ένα forum της προκοπής όπου

οι φοιτητές θα συζητούν όλα αυτά και άλλα σχετικά θέματα πολύ κοντύτερα στο εκπαιδευτικό τους πλαίσιο

(παράδειγμα είναι το Forums.gr).

 

-

  • Like 1
Δημοσ.

Επίσης, αναρωτιέμαι πως γίνεται οι σχολές (ειδικά οι μεγάλες) να μην έχουν ένα forum της προκοπής όπου

οι φοιτητές θα συζητούν όλα αυτά και άλλα σχετικά θέματα πολύ κοντύτερα στο εκπαιδευτικό τους πλαίσιο

(παράδειγμα είναι το Forums.gr).

 

-

Εχουν, αλλα δεν επιτρεπουν να λυνεται "δημοσια" η ασκηση. (ελπιζω να σε καλυψα)

Δημοσ.

Έκανα εναν υπαινιγμό στο post #5 αλλά δεν έπιασες το νόημα.

 

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

Ο κάθε επίδοξος, καλό είναι πριν ανοίξει νέο θέμα, να χρησιμοποιεί και την αναζήτηση του forum που και που...

 

 

Επίσης, αναρωτιέμαι πως γίνεται οι σχολές (ειδικά οι μεγάλες) να μην έχουν ένα forum της προκοπής όπου

οι φοιτητές θα συζητούν όλα αυτά και άλλα σχετικά θέματα πολύ κοντύτερα στο εκπαιδευτικό τους πλαίσιο

(παράδειγμα είναι το Forums.gr).

 

-

νόμιζα εννούσες κλασσική άσκηση, νέοι περιορισμοί για την λύση της. Το μόνο που βρήκα σχετικό όταν έκανα την αναζήτηση είναι αυτό! το οποίο δεν βοήθησε καθόλου αφού μιλάει για την αντίθετη μετατροπή. Δεν ξέρω αν υπάρχει ίδιο θέμα με αυτό που έχω ανοίξει,που δεν μου το έβγαλε στην αναζήτηση, άλλα αν υπάρχει δώσε μου το λινκ να το διαβάσω. Και τέλος θα μπορούσες να το πεις πιο ευγενικά και ξεκάθαρα και όχι με υπαινιγμούς. Όπως και να'χει έκανα αναζήτηση πριν ανοίξω το θέμα

Δημοσ.

Η ουσία είναι πως δεν γίνεται χωρίς επανάληψη (ή τουλάχιστον δεν έχω συναντήσει εγώ ποτέ αλγόριθμο χωρίς επανάληψη).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...