הפונקציה מחזירה את השארית השלמה המתקבלת מחלוקת מספר טבעי אחד במספר טבעי שני
תחביר:
int1 mod int2
19 mod 7 = 5
בגלריית התמונות השתמשנו בפונקציה כדי לבדוק מתי מתחילה שורה ומתי מסתיימת שורה.
בכל שורה יש 3 תמונות, כל תמונה שמספרה מתחלק ב-3 תהיה האחרונה בשורה: 3,6,9,12,15... וכו
לכן שאלנו
if i mod PicsInRow = 0 Then Response.Write "
"
באותו אופן בדקנו מתי יש צורך לפתוח שורה חדשה בטבלה
if i mod PicsInRow = 1 Then Response.Write "
"
התמונות 1,4,7,10,13,16... פותחות שורה חדשה בטבלה: מספרן מתחלק במספר התמונות בשורה עם שארית 1
Div
הפונקציה מחזירה את מספר הפעמים שמספר טבעי אחד מתחלק במספר טבעי שני ללא שארית
תחביר:
int1/int2
22 div 5 = 4
ניתן להשתמש בפונקצית mod כדי לקבל את הפונקציה div:
div = (int1 - (int1 mod int2)) / int2
19 div 7 = (19 - (19 mod 7)) / 7 = (19 - 5) / 7 = 14/7 = 2
:ניתן גם ליצור את שתי הפונקציות בדרך רקורסיבית בעזרת פעולת חיסור
div פונקצית
<%
Function div_fnc(n, divider)
If n < divider Then
div_fnc = 0
Exit Function
Else
div_fnc = 1 + div_fnc(n - divider, divider)
End If
End Function
%>
הפונקציה מקבלת מחולק ומחלק ומחזירה את מספר הפעמים השלמות שהמחלק נמצא במחולק דוגמא:
div_fnc(22, 5)
if 22 < 5 Then... לא
else
div_fnc = 1 + div_fnc(17, 5)
אם המחולק אינו קטן מהמחלק אנו מוסיפים 1 למספר הפעמים ומפעילים את הפונקציה על המחולק פחות המחלק
div_fnc(17 ,5)
if 17 < 5 לא
else
div_fnc = 1 + div_fnc(12, 5)
:שוב נפעיל את הפונקציה
div(12, 5)
if 12 < 5 לא
else
div_fnc = 1 + div_fnc(7, 5)
:ושוב נפעיל את הפונקציה
div_fnc(7, 5)
if 7 < 5 לא
else
div_fnc = 1 + div_fnc(2, 5)
:ושוב נפעיל את הפונקציה
div_fnc(2, 5)
if 2 < 5 Then כן
div_fnc = 0
Exit Function.
המספר 2 אינו מכיל בתוכו את 5 ולכן קיבלנו את הערך 0
כעת נעלה במעלה הפירמידה כדי לחשב מהו div_fnc(22, 5):
div_fnc(7 ,5) = 1 + div_fnc(2, 5) = 1 + 0 = 1
div_fnc(12, 5) = 1 + div_fnc(7, 5) = 1 + 1 = 2
div_fnc(17, 5) = 1 + div_fnc(12, 5) = 1 + 2 = 3
div_fnc(22, 5) = 1 + div_fnc(17, 5) = 1 + 3 = 4
המספר 22 מתחלק ב-5 4 פעמים ללא שארית
:באופן דומה ניתן ליצור את פונקצית mod בדרך רקורסיבית
<%
Function mod_fnc(n, divider)
If n < divider Then
mod_fnc = n
Exit Function
Else
mod_fnc = mod_fnc(n - divider, divider)
End If
End Function
%>
mod_fnc(13, 5)
if 13 < 5 לא
else
mod_fnc = mod_fnc(8, 5)
mod_fnc(8, 5)
if 8 < 5 לא
else
mod_fnc = mod_fnc(3, 5)
mod_fnc(3, 5)
if 3 < 5 כן
mod_fnc = 3
Exit function
המחולק קטן מהמחלק ולכן השארית היא המחלק
mod_fnc(13, 5) = mod_fnc(8, 5) = mod_fnc(3, 5) = 3
המספר 13 מתחלק ב-5 עם שארית 3
25 div 6 = div_fnc(25, 6) = 4
25 mod 6 = mod_fnc(25, 6) = 1