Curs I.1: Introducere în Java - cs.ubbcluj.ro

28
Curs I.1: Introducere ˆ ın Java Vlad-Sebastian Ionescu Elemente organizatorice Echipa Orarul Reguli s ,i sistemul de notare Introducere ˆ ın informatic˘ a Introducere ˆ ın programare Introducere ˆ ın Java Propriet˘ at ,i Instalare Elemente de baz˘ a Elemente lexicale Tipuri de date Expresii Structuri de control Exemple De ret , inut Curs I.1: Introducere ˆ ın Java Echipa, regulile, introducere in Java Vlad-Sebastian Ionescu Universitatea Babes , -Bolyai & NTT DATA 2017

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.