שחזורי ראיונות עבודה -> שחזור מלא -ראיון בחברת audio codes
  • שחזור מלא -ראיון בחברת audio codes
  • לפני 13 שנים
    ע"י: ליז_למון
    שחזור מלא -ראיון בחברת audio codes אודיוקודס שאלה 1: נתון הקוד הבא וצריך להגיד מה הבעיות char *ip_address(unsigned int ip) { char str; char *p = (char*)&ip; sprintf(str, %d%d%d%d, p, p, p, p); return str; } שאלה 2: נתון מספר כלשהו בעל 4 ספרות וניחוש גם בעל 4 ספרות לדוגמא מספר 1234, ניחוש 1489 צריך להגיד כמה מספרים הוא בדיוק במקום וכמה ליד למשל בדוגמא הזאת התוצאה תהיה 1 exact, 1 near דוגמא נוספת מספר 1122, ניחוש 2121 התוצאה 2 exact, 2 near צריך לכתוב קטע קוד שממש את זה בהצלחה.
  • לפני שנה
    ע"י: יניב ש
    הפתרון לשאלה הראשונה char *ip_address(unsigned int ip) { char *str = malloc(16); unsigned char *p = (unsigned char*)&ip; sprintf(str, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); return str; }
  • לפני שנה
    ע"י: 1_אורח_כללי
    בשאלה הראשונה צריך גם להתיחס להאם המע' היא big endian או little endian, גם אם המידע מקודד בint בתור 4 בתים נפרדים הסדר שלהם תלוי ב endianess
  • לפני 9 שנים
    ע"י: 1_אורח_כללי
    בנוסף, ה-cast נעשה למערך של char ולא unsigned char, אז: 192 יהפוך ל- -64 (מינוס) כאשר יקודם ל-int בזמן ההעברה ל-printf (ה-printf משתמש ב- %d אז הוא יציג אותו אכן כ- -64. גם שם הייתי משנה ל-%u, אבל זה בלי קשר, כי רק לשנות ל-%u לא יעזור.)
  • לפני 13 שנים
    ע"י: 1_אורח_כללי
    זו אכן הבעיה העיקרית, מבחינת תכנות. בנוסף יש את העובדה שה-IP שיתקבל ב- STR, לפני שחוזרים לפונקציה הקוראת, יתקבל ללא הפרדה באמצעות נקודות ואז לא באמת קיבלנו את מה שרצינו. לדוגמא, תוצאה כזו: 1921683412 לא כל כך תעזור לנו...
  • לפני 13 שנים
    ע"י: 1_אורח_כללי
    מה ההגדרה של "ליד"?? ולגבי השאלה הראשונה, יש בעיתיות נוספת חוץ מזה שהפונק' מחזירה פוינטר למשתנה לוקלי?
  • לפני 13 שנים
    ע"י: קינג_יוניק
    ההצעה שלי לפתרון השאלה השניה: void assessGuess (unsigned num, unsigned guess) { static bitset<10> digitLUT; digitLUT.reset(); for (unsigned tmp = num; tmp; tmp/=10) { digitLUT.set(tmp%10); } unsigned exact = 0; unsigned near = 0; for (; guess; guess /= 10, num /= 10) { if (guess%10 == num%10) exact++; else if (digitLUT.test(guess%10)) near++; } cout << "exact = " << exact << "\nnear = " << near << endl; } test output: num = 1799 guess = 4729 exact = 2 near = 0 num = 1210 guess = 1437 exact = 1 near = 0 num = 2063 guess = 3082 exact = 1 near = 2 num = 6355 guess = 1339 exact = 1 near = 1 num = 1096 guess = 1743 exact = 1 near = 0 num = 7124 guess = 5532 exact = 0 near = 1 num = 4841 guess = 4942 exact = 2 near = 0 num = 8791 guess = 9903 exact = 0 near = 2 num = 5659 guess = 7142 exact = 0 near = 0 num = 6394 guess = 8361 exact = 1 near = 1