دانشنامه ریاضی و کامپیوتر

سایت جامع در باب کتب و جزوات رشته های ریاضی و کامپیوتر با دانلود مستقیم.

ورود
عضویت




    • مطلبی یافت نشد.
    • مطلبی یافت نشد.
    • مطلبی یافت نشد.



فروشگاه سی شارپ
فروشگاه کدهای php
فروشگاه asp.net

جمع اعداد صحیح غیر قابل ذخیره در محدوده اعداد صحیح
جمع اعداد صحیح غیر قابل ذخیره در محدوده اعداد صحیح

برنامه ای بونیسد که اعداد صحیح غیر قابل ذخیره در محدوده اعداد صحیح را با هم جمع کرده و حاصل را نمایش دهد.
نوع های عددی موجود در زبان های برنامه نویسی دارای ظرفیت های خاصی هستند و بازه های خاصی از اعداد را در خود می گیرند مثلا اعداد صحیح در بازه ی حدودا ۳۲۰۰ تا -۳۲۰۰ است اگر مقدار بیشتر از این مقدار ها مثالا ۷۸۸۱۸۲۵ در آن ها قرار بدهیم overflow میکنند یا لبریز می شوند و مقداری اشتباه در آن ها قرار می گیرد.
ما در این جا راه حلی ساده برای جمع اعداد حداکثر 100 رقمی و مثبت آورده ایم، درست است این روش بهترین روش نیست ولی تقریبا راه حل های دیگر از این روش درست می شوند و باید آن را یاد گرفت.
نحوه کار به این شکل است که که یک کاراکتر از یک آرایه می خواند و یک کاراکتر دیگر هم از آرایه دیگر می خوانیم و کد اسکی کاراکتر ها را منهای ۴۸ می کنیم (منهای ۴۸ می کنیم زیرا کد اسکی کاراکتر ۰ عدد ۴۸ وکد اسکی کاراکتر ۱ عدد ۴۹ است و… )و باهم جمع می کنیم اگر عدد کوچک تر از ۱۰ بود در آرایه جواب قرار می دهیم ولی اگر بزرگ تر یا مساوی ۱۰ بود باقی مانده صحیح آن را بر ۱۰ حساب می کنیم و در آرایه جواب قرار می دهیم و یک واحد به کاراکتر های بعدی هنگام جمع اضافه می کنیم.



#include <iostream.h>
#include <conio.h>
int main()
{
	int x1[99]={0}, x2[99]={0}, out[99]={0},i=-1,i2=-1,count;
	char temp[99];
	cout<<"avalin add ra vard nemaid:"<<endl;
   do{
   	i++;
      temp[i]=getche();
    }
    while(temp[i]!=13);
    i--;
    int ii=i;
    for(int c=0;c<=i;c++){
		x1[c]=temp[ii]-48;
      ii--;
    }
    ii=i;
    cout<<"\n\nadade aval barabare: ";
    for(;ii>=0;ii--)
    	cout<<x1[ii];
    cout<<endl;
    cout<<"\ndovomin adad ra vared konid:"<<endl;
    do{
    	i2++;
      temp[i2]=getche();
    }
    while(temp[i2]!=13);
    i2--;
    ii=i2;
    for(int c=0;c<=i2;c++){
        x2[c]=temp[ii]-48;
        ii--;
    }
    cout<<"\n\ndovomin adad barabare: ";
    ii=i2;
    for(;ii>=0;ii--)
        cout<<x2[ii];

    count=(i>i2)?i:i2;
    int ex=0, temp2, temp3;
    for(ii=0;ii<=count;ii++){
    	temp2=(x1[ii]+x2[ii]);
      temp2+=ex;
      if(temp2<10)
      	out[ii]=temp2;
      else{
      	temp3=(temp2/10);
         ex=temp3;
         temp3*=10;
         out[ii]=(temp2-temp3);
      }
    }
    cout<<"\n\njavab:"<<endl;

    for(;count>=0;count--)
        cout<<out[count];
  getch();
  return 0;
}



رمز فایل : www.mathpc.ir

فایل مورد نظر

کسانی که عضو نیستند، نمی توانند اینجا را مشاهده کنند.

منبع: www.mathpc.ir

sargol

تاریخ عضویت: 1391/12/25 | 24/04/1394 - 19:33 | گروه کاربری: عضو سایت

آمپر چسبوندم اینو دیدم..... ینی این برنامه بودو من غافل تو آسمونا میگشتم.... هی وای من!


************
جستجو !!!!
پرس و جو!!!

ارسال نظر

سوال: مجموع دو عدد ده و هشت برابر با
پررنگ کج خط دار خط دار در وسط | سمت چپ وسط سمت راست | قرار دادن شکلک قراردادن لینکقرار دادن لینک حفاظت شده انتخاب رنگ | پنهان کردن متن قراردادن نقل قول تبدیل نوشته ها به زبان روسی قراردادن Spoiler

پروژه دانلود مقاله