|
|
|
הוסיפו מידע על מעסיק
|
|
RT / Embedded
|
|
שאלות מראיונות עבודה לתפקיד
|
|
|
|
|
|
|
Theworker >
תוכנה
>
פירוט שאלות מראיונות עבודה לתפקיד RT / Embedded
פירוט שאלות מראיונות עבודה לתפקיד RT / Embedded
210 - 201 מתוך 447
|
|
|
|
|
ראיון לתפקיד RT / Embedded
בחברת SCD
יולי 2021
|
01.07.2021
|
|
|
| פרטים לגבי התהליך |
הסבר על החברה ומעבר לשאלות |
|
| שאלות מתוך הראיון |
ממש את הפונקציה swap ב 3 דרכים שונות |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
יולי 2021
|
| |
רגיל, xor ואריתמטי
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על SCD :
|
|
|
ראיון לתפקיד RT / Embedded
בחברת אינוביז
מאי 2020
|
29.06.2021
|
|
|
| פרטים לגבי התהליך |
שאלות על פרוייקט הגמר ופרוייקטים בלימודים. |
|
| שאלות מתוך הראיון |
השאלה בפועל מחולקת לשלבים:
לפניך קטע הקוד הבא אשר ממומש בממשק בו קיימים פסיקות:
void myFunction()
{
Int time = clcTime();
while(time – clcTime() != 3600);
}
*הפונקציה clcTime() היא פונקציה אשר מונה מספר שניות החל מזמן ייחוס מסויים. (לצורך העניין 00:00 המונה מתחיל וכמו כן מתאפס בחזרה ב-00:00 יום למחרת)
שאלה 1: מה קטע הקוד הנ"ל מיועד לעשות?
שאלה 2: הקוד נשלח למחלקת QA ונמסר ממנה שבעת ביצוע הקוד התכנית נכשלת בפועל בעת מקרה מסויים. מהו אותו המקרה? תאר כיצד ניתן לפתור אותו קונקרטית?
שאלה 3: בודק QA מהמחלקה מסר שבשעות היום הקוד עבר בסדר אבל בעת שהלך לישון משהו השתבש. מה יכולה להיות הבעיה? כיצד ניתן לפתור אותה? |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
יוני 2021
|
| |
תשובה 1(עניתי ונאמר לי שהיא נכונה): לחכות שעה ולצאת.
תשובה 2(עניתי ונאמר לי שהיא נכונה): צריך לזכור שהקוד רץ במערכת שמקבלת פסיקות כל הזמן. המקרה הקונקרטי - כמה שניות לפני שהמונה מגיע לשניה פתאום יש פסיקה ממקור אחר שאורך ביחד עם המנייה בעת הקפיצה יותר מ3600 שניות (שעה), ולכן כשהמעבד יחזור לבצע אותה המנייה תיהיה מעל 3600 אבל הקוד ימשיך לרוץ ובעצם יפספס את הטיימינג של היציאה.
הדרך שבה ניתן יהיה לפתור היא תיקון של החלפה במקום =! נשים =>. (לא נורא שהקוד יתעכב בכמה שניות ויצא לאחר 3600 וקצת שניות לאחר שיחזור מהפסיקה של המקור החיצוני האחר. נאמר שזה בסדר).
תשובה 3: הדרך להתמודד היא לתת טיפול קונקרטי בקוד – נאמר שניתן להוסיף if למקרה הספציפי הזה (לא חשובה באמת היעילות). אז אם הקוד נמצא התחיל בטווח השעות של 23:00-00:00 (בגדול זה מונה שניות אז לא מדוייק להגדיר את זה ככה אלא ע"פ המודל שניות) אז ניקח את ארגומנט הדקות (לצורך העניין עבור 23:25 קח את 25 הדקות) ותצא במניה של אותו ארגומנט דקות מרגע האיפוס (בדוגמה שלנו המונה מתאפס באפס ולכן לפי התנאי יצא ב00:25 - בדיוק שעה כנרדש).
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על אינוביז :
|
|
|
ראיון לתפקיד RT / Embedded
בחברת קואלקום
יוני 2021
|
24.06.2021
|
|
|
| פרטים לגבי התהליך |
2 ראיונות טכנים וHR |
|
| שאלות מתוך הראיון |
צייר שכמת מלבנים וACIVE DIAGRAM של פרויקט שעשית.
נתון פוינטר של שירים בשם songlist כדי להקל על השאלה זה מערך
בנה STRUCT שמתאר את הsonglist
וכתוב פונקציה שמריצה את השירים בצורה רנדומלית ללא חזרה על השירים
ניתן להשתמש בפונקציה RANDOM עם טווח |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
יוני 2021
|
| |
// N - Num Of Songs
// Time Complexity: O(N)
// Space Complexity: O(N)
struct Songlist
{
char** songs;
int numOfSongs;
char* songListName;
};
void PlaySongs(struct SongList* songlist)
{
if ((NULL == songlist) || (0 == songlist->numOfSongs))
{
return;
}
uint8_t* played = (uint8_t*)calloc(songlist->numOfSongs*sizeof(uint8_t));
if (!played)
{
return;
}
int playedSongs = 0;
printf("Song List Name: %s\n", songlist->songListName);
while(playedSongs != songlist->numOfSongs)
{
int i = rand() % songlist->numOfSongs;
if (played[i])
{
continue;
}
printf("Playing: %s\n", songlist->songs[i]);
++playedSongs;
played[i] = 1;
}
free(played);
}
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על קואלקום :
|
|
|
ראיון לתפקיד RT / Embedded
בחברת סוניגו
מאי 2021
|
14.06.2021
|
|
|
| פרטים לגבי התהליך |
שלושה ראיונות וראיון HR |
|
| שאלות מתוך הראיון |
מה הטווח של 4 ביטים במשלים ל2? |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
יוני 2021
|
| |
הטווח הוא בין -8 ל7
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על סוניגו :
|
|
|
ראיון לתפקיד RT / Embedded
בחברת אינוביז
יוני 2021
|
12.06.2021
|
|
|
| פרטים לגבי התהליך |
שלושה ראיונות , אחרון מול HR |
|
| שאלות מתוך הראיון |
הביאו לי זיכרון עם 32 שדות ורגיסטר בגדול 32. ביקשו לממש גט ופרי לתאים בזיכרון.
אחרי זה הגדילו ל64 שדות וביקשו לעשות אותו דבר. |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
יוני 2021
|
| |
יש כמה אפשרויות אבל הטובה ביותר, הוא להשתמש באינדקסים ובשדות לא משומשים כרשימה מקושרת - כך שהרגיסטר מצביע לתא הקרוב והוא שומר את הכתובת "נקסט" אליה ניכנס בפעם הבא
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על אינוביז :
|
|
|
ראיון לתפקיד RT / Embedded
בחברת אינוביז
יוני 2021
|
09.06.2021
|
|
|
| פרטים לגבי התהליך |
ראיון טלפוני
ראיון פרונטי טכני
ראיון פונרטלי טכני נוסף
HR |
|
| שאלות מתוך הראיון |
ספר על עצמך
תפנה תרשים מלבנים של פרויקט שעשית מהתחלה ועד הסוף
מצא בעיות בפונקציה הבאה:
void func()
{
int start=timeofday();
while(timeofday()-start!=3600);
}
תקן את הפונקציה עם הבעיות שמצאת |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
יוני 2021
|
| |
לפונקציה יש שני בעיות בWHILE המספר המוחזר לא מדוייק זאת אומרת אף פעם לא יהיה 3600 עגול
בעיה שניה בתחילת יום timeofday מתאפס
כדי לפתור את שני הבעיות
הפונקציה תיכתב ככה:
void func()
{
int timeout=3600;
int start=timeofday();
int lasttime=0;
while(TRUE)
{
lasttime=timeofday()-start;
if(lasttime<0)
{
timeout-=abs(lasttime);
start=timeofday();
}
if(timeofday()-start>=timeout)
{
break;
}
}
}
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על אינוביז :
|
|
|
יש לכם מה להוסיף ?
|
|
|
|
|
|