לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 28-11-2007, 07:25
  yuvalas yuvalas אינו מחובר  
 
חבר מתאריך: 12.04.07
הודעות: 189
אני לומד JS ואני צריך קוד מוכן של נוסחה מתמטית כלשהיא...

שלום!

מה שאני רוצה זה שיהיה INPUT. עכשיו אחד שם זה ת"ז ואני רוצה לאמת את תקינותה בעזרת נוסחה מתמטית.

אז אני רוצה שחיבים לעשות לפחות 9 ספרות ומקסימום 9 ספרות. אם זה לא תקני, אז הוא יראה ALERT: "ת"ז אינה תקנית. מספר ת"ז תקני הוא מספר המכיל 9 ספרות."

אם זה בדיוק 9 ספרות אז הוא ימשיך לבדוק את החוקיות הלאה:
נגיד זה ככה: 123456789 (המספר) אז הוא יקח את הספרות (חוץ מספרת הביקורת, שהיא אחרונה) ואז הוא יריץ ככה (במידה וספרת ביקורת היא ראשונה):
23456789 ואז הוא יעשה כפל לכל אחד בנפרד, 1*1 2*2 3*1 4*2 5*1 6*2 7*1 8*2 והוא יכניס לתוך variable את התוצאות...
עכשיו הוא יעשה לכל אחד חיבור-קטן, הכוונה היא שאם אחד התוצאות היה 12 אז עושים 1+2 שזה יוצא בחיבור קטן 3.. לדוגמא 16 עושים 1+6 שזה 7... והמבין יבין...
מכניסים שוב את הנתונים לתוך variable חדש...
מחברים באופן רגיל את כל התוצאות של החיבור-קטן, ואז את התוצאה מכניסים לתוך variable.
אחרי זה מעגלים לעשרת הבאה, הכוונה היא שאם התוצאה של החיבור היא 27 אז מעגלים ל30, ואם יש נגיד התוצאה היא 21 אז עדיין מעגלים ל30. עכשיו הסיפרת ביקורת היא ההפרש בין התוצאה לבין העיגול זאת אומרת: 30-21 אומר שההפרש הוא 9 ולכן סיפרת הביקורת היא 9.
עכשיו הסיפרת ביקורת שהמשתמש כתב בהתחלה, שהתעלמנו ממנה, צריך לבדוק אם היא זהה לתוצאה של הנוסחא שלנו...

כמובן אם תהיה שגיאה אז יופיע ALERT עם סוג השגיאה, אם לא זה ישלח את הטופס...

תראו, זה מסובך אבל שימושי לכל אחד שצריך לבדוק עם הת"ז של הגולש חוקית (במידה ויש קניות או הרשמה למגזינים כלשהם או משהו...

תודה רבה רבה רבה רבה מראש (כי זה ממש מסובך...)

נ.ב. אם אפשר את הקוד במלואו כי אני לא יודע JS..
_____________________________________
יובל
בעלים, מנהל, ומתכנת בפועל של חברה לבניית אתרים.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 28-11-2007, 10:05
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 1 שנכתבה על ידי yuvalas שמתחילה ב "אני לומד JS ואני צריך קוד מוכן של נוסחה מתמטית כלשהיא..."

קוד:
<script type="text/javascript"> function two_dig_sum(number) { return Math.floor(number/10)+(number%10); } function valid_id(id) { var sId = new String(document.getElementById(id).value); // Parse into string if (sId.length < 9) { // Make sure the number is 9 digits long! No need for higher border since field is limited. alert('Id number MUST be 9 digits long!'); return false; } // If true return, no need for else... var sum = 0; for (var i = 0; i < 9; ++i) { // Calculate the short-multiplications, normalize into 1 digit number, sum them. sum += two_dig_sum(sId[i]*(2-(i+1)%2)); // i+1 since i starts at 0 for index 1 } if ((sum%10) != 0) { alert('Illegal ID number!'); return false; } return true; } </script> <form onSubmit="return valid_id('myId')"> <input type="text" id="myId" name="myId" maxlength="9" /><br /> <input type="submit" value="Check me!" /> </form>



בבקשה, בדוק ב-Internet Explorer 6, Mozilla FireFox 2 ועל קלט של מספרים אקראיים ותעודות הזהות שלי של אחותי ושל אחד החברים שלי.

עושה רושם שזה תקין.
האלגוריתם קצת שונה משלך כי לא הבנתי כלום מההסבר שלך אז הרצתי חיפוש ברשת
http://www.asp.org.il/article/%D7%9...%94%D7%95%D7%AA

יום נעים
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.


נערך לאחרונה ע"י Dark Knight בתאריך 28-11-2007 בשעה 10:25. סיבה: נפתרתי מהמערך המיותר factors
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 28-11-2007, 12:43
  yuvalas yuvalas אינו מחובר  
 
חבר מתאריך: 12.04.07
הודעות: 189
בתגובה להודעה מספר 2 שנכתבה על ידי Dark Knight שמתחילה ב "[CODE] <script..."

לא לא... נסה לכתוב 123456789 זה יהיה "תקין".. או כל דבר אחר של 9 ספרות...
הנוסחה מהאתר הזה לא תקינה... אני יסביר לך איך עושים את זה...
מההתחלה:
נגיד זה הת"ז:
123456789
אתה צריך לעשות ככה:
12345678 (בלי ה9) ולהכפיל משמאל לימין כל ספרה בנפרד, לפי הסדר, כך: 12121212
זאת אומרת שככה:
קוד:
1 2 3 4 5 6 7 8 * 1 2 1 2 1 2 1 2 = 1 4 1 8 5 12 7 16

לפי הסדר, 1*1 וכו'...
בלי להכפיל את הספרה האחרונה.
עכשיו אתה עושה חיבור קטן לכל תוצאה בנפרד.
ז"א ככה:
מספרים שהם דו ספרתיים אתה עושה פעולה כזו, נגיד המספר 16, אז אתה עושה 1+6 וזה 7 בחיבור קטן.
לדוגמא: 12, אז אתה עושה 1+2 וזה 3 בחיבור קטן.. הבנת?
הנה התוצאות במקרה שלנו:
קוד:
2 4 1 8 5 12 7 16 -+- 2 4 1 8 5 3 7 7

הלאה:
את כל התוצאות אתה מחבר...:
קוד:
2+4+1+8+5+3+7+7=37


עכשיו, נגיד יצא לך 31 אתה מעגל ל40, תמיד ל"עשרת הבאה"...
ככה שאת ה37 מעגלים ל40 .
עכשיו מחשבים את ההפרש:
קוד:
40-37=3


3, זאת הספרת ביקורת של הת"ז ששמנו בהתחלה.
עכשיו אתה בודק האם הספרת ביקורת זהה לספרה האחרונה בת"ז ששמנו בהתחלה, זו שהתעלמנו ממנה..

אתה מבין?

ושוב תודה רבה רבה אני יודע שזה מסובך..

נ.ב. שמתי בתגית קוד על מנת שיהיה קריא וברור...
_____________________________________
יובל
בעלים, מנהל, ומתכנת בפועל של חברה לבניית אתרים.


נערך לאחרונה ע"י yuvalas בתאריך 28-11-2007 בשעה 12:52. סיבה: נערך בגלל שגיאות כתיב וניסוח... (עקב הקלדה מהירה..)
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 28-11-2007, 16:20
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 6 שנכתבה על ידי Dark Knight שמתחילה ב "המ.. מוזר למדי... זה עבד לי..."

אוקי... אחרי קצת שבירת ראש מצאתי את הבעיה הארורה...
מסתבר ש-FF סלחן יותר מ-IE בנקודה הדקה של משתני any..
לא משנה... פתרתי את העניין, זה אמור לעבוד עכשיו עם השינוי הקטן:

קוד:
<script type="text/javascript"> function two_dig_sum(number) { return Math.floor(number/10)+(number%10); } function valid_id(id) { var sId = new String(document.getElementById(id).value); // Parse into string if (sId.length < 9) { // Make sure the number is 9 digits long! No need for higher border since field is limited. alert('Id number MUST be 9 digits long!'); return false; } // If true return, no need for else... var sum = 0; for (var i = 0; i < 9; ++i) { // Calculate the short-multiplications, normalize into 1 digit number, sum them. sum += two_dig_sum((sId.charCodeAt(i)-48)*(2-(i+1)%2)); // i+1 since i starts at 0 for index 1 } if ((sum%10) != 0) { alert('Illegal ID number!'); return false; } return true; } </script> <form onSubmit="return valid_id('myId')"> <input type="text" id="myId" name="myId" maxlength="9" /> <input type="submit" value="Check me!" /> </form>


https://2007-uploaded.fresh.co.il/2...8/77990384.html

בהצלחה
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 03:07

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר