java- curs pentru inițiere...java- curs pentru inițiere clasa a xi-a a prof. sanda popescu...
TRANSCRIPT
![Page 1: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/1.jpg)
Java- curs pentru inițiereClasa a XI-a A
Prof. Sanda Popescu
![Page 2: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/2.jpg)
Instalare Eclipse – mediul de programare pentru Java
- Instalare SE (standard Edition) JRE (Java Runtime Environment) versiunea 12.0
- Instalare JDK (Java Development Kit), aceeași versiune ca JRE
- Instalare Eclipse Java IDE (Integrated Development Environment) for Java Developers
![Page 3: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/3.jpg)
Cum funcționează Java
Text(*.java)
Binary File(*.class)
javac (JDK)
Computer program
JVM(Java Virtual Machine,
creată de JRE)
Crearea aplicațiilor Java pentru mobile phone sau pentru Internet sau alte aplicații de tip desktop, necesită instalarea altor tipuri de JDK și/sau de JRE.
![Page 4: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/4.jpg)
Crearea unui program simplu
• Lansare Eclipse, File-New-Java project, Nume proiect, Finish
• In panou Navigator, click-dreapta pe proiect, New-Class
![Page 5: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/5.jpg)
• se dă un nume clasei, se bifează public static void main-Finish pentru a se crea în mod automat metoda main
• Metoda main este practic punctul de unde începe programul să ruleze
• Se observă cele două tipuri de comentarii, precum cele din C++; acestea pot fi șterse
package nume;public class nume_clasa {/* comentariu pe mai multe rânduri*/public static void main(String[] args) {// comentariu pe un singur rând
}}
![Page 6: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/6.jpg)
Sysout press Ctrl+Space completează automat metoda Print care permite afișarea datelor, mesaje text la consolă.
Mesajele text se vor cuprinde între ghilimele (”mesaj ”), ca în C++.
package nume;
public class nume_clasa {
public static void main(String[] args) {
System.out.println("Primul program Java");
}
}
shortcut Sysout press Ctrl+Space
![Page 7: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/7.jpg)
Utilizarea variabilelor, tipuri primitive de date
Java folosește 8 tipuri de variabile simple:
1. int [-231, 231-1], numere întregi reprezentate pe4 octeți (bytes)
2. short [-215, 215-1], numere întregi reprezentatepe 2 octeți (bytes)
3. long [-263, 263-1], numere întregi reprezentatepe 8 octeți (bytes)
4. double, numere reale dublă precizie, reprezentate pe 8 octeți (bytes)
5. float, numere reale simplă precizie, reprezentate pe 4 octeți (bytes)
6. char, caractere cuprinse între apostrof ‘C’
7. boolean, ce poate păstra două posibile valori, true sau false
8. byte [-128, 127], numere întregi ce se reprezintă pe un singur octet (byte)
![Page 8: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/8.jpg)
package nrprime;
import java.util.Scanner;
public class nrprime {
public static void main(String[] args) {
int [][] a;
int n, m, i, j, k, d;
boolean OK;
Scanner cin = new Scanner(System.in);
a = new int [101][101];
n = cin.nextInt();
m = cin.nextInt();
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
a[i][j] = cin.nextInt();
k = 0;
for (i = 2; i <= n; i += 2)
for (j = 1; j <= m; j++){
OK = true;
if (a[i][j] <= 1) OK = false;
for (d = 2; d * d <= a[i][j] && OK; d++)
if (a[i][j] % d == 0) OK = false;
if (OK) k++;
}
System.out.println(k);
}
}
Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine câte dintre elementele
situate pe linii cu indici pari sunt prime.
![Page 9: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/9.jpg)
Clasa String• String nu este un tip primitiv de
date, este un tip special numit clasă.
• De tip string se vor declara obiecte, așa cum de tip primitiv se declară variabile.
• În continuare ne vom referi la clasa String și la obiecte din această clasă
• Conceptele clasă și obiect sunt introduse aici, dar vor fi detaliate mai târziu text1, text2, spatiu sunt obiecte ale clasei String
![Page 10: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/10.jpg)
Clasa Scanner – citirea datelor de la tastatură
Iar la consolă se introduc datele cu verde și se afișează în formatul de mai jos
Clasa se numește Scanner iar variabila cin este de tip Scanner ce identifică un obiect din clasa Scanner.Se putea folosi orice alta denumire (Input, Read, etc.) dar am preferat să folosesc cin pentru similitudinea cu citirea din C++.
![Page 11: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/11.jpg)
Instrucțiunile de control în Java sunt identice din punct de vedere sintactic și semantic cu cele din C++
package ciframaxima;/*programul afisează cifra maxima a unui numar natural n */import java.util.Scanner;
public class ciframaxima {
public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n, cmax, c;n = cin.nextInt();cmax=0;do{
c=n%10;if (c>cmax) cmax=c;n/=10;
}while (n!=0);System.out.println(cmax);
}
}
import java.util.Scanner;
/*se citesc n numere naturale. Sa se verifice pentru fiecare numar citit daca este patrat perfect */
public class p2572 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);//cin.close();int n = cin.nextInt();
for (int i = 0; i < n; i++) {int x = cin.nextInt();// System.out.println(Math.sqrt(x));
if ((int) Math.sqrt(x) == Math.sqrt(x)) {System.out.println("DA");} else {System.out.println("NU");}
}
}
}
Se citește un număr n și apoi n numere naturale. Să se verifice pentru fiecare număr dacă este pătrat perfect
![Page 12: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/12.jpg)
package cifre005;
/* pentru cate numere din cele n citite, sumacifrelor impartita la 9 da restul r */
import java.util.Scanner;
public class cifre005 {
public static void main(String[] args) {Scanner cin = new Scanner(System.in);long n, x, i, r, k = 0;n = cin.nextLong();r = cin.nextLong();for (i = 1; i <= n; i++){
x = cin.nextLong();if (x % 9 == r)
k++;}
System.out.println(k);
}
}
package inlocuire2;
//se inlocuiește cu c2, fiecare cifra egală cu c1
import java.util.Scanner;
public class inlocuire2 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
long n, c, c1, c2, nou = 0, p = 1;
n = cin.nextInt();
c1 = cin.nextInt();
c2 = cin.nextInt();
do {
c = n % 10;
if (c == c1)
nou = nou + c2 * p;
else nou = nou + c * p;
p *= 10;
n /= 10;
}while (n != 0);
System.out.println(nou);
}
![Page 13: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/13.jpg)
Citire din fișier, afișare în fișier
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
public class maxim2 {
public static void main(String[] args) throws FileNotFoundException {
//InputFile, OutputFile sunt obiecte ale clasei File
int a, b, x;
File InputFile = new File("maxim.in"); //declarare variabile fisier
File OutputFile = new File ("maxim.out"); //de intrare, ieșire
//Citirea se face cu clasa Scanner, afișarea se face cu clasa PrintStream
//fin este obiect al clasei Scanner
//fout este obiect al clasei PrintStream
Scanner fin = new Scanner(InputFile);
PrintStream fout = new PrintStream(OutputFile);
//citește a și b din fișier
a = fin.nextInt();
b = fin.nextInt();
if (a > b) x = a;
else x = b;
//se redirecționează afișarea spre fișier
System.setOut(fout); S
ystem.out.println(x);
}
}
!!!!
Fișierele se crează din File-New-File direct în folderul proiectului, lângă src, NU în src !!!
![Page 14: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/14.jpg)
import java.io.*;import java.util.Scanner;
public class CitireAfisareFisier {
public static void main(String[] args) throws FileNotFoundException {
int n, x, S, i;//fisierele de intrare si iesire se creeaza in folderul //in care se gaseste proiectul, chiar din meniu de la//File-New-File si alegi unde sa le salvezi, cu extensiile//.in şi .out şi nu mai trebuie precizata calea
//definesc obiectele InputFile si OutputFile ale clasei //File - fisiere de intrare si iesireFile InputFile = new File("bac.in");File OutputFile = new File ("bac.out");//definesc obiectele fin si fout ale claselor Scanner, //respectiv PrintStreamScanner fin = new Scanner(InputFile);PrintStream fout = new PrintStream(OutputFile);
n = fin.nextInt();
S = 0;
for (i=1; i<=n; i++) {
x = fin.nextInt();
S += x;
}
//directionez afisarea in fisier
System.setOut(fout);
//acum afiseaza in fiser
System.out.println(S);
}
}
![Page 15: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/15.jpg)
IMPORTANT!Pentru problemele de pe pbinfo rezolvate în Java, TREBUIE ca proiectele și clasele create în Eclipse, să poarte numele problemei.De exemplu, dacă problema se numește cifre001, atunci vom denumi proiectul și clasa cifre001.
![Page 16: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/16.jpg)
Tablouri unidimensionale (vectori) în Javapackage afisareminmax;
import java.util.Scanner;
public class afisareminmax {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int i, n, pmin, pmax, Min, Max, aux;
int[] v; // se declara un v, care este un pointer, o adresa
v = new int[1001]; //se alocă memorie pentru tabloul de la adresa v
n = cin.nextInt();
for (i=1; i<=n; i++)
v[i]= cin.nextInt();
Min=Max=v[1];
pmin=pmax=1;
for (i=2; i<=n; i++){
if (v[i]>Max){
Max=v[i];
pmax=i;
}
if (v[i]<Min){
Min=v[i];
pmin=i;
}
}
if (pmin>pmax) {
aux = pmin;
pmin = pmax;
pmax = aux;
}
//System.out.println(pmin + " " + pmax);
for (i=pmin; i<=pmax; i++)
System.out.print(v[i]+ " ");
}
}
Declarare variabilă de tip tablou
![Page 17: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/17.jpg)
import java.util.Scanner;
public class paritate1 {
public static void main(String[] args) {
Scanner cin = new Scanner (System.in);
int n, i, np, ni;
int[] v ;
v = new int[1001];
n = cin.nextInt();
for (i=1; i<=n; i++)
v[i] = cin.nextInt();
np = 0;
ni = 0;
for (i=1; i<=n; i++)
if (v[i]%2==0)
np++;
else ni++;
if (ni>np) System.out.println(ni-np);
else System.out.println(np-ni);
}
}
Problema #633 de pe PBINFOSe dă un șir cu n elemente, numere naturale. Determinați diferența în
valoare absolută dintre numărul de valori pare din șir și numărul de
valori impare din șir.
![Page 18: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/18.jpg)
Tablouri bidimensionale (matrice) în Java
import java.util.Scanner;
public class sumalinii {
public static void main(String[] args) {
int [][] a;
int n, m, i, j, s;
Scanner cin = new Scanner(System.in);
a = new int [101][101];
n = cin.nextInt();
m = cin.nextInt();
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
a[i][j] = cin.nextInt();
for (i = 1; i <= n; i++){
s = 0;
for (j = 1; j <= m; j++)
s += a[i][j];
System.out.print(s + " ");
}
}
}
#666 Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se
determine suma elementelor de pe fiecare linie
![Page 19: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/19.jpg)
Vectori de string-uripackage vectordestringuri;
import java.util.Scanner;
public class vectoridestringuri {
public static void main(String[] args) {
String[] cuvinte = new String[101];
int n, i;
Scanner cin = new Scanner(System.in);
n = cin.nextInt();
for (i = 1; i <= n; i++)
cuvinte[i] = cin.nextLine();
for (i = 1; i <= n; i++)
System.out.println(cuvinte[i] + " ");
}
}
Date de intrare
Date de ieșire
![Page 20: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/20.jpg)
package vectordestringuri;
import java.util.Scanner;
public class vectoridestringuri {
public static void main(String[] args) {String[] cuvinte = new String[10]; int n, i;Scanner cin = new Scanner(System.in);
n = cin.nextInt();for (i = 0; i <= n - 1; i++)
cuvinte[i] = cin.nextLine();
// o alta modaliate de a afisa toate string-urile // din vectorul de string-urifor (String cuvant: cuvinte)
System.out.print(cuvant + " ");}
}
![Page 21: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/21.jpg)
Clase și obiecte în Java - POO
package clase;
import java.util.Scanner;
class Person {/* o clasă poate conține:1. Date2. Subprograme, în Java se numesc METODE*///dateString name;int age;
}
public class primaClasa {public static void main(String[] args) {
//private Object System;Scanner cin = new Scanner (System.in);Person person1 = new Person(); //s-au definit două person2 = new Person(); //obiecte ale clasei Person
// accesul la datele clasei se face prin punct(.)person1.name = cin.nextLine();person2.name = cin.nextLine();
person1.age = cin.nextInt();person2.age = cin.nextInt();if (person1.age>person2.age)
System.out.println(person1.name);else System.out.println(person2.name);
}
}
O clasă poate conține date și/sau metode.În continuare, un exemplu de clasă ce conține doar date, și cum sunt ele utilizate.Observați asemănarea cu tipul struct din C++
![Page 22: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/22.jpg)
Metode: acele părți ale clasei care descriu o funcție (un subprogram) specifică clasei și obiectelor clasei.package clase;
import java.util.Scanner;
class Person {/* o clasă poate conține:1. Date2. Subprograme, în Java se numesc METODE*///dateString name;int age;//metodevoid speak (){
System.out.println("I am " + name + " and I am older");}
}
public class primaClasa {public static void main(String[] args) {
//private Object System;Scanner cin = new Scanner (System.in);Person person1 = new Person(); //s-au definit două person2 = new Person(); //obiecte ale clasei Person
// accesul la datele sau/si metodele clasei se face prin // punct(.)person1.name = cin.nextLine();person2.name = cin.nextLine();
person1.age = cin.nextInt();person2.age = cin.nextInt();if (person1.age>person2.age)
person1.speak();else person2.speak();}
}
![Page 23: Java- curs pentru inițiere...Java- curs pentru inițiere Clasa a XI-a A Prof. Sanda Popescu Instalare Eclipse –mediul de programare pentru Java - Instalare SE (standard Edition)](https://reader033.vdocuments.us/reader033/viewer/2022052811/6084c85d8351f20d7304e33a/html5/thumbnails/23.jpg)
Metode care returnează un rezultatpackage clase;
import java.util.Scanner;
class Person {
String name;
int age;
int anulNasterii(){
return 2019 - age;
}
boolean bisect (int numar){
if (numar % 4 == 0 || numar % 100 != 0) return true;
if(numar % 400 == 0)
return true;
return false;
}
}
public class primaClasa {
public static void main(String[] args) {
Scanner cin = new Scanner (System.in);
Person person1 = new Person();
Person person2 = new Person();
Person person = new Person();
person1.name = cin.nextLine();
//person2.name = cin.nextLine();
person1.age = cin.nextInt();
//person2.age = cin.nextInt();
if (person1.bisect(person1.anulNasterii()))
System.out.println(person1.name + " s-a nascut in an bisect");
else System.out.println(person1.name + " NU s-a nascut in an bisect");
}
}