În vederea pregătirii interviului tehnic, necesar pentru admiterea în cadrul cursului Java Software Development - Modul Junior Developer îți recomandăm să rezolvi următoarele exerciții.
Chiar dacă ai mai lucrat anterior în Java, rezolvarea exercițiilor va contribui la reîmprospătarea unor cunoștințe esențiale la interviu și parcurse în cadrul Modulului pentru Începători, precum:
1. Scrie o metodă care primește ca parametru un număr natural x
și apoi afișează:
// n == 21_304 Cifrele numarului sunt: 4, 0, 3, 1, 2, Suma cifrelor este: 10
2. Se citește un număr natural n
și apoi n
numere întregi. Scrie un program care calculează și afișează:
// n == 7 // numerele citite: 1 15 0 21 14 101 1 Numarul minim: 0 Numarul maxim: 101 Media aritmetica: 21.857142857
3. Scrie o metodă care să determine dacă un număr dat este număr prim. Metoda va returna true
dacă numărul este număr prim și false
în caz contrar.
3.1. Scrie un algoritm care citește de la tastatură un număr n
și afișează toate numerele prime până la n
(inclusiv), începând cu 2
.
// INPUT -> OUTPUT 10 -> 2, 3, 5, 7, 20 -> 2, 3, 5, 7, 11, 13, 17, 19, 97 -> 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,
3.2. Implementează un program care afișează toți divizorii proprii (adică toți divizorii fără 1
și numărul însuși) ai unui număr natural n
citit de la tastatură. În cazul în care numărul este prim (i.e. nu are divizori proprii), programul va afișa mesajul Este numar prim
. Câteva exemple sunt:
// INPUT -> OUTPUT 12 -> 2 3 4 6 15 -> 3 5 24 -> 2 3 4 6 8 12 13 -> Este numar prim
1. Implementează o metodă (i.e. countOccurrencesIgnoreCase(String[] array, String key)
) care determină numărul de elemente key
din cadrul array
și returnează această valoare. Metoda nu ține cont de tipul literelor (i.e. majuscule vs. minuscule). Testează metoda în main
pentru cât mai multe cazuri de excepție.
// Exemplul 1: ARGUMENTS: ["Java", "C", "Python", "JAVA", "perl", "C#", "java"], "JAVA" RETURN: 3 // Exemplul 2: ARGUMENTS: ["Java", "C", "Python", "JAVA", "perl", "C#", "java"], "TensorFlow" RETURN: 0
2. Un număr palindrom este un număr care este egal cu simetricul său (ex: 121, 10001, 22344322, 88, 7 etc.). Similar, un șir de caractere este palindrom dacă este identic cu simetricul său (ex: „abba“, „ana“, „noon“, „radar“, „madam“). Implementează o metodă (i.e. isPalindromeIgnoreCase(String)
) care determină dacă un șir de caractere primit ca parametru este sau nu palindrom, fără a se ține cont de tipul literelor (i.e. majuscule vs. minuscule). Testează metoda în main
pentru cât mai multe cazuri de excepție.
// Exemplul 1: ARGUMENTS: "dog" RETURN: false // Exemplul 2: ARGUMENTS: "Madam" RETURN: true
3. Pornind de la experiența acumulată la exercițiul anterior, implementează o metodă (i.e. isPalindromeIgnoreCasePRO(String)
) care determină dacă o propoziție este palindrom, ignorând diferențele de litere mari / mici și toate caracterele care nu sunt litere. Similar exercițiului precedent, metoda va returna true
dacă șirul de caractere este palindrom, sau false
în caz contrar.
// Exemplul 1: ARGUMENTS: "Red rum, sir, is murder!" RETURN: true // Exemplul 2: ARGUMENTS: "Was it a cat I saw?" RETURN: true // Exemplul 3: ARGUMENTS: "Not a palindrom, I'm afraid.." RETURN: false // Exemplul 4: ARGUMENTS: "Step on no pets." RETURN: true
Acest exercițiu exploatează noțiunile de bază de OOP, predate în cadrul Modulului pentru Începători, conform programei de studiu.
Implementează o clasă GenericPackage
, folosită de un sistem de curierat, conform următoarelor detalii de implementare:
uniqueID
: cod unic de identificare a pachetului, format numai din cifre, de tipul String
.weight
: greutatea coletului, de tipul double
.packageName
: numele pachetului, de tipul String
.courierName
: numele firmei de curierat, tipul String
.GenericPackage
trebuie să respecte următoarele criterii:GenericPackage
vor avea același courierName
.uniqueID
, unic pentru fiecare obiect GenericPackage
, trebuie să nu poată fi modificat (i.e. după inițializarea acestuia).courierName
, același pentru toate obiectele din clasă, într-o proprietate a obiectelor, care poate fi atât citită cât și actualizată.packageName
într-o proprietate read-only (i.e. poate fi citită, dar nu poate fi actualizată).addItem(double itemWeight)
: actualizează greutatea pachetului prin adăugarea greutății noului obiect (i.e. itemWeight
) la greutatea actuală a coletului.checkID()
: metoda verifică dacă numărul pachetului este valid. Codul unic de identificare este valid dacă sunt îndeplinite toate condițiile următoare:3
.4
.5
.10
și 12
caractere (inclusiv).computeDetails()
metoda returnează un obiect String
, care conține detaliile obiectului, sub următorul format:Pachetul <packageName> avand codul <uniqueID> si greutatea <weight> apartine curierului <courierName>.
Pachetul LaptopDustPRO avand codul 213142341425 si greutatea 4.2 apartine curierului DevCarry.
Câmp util pentru Arrays
:
Câmp | Descriere |
---|---|
length | Stochează dimensiunea (i.e. numărul de elemente) al unui Array . |
Metode utile ale clasei String
:
Metodă | Descriere |
---|---|
int length() | Returnează lungimea șirului de caractere stocat în obiectul de tip String . |
int indexOf(int ch) | Returnează indexul primei, respectiv ultimei apariții din șir a caracterului ch . |
int lastIndexOf(int ch) | |
int indexOf(int ch, int fromIndex) | Similar cu funcționalitatea anterioară - doar că în acest caz căutarea începe de la un anumit index (i.e. fromIndex ). |
int lastIndexOf(int ch, int fromIndex) | |
int indexOf(String str) | Returnează indexul primei, respectiv ultimei apariții din șir a șirului str . |
int lastIndexOf(String str) | |
int indexOf(String str, int fromIndex) | Similar cu funcționalitatea anterioară - doar că în acest caz, căutarea începe de la un anumit index (i.e. fromIndex ). |
int lastIndexOf(String str, int fromIndex) | |
boolean contains(CharSequence s) | Metoda returnează true dacă a fost găsit subșirul căutat în șir, și false altfel. |
Clasa wrapper Character
:
Metodă | Descriere |
---|---|
static int getNumericValue(char ch) | Returnează valoarea numerică echivalentă (i.e. de tipul int a caracterului ch ). |
static boolean isDigit(char ch) | Returnează true dacă ch este o cifră, și false altfel. |
static boolean isLetter(char ch) | Returnează true dacă ch este o literă, și false altfel. |
static boolean isLetterOrDigit(char ch) | Returnează true dacă ch este o literă sau o cifră, și false altfel. |
Pentru întrebări sau orice nelămuriri folosește forum-ul de mai jos sau trimite-ne un email la office@devmind.ro.