utorak, 27. travnja 2021.

PROGRAMIRANJE ZADACI 2 NIVO REFERATI

 

PROGRAMIRANJE  9- RAZRED

ZADACI NEKOLIKO PRIMJERA

1. Q BASIC

1.U čitati 2 cijela broja i izračunati im zbir, razliku, proizvod i količnik. Ispisati one rezultate koji su trocifreni.

Opis rješenja:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

REM 1

PRINT "Prvi broj: ";

INPUT a

PRINT "Drugi broj: ";

INPUT b

 

proizvod = a * b

razlika = a - b

zbir = a + b

 

PRINT "Zbir je:"; zbir

PRINT "Razlika je:"; razlika

PRINT "Proizvod je:"; proizvod

 

IF b <> 0 THEN

    kolicnik = a / b

    PRINT "Količnik je:"; kolicnik

ELSE PRINT "Nije moguće dijeliti sa 0"

END IF

 

 

 

 

 

 

2. Učitavati realne brojeve sve dok razlika najmanjeg i najvećeg ne pređe 100. Ispisati najmanji i najveći broj.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

REM 2

REM Ucitavati realne brojeve sve dok razlika najmanjeg i najvećeg ne pređe 100 Ispisati najmanji i najveći broj.*/

max = 0

min = 0

WHILE (ABS(max - min) <= 100)

    PRINT "Unesite broj: "

    INPUT broj

    IF (broj > max) THEN

        max = broj

    END IF

    IF (broj < min) THEN

        min = broj

    END IF

WEND

PRINT "Razlika izmedju najmanjeg i najvecege je premasila 100!"

 

END

 

3  Izračunati sumu svih dvocifrenih prirodnih bojeva.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

REM 3 Izračunati sumu svih dvocifrenih  prirodnih bojeva

CLS

k = 10

n = 99

s = 0

FOR i = k TO n

    s = s + i

NEXT i

PRINT "Suma dvocifrenih brojeva iznosi", s

END

 

4. Učitati koordinate 3 tačke u ravni: x1,y1; x2, y2; x3,y3. Te 3 tačke predstavljaju tjemena trougla u ravni. Izračunati i štampati obim i površinu tog trougla. Za površinu koristiti Heronovu formulu.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

REM 4

REM Ucitati koordinate 3 tacke u ravni: x1,y1; x2, y2; x3,y3.

Te 3 tacke predstavljaju tjemena trougla u ravni.

Izracunati i štampati obim i površinu tog trougla.

Za površinu koristiti Heronovu formulu.*/

PRINT "Ucititi vrijednosti koordinata 3 tacke."

PRINT "Unesi vrijednost x1: ";

INPUT x1

PRINT "Unesi vrijednost y1: ";

INPUT y1

 

PRINT "Unesi vrijednost x2: ";

INPUT x2

PRINT "Unesi vrijednost y2: ";

INPUT y2

 

PRINT "Unesi vrijednost x3: ";

INPUT x3

PRINT "Unesi vrijednost y3: ";

INPUT y3

 

a = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))

b = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2))

c = sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1))

obim = a + b + c

s = obim / 2

povrsina = sqrt(s * (s - a) * (s - b) * (s - c))

 

PRINT "Obim = "; obim

PRINT "Povrsina = "; povrsina

 

END

 

 

5.  Ispisati najmanji 6-cifreni broj koji je djeljiv sa 3 a nije djeljiv sa 5.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

REM 23010220

REM Ispisati najmanji 6-cifreni broj koji je djeljiv sa 3 a nije djeljiv sa 5*/

i = 100000

WHILE NOT (i MOD 3 = 0 AND i MOD 5 <> 0) REM ponavljaj sve dok nije ispunjen uslov

    i = i + 1

WEND

PRINT "Najmanji 6-cifreni broj koje je djeljiv sa 3 a nije sa 5 je: "; i

END

 

 

II varijanta

REM 23010220

REM Ispisati najmanji 6-cifreni broj koji je djeljiv sa 3 a nije djeljiv sa 5*/

i = 100000

kraj = 0

WHILE kraj = 0

    IF (i MOD 3 = 0 AND i MOD 5 <> 0) THEN

        kraj = 1

    END IF

    i = i + 1

WEND

PRINT "Najmanji 6-cifreni broj koje je djeljiv sa 3 a nije sa 5 je: "; i - 1

END

 

 

PYTHON- Q BASIC

Učitati 3 broja. Naći razliku trećeg i drugog te proizvod prvog i drugog.

Listing programa:

1

2

3

4

5

6

7

8

9

REM 1

CLS

INPUT a

INPUT b

INPUT c

r = c - b

PRINT "razlika treceg i drugog je ", r

p = a * b

PRINT "proizvod prvog i drugog je ", p

 

čitati 3 broja. Naći razliku trećeg i drugog te proizvod prvog i drugog.

Listing programa :

1

2

3

4

5

6

7

8

9

10

11

# 1

 

a = int(input("Unesi prvi broj"))

b = int(input("Unesi drugi broj"))

c = int(input("Unesi treci broj"))

 

x = (c - b)

y = (a * b)

 

print ("Razlika treceg i drugog je", x)

print ("Proizvod prvog i drugog je", y)

 

Ispisati rastojanje između dvije upisane vrijednosti.

Listing programa:

1

2

3

4

5

REM 2

INPUT a

INPUT b

r = a - b

IF r > 0 THEN PRINT "rastojanj izmedju vrijednosti je ", r ELSE PRINT "rastojanj izmedju vrijednosti je ", r * (-1)

 

Ispisati rastojanje između dvije upisane vrijednosti.

Opis programa: Rastojenje je pozitivna vrijednost zato se treba izračunati aplsolutna vrijednost razlike dvije vrijednosti. Za to se koristi ugrađena matematička funkcija izračunavanja apsolutne vrijednosti Math.abs(b - a) >>.

Listing programa:

1

2

3

4

5

6

7

# 2

a = int(input("Unesi pocetnu vrijednost"))

b = int(input("Unesi krajnju vrijednost"))

 

r = abs(a - b)

 

print ("Rastojanje izmedju pocetne i krajnje vrijednosti je", r)

 

Napisati  program za izračunavanje površine trougla:

  • koristeći Heronovu formulu: S=(a+b+c)/2, P=SQRT(S(S-a)(S-b)(S-c))
  • po formuli P=a*h/2

Opis rješenja: Program izvodi ucitavanje stranica trougla i racunanje njegove povrsine, a drugi dio programa izvodi ucitavanje stranice a i visine ha i takodje racuna povrsinu.

Opis programa: Prva naredba je REM. Druga naredba je INPUT i ona ucitava stranice. Treca naredba racuna povrsinu po Heronovoj formuli. Cetvrta naredba PRINT ispisuje rezultat. Peta naredba INPUT ucitava stranicu a i visinu ha. Sesta naredba racuna povrsinu po izrazu P=a*h/2. Sedma naredba PRINT ispisuje rezultat. Osma naredba END oznacava kraj programa.

Listing programa:

1

2

3

4

5

6

7

8

9

1  REM

2  INPUT "Unesi stranice trougla"; a,b,c

3  S=(a+b+c)/2

   P=SQRT(S*(S-a)*(S-b)*(S-c))

4  PRINT "Povrsina trougla po Heronovoj formuli iznosi:"; P

5  INPUT "Unesi stranicu a i visinu ha"; a,h

6  p=a*h/2

7  PRINT "Povrsina trougla po formuli P=a*h/2 iznosi:"; p

8  END

 

Opis rješenja: Površina trougla se izračunava tako što se prvo izračuna vrijednost poluzbira S=(a+b+c)/2 a zatim povrišina po formuli: P=(S(S-a)(S-b)(S-c))1/2 odnosno P=SQRT(S(S-a)(S-b)(S-c)) gdje math.sqrt je funkcija za izračunavanje kvadratnog korijena.

Listing programa:

1

2

3

4

5

6

7

8

# 3

import math

a=float(input("Unesi a"))

b=float(input("Unesi b"))

c=float(input("Unesi c"))

s=(a+b+c)/2

p=math.sqrt(s*(s-a)*(s-b)*(s-c))

print ("Povrsina trougla je:",p)

 

 

 

 

 

 

 

 

C I BASIC

 Učitati 2 realna broja različita od 0. Ako su različitog predznaka sabrati ih, a ako su istog predznaka pomnožiti ih. Rezulat štampati na ekran.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

REM 1

REM Ucitati 2 realna broja razlicita od 0. Ako su razlicitog predznaka sabrati ih, a ako su istog predznaka pomnožiti ih. Rezulat štampati na ekran.*/

 

PRINT "Prvi broj:";

INPUT a

WHILE (a = 0)

    PRINT "Broj mora biti razlicit od 0.Drugi broj: "

    INPUT b

WEND

 

PRINT "Drugi broj:";

INPUT b

WHILE (b = 0 OR b = a)

    PRINT ("Broj mora biti različit od 0 i od već unesenih.Drugi broj:");

    INPUT b

WEND

 

IF ((a < 0 AND b > 0) OR (a > 0 AND b < 0)) THEN

    rezultat = a + b

ELSE

    rezultat = a * b

END IF

PRINT "Rezultat: "; rezultat

 

C

#include <stdio.h>

int main ()

{

    int a, b;

    double rezultat;

 

    printf("Prvi broj: ");

    scanf("%d",&a);

 

    while (a == 0) {

        printf("Broj mora biti različit od 0. Ponovi unos: ");

        scanf("%d",&a);

    }

 

    printf("Drugi broj ");

    scanf("%d",&b);

 

    while (b == 0) {

        printf("Broj mora biti razlicit od 0. Ponovi unos: ");

        scanf("%d",&b);

    }

 

    if ((a < 0 && b > 0) || (a > 0 && b < 0))

        rezultat = a + b;

    else

        rezultat = a * b;

 

    printf("Rezultat = %f \n", rezultat);

 

    return 0;

}

 

II varijanta

#include <stdio.h>

 

int main ()

{

    int a, b;

    double rezultat;

 

    printf("Prvi broj: ");

    scanf("%d",&a);

 

    while (a == 0) {

        printf("Broj mora biti razlicit od 0. Ponovi unos: ");

        scanf("%d",&a);

    }

 

    printf("Drugi broj ");

    scanf("%d",&b);

 

    while (b == 0) {

        printf("Broj mora biti različit od 0. Ponovi unos: ");

        scanf("%d",&b);

    }

 

    if ((a * b ) < 0)         // ako su brojevi sa raličitim predznacima proizvod je < 0

        rezultat = a + b;

    else

        rezultat = a * b;

 

    printf("Rezultat = %f \n", rezultat);

 

    return 0;

}

 

Učitati prirodan broj. Ako je neparan ispisati njegovu recipročnu vrijednost, a ako je paran ispisati kvadrat njegovog prethodnika.
https://www.znanje.org/knjige/computer/basic/072/072_zad/07211057.GIF

Opis rješenja: Zadatak možemo napisati u obliku formule:
https://www.znanje.org/knjige/computer/basic/072/072_zad/07211057.GIF                   
ODD funkcija za neparan je TRUE vrijednost i u IF naredbi izvodi se THEN

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

CLS

INPUT "Unesi broj a "; a

IF a MOD 2 <> 0 THEN

  y = 1 / a

  PRINT "Ulaz = "; a, "Rezultat = "; y

ELSE

  y = (a - 1) ^ 2

  PRINT "Kvadrat prethodnika broja a je"; b

END IF

END

 

II varijanta

CLS

INPUT "Unesi broj a "; a

IF a / 2 = INT(a / 2) THEN

  y = (a - 1) ^ 2

  PRINT "Kvadrat prethodnika broja a je"; b

ELSE

  y = 1 / a

END IF

PRINT "Ulaz = "; a, "Rezultat = "; y

END

 

#include<stdio.h>

#include<math.h>

 

main()

 

    {

        float y;

        int a;

         

        printf("Unesi A: ");

        scanf("%d",&a);

         

        if(a % 2 != 0)

         

            {

                y=1/a;

                printf("Rezultat je: %f.",y);

            }

        else

         

            {

                y=pow(a-1,2);

                printf("Rezultat je: %f.",y);

            }

        return 0;

    }

Učitati koordinate 3 tačke u ravni: x1,y1; x2, y2; x3,y3. Te 3 tačke predstavljaju tjemena trougla u ravni. Izračunati i štampati obim i površinu tog trougla. Za površinu koristiti Heronovu formulu.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

REM  2

REM Ucitati koordinate 3 tacke u ravni: x1,y1; x2, y2; x3,y3. Te 3 tacke predstavljaju tjemena trougla u ravni. Izracunati i štampati obim i površinu tog trougla. Za površinu koristiti Heronovu formulu.*/

PRINT "Ucititi vrijednosti koordinata 3 tacke."

PRINT "Unesi vrijednost x1: ";

INPUT x1

PRINT "Unesi vrijednost y1: ";

INPUT y1

 

PRINT "Unesi vrijednost x2: ";

INPUT x2

PRINT "Unesi vrijednost y2: ";

INPUT y2

 

PRINT "Unesi vrijednost x3: ";

INPUT x3

PRINT "Unesi vrijednost y3: ";

INPUT y3

 

a = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))

b = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2))

c = sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1))

obim = a + b + c

s = obim / 2

povrsina = sqrt(s * (s - a) * (s - b) * (s - c))

 

PRINT "Obim = "; obim

PRINT "Povrsina = "; povrsina

 

END

C

#include <stdio.h>

#include <math.h>

 

int main ()

{

    float a, b, c, x1, x2, x3, y1, y2, y3, obim, s, povrsina;

 

    printf("Koordinate 3 tacke\n");

    printf("Vrijednost x1: ");

    scanf("%f",&x1);

    printf("Vrijednost y1: ");

    scanf("%f",&y1);

    printf("Vrijednost x2: ");

    scanf("%f",&x2);

    printf("Vrijednost y2: ");

    scanf("%f",&y2);

    printf("Vrijednost x3: ");

    scanf("%f",&x3);

    printf("Vrijednost y3: ");

    scanf("%f",&y3);

 

    a = sqrt((x2-x1)*(x2-x1)+ (y2-y1)*(y2-y1));  // duzina stranice a

    b = sqrt((x3-x2)*(x3-x2)+ (y3-y2)*(y3-y2));  // duzina stranice b

    c = sqrt((x3-x1)*(x3-x1)+ (y3-y1)*(y3-y1));  // duzina stranice c

    obim = a + b + c;                          // obim trougla

    s = obim / 2    ;                              // polubom za Heronovu formulu

    povrsina = s *(s - a)*(s - b)*(s - c); // sqrt(s *(s - a)*(s - b)*(s - c));  // povrsina trougla

 

    printf("Stranice: a=%f  b=%f  c=%f \n", a, b, c);

    printf("s = %f \n", s);

    printf("Obim = %f \n", obim);

    printf("Povrsina = %f \n", povrsina);

 

    return 0;

}

Ispis na ekranu:

čitati 4 cijela broja. Ako je bar jedan od njih pozitivan izračunati im proizvod i štampati ga. Ako je bar jedan od njih negativan izračunati im zbir i štampati ga.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

REM 23010090

REM Ucitati 4 cijela broja. Ako je bar jedan od njih pozitivan izracunati im proizvod i Å¡tampati ga. Ako je bar jedan od njih negativan izracunati im zbir i Å¡tampati ga.*/

 

PRINT "Prvi broj: ";

INPUT a

 

PRINT "Drugi broj: ";

INPUT b

 

PRINT "Treci broj:";

INPUT c

 

PRINT "Cetvrti broj:";

INPUT d

 

IF (a > 0 OR b > 0 OR c > 0 OR d > 0) THEN

    rezultat = a * b * c * d

    PRINT "Proizvod: "; rezultat

ELSE

    PRINT "Svi su negativni."

END IF

 

IF (a < 0 OR b < 0 OR c < 0 OR d < 0) THEN

    rezultat = a + b + c + d

    PRINT "Zbir: "; rezultat; ""

ELSE

    PRINT "Svi su pozitivni."

END IF

IF (a = 0 AND b = 0 AND c = 0 AND d = 0) THEN

    PRINT "Svi su 0";

END IF

 

END

 

int main ()

{

    int a, b, c, d;

    double rezultat;

 

    printf("Prvi broj: ");

    scanf("%d",&a);

 

    printf("Drugi broj ");

    scanf("%d",&b);

 

    printf("Treći broj: ");

    scanf("%d",&c);

 

    printf("Cetvrti broj ");

    scanf("%d",&d);

 

    if (a > 0 || b > 0 || c > 0 || d > 0) {    // barem jedan broj pozitivan

        rezultat = a * b * c * d;

        printf("Proizvod = %f \n", rezultat);  // proizvod: a*b*c*d

    }

 

    if (a < 0 || b < 0 || c < 0 || d < 0) {

        rezultat = a + b + c + d;

        printf("Suma = %f \n", rezultat);      // suma: a+b+c+d

     }

 

     if (a==0 && b==0 && c==0 && d==0)          // svi brojevi nula

        printf("Svi brojevi su nule!");    

 

    return 0;

}

 

Napiši program za rješavanje slijedećeg izraza: C+++
https://www.znanje.org/knjige/computer/cpp/n/072cpp/072_zad/07212002.GIF

Opis rješenja: Nazivnik mora biti različit od nule 2x-1<>0.

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include <iostream>

 

using namespace std;

 

main()

 

{

    float x,y;

cout<<"Unesite x: "<<endl;

cin>>x;

if((2*x-1)!=0)

  {

    y=(3*x+8)/(2*x-1);

    cout<<y<<endl;

  }

else

  {

    cout<<"izraz nije definisan"<<endl;

  }

system("PAUSE");

}

 

 

PYTHON

# 1

# Razlomak

x=float(input("Unesite broj: "))

 

if 2*x-1 != 0:

    print((3*x+8)/(2*x-1))

else:

    print("Izraz nije definisan")

Zavisno o upisanoj vrijednosti časa 0-23 ispisati poruku:

Sati

Poruke

0 - 8

Dobro jutro

9 - 18

Dobar dan

19 - 23

Dobro veče

Opis rješenja: Rješenje možemo posmatrati na slijedeći način:

https://www.znanje.org/knjige/computer/cpp/n/072cpp/072_zad/07211067.GIF

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#include <cmath>

#include <iostream>

 

using namespace std;

 

   main()

{

       int x;

       cout<<"Unesite broj easova :"<<endl;

       cin>>x;

       if((x>=0)&&(x<=8))

         cout<<"dobro jutro"<<endl;

       else

         if((x>=9)&&(x<=18))

           cout<<"dobar dan"<<endl;

         else

           cout<<"dobro vece"<<endl;

       system ("pause>0 ");

       return 0;

}

 

x = int(input("Unesi vrijeme"))

if x > 0 and x < 9:

    print ("Dobro jutro")

if x > 8 and x < 19:

    print ("Dobar dan")

if x > 19 and x < 24:

    print ("Dobro vece")

 

Učitati 4 cijela broja. Ako je bar jedan od njih pozitivan izračunati im proizvod i štampati ga. Ako je bar jedan od njih negativan izračunati im zbir i štampati ga.

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

/*23010090 Učitati 4 cijela broja. Ako je bar jedan od njih pozitivan izračunati im proizvod i štampati ga. Ako je bar jedan od njih negativan izračunati im zbir i štampati ga.*/

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{   int a, b, c, d;

    cout  <<  "Unesite 4 cijela broja ";

    cin >> a >>b >>c >>d;

    if (a > 0 || b > 0 || c > 0 || d > 0) cout  <<  a*b*c*d  << endl;

    if (a < 0 || b < 0 || c < 0 || d < 0) cout  <<  a+b+c+d  << endl;

    if (a==0 && b==0 && c==0 && d==0) cout  << "Svi brojevi su nule! "  << endl;

    system("PAUSE");

    return EXIT_SUCCESS;

}

 

 

a=int(input("Unesi broj "))

b=int(input("Unesi broj "))

c=int(input("Unesi broj "))

d=int(input("Unesi broj "))

if a>0 or b>0 or c>0 or d>0:

                            p=a*b*c*d

                            print("Proizvod je ", p)

else:

     print("Svi su negativni")

if a < 0 or b < 0 or c < 0 or d < 0:

                            z=a+b+c+d

                            print("Zbir je ", z)

else:

     print("Svi su pozitivni")  

Ispis na ekranu:

 

 

 

 

 

 

 

 

 

JAVA

Započnimo ovaj uvod u Javu od osnovnih pitanja kao što su: šta je Java, gdje se koristi, koji tipovi aplikacija su kreirani u Javi i zašto koristiti Javu.

Šta je Java?
Java je programski jezik platforma.
Java je robustan, siguran i objektno-orijentisan programski jezik visokog nivoa.

Platforma: Svako hardversko ili softversko okruženje u kojem program radi se naziva platforma. Pošto Java ima svoje sopstveno runtime okruženje (JRE) i API, ona se naziva platformom.

Java primjer
Pogledajmo jedan primjer Java programa. Detaljan opis hello java primjera ćemo dati kasnije.

Listing programa:

1

2

3

4

5

6

7

8

  

class Simple{ 

    public static void main(String args[]){ 

     System.out.println("Hello Java"); 

    } 

}

Ispis na ekranu:

Hello Java

Gdje se koristi?
Prema kompaniji Sun, 3 milijarde uređaja koristi Javu. Postoji mnogo uređaja gdje se Java trenutno koristi. Navešćemo neke od njih:

1.   Desktop aplikacije kao što su acrobat reader, media player, antivirus itd.

2.   Web aplikacije.

3.   Enterprise aplikacije kao što su bankarske aplikacije.

4.   Mobilni uređaji.

5.   Ugrađeni (Embedded) sistemi.

6.   Smart Card

7.   Robotika

8.   Igre itd.

Tipovi Java aplikacija
Postoje uglavnom 4 tipa aplikacija koje se mogu kreirati pomoću Java programiranja:

1) Samostalne (Standalone) aplikacije
Poznate su takođe i kao desktop aplikacije ili window-based aplikacije. To su aplikacije koje moramo instalirati na svakoj mašini kao što su media player, antivirus itd. AWT i Swing se koriste u Javi za kreiranje samostalnih aplikacija.
2) Web aplikacije
Aplikacija koja radi na serverskoj strani i kreira dinamičke stranice, se naziva web aplikacija. Trenutno, servlet, jsp, struts, jsf itd. tehnologije se koriste za kreiranje web aplikacija u Javi.
3) Enterprise aplikacije
To su aplikacije koje se distribuiraju u oblastima kao što je bankarstvo i sl. One imaju prednost visokog nivoa sigurnosti, tzv. load balancing-a (u računarstvu, load balancing poboljšava distribuciju radnih sati preko višestrukih računarskih resursa, kao što su računari, računarski klasteri, mrežni linkovi, centralne procesne jedinice ili disk drajvovi. Optimizuje upotrebu resursa, minimizuje vrijeme i smanjuje preopterećenje svakog pojedinog resursa), i klasterovanja. U Javi, EJB se koristi za kreiranje enterprise aplikacija.
4) Mobilne aplikacije
To su aplikacije koje su kreirane za mobilne uređaje. Trenutno, Android i Java ME se koriste za kreiranje mobilnih aplikacija.

Može se navesti mnogo karakteristika Jave. One su takođe poznate i kao “java buzzwords”. Sljedeće karakteristike Jave su jednostavne i lake za razumijevanje:

1.     Jednostavnost

2.     Objektna orijentisanost

3.     Platformna nezavisnost

4.     Sigurnost

5.     Robustnost

6.     Arhitekturna neutralnost

7.     Prenosivost

8.     Dinamičnost

9.     Interpretiranost

10.   Visoke performanse

11.   Višenitnost (Multithread)

12.   Distribuiranost

Jednostavnost
Prema kompaniji Sun, jezik Java je jednostavan zato što:

  • ima sintaksu koja je zasnovana na C++ (pa je za programere lakše da ga nauče nakon C++).
  • je uklonio mnogo zbunjujućih i/ili rijetko korištenih karakteristika napr. eksplicitne pointere, preopterećenje operatora itd.
  • nema potrebe za uklanjanjem nereferenciranih objekata jer sadrži tzv. Automatsko sakupljanje smeća (Automatic Garbage Collection).

Objektna orijentisanost
Objektna orijentisanost znači da se softver organizuje kao kombinacija različitih tipova objekata koji uključuju i podatke i ponašanje.
Objektno-orijentisano programiranje (OOP) je metodologija koja pojednostavljuje razvoj i održavanje softvera tako što obezbjeđuje određena pravila.
Osnovni koncepti OOP su:

1.     Objekt

2.     Klasa

3.     Nasljeđivanje

4.     Polimorfizam

5.     Apstrakcija

6.     Enkapsulacija

Platformna nezavisnost
Platforma je hardversko ili softversko okruženje u kojem program radi. Dakle, postoje dva tipa platformi: softverski zasnovane i hardverski zasnovane. Java obezbjeđuje softverski zasnovanu platformu. Java platforma se razlikuje od većine drugih platformi u smislu da je to softverski zasnovana platforma koja radi na drugim hardverski zasnovanim platformama. Ona ima dve komponente:

1.     Runtime okruženje

2.     API (Application Programming Interface)

Java kod se može pokrenuti na različitim platformama napr. Windows, Linux, Sun Solaris, Mac/OS itd. Java kod se prvo kompajlira, a onda konvertuje u tzv. bytecode. Ovaj bytecode je platformno nezavisan kod i može se pokrenuti na različitim platformama. Ovaj princip se naziva Write Once Run Anywhere (WORA), tj. napiši jednom pokreni svuda.

https://www.znanje.org/knjige/computer/Java/ib01/061Java/061_karakteristike_jave01.png
Slika 1.

Sigurnost
Java je sigurna zato što:

  • nema eksplicitnih pointera
  • programi se pokreću unutar tzv. “vreće s pijeskom u virtualnoj mašini” (Virtual Machine Sandbox)

https://www.znanje.org/knjige/computer/Java/ib01/061Java/061_karakteristike_jave02.pnghttps://www.znanje.org/knjige/computer/Java/ib01/061Java/061_karakteristike_jave03.png
Slika 2.

  • Classloader – poboljšava sigurnost razdvajajući paket za klase lokalnog fajl sistema od onih koje su uvezene iz mrežnih izvora.
  • Bytecode Verifikator – provjerava fragmente koda na ilegalni kod koji može narušiti pristupna prava objektima.
  • Security Manager – određuje kojim resursima klasa može pristupiti, napr. čitanje i pisanje po lokalnom disku.

Ove sigurnosti obezbjeđuje jezik Java. Neke sigurnosti se takođe mogu obezbijediti preko aplikacionog developera kroz SSL, JAAS, kriptografiju itd.

Robustnost


Robustan jednostavno znači snažan. Java koristi snažno upravljanje memorijom. Odsustvom pointera izbjegavaju se sigurnosni problemi. U Javi postoji automatsko sakupljanje otpadaka (garbage collection). Takođe, u Javi postoje mehanizmi rukovanja izuzecima (exception handling) i provjere tipa (type checking). Sve ove stavke čine Javu robustnom.

Arhitekturna neutralnost


Nema karakteristika zavisnih od implementacije napr. veličina primitivnih tipova je utvrđena.

Prenosivost
Moguće je prenijeti Java bytecode na bilo koju platformu.

Visoke performanse
Java je brža od tradicionalne interpretacije pošto je bytecode "blizak" izvornom kodu, ali ipak je nešto sporija od kompajliranih jezika (napr. C++).

Distribuiranost
Moguće je kreirati distribuirane aplikacije u Javi. RMI i EJB se koriste za kreiranje distribuiranih aplikacija. Moguće je pristupati fajlovima pozivanjem metoda iz bilo koje mašine na internetu.

Višenitnost (Multi-threading)
Nit (thread) je poput zasebnog programa koji se izvršava konkurentno. Moguće je pisati Java programe koji rade na mnogim zadacima odjednom tako što se definišu višestruke niti. Glavna prednost višenitnosti (multi-threadinga) je da on dijeli istu memoriju. Niti su važne za multimediju, Web aplikacije itd.

Postoji mnogo razlika i sličnosti između C++ programskog jezika i Jave. Ovdje je data lista glavnih razlika između C++ i Jave:

Indeks poređenja

C++

Java

Platformna nezavisnost

C++ je platformno zavisan.

Java je platformno nezavisna.

Uglavnom se koristi za

C++ se uglavnom koristi za sistemsko programiranje.

Java se uglavnom koristi za aplikaciono programiranje. Široko se koristi u window, web, enterprise i mobilnim aplikacijama.

Goto

C++ podržava goto naredbu.

Java ne podržava goto naredbu.

Višestruko nasljeđivanje

C++ podržava višestruko nasljeđivanje.

Java ne podržava višestruko nasljeđivanje kroz klasu. To se može postići preko interfejsa u Javi.

Preopterećenje operatora

C++ podržava preopterećenje operatora.

Java ne podržava preopterećenje operatora.

Pointeri (pokazivači)

C++ podržava pointere. Moguće je napisati pointer program u C++.

Java podržava pointer interno. Ali nije moguće napisati pointer program u Javi. To znači da Java ima ograničenu podršku za pointer.

Kompajler i Interpreter

C++ koristi samo kompajler.

Java koristi i kompajler i interpreter.

Call by Value i Call by reference

C++ podržava i call by value i call by reference.

Java podržava samo call by value. Ne postoji call by reference u Javi.

Strukture i Unije

C++ podržava strukture i unije.

Java ne podržava strukture i unije.

Podrška za niti (Thread)

C++ nema ugrađenu podršku za niti. Zavisi od biblioteka treće strane za podršku niti.

Java ima ugrađenu podršku za niti.

Dokumentacioni komentar

C++ ne podržava dokumentacioni komentar.

Java podržava dokumentacioni komentar (/** ... */) za kreiranje dokumentacije za Java izvorni kod.

Virtualne ključne riječi

C++ podržava virtualne ključne riječi tako da možemo odlučiti hoćemo li redefinisati (override) funkciju.

Java nema virtualnih ključnih riječi. Možemo redefinisati sve ne-statičke metode po defaultu. Drugim riječima, ne-statičke metode su virtualne po defaultu.

Neoznačeni pomak u desno >>>

C++ ne podržava >>> operator.

Java podržava >>> operator koji piše nule na vrhu za negativne brojeve. Za pozitivne brojeve, on radi isto kao >> operator.

Stablo nasljeđivanja

C++ uvijek kreira novo stablo nasljeđivanja.

Java uvijek koristi jedno stablo nasljeđivanja zato što su sve klase djeca klase Obj

 

ZADACI JAVA I Q BASIC

avisno o upisanoj vrijednosti časa 0-23 ispisati poruku:
https://www.znanje.org/knjige/computer/basic/072/072_zad/07211067.gif

Opis rješenja:

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

REM P07211067;

CLS

PRINT "Koje je vrijeme?"

INPUT x

IF (x >= 0) AND (x <= 8) THEN

  PRINT "Dobro jutro"

ELSEIF (x >= 9) AND (x <= 18) THEN

    PRINT "Dobar dan"

  ELSE

    PRINT "Dobro vece"

END IF

END

 

package zadatak;

import java.util.Scanner;

public class P07211067 {

    public static void main(String[] args)  {

    Scanner input = new Scanner (System.in);

 

    System.out.print("Ukucajte broj proteklih casova: ");

    int x = input.nextInt();

    if ((x >= 0) && (x <= 8)) //&& - logicko i II- logicko ili

        System.out.println("Dobro jutro");

    else

        if ((x >= 9) && (x <= 18))

            System.out.println("Dobar dan");

        else

            System.out.println("Dobro vece");  

}}

 

 

 

Napiši program za rješavanje slijedećeg izraza:
https://www.znanje.org/knjige/computer/python/072python/072_zad/07212002.GIF

Opis rješenja: Nazivnik mora biti različit od nule 2x-1<>0.

Listing programa:

1

2

3

4

5

6

7

8

# 07212002

# Razlomak

x=float(input("Unesite broj: "))

 

if 2*x-1 != 0:

    print((3*x+8)/(2*x-1))

else:

    print("Izraz nije definisan")

 

package zadatak;

import java.util.Scanner;

public class P07212002 {

    public static void main(String[] args)  {

    Scanner input = new Scanner (System.in);

 

    System.out.println("Izraz");

    System.out.print("Broj ");

    double x = input.nextInt();

    if (2*x - 1 != 0)

        System.out.println("Rezultat je "+ (3*x + 8)/(2*x - 1));

    else

        System.out.println("Nije moguce dijeliti sa nulom");

}}

 

8.7.. Učitati prirodne brojeva K i M sa tastature. Od broja K ispisati M neparni brojeva.

Opis programa: Petlja sadrži provjeru da li broj neparan - ispisuje ga i uvećava brojač za 1. Izlazak iz pelje je kad se ispiše željeni broj (m) neparnih brojeva

Listing programa:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

// 08702103

#include <stdio.h>

 

int main ()

{

 

    int k, m;

    printf("Od broja: ");

    scanf("%d", &k);

    printf("Zeljeni broj m: ");

    scanf("%d", &m);

    int i, br;

    i = k;      // početna vrijednost

    br = 0;     // brojač - početna vrijednost

 

    while (br < m) {           // dok nije ispisan željeni broj neparnih broeva ponavljaj - pocetak petlje

        if (i % 2 != 0) {      // da li je broj paran

            printf("%d \n",i); // ispis neparnog

            br = br + 1;       // brojač neparnih uvečaj za 1

        }

        i++;    // napredovanje kroz petlju

    }

    return 0;

}

 

Verzija 2

// 08702103

#include <stdio.h>

 

int main ()

{

 

    int k, m;

    printf("Od broja: ");

    scanf("%d", &k);

    printf("Zeljeni broj m: ");

    scanf("%d", &m);

 

    int nepar;            // početna vrijednost za neparne

    if (k%2 != 0)         // odredi neparan broj od k ili k +1

        nepar = k;        // k neparan startaj k

    else

        nepar = k + 1;    // k nije neparna startaj od slijedećeg broja k+1 (to je neparan broj)

 

    for (int i=0; i < m; i++)    // ponavljanje za i=0 do i < m - pocetak petlje

        printf("%d \n", nepar + 2 * i); // startna vrijednost + 2*i

    return 0;

}

 

package Zadatak;

import java.util.Scanner;

public class P08702103 {

 

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print("Od broja k= ");

        int k = input.nextInt();

        System.out.print("Željeni broj m= ");

        int m = input.nextInt();

 

        int i, br;

        i = k; // početna vrijednost

        br = 0; // brojač - početna vrijednost

         

        while (br < m) {

            if (i % 2 != 0) {

                System.out.println(i); // ispis

                br = br + 1; // brojač         

            }

            i++; // napredovanje kroz petlju       

        }

    }

}

 

Nema komentara:

Objavi komentar

Kolicina-toplote