Кіріспе
Есептеуден кейін қалған сома. Математикада, қалдық – есептеу жасағаннан кейін "қалған" шама. Арифметикада, қалдық – бір бүтін санды екіншісіне бөлгенде толық бөлінетін бөлігінен кейін "қалған" бүтін сан. Көпшелер алгебрасында, қалдық – бір көпшеді екіншісіне бөлгеннен кейін "қалған" көпше. Модульдік амал – бөлшекті және бөлгішті бергенде осындай қалдықты шығаратын амал. Сондай-ақ, бір санды екіншісінен шегергеннен кейін "қалған" сан, бірақ бұл дәлірек айырма деп аталады. Мұндай қолданыс кейбір бастауыш оқулықтарда кездеседі; күнделікті тілде ол "қалғаны" деген сөзбен ауыстырылады, мысалы: "Маған екі доллар қайтарып беріңіз, қалғанын өзіңізде қалдырыңыз". Дегенмен, "қалдық" термині осы мағынада қолданылады, егер функция тізбектік кеңею арқылы жуықталған болса, онда қателік мөлшері ("қалғаны") қалдық мүшесі деп аталады.
In mathematics, the remainder is the amount "left over" after performing some computation. In arithmetic, the remainder is the integer "left over" after dividing one integer by another to produce an integer quotient (integer division). In algebra of polynomials, the remainder is the polynomial "left over" after dividing one polynomial by another. The modulo operation is the operation that produces such a remainder when given a dividend and divisor. Alternatively, a remainder is also what is left after subtracting one number from another, although this is more precisely called the difference. This usage can be found in some elementary textbooks; colloquially it is replaced by the expression "the rest" as in "Give me two dollars back and keep the rest." However, the term "remainder" is still used in this sense when a function is approximated by a series expansion, where the error expression ("the rest") is referred to as the remainder term.
Жылжымалы нүктелі сандар үшін
a және d – нақты сандар болса, және d нөлге тең болмаса, a санын d-ге қалдықсыз бөлуге болады, онда бөлінді де нақты сан болады. Егер бөлінді бүтін санмен шектелсе, онда қалдық түсінігі қажет болады. a = qd + r, мұндағы 0 ≤ r < |d| болатын, бірегей бүтін сан q және бірегей нақты қалдық r бар екені дәлелденеді. Жоғарыда сипатталғандай, нақты сандар үшін қалдық анықтамасын кеңейту математикада теориялық маңызға ие емес; алайда, көптеген бағдарламалау тілдері осы анықтаманы қолданады (модульдік операцияны қараңыз).
Бағдарламалау тілдерінде
Анықтамаларда ешқандай қиындықтар болмаса да, теріс сандарды қалдық есептеуге қолданғанда іске асыру мәселелері туындайды. Әртүрлі бағдарламалау тілдері әртүрлі келісімдерді қабылдады. Мысалы: Pascal mod операциясының нәтижесін оң деп таңдайды, бірақ d теріс немесе нөл болуына рұқсат етпейді (сондықтан 1 = a = (a div d) × d + a mod d әрқашан дұрыс болмайды). C99 дивиденд a-ның таңбасымен бірдей таңбаға ие қалдықты таңдайды. (C99-дан бұрын C тілі басқа таңдауларға да мүмкіндік берді.) Perl, Python (тек қазіргі нұсқалары) бөлгіш d сияқты таңбаға ие қалдықты таңдайды. Scheme қалдық және модуль есімді екі функцияны ұсынады – Ada және PL/I mod және rem, ал Fortran mod және modulo-ны ұсынады; әр жағдайда, біріншісі дивиденд таңбасымен, екіншісі бөлгіш таңбасымен сәйкес келеді. Common Lisp және Haskell-те де mod және rem бар, бірақ mod бөлгіштің таңбасын пайдаланады, ал rem дивидендтің таңбасын пайдаланады.
Pascal chooses the result of the mod operation positive, but does not allow d to be negative or zero (so, 1=a = (a div d ) × d + a mod d is not always valid). C99 chooses the remainder with the same sign as the dividend a. (Before C99, the C language allowed other choices.) Perl, Python (only modern versions) choose the remainder with the same sign as the divisor d.
Scheme offer two functions, remainder and modulo – Ada and PL/I have mod and rem, while Fortran has mod and modulo; in each case, the former agrees in sign with the dividend, and the latter with the divisor. Common Lisp and Haskell also have mod and rem, but mod uses the sign of the divisor and rem uses the sign of the dividend.