اطلاعیه

Collapse
No announcement yet.

برنامه ای ساده به زبان c

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برنامه ای ساده به زبان c

    سلام. کسی می تونه منو توی نوشتن برنامه ای که کد ده دهی یا دسیمال بگیره و دو دویی یا باینری در خروجی بده کمک کنه ؟ دسیمال ممکنه اعشاری هم باشه.
    ممنون :nerd:
    مولای من
    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

    #2
    پاسخ : برنامه ای ساده به زبان c

    سلام :
    امیدوارم مثال زیر به شما کمک بکنه :

    تبدیل اعداد ده دهی به اعداد باینری:
    اعداد باینری یا دودویی از دو رقم 0 و 1 تشکیل شده اند. برای تبدیل اعداد در مبنای 10 به مبنای دو ابتدا عدد را بر 2 تقسیمات متوالی می کنیم و باقیمانده ها را تا زمانی که خارج قسمت صفر شود در نظر می گیریم به عنوان مثال عدد 23 در مبنای ده برابر عدد 11101 در مبنای 2 است.

    23/2 = 11 باقیمانده 1
    11 / 2 = 5 باقیمانده 1
    5 / 2 = 2 باقیمانده 1
    2 / 2 = 1 باقیمانده 0
    1/2 = 0 باقیمانده 1
    -------------------------------
    2(11101)

    برای تبدیل قسمت اعشاری نیز با ضرب آن قسمت در 2 و برداشتن قسمت صحیح و ادامه دادن ضربها تا زمانی که قسمت کسری برابر صفر شود ، قسمت اعشاری در مبنای دودویی را بدست می آوریم. به عنوان مثال عدد 23.6875 برابر است با 2(11101.1011):

    0.6875 * 2 = 1.3750
    0.3750 * 2 = 0.7500
    0.7500 * 2 = 1.5000
    0.5000 * 2 = 1.0000
    ---------------------------
    2(0.1011)
    موفق باشید.
    http://www.ecapic.ir/image/ECA-091005091909.gif

    دیدگاه


      #3
      پاسخ : برنامه ای ساده به زبان c

      سلام دوست عزیز.
      ممنون .من در قسمت دیجیتال آن مشکلی ندارم .ولی به تازگی شروع به برنامه نویسی c کردم.و در توابع زبان c آن مشکل دارم .از شما ممنون میشم در قسمت برنامه نویسی آن کمکم کنید.
      سپاسگذار
      مولای من
      نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

      یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

      دیدگاه


        #4
        پاسخ : برنامه ای ساده به زبان c

        سلام :
        من یک تیکه از برنامه را نوشتم ولی اعداد را برعکس چاپ می کند مثلا عدد 23 که باینری آن به صورت10111 هست به صورت 11101 نشان می دهد ، سعی کردم این مشکل رو حل کنم ولی نشد ، ببخشید تا این حد می تونم به شما کمک کنم ، میشه برنامه را درست کرد ولی باید روش فکر کرد .

        #include <conio.h>
        #include <stdio.h>
        int main()
        {
        int x,y,z;
        printf("enter your number: "
        scanf("%d",&y);
        printf("Binary: "
        while (y != 0 )
        {
        x=y;
        y=x/2;
        z=x%2;
        printf("%d",z);
        }
        getch();
        return 0;
        }
        موفق باشید.
        http://www.ecapic.ir/image/ECA-091005091909.gif

        دیدگاه


          #5
          پاسخ : برنامه ای ساده به زبان c

          سلام.خیلی زیاد تشکر از لطفتون. :surprised:
          تا همینجا هم خیلی خیلی کمک کردید ولی اون قسمت آخرش هم که برعکس نشان میده خیلی مهمه . میدونم موقع امتحانات هست و اگر وقت ندارید زیاد روش وقت نگذارید.امیدوارم دوستای دیگه هم کمکی برسونن.
          باز هم ممنون خانم امینی:agree:
          مولای من
          نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

          یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

          دیدگاه


            #6
            پاسخ : برنامه ای ساده به زبان c

            سلام :

            در مورد قسمت آخر که برعکس چاپ می کند ، یک راهی هست ، من از آرایه استفاده کردم ولی نمی دونم چرا جواب نمی داد ، حالا خودتون هم امتحان کنید ، در قسمت z=x%2 ، محتویات حرف z را در آرایه بریزید ، که در آرایه به ترتیب در خانه یک آرایه ، دو آرایه و .... اعداد را قرار می دهد و برای چاپ آن می توانید یک حلقه for تعریف کنید که مثلا از خانه 5 آرایه تا یک آرایه برای شما اعداد را چاپ کند .
            موفق باشید.
            http://www.ecapic.ir/image/ECA-091005091909.gif

            دیدگاه


              #7
              پاسخ : برنامه ای ساده به زبان c

              سلام.
              خیلی ممنون . ببینم چکار می تونم بکنم.







              [hr]
              سلامت باشید.
              مولای من
              نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

              یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

              دیدگاه


                #8
                پاسخ : برنامه ای ساده به زبان c

                سلام.
                من یه برنامه نوشتم بر اساس ارزش دهی به بیت ها.یعنی فرض کردم عدد باینری من در خروجی ده رقم باشه.به این ترتیب ارزش اولین عدد دسیمال من دو به توان ده یعنی 1024 هست.پس میام اولین بار عدد رو بر 1024 تقسیم میکنم.خارج قسمت رو در یک متغیر می ریزم و باقیمانده تقسیم رو توی یک متغیر دیگه.حالا میام و خارج قسمتم رو بر ارزش دوم تقسیم می کنم.یعنی بر دو به توان 9 که میشه 512 و به همین ترتیب.حالا توی خروجی باینری رو دارم ولی نمیدونم چه مشکلی داره که باینری رو نشون مییده ولی ترتیب بیتها ترتیب درستی نیست.مثلا"120 رو که وارد می کنم باینریش میشه 1111000 ولی به من 0111100 رو نشون میده یا اگه 29 رو وارد کنم بجای 11101 عدد باینری 0001110 رو نشون میده یعنی یه رقم آخرو نشون نمیده که مثلا" باید یکی به چپ شیفت پیدا کنه . برنامه هم بصورت زیره .
                کسی میتونه مشکل اونو پیدا کنه .فقط خواهشا" سریعتر.وقت زیادی ندارم.
                سپاسگذار از دوستان :agree:

                #include <conio.h>
                #include <stdio.h>
                int main(){
                int a,b,c,d,e,f,g,h,i,j,x,y,z,m,n,o,p,q,r,s,t;
                clrscr();printf("Enter a Decimal Number:"
                scanf("%d",&z);
                a=z/1024;
                x=z%1024;
                b=x/512;
                y=x%512;
                c=y/256;
                m=y%256;
                d=m/128;
                n=m%128;
                e=n/64;
                o=n%64;
                f=o/32;
                p=o%32;
                g=p/16;
                q=p%16;
                h=q/8;
                r=q%8;
                i=r/4;
                s=r%4;
                j=s/2;
                t=s%2;printf("Bin: %d%d%d%d%d%d%d%d%d%d",b,c,d,e,f,g,h,i,j,t,a);
                getche();
                return 0;
                }
                مولای من
                نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                دیدگاه


                  #9
                  پاسخ : برنامه ای ساده به زبان c

                  سلام :

                  برنامه شما جواب آخر را درست چاپ می کند ، همچین مشکلی که شما گفتید نداشت !!

                  من برنامه شما را با Borland C++) 1 ) اجرا کردم.

                  من عدد 29 را که اجرا کردم و در خروجی به این صورت برای من چاپ کرد : 0000011101

                  من حتی برنامه شما را به سی شارپ تبدیل کردم و اجرا کردم که جواب درست را به من میداد.
                  موفق باشید.
                  http://www.ecapic.ir/image/ECA-091005091909.gif

                  دیدگاه


                    #10
                    پاسخ : برنامه ای ساده به زبان c

                    سلام
                    اگه اینطوریه که خیلی خوبه. ولی میگم من اونو توی turbo c++ نوشتم اینطوری جواب داد. به هر حال از همکاری و همیاری شما تا اینجا خیلی سپاسگذارم.
                    امیدوارم توی مسایل و مشکلات علمی دیگه بتونم جبران کنم.و باز هم بتونیم با هم همکاری کنیم.
                    مولای من
                    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                    دیدگاه

                    لطفا صبر کنید...
                    X