Need to know

  • Calculati suma a 2 numere

  • Calculati suma a 3 numere

  • Calculati media a 3 numere

  • Calculati produsul a 3 numere, considerand ca numarul 0 va fi exclus de la produs.

6 0 7 -> 42
2 6 5 -> 72
0 0 6 -> 6
0 0 0 -> 1
  • Se citeste n, afisati toate numerele de la 1 la n

  • Se citeste n, afisati toate numerele pare de la 1 la n

Hint: Operatorul %
a % b = restul impartitii lui a la b
  • Se citeste n si k, afisati toate numerele de la 1 la n care se divid cu k

  • Cititi un cuvant folosind scanner.next("\\w+") si afisati lungimea lui (cate litere are)

  • Cititi un doua cuvinte. Afisati doar cuvantul cel mai scurt. Daca ambele sunt la fel de lungi, afisati Lungime egala

Nice to know

  • Se citesc doua numere naturale. Aflati CMMDC (cel mai mare divizor comun) al lor. Folositi Algoritmul lui Euclid.

Pasi:
cat timp A diferit de B:
    daca A > B: scade din A pe B
    daca A < B: scade din B pe A

Dupa finalizare buclei, A=B, iar cmmdc se va gasi in oricare dintre ei.
  • Se citesc doua numere naturale. Aflati daca sunt prime intre ele. (Folositi-va de CMMDC de la problema anterioara)

  • Se citeste un numar natural. Aflati daca este prim (folositi-va de de exercitiul anterior).

Hint: Luati numerele de la 0 la n-1 si verificati CMMDC
  • Se citeste un numar natural n si o lista de n numere. Sa se gaseasca media lor. Utilizati vectori.

  • Se citeste un numar natural n si o lista de n numere. Sa se afiseze toate elementele mai mari decat media.

  • Se citeste un numar natural n si o lista de n numere. Sa se gaseasca cel mai mic numar mai mare decat media

  • Se citeste un text dintr-un fisier. Sa se afiseze cate cuvinte contine(String.split)

  • Se citeste un text dintr-un fisier. Sa se gaseasca cuvantul cel mai lung din text.

  • Se citeste un text dintr-un fisier. Sa se afiseze de cate ori apare cel mai lung cuvant din text.

Get a Life

  • Se da o lista cu salariile angajatilor dintr-o firma. Aflati salariul angajatului cu cel mai mic salariu mai mare decat media salariilor angajatilor care au salariul mai mic decat media generala a salariilor.

  • Se citeste un text dintr-un fisier. Determinati daca topicul textului este despre robotica, jocuri sau masini. Vom afla topicul textului numarand care dintre aceste 3 topicuri are mai multe cuvinte cheie care se regasesc in text. Daca nici un cuvant din liste nu se regaseste

Robotica: motor, servo, gripper, aluminiu, burghiu, programare, controller, surub, piulita

Jocuri: minecraft, terraria, witcher, dnd, metin, call, duty, among, us,

Masini: volvo, suzuki, subaru, volkswagen, dacia, logan, taxi

Recomandare: Construiti cate un vector pentru fiecare topic. Pentru fiecare cuvant din text, cautati prin fiecare vector al topicului daca cuvantul corespunde. Veti avea nevoie de 2 bucle, una in alta.

Recomandare 2: Luati listele de mai sus cu copy paste, stergeti virgulele, puneti-le in string, apelati .split(" ")

Recomandare 3: folositi .equalsIgnoreCase in loc de .equals pentru a putea procesa si cuvintele cu litere mari.

Sectiuni de cod uzuale

  • Citirea unui numar:

int n = scanner.nextInt();
float f = scanner.nextFloat();
double d = scanner.nextDouble();
  • Citirea unui cuvant:

String word = scanner.next("\\w+")
  • Obtinerea unui caracter dintr-un sir si obtinerea lungimii sirului

Nota: caracterele (singure) sunt reprezentate prin tipul char si constantele lor prin ''.

String str = "albastrul e rosu, nu vreau sa aud";
char c = str.charAt(1);          // 'l'
char c = str.charAt(0);          // 'a'
int len = str.length();          // 33
String s = str.substring(4, 4)   // "s"
  • Citirea continutului unui fisier ca String si construirea unui Scanner din acest String:

import java.io.IOException;
import java.util.Scanner;
import java.nio.file.Files;
import java.nio.file.Path;
...
public static void main(String[] args) throws IOException {
    String text = Files.readString(Path.of("file.txt"));
    Scanner scanner = new Scanner(text);

    int n = scanner.nextInt();
}

La inceputul sursei, vom importa clasele IOException, Scanner, Files si Path. Metoda readString poate raporta o eroare daca fisierul nu exista, asa ca mentionam ca functia main poate arunca erori: IOException. Fisierul file.txt trebuie sa exista in radacina proiectului.

  • Compararea a doua String-uri

String s1 = "abc";
String s2 = "def";
String s3 = "abc";

s1.equals(s2)        // false
s1.equals(s3)        // true
"abc".equals(s1)     // true
s1.equals("abc")     // false
  • Impartirea unui String cu un delimitator

String str = "de ce albastrul nu ce negru";
String[] fragmente1 = str.split(" ");
String[] fragmente2 = str.split("ce");
/*
 *  fragmente1.length -> 6
 *  fragmente2.length -> 3
 *  fragmente1 -> "de", "ce", "albastrul", "nu", "ce", "negru"
 *  fragmente2 -> "de ", " albastrul nu ",  " negru"
 */
  • Inlocuirea unei secvente dintr-un string

String str = "ce faci. De ce";
String str1 = str.replace(Pattern.quote("."));    // "ce faci De ce"
String str2 = str.replace(Pattern.quote("ce"));   // " faci. De "
  • Obtinea unui subsir (taierea)

Nota: indicele final nu e inclus

//            0   4    10  14
//            v   v     v   v
String str = "Pai astazi am fost la atelier.";
String str1 = str1.substring(0);      // identic cu str
String str2 = str1.substring(14);     // "fost la atelier."
String str3 = str1.substring(4, 10)   // "astazi"