Curs I.1: Introducere în Java - cs.ubbcluj.ro
-
Upload
khangminh22 -
Category
Documents
-
view
9 -
download
0
Transcript of Curs I.1: Introducere în Java - cs.ubbcluj.ro
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Curs I.1: Introducere ın JavaEchipa, regulile, introducere in Java
Vlad-Sebastian Ionescu
Universitatea Babes, -Bolyai & NTT DATA2017
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Outline
Elemente organizatoriceEchipaOrarulReguli s, i sistemul de notare
Introducere ın informatica
Introducere ın programare
Introducere ın JavaProprietat, iInstalareElemente de bazaElemente lexicaleTipuri de dateExpresiiStructuri de controlExemple
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
EchipaProfesorii ındrumatori
I Vlad-Sebastian Ionescu - seminar s, i curs.Contact: [email protected]: http://www.cs.ubbcluj.ro/~ivlad
I Radu Gaceanu - seminar.Contact: [email protected]
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
OrarulNumarul de ore pe saptamana
I Curs: 4 ore / saptamana
I Seminar: 4 ore / saptamana
I Timp de 7 saptamani.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Reguli curs
1. Prezent, a nu este obligatorie, dar nu tot ce se predaapare ın suportul de curs.
2. Prin activitate la curs putet, i obt, ine 0.5 puncte bonus.
3. Nota finala se calculeaza astfel:
NF = min(10, 0.3·NT +0.3·NP +0.4·NS +BSem+BCurs) (1)
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Reguli seminar
1. Prin activitate ın plus la seminar putet, i obt, ine 0.5puncte bonus.
2. In timpul seminarului vet, i primi o nota pe o temaasignata la seminarul precedent.
3. Inainte de fiecare seminar, student, ii trimit cadruluididactic de la seminar rezolvarea temei. La seminar sediscuta, cu fiecare student, rezolvarea. Se pun ıntrebarisi eventual se cer modificari, dupa care se acorda o nota.
4. Daca studentul nu poate raspunde la ıntrebari dinpropriul cod sau nu poate efectua modificari, seconsidera frauda s, i se acorda nota 0.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Reguli seminar
4. Trimitet, i e-mailuri cu tema trecand la subiect, ınaceasta ordine:FP POSTUNIV, NR SAPTAMANA (de la 2 la 7),NUME, PRENUME, GRUPA
5. De exemplu, daca tema este pentru seminarul dinsaptamana 3:FP POSTUNIV, 3, VLAD, IONESCU, 102
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Reguli seminar
6. Temele trebuie trimise strict ınainte de ora fixa la careıncepe seminarul. Nu se accepta teme efectuate ıntimpul acestuia.
7. Temele nepredate se pot preda la seminarii ulterioare,dar nota acordata va suferi o penalizare de atateapuncte cate saptamani s-a ıntarziat. Nu se pot predateme la alte cadre didactice. Penalizarile se pot anuladaca absent, ele sunt motivate medical sau exista altemotive ıntemeiate.
8. Nu putet, i preda mai mult de 2 teme la un seminar.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın informatica
Definit, ie
Conform dex, informatica este ”s, tiint, a care se ocupa custudiul prelucrarii informat, iei cu ajutorul sistemelor automatede calcul.”. Prelucrarea se face cu ajutorul unor algoritmi.
Ce este un algoritm?
Un algoritm este un set de pas, i care trebuie urmat, i pentruatingerea unui scop. Fiecare program de calculatorimplementeaza algoritmi pentru a oferi funct, ionalitat, i.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın informatica
PseudocodDe multe ori ajuta sa definim algoritmii ın pseudocod ınaintede a-i transcrie ıntr-un limbaj de programare. Pseudocoduleste un limbaj schit, at care expune pas, ii algoritmului ıntr-unmod succint s, i clar.Nu exista un standard pentru a scrie pseudocod. Estenecesar doar ca acesta sa fie us, or de ınt, eles s, i clar.
Exercit, iu
Descriet, i algoritmul de cautare a unui numar de telefonpentru o persoana P ıntr-o carte de telefoane ordonatadupa nume.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın informatica
Exemplu de rezolvare
I Parcurgem fiecare pagina ıncepand cu prima.I Pe fiecare pagina, parcurgem toate numele existente:
I Daca numele curent este egal cu P, am gasit numarulcautat.
I Daca nu, trecem la urmatorul nume.
I Dupa ce am parcurs toate numele de pe pagina, trecemla urmatoarea pagina.
I Daca am ajuns la finalul cart, ii fara sa gasim numele,atunci acesta nu se afla ın carte.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın informatica
Eficient, a
Putet, i gasi un algoritm mai eficient? Prin algoritm maieficient ınt, elegem un algoritm care ne permite sa neındeplinim obiectivul mai rapid sau folosind mai put, ineresurse. Daca numele ıncepe cu Z de exemplu, vom fi nevoit, isa parcurgem ıntreaga carte, ceea ce va lua foarte mult timp!
Optimalitate
Prin algoritm optim ınt, elegem cel mai eficient algoritmpentru o problema data.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın programare
Motivat, ie
Scrierea algoritmilor ın pseudocod ne ajuta doar laınt, elegerea algoritmilor, dar nu ne ajuta concret la rezolvareaunei probleme. Pentru asta, trebuie sa implementamalgoritmii ıntr-un limbaj de programare.
IdeeUn limbaj de programare este un limbaj formal cu un set deinstruct, iuni pe care calculatorul s, tie sa le execute (direct sauindirect). Folosind un limbaj de programare, putemcomunica instruct, iuni calculatorului, care va executa anumiteact, iuni pe baza acestora.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın programare
Termeni de baza:
I Hardware: dispozitive fizice: procesoare, telefoane,desktop-uri etc.
I Software: programe care ruleaza cu ajutorulhardware-ului.
I Limbaj de programare: limbaj formal cu ajutorulcaruia scriem programe.
I Implementare: a transpune ceva ıntr-un program: unalgoritm, o idee etc.
I Compilare: Transformarea codului ıntr-un executabilcare poate fi rulat.
I Biblioteca: o colect, ie de funct, ii sau clase cu un anumitscop comun.
I Cod sursa: codul original ın urma caruia a rezultat unanumit program.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Introducere ın programare
Java este un limbaj:
1. Generalist
2. Multi platform
3. Orientat obiect (object oriented)
4. Static tipizat
5. Popular!
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Instruct, iuni de instalare
1. Instalat, i ultima versiune a Java SDK.
2. Instalat, i IntelliJ IDEA:https://www.jetbrains.com/. VersiuneaCommunity este gratis s, i acceptabila pentru scopurilenoastre. Folosind adresa voastra @ubbcluj.ro, va putet, iactiva s, i versiunea Ultimate daca dorit, i.
3. Creat, i un proiect nou, Java simplu.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Hello World!
Listing 1: Exemplu Java Hello World
1 package com.postuniv;
23 public class Main {
45 public static void main(String [] args) {
6 System.out.println("Hello world!");
7 }
8 }
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Disect, ia Hello World-ului
Listing 2: Exemplu Java Hello World
1 package com.postuniv;
23 public class Main {
45 public static void main(String [] args) {
6 System.out.println("Hello world!");
7 }
8 }
I 1: numele pachetului, ; pentru finalul de instruct, iune.
I 3: Modificator de acces, definirea unei clase, acoalada.
I 5: Metoda statica, acces public, tip de return void,parametri formali.
I 6: Apelul unei metode, afis, area unui s, ir de caractere(String).
I 7-8: Inchiderea acoladelor.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Elemente lexicale
I Mai multe linii de cod.
I Cuvinte cheie: for ,while, if etc.
I Comentarii: ıncep cu // s, i t, in pana la sfars, itul linieisau ıncep cu /* s, i t, in pana la urmatoarele */.
I Identificatori: secvent, e de caractere care ıncep culitere s, i cont, in litere, cifre sau .
I Operatori: +, -, *, / etc.
I Literali: valori constante scrise de programator.
Indentarea conteaza!Folosind spat, ii s, i caractere tab facem codul mai us, or decitit!
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Tipuri de dateTipuri des folosite ın Java:
I int:I Reprezinta mult, imea numerelor ıntregi pe 32 de bit, i.
I long:I Numere ıntregi pe 64 de bit, i.
I float:I Reprezinta mult, imea numerelor cu virgula pe 32 bit, i.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Tipuri de dateTipuri des folosite ın Java:
I string:I Un s, ir de caractere imutabil.I Format din caractere Unicode.
I tablouri:I O secvent, a mutabila de elemente.I Elementele sunt stocate consecutiv ın tablou s, i se
acceseaza prin pozit, ia lor.I Numerotarea pozit, iilor ıncepe de la 0!I Elementele trebuie sa aiba acelas, i tip!I Numarul de elemente este constant!
1 String [] cuvinte = {"Hello", "World"};
2 System.out.println(cuvinte [0]);
3 System.out.println(cuvinte [1]);
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Tipuri de dateTipuri des folosite ın Java:
I ArrayList: un tablou ın care putem adauga elemente(resizable).
1 List <Integer > tablouResizable = new ArrayList←↩<>();
2 tablouResizable.add(1);
3 tablouResizable.add(3);
4 tablouResizable.add(4);
56 System.out.println("Numarul de elemente din ←↩
tablou: " + tablouResizable.size());
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Expresii
O expresie este o combinat, ie de valori, constante, variabile,operatori s, i funct, ii care sunt interpretate conform unor regulide precedent, a, calculate s, i care produc o alta valoare. Deexemplu:
I Expresie numerica: 1 + 5.
I Expresie logica: 5 + 1 == 10 - 3.
I Expresie string: ”fundamentele ” + ”programarii”.
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Structuri repetitivefor, while, do while
Listing 3: structura for
1 for (int i = 0; i < 20; ++i) {
2 System.out.println(i);
3 }
Listing 4: structura while
1 int i = 0;
2 while (i < 20) {
3 System.out.println(i);
4 ++i;
5 }
Listing 5: structura do while
1 int i = 0;
2 do {
3 System.out.println(i);
4 } while (i > 0);
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Structuri condit, ionaleif, else if, else
Listing 6: FizzBuzz!
1 int n = 100;
2 for (int i = 0; i < n; ++i) {
3 if (i % 15 == 0) {
4 System.out.println("FizzBuzz!");
5 } else if (i % 3 == 0) {
6 System.out.println("Fizz!");
7 } else if (i % 5 == 0) {
8 System.out.println("Buzz!");
9 } else {
10 System.out.println(i);
11 }
12 }
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Citirea de la tastaturaScanner
Listing 7: Citirea datelor
1 package com.postuniv;
2 import java.util.Scanner;
34 public class Main {
56 public static void main(String [] args) {
78 Scanner s = new Scanner(System.in);
910 System.out.println("Cum te cheama?");
11 String nume = s.next();
12 System.out.println("Salut , " + nume + "!");
13 }
14 }
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
Exemple
Consultat, i proiectele ce ınsot, esc cursurile pentruexemple!
Curs I.1:Introducere ın Java
Vlad-SebastianIonescu
Elementeorganizatorice
Echipa
Orarul
Reguli s,i sistemul denotare
Introducere ıninformatica
Introducere ınprogramare
Introducere ın Java
Proprietat,i
Instalare
Elemente de baza
Elemente lexicale
Tipuri de date
Expresii
Structuri de control
Exemple
De ret,inut
De ret, inut
I Regulile disciplinei s, i sistemul de notare.
I Not, iunile de baza ale informaticii, programarii s, ilimbajului Java.
I Consultat, i ıntotdeauna exemplele asociate cursurilor.