تقسیم و باقیمانده اعداد صحیح


در ماژول "عبارات حسابی" ما در مورد ویژگی های عملیات تقسیم در پاسکال صحبت کردیم.
به یاد داشته باشید که برای داده های عدد صحیح (نوع integer) می توانید از سه عملیات تقسیم استفاده کنید:
- تقسیم عادی، مقداری از نوع واقعی
برمی‌گرداند div - تقسیم عدد صحیح، زمانی که قسمت کسری را در نتیجه عملیات تقسیم حذف می کنیم
mod - محاسبه باقی مانده تقسیم

به یاد داشته باشید!
در پاسکال نتیجه تقسیم یک عدد صحیح بر یک عدد صحیح – این همیشه یک عدد واقعی است.

مثال: var a, b, d, e: عدد صحیح;   ج: واقعی a := 10; b := 3; ج := a/b; // پاسخ: s = 3.333333333333333E+000 d := a mod b; // پاسخ: d = 1 e := a div b; // پاسخ: e = 3 این عملیات در برنامه نویسی بسیار مهم هستند. آنها باید درک شوند و به درستی مورد استفاده قرار گیرند. و این نیاز به تمرین دارد!

 

هنگام کار با ارقام یک عدد، نیاز به اعمال عملیات محاسبه باقیمانده تقسیم قابل مشاهده است. 

بیایید کار زیر را تجزیه و تحلیل کنیم:
یک عدد سه رقمی داده می شود. تمام ارقام این عدد را نمایش دهید و یک عدد جدید با جابجایی واحدها و صدها بدست آورید

سخت ترین سوالی که برای مبتدیان مطرح می شود این است که چگونه ارقام آن را از یک عدد بگیرند و بدست آورند.
در واقع، اگر ریاضی را به خاطر داشته باشید، همه چیز به سادگی حل می شود. و ریاضیات به ما می گوید که هر عددی را می توان به مجموع عبارات رقمی تجزیه کرد.
به عنوان مثال: 365=3*100+6*10+5*1 . می بینیم که هر رقم ضریب رقم مربوط به عدد است. 
با استفاده از مثال تقسیم ستون ها بر عدد 10، نحوه وارد کردن هر رقم یک عدد را به یک متغیر جداگانه نشان خواهیم داد. 1، 10، 100 و غیره)
  

با تجزیه و تحلیل شکل، می بینید که  <پیش> e := n mod 10; // عملیات n mod 10 - آخرین رقم عدد n (یعنی واحدهای عدد) را محاسبه می کند 365 mod 10 = 5 d := n div 10 mod 10; // عملیات n div 10 - عدد را 10 برابر کاهش می دهد، یعنی آخرین رقم عدد را کنار می گذارد (365 div 10 = 36 // اکنون می‌توانیم تعداد ده‌ها را با اعمال عملیات آشنا در نتیجه محاسبه کنیم - باقیمانده را پس از تقسیم بر عدد 10 محاسبه کنید، 36 mod 10 = 6 s := n div 100; // برای بدست آوردن صدها کافی است دو رقم از سمت راست عدد را کنار بگذارید، یعنی دوبار بر 10 تقسیم کنید (n div 10 div10 یا همان n div 100< /strong>) 365 div 100 = 3
با داشتن ارقام ذخیره شده عدد، می توانیم با ضرب رقم مورد نظر در رقم مربوطه از آنها هر عددی بسازیم: 
برای مثال، خط زیر یک عدد جدید از عدد اصلی n دریافت می کند که صدها و یک ها مرتب شده اند:
1) تعداد قدیمی یکها (ذخیره شده در متغیر e)  ضرب در 100 
2) تعداد ده ها قدیمی (ذخیره شده در متغیر d)  در 10 
ضرب کنید 3) به سادگی می توانیم عدد قدیمی صدها را در 1 ضرب کنیم یا به سادگی مقدار ذخیره شده در متغیر s
را بگیریم. سپس فقط مقادیر 1، 2 و 3 را اضافه کنید و یک عدد جدید دریافت کنید:

n1 := e * 100 + d * 10 + s;

کل برنامه به شکل زیر خواهد بود: <پیش> var n, e, d, s: عدد صحیح; شروع خواندن (n); e := n mod 10; d := n div 10 mod 10; s := n div 100; writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s); پایان.