java curs 01

8
Java_Curs_01. Primul program Java. 1. Crearea si rularea primelor programe Java din linia de comanda. Pentru a crea si rula un program Java din linia de comanda trebuie: a) sa scriem programul intr-un editor de texte si sa il salvam cu extensia .java; 2) sa compilam programul prin comanda javac; 3) sa rulam programul prin comanda java. 1.1. Scrierea programului. Codul sursa al unui program Java este unul sau mai multe fisiere text cu extensia .java. Cream pe discul de lucru o mapa cu numele Laborator_Java, de exemplu, in care vom salva toate programele noastre. Pentru scrierea programului se poate folosi orice editor de texte. Deschidem, de exemplu, Notepad si scriem primul programul: class HelloWorld { public static void main(String[] args) System.out.println(“Hello World from Java!”); } Numele fisierului sursa trebuie sa coincida cu numele clasei ce contine metoda main(). Deci vom salva programul cu numele HelloWorld.java. 1.2. Compilarea programului. Compilarea programului din linia de comanda se face cu comanda javac. In linia de comanda, deschidem directorul Laborator_Java si scriem comanda: javac HelloWorld.java apoi apasam tasta enter. Compilatorul javac va traduce programul nostru in codul de octeti (byte code) si va salva rezultatul in directorul curent intr-un fisier cu acelas nume ca si fisierul sursa, dar cu extensia .class: HelloWorld.class 1.3. Lansarea in executie a programului. Lansarea programului in executie se face prin comanda: java HelloWorld In fereastra de sistem vom obtine mesajul: Hello World from java! Daca ati obtinut acest mesaj, inseamna ca totul este ok. 1

Upload: sunnymen

Post on 25-Dec-2015

8 views

Category:

Documents


1 download

DESCRIPTION

Introducere in Java

TRANSCRIPT

Page 1: Java Curs 01

Java_Curs_01. Primul program Java.

1. Crearea si rularea primelor programe Java din linia de comanda.

Pentru a crea si rula un program Java din linia de comanda trebuie: a) sa scriem programul intr-un editor de texte si sa il salvam cu extensia .java; 2) sa compilam programul prin comanda javac; 3) sa rulam programul prin comanda java.

1.1. Scrierea programului.

Codul sursa al unui program Java este unul sau mai multe fisiere text cu extensia .java. Cream pe discul de lucru o mapa cu numele Laborator_Java, de exemplu, in care vom salva toate programele noastre. Pentru scrierea programului se poate folosi orice editor de texte. Deschidem, de exemplu, Notepad si scriem primul programul:

class HelloWorld{

public static void main(String[] args)System.out.println(“Hello World from Java!”);

}

Numele fisierului sursa trebuie sa coincida cu numele clasei ce contine metoda main(). Deci vom salva programul cu numele HelloWorld.java.

1.2. Compilarea programului.

Compilarea programului din linia de comanda se face cu comanda javac. In linia de comanda, deschidem directorul Laborator_Java si scriem comanda:

javac HelloWorld.java

apoi apasam tasta enter. Compilatorul javac va traduce programul nostru in codul de octeti (byte code) si va salva rezultatul in directorul curent intr-un fisier cu acelas nume ca si fisierul sursa, dar cu extensia .class:

HelloWorld.class

1.3. Lansarea in executie a programului.

Lansarea programului in executie se face prin comanda:

java HelloWorld

In fereastra de sistem vom obtine mesajul:

Hello World from java!

Daca ati obtinut acest mesaj, inseamna ca totul este ok.

1

Page 2: Java Curs 01

1.4. Discutia programului.

Fisierul sursa al programului este salvat cu extensia .java si are numele identic cu numele claseice contine metoda main()

Programul se compileaza din linia de comanda cu comanda javac, iar rezultatul compilarii este un fisier byte-code salvat in directorul curent cu acelas nume ca si fisierul sursa, dar cu extensia.class

Orice program are o clasa care contine metoda main() si cu aceasta metoda incepe executia programului

Metoda main() trebuie sa contina obligatoriu parametrii String[] args Elementele public si static din antetul functiei main() sunt modificatori cu acelas sens ca si in

C++ void este tipul metodei main() cu aceeas semnificatie ca si in C++ Java este un limbaj case sensitive, adica face distinctie intre literele mari si mici In exemplul nostru programul afiseaza un sir de caractere. Afisarea se face prin apelul metodei

System.out.println(). Dupa afisare cursorul trece la inceputul liniei urmatoare.

1.5. Exemple de programe Java.

Exemplul 1. Numerele Fibonacci sunt: f[0] = 0, f[1] = 1, f[k] = f[k-2] + f[k-1] pentru k = 2, 3, ….Scrieti un program care calculeaza si afiseaza numerele Fibonacci pana la k=13.

class Fibonacci{

public static void main(String[] args){int i, n = 13, a = 0, b = 1, c;System.out.println("f"+0+" = "+a);System.out.println("f"+1+" = "+b);for(i=2; i<=n; i++){

c = a + b;System.out.println("f"+i+" = "+c);a = b;b = c;

}}

}

In metoda main() am declarat 5 variabile de tip int, unele din ele sunt initializate.Observati argumentul metodei System.out.println(). Metoda extrage un sir de caractere, valoarea expresiei din paranteze. In Java concatenarea sirurilor de caractere se face cu operatia “+”. In cazul nostru sunt alipite consecutiv sirul “f” cu sirul ce reprezinta valoare curenta a variabilei i, apoi cu sirul “ = “ si in final cu sirul ce reprezinta valoarea variabilei c. Sirul obtinut in rezultatul concatenarii este extras pe ecran.

Exemplul 2. Scrieti un program care calculeaza cel mai mare divizor comun al numerelor naturale a, b,

2

Page 3: Java Curs 01

c.

class Cmmdc {public static void main(String[] args){

long a = 124, b = 346, c = 864, d = 1, r, min;min = ( ( r = (a < b) ? a : b ) < c ) ? r : c;for(long i = 2; i <= min; i++){

if( a % i == 0 && b % i == 0 && c % i == 0 ) d = i;}System.out.println(“cmmdc(“+a+”,”+b+”,”+c+”)=”+d);

}}

In acest exemplu am folosit o expresie conditionala compusa pentru a determina valoarea min – cel maimic numar dintre numerele a, b, c.In instructiunea if am folosit o expresie logica compusa. Mentionam ca in Java sunt 2 valori logice: truesi false. Alte valori nu mai pot fi interpretate ca valori logice, cum era in C++. Expresia din instructiunea if trebuie sa aiba numai valoarea true sau false, alta valoare nu mai este acceptata.

Exemplul 3. Scrieti un program care calculeaza cel mai mic multiplu comun al numerelor naturale a, b,c.

class Cmmmc {public static void main(String[] args){

long a = 12, b = 34, c = 86, d = a * b * c, r, max;max = ( ( r = (a > b) ? a : b ) > c ) ? r : c;for(long i = d - 1; i <= max; i--){

if( i % a == 0 && i % b == 0 && i % c == 0 ) d = i;}System.out.println("cmmmc("+a+","+b+","+c+")="+d);

}}

Exemplul 4. Scrieti un program care determina daca un numar natural n este prim sau nu.

import java.lang.Math;

class NrNatural {public static void main(String[] args){

long n = 12, d = 1;

for(long i = 2; i < Math.sqrt(n); i++){

if( n % i == 0) d = i;}System.out.print("Numarul "+n);

3

Page 4: Java Curs 01

if( d != 1 ) System.out.print(" nu");

System.out.println(" este prim");}

}

In acest exemplu am folosit metoda sqrt() - radacina patrata dintr-un numar. Ea se contine in pachetul java.lang.Math si de aceea acest pachet a fost importat, adica inclus la programul nostru (analogic cu #include din C++).

Exemplul 5. Scrieti un program care calculeaza suma cifrelor unui numar natural n.

public class SumaCifrelor {

public static void main(String[] args) {long n = 123456789, S = n % 10;System.out.print("Suma cifrelor numarului " + n);n /= 10;while( n != 0){

S += n % 10;n /= 10;

}System.out.println(" este " + S);

}}

Exemplul 6. Aflati elementul maximal intr-un sir numeric.

public class ElementMaxim {

static void printSir(double [] x){

int i;for(i = 0; i < x.length; i++){

System.out.print(x[i] + " ");}

}

public static void main(String[] args) {double x[] = { 1.1, 2.2, -3.3, -4.4, 5.5, -6.6, 7.7 }, t;System.out.println("\nSirul initial:");printSir(x);int i, n = x.length;t = x[0];for(i = 1; i < n; i++)

4

Page 5: Java Curs 01

{if( x[i] > t ){

t = x[i];}

}System.out.println("\nElementul maximal este: " + t);}

}

Aici, in clasa ElementMaxim, avem 2 metode: printSir(double [] x), care afiseaza sirul numeric x si metoda main().

Exemplul 7. Ordonati crescator un sir numeric.

public class OrdonareCrescator {

public static void main(String[] args) {double x[] = { 1.1, 2.2, -3.3, -4.4, 5.5, -6.6, 7.7 }, t;System.out.println("\nSirul initial:");printSir(x);int i, j, n = x.length;for(i = 0; i < n - 1; i++){

for(j = i + 1; j < n; j++){

if( x[i] > x[j] ){

t = x[i];x[i] = x[j];x[j] = t;

}}

}System.out.println("\nSirul ordonat crescator:");printSir(x);}

static void printSir(double [] x){

int i;for(i = 0; i < x.length; i++){

System.out.print(x[i] + " ");}

}}

5

Page 6: Java Curs 01

Si in acest exemplu avem metodele printSir(double [] x) si main(). Observam ca ordinea metodelor in clasa nu conteaza.

Exemplul 8. Sa se caute un numar aleator intreg cuprins in intervalul [a,b], unde a si b sunt intregi.

import java.lang.Math;/**

Exemplu cu instructiunea break si utilizareametodei random() din clasa Math

*/public class ExRandom{

public static void main(String args[]){int a = 10, b = 20, x;

while( true ){// vom folosi metoda Math.random() din clasa Math

x = ( int )( Math.random() * ( b + 1 ) );/*

Metoda Math.random() genereaza un numar double aleator cuprins in [ 0.0, 1.0 ).Observati ca numarul 1.0 nu intra. De aceea am inmultit cu ( b + 1 ). In asa fel, datorit operatiei ( int ), vom obtine potential si numarul b.

*/if ( a <=x ) break;}System.out.println(x);}

}

Am putea calcula direct x = a + ( int )Math.random() * ( b – a + 1 ), fara a folosi ciclul respectiv. Dar un scop al exemplului a fost ilustrarea utilizarii instructiunii break.

In Java sunt 3 tipuri de comentarii, pe care le-am ilustrat in acesat exemplu.

1.6. Parametri in linia de comanda.

Un program Java poate primi oricate argumente de la linia de comanda ın momentul lansarii ei. Aceste argumente sunt utile pentru a permite utilizatorului sa specifice diverse optiuni legate de functionarea aplicatiei sau sa furnizeze anumite date initiale programului.Argumentele de la linia de comanda sunt introduse la lansarea unei aplicatii, fiind specificate dupa numele programului si separate prin spatiu. In cazul ın care sunt mai multe, argumentele trebuie separate prin spatii iar daca unul dintre argumente contine spatii, atunci el trebuie pus ıntre ghilimele.Evident, o aplicatie poate sa nu primeasca nici un argument sau poate sa ignore argumentele primite de la linia de comanda. In momentul lansarii unei aplicatii interpretorul parcurge linia de comanda cu care a fost lansata aplicattia si, ın cazul ın care exista, transmite programului argumentele specificate sub forma unui vector de siruri. Acesta este primit de aplicatie ca parametru al metodei main(). Reamintim ca formatul metodei main() din clasa principala este: public static void main (String args[]). Vectorul args, primit ca parametru de metoda main(), va contine toate argumentele transmise programului de la linia de comanda. Vectorul args este instantiat cu un numar de elemente egal cu numarul

6

Page 7: Java Curs 01

argumentelor primite de la linia de comanda. Asadar, pentru a afla numarul de argumente primite de program este suficient sa aflam dimensiunea vectorului args prin intermediul atributului length: args.length.

Exemplul 9. Parametri in linia de comanda.

public class ParametriLiniaComanda {

public static void main(String[] args) {String Nume, Prenume;Nume = args[0];Prenume = args[1];System.out.println("Salut" + Prenume + Nume + "!");System.out.println("Vrei sa stii greutatea ta ideala?");System.out.println("Vezi programul din exemplul 10 :)");

}

}

Exemplul 10. Greutatea ta ideala.

import java.util.Scanner;// clasa Scanner ~ pentru a citi date de la tastatura

public class MasaIdeala {

public static void main(String[] args) {double masa, varsta, inaltimea;Scanner intrare;intrare = new Scanner(System. in );System.out.print("Ce varsta ai: ");

// citirea unui numar real de la tastaturavarsta = intrare.nextFloat();System.out.print("Ce inaltime ai: ");inaltimea = intrare.nextFloat();

// formula de calcul a masei idealemasa = 50 + 0.75 * (inaltimea-150) + 0.25 * (varsta - 20);System.out.println("Masa ideala (barbat) = " + masa + " kg");System.out.println("Masa ideala (femeie) = " + 0.9*masa + " kg");}

}

import javax.swing.JOptionPane;

public class MasaIdealaV2 {

public static void main(String[] args) {float masa, inaltimea;

7

Page 8: Java Curs 01

int varsta;// afisarea pe ecran a ferestrei de dialog Ce varsta ai:String intrare = JOptionPane.showInputDialog("Ce varsta ai: ");// citirea unui numar real de la tastaturavarsta = Integer.parseInt(intrare);intrare = JOptionPane.showInputDialog("Ce inaltime ai (in cm): ");inaltimea = Float.parseFloat(intrare);masa = 50F + 0.75F * (inaltimea-150F) + 0.25F * (varsta - 20F);String masaideala = "Barbat = " + masa + " kg\n";masaideala = masaideala + "Femeie = " + 0.9*masa + " kg";JOptionPane.showMessageDialog(null, masaideala,"Masa

ideala",JOptionPane.INFORMATION_MESSAGE);}

}

8