מלאו פרטים לקבלת ייעוץ





    אני מאשר קבלת מבצעים ועדכונים מחברת RT-GROUP בכפוף לprivacy

    [honeypot Email id:email class:email]

    ראשי » שפת JAVA תרגילים ופתרונות
    תרגילים ופתרונות בשפת Java
    [addthis tool="addthis_inline_share_toolbox_mkkj"]

    מדריך java מקיף עם תרגילים ופתרונות

     

    צוות Real Time College הכין במיוחד בשבילכם סט תרגילים java לבדיקת הידע או כהכנה לראיונות עבודה בתכנות Java

     
     

    שאלה 1:

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

    תשובה 1

     
     

    שאלה 2:

    הסבר מדוע הקוד הבא גורם לשגיאת קומפילציה וכיצד לתקן אותו:

    short x = 100; short y = x + 5;

     
    תשובה 2

     
     

    שאלה 3:

    כתוב פונקציה המקבלת מערך בשפת Java של מספרים שלמים והופכת את תוכנו
     
    תשובה 3

     
     

    שאלה 4:

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

     
     

    שאלה 5:

    כתוב פונקציה שמקבלת מחרוזת ובודקת אם היא פלינדרום תוך התעלמות מסימנים שאינם אלפביתיים (a, b, c וכו') וכן מגודל האותיות.
     
    תשובה 5

     
     

    שאלה 6:

    צור enum בשם TrafficLight עם הערכים RED YELLOW GREEN. כתוב קטע קוד שקולט מהמשתמש מחרוזת וממיר אותה לאחד מהערכים.אם הקלט לא מתאים יש להדפיס למשתמש שהקלט לא מתאים. הקלט לא תלוי בגודל האותיות, ז"א "red" ו-"Red" הם גם קלט תקין עבור הערך TrafficLight.RED.
     
    תשובה 6

     
     

    שאלה 7:

    הסבר כיצד ניתן לייעל את הקוד הבא:

    Scanner in = new Scanner(System.in);
    String s = ";
    while (in.hasNext()) {
    s += in.next();
    }

     
    תשובה 7

     
     

    שאלה 8:

    כתוב פונקציה בשם merge המקבלת שתי מערכים JAVA ממויינים (מקטן לגדול) ומחזירה מערך חדש שמכיל את כל הערכים של שני המערכים בסדר ממויין.
     
    תשובה 8

     

     

    להלן פתרונות תרגילי JAVA

     

    תשובה לתרגיל 1- פונקציה רקרוסיבית

    
    
    public static int factorial(int n) {
        if (n > 1) {
            return factorial(n-1) * n;
        }
        else if (n >= 0) {
            return 1;
        }
        else {
            throw new IllegalArgumentException(
                "Factorial is not defined for negative numbers");
        }
    }
    
    

    חזרה למעלה

     

    תשובה לתרגיל 2 – שגיאת קומפילציה

    תשובה 2: פעולות אריתמטיות עם טיפוסים שקטנים מ-int מומרים במרומז ל-int. לכן הפעולה "x + 5" מחזירה int.
    בנוסף, Java אינה תומכת בהמרה מרומזת מ-int בחזרה ל-short, ולכן נדרשת המרה מפורשת ע"י casting:

    
    
    
    short x = 100;
    short y = (short) (x + 5);
    
    
    

    חזרה למעלה

     

    תשובה לתרגיל 3 -הפיכת מערכים בשפת Java מספרים שלמים

    
    
    
    public static void reverse(int[] a) {
        for( int left = 0, right = a.length -1; left < right; ++left, --right) {
            int temp = a[left];
            a[left] = a[right];
            a[right] = temp;
        }
    }
    
    
    

    חזרה למעלה

     

    תשובה 4 – בדיקת מחרוזת

    
    
    
    public static boolean isPalindrome(String s) {
        if ( s.equals(")) return true;
    
        for(int left = 0, right = s.length()-1; left < right; ++left, --right) {
            if (s.charAt(left) != s.charAt(right)) {
                 return false;
            }
        }
        return true;
    }
    
    
    

    חזרה למעלה

     

    תשובה לתרגיל 5 -בדיקת מחרוזת תוך התעלמות מסימנים אלפבתים

    
    
    
    public static boolean isPalindrome2(String s) {
        if ( s.equals(")) return true;
    
        for( int iLeft = 0, iRight = s.length()-1;
            iLeft < iRight;
            ++iLeft, --iRight)
        {
            while (! Character.isLetter(s.charAt(iLeft)) { ++iLeft; }
            while (! Character.isLetter(s.charAt(iRight)) { ++iRight; }
    
            char cLeft = Character.toLowerCase(s.charAt(iLeft));
            char cRight = Character.toLowerCase(s.charAt(iRight));
            if (cLeft != cRight) {
                return false;
            }
    }
    
    
    

    חזרה למעלה

     

    תשובה 6 – TrafficLight

    
    
    
    enum TrafficLight { RED, YELLOW, GREEN }
    //...
    //inside some function:
    Scanner in = new Scanner(System.in);
    String s = in.nextLine().toUpperCase();
    
    TrafficLight light = null;
    
    for (TrafficLight tl : TrafficLight.values() ) {
        if (tl.toString().equals(s) ) {
             light = tl;
             break;
        }
    }
    
    if (light != null) { System.out.println("Valid Input:" + light); }
    else { System.out.println("Invalid Input:") }
    
    
    

    חזרה למעלה

     

    תשובה 7 – ייעול קוד

    הקוד מייצר "שאריות" של תתי מחרוזות שה-Collector Garbage צריך לנקות. כדי למנוע זאת נוכל להשתמש ב-
    StringBuilder שמצמצם ייצור של "שאריות":

    
    
    
    Scanner in = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();
    while (in.hasNext()) {
        sb.append(in.next());
    }
    String s = sb.toString();
    
    
    
    

    חזרה למעלה

     

    תשובה לתרגיל 8 – פונקציית merge

    
    
    
    public static int[] merge(int[] a, int b[]) {
        int[] r = new int[ a.length + b.length ];
    
        int ia = 0;
        int ib = 0;
        int ir = 0;
    
        while (ia < a.length && ib < b.length) {
            if (a[ia] <= b[ib]) {
                r[ir++] = a[ia++];
            } else {
                r[ir++] = b[ib++];
            }
        }
    
        while (ia < a.length) {
                r[ir++] = a[ia++];
        }
        while (ib < b.length) {
                r[ir++] = b[ib++];
        }
        return r;
    }
    
    
    
    
    

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

    חזרה למעלה

     

     
    מעוניינים לשפר את הידע בתכנות בשפת java ולפתוח המון אפשרויות פיתוח חדשות בעולם ההייטק?
    בוא ללמוד JAVA עם צוות Real Time College
    לפרטים נוספים > קורס Java
     

    אולי יעניין אותך גם: