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

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



  #4  
ישן 25-11-2013, 23:45
צלמית המשתמש של ShoobyD
  משתמש זכר ShoobyD מנהל ShoobyD אינו מחובר  
מנהל משבראש, בלשנות, תכנות ויהדות
 
חבר מתאריך: 04.06.06
הודעות: 33,130
שלח הודעה דרך MSN אל ShoobyD Facebook profile LinkedIn profile Follow me...
בתגובה להודעה מספר 3 שנכתבה על ידי SOF שמתחילה ב "את זה הבנתי... אני לא מבין..."

לולאה אחת שרצה על הספרות, עדיף מהסוף להתחלה, ושסוכמת כפולות שלהן ב־1 וב־2 לסירוגין.

אם id הוא מספר תעודת הזהות, באורך של 9 ספרות ומטה, אז אפשר לבצע את הלולאה כך:
קוד PHP:
 sum 0weight 1;
while ( 
id ) {
    
sum += DigitSumweight * ( id 10 ) );
    
id /= 10;
    
weight weight;
}
return !( 
sum 10 ); 

כאשר הפונקציה הנפרדת DigitSum סוכמת ספרות של מספר (לשם המודולריות).
אפשר להחליף אותה פשוט ב־n%10+n/10, כי מדובר לכל היותר במספרים בעלי זוג ספרות.


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


נערך לאחרונה ע"י ShoobyD בתאריך 25-11-2013 בשעה 23:55.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 25-11-2013, 22:44
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 1 שנכתבה על ידי SOF שמתחילה ב "בדיקת תקינות תעודת זהות ++C"

אני מקווה שאני לא טועה, כי אני מת מעייפות (מקסימום אלכס יבוא ויתקן אותי...)

קוד PHP:
 #include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

int main() {

        
char tz[10];
        
unsigned int alter 1;
        
unsigned int total 0;
        
unsigned int temp 0;
        
char digit[2];

        while (
strlen(tz) != 9) {
                
cout << "Enter TZ number, 9 digits (add leading zeros if your number is shorter)? ";
                
cin >> tz;
        }

        for (
int i=0i<9i++)
                {
                        
strncpy(digit, &tz[i], 1);
                        
temp alter atoi(digit);
                        if (
temp >= 10)
                                
temp temp -9;
                        
total total temp;
                        if (
alter == 1)
                                
alter 2;
                                        else
                                                
alter 1;
                }

        
cout << "Total for TZ " << tz << " is: " << total << ". This number is ";

        if (
total 10 == 0)
                
cout << "divisible by 10. Therefore " << tz << " is a valid TZ!" << endl;
                        else
                                
cout << "not divisible by 10. Therefore " << tz << " is an INVALID TZ!" << endl;
        return 
0;

_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 27-11-2013, 23:41
  SOF SOF אינו מחובר  
 
חבר מתאריך: 19.01.04
הודעות: 705
בתגובה להודעה מספר 1 שנכתבה על ידי SOF שמתחילה ב "בדיקת תקינות תעודת זהות ++C"

הצלחתי להגיע למשהו שנותן לי את התוצאה המתאימה, אשמח אם תוכלו לתת דעה ולתת הצעות לשיפור, בעיקר של ה"עימוד" והנראות של הקוד.
קוד:
#include <iostream> #include <string> using namespace std; void main() { { string name; // User will enter is name cout << "Please enter your name : \n"; cin >> name; } int ID, sum, counter = 1; // The int. that the progrem will use bool wrong_ID = true; // The bool is for the progrem to know when to stop do { cout << "Please enter your ID number : \n"; cin >> ID; // user enter is ID number sum = 0; while (ID > 0) { // The algorithm of the progrem int i = (ID % 10); ID = ID / 10; int j = (ID % 10) * 2; int x = j % 10; int y = j / 10; sum = sum + i + x + y; ID = ID / 10; } if (sum % 10 == 0) wrong_ID = false; else cout << "The ID number you typed is illegal \n"; counter++; // user have only 3 opportunities } while (wrong_ID && counter <= 3); if (wrong_ID) cout << "You typed illegal ID number for too many times \n"; else cout << "Your account is now open! \n"; }
_____________________________________
"I love the smell of napalm in the morning"

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

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

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

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

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



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

הדף נוצר ב 0.06 שניות עם 12 שאילתות

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

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