Gjuhë Programuese - elektrolibraria.files.wordpress.com · Gjuhë Programuese 2. 3. Literature ne...

Preview:

Citation preview

Gjuhë Programuese

Semestri IKadri Sylejmani, Dipl. Ing.

Prishtinë 2009, FIEK

FIEK, Prishtinë 2009

Ligjeratat dhe ushtrimet janë obligative

Disiplina në klasë

2 orë ligjerata dhe dy ore ushtrime në javë

Gjuhë Programuese

Disiplina në klasë

Telefonat mobil të jenë të fikur ose pa zë

Ju lutem mos më thirrni në telefon !

Më shkruani në kadri.sylejmani@fiek.uni-pr.edu

Materiali në ueb faqen:http://gjuheprogramuese.googlepages.com

FIEK, Prishtinë 2009

•Gjatë rrjedhës se semestrit do te organizohen tri kollokviume

•Secili kollokviume është eliminues

Orari i mbajtjes se kollokviumeve:

Gjuhë Programuese

Orari i mbajtjes se kollokviumeve:

•Kolokviumi I kah mesi i muajit Nentor

•Kollokviumi II para vitit të ri

•Kollokviumi III rreth dates 15 Janar 2009

FIEK, Prishtinë 2009

Librat :

1. Bazat e programimit ne C++, Agni Dika

www.agnidika.net/programimiCpp

Algoritmet, Agni Dika

Gjuhë Programuese

2. Algoritmet, Agni Dika

3. Literature ne C++

FIEK, Prishtinë 2009

Gjuhë Programuese

� Në kompjuter, të dhënat ruhen dhe përpunohen si vargje të shifrave binare 1 e 0, të koduara në një kod binar (ang. binary code).

� Harduri dhe softueri

Programet dhe Programimi� Programet dhe Programimi

� Programi paraqet një listë të urdhërave (instruksioneve, komandave) të cilat i tregojnë kompjuterit që të kryejë veprime të ndryshme.

FIEK, Prishtinë 2009

Zhvillimi i sistemeve

1. Hulumtimi

preliminar

2. Analiza

e sistemit

6. Mirëmbajtja e

sistemit

FIEK, Prishtinë 2009 6

3. Dizajnimi

i sistemit

4. Zhvillimi

i sistemit

5. Implementimi i

sistemit

� Cikli jetësor i zhvillimit të sistemeve

Programimi

� Pesë hapat e programimit:

Definimi i problemit

FIEK, Prishtinë 2009 7

� Definimi i problemit

� Dizajnimi i programit (përshkrimi, bllok-skema, pseudokodi)

� Kodimi i programit

� Testimi i programit

� Dokumentimi dhe mirëmbajtja

Definimi i problemit

� Specifikimi i qëllimeve dhe shfrtyëzuesve

� Kërkesat për daljen

� Kërkesat për hyrjen

FIEK, Prishtinë 2009 8

� Kërkesat për hyrjen

� Kërkesat për procesim

� Studimi i fizibilitetit të implementimit të programit

� Dokumentimi dhe analiza

Dizajnimi i programit

� Përcaktimi i logjikës së programit përmes qasjes top-down (nga lartë-poshtë) dhe modularitetit, duke përdorur grafin hierarkik

FIEK, Prishtinë 2009 9

përdorur grafin hierarkik

� Dizajnimi i detajeve duke përdorur pseudokodin, grafet e rrjedhës (bllok diagramet) me preferencë në bazë të strukturave kontrolluese

� Dizajnimi i testimit me përshkrim të strukturuar

Kodimi i programit

� Zgjedhja e gjuhës së lartë programuese të përshtatshme

Kodimi i programit në atë gjuhë, duke respektuar

FIEK, Prishtinë 2009 10

� Kodimi i programit në atë gjuhë, duke respektuar sintaksën me kujdes

Testimi i programit

� Testimi në tavolinë dhe zbulimi i gabimeve

� Ekzekutimi i programit dhe debugimi i tij (alfa testimi)

FIEK, Prishtinë 2009 11

testimi)

� Ekzekutimi me të dhëna reale (beta testimi)

Dokumentimi dhe mirëmbajtja

� Përgatitja e dokumentacionit për shfrytëzuesit

� Shkruarja e dokumentacionit për operatorët

Shkruarja e dokumentacionit për programerë

FIEK, Prishtinë 2009 12

� Shkruarja e dokumentacionit për programerë

� Mirëmbajtja e programit

Pesë gjeneratat e gjuhëve programuese

� Gjuhët Programuese:

� Gjenerata e parë, 1945 - Gjuhët e ulëta programuese – Gjuha e makinës – 0, 1

FIEK, Prishtinë 2009 13

makinës – 0, 1

� Gjenerata e dytë, mesi i viteve 1950 - Asembleri – mnemonic (ADD, SUB, MOV...)

� Gjenerata e tretë, fillimi i viteve 1960 – Gjuhët e larta programuese (gjuhët procedurale: Cobol, Basic, C…)

� Gjenerata e katërt, fillimi i viteve 1970 – Gjuhët shumë të larta programuese (Të orientuara nga problemet) – Sql, Intellect, Nomad, Focus

� Gjenerata e pestë, fillimi i viteve 1980 – Gjuhët natyrale

Programimi – zhvillimet e reja

� Programimi i orientuar në objekte

� C++/#, Java…

Programimi vizual

FIEK, Prishtinë 2009 14

� Programimi vizual

� Visual Studio - Visual Basic, Visual C++/#…

� Internet programimi

� HTML, XML, VRML, Java, ActiveX, Scripting Languages (VBScript, JavaScript, Perl…)

Përkthyesit

� Program burimor (ang. source program, source code) –fajll burimor (ang. source file)

Program objektiv (ang. object program,

Kodi burimor

Kompajleri

FIEK, Prishtinë 2009 15

� Program objektiv (ang. object program, object code) -fajll objektiv (ang. objekt file)

� Assemblers, Intepreters, Compilers

� Linker --> program ekzekutiv (ang. executable program, exe file) - fajll ekzekutiv (ang. exe file)

Kodi i objktit

Kodi i makinës

Asembleri

Termat

� Identifikatorët

� Variablat

� Deklarimi

Inicializimi

FIEK, Prishtinë 2009 16

� Inicializimi

� Konstantet

� Literalet

� Operatorët

� Komentet

� Urdhërat

Programi i parë në C++

#include <iostream>

using namespace std;

int main()

{{

cout << "Programimi ne C++ " ;

return 0;

}

FIEK, Prishtinë 2009

Programimi në C++

#include <iostream>

using namespace std;

int main()

{{

cout << "Programimi ne C++ " ;

return 0;

}

# - simboli për direktivat preprocesorike - include (përfshijë, përmbajë)using namespace std – përdorë hapësirën/zonën emërtuese standardeiostream – Input Output Stream (Rrjedha hyrëse, dalëse)main ( ) – funksioni themelor, kryesorcin – operatori për leximcout – operatori për shtypjereturn (kthe) – kthimi i rezultatit të funksionit

FIEK, Prishtinë 2009

Komentet:

// Komenti në një rresht

/*Komenti në disa rreshta, apo /*Komenti në disa rreshta, apo

komenti në bllok */

FIEK, Prishtinë 2009

Komentet

//Programi i parë

#include <iostream>

using namespace std;

int main()

{

/* Përmes operatorit për shtypje, cout,

shtypet në ekran */

cout << "Programimi ne C++ " ;

return 0;

}

FIEK, Prishtinë 2009

Programi:

Kreu i programit

Direktivat preprocesorike

FunksionetFunksionet

Funksioni main()

Deklarimi i variablave

Urdhërat e programit

Mbyllja e programit

FIEK, Prishtinë 2009

Programi

FIEK, Prishtinë 2009

Programimi C++

//Programi i tretë

#include <iostream>

using namespace std;int main()

FIEK, Prishtinë 2009 23

int main(){

int a;cin >> a; // leximi prej tastierecout << a; // shtypja në ekranreturn 0;

}

Përmbajtja

� Çka mësuam javën e kaluar ?

� Blloqet elementare të algoritmeve

� Algoritmet për llogaritjen e shumës

� Algoritmet për llogaritjen e prodhimit

� Algoritmet për llogaritjen e faktorielit� Algoritmet për llogaritjen e faktorielit

� Algoritmet për llogaritjen e vlerës së

funksioneve të ndryshme

� Algoritmet për operim me vargje numerike

Programimi në C++

#include <iostream>

using namespace std;

int main()

{

cout << "Programimi ne C++ " ;

return 0;

}

# - simboli për direktivat preprocesorike - include (përfshijë, përmbajë)using namespace std – përdorë hapësirën/zonën emërtuese standardeiostream – Input Output Stream (Rrjedha hyrëse, dalëse)main ( ) – funksioni themelor, kryesorcin – operatori për leximcout – operatori për shtypjereturn (kthe) – kthimi i rezultatit të funksionit

FIEK, Prishtinë 2009

Algoritmet themelore

∑=

++++==n

i

niS3

...543

Llogaritja e shumës së numrave të plotë

Llogaritja e shumës së

numrave të kombinuar

2

3

x2iss

++=

( )

>−+

≤++= ∑

+

=

4.55 për x 123

4.55për x 232

2

1

1

2

xx

xjxy

n

jPo

Fillimi

n,x

s=0

Jox 4.55

Llogaritja e vlerës së

funksionit

Po

Jo

j=1

s=s+{j+2x}2

j=j+1

j n+1)

y

Fundi

y=2x+3 s y=3x2+2x-1

{ }∑ +=+

=

1n

1j

22xjs

Llogaritja e prodhimit të numrave të plotë

niPn

i

*...*3*2*11

==∏=

Llogaritja e shumës dhe prodhimit

njëkohësisht

1. Të gjendet shprehja e

funksionit.

2. Sa është vlera e m-it

dhe n-it?

2p3s2

xy −+=

Të gjendet shprehja e funksionit që llogaritet

me këtë algoritëm

+⋅=3

xkpp

4p2

xg −=

Llogaritja e vlerës së faktorielit

1

2

3

4

5

Fillimi

n

F=1

i=1

F=F i

1

2

3

4

5

6

7

8

9

Po

Jo

i=i+1

i n

F

Fundi

6

7

8

9

F = 1 1 2 3

11

8

5

Vlera fillestare(3)

Shembull: Të llogaritet vlera e faktorielit

F=(2m+n)!

Llogaritja e vlerës së funksioneve që

përmbajnë shumë dhe faktoriel

++−=

n i)!2n(*2x*3y Po

Fillimi

x,n

F=1

i=1

i=i+1

F=F i

F=(n+2)!Rasti kur faktorieli nuk varet nga vlera e anëtarëve të veçantë të shumës

∑=

++−=1i 3

)!2n(*2x*3yJo

i (n+2)

y

Fundi

y=3x-2s

Jo

Po

s=0

i=1

i=i+1

i n

++=3

iFss

∑=

+=

n

1i3

iFs

Llogaritja e vlerës së funksioneve që

përmbajnë shumë dhe faktoriel

( )∑=

−+−=n

1i

x)!1i2(*32

xy

Fillimi

x,n

F=1

j=1

F F j

i=1

s=0

F=(2i+1)!

Rasti kur faktorieli llogaritet për çdo anëtar të shumës

=1i2

Jo

Po

Jo

F=F j

j=j+1

j (2i+1)

Po

s=s+[F-x]

i=i+1

i n

y

Fundi

3s2

xy −=

Llogaritja e vlerës së funksoneve në rastet

kur anëtarët e caktuar të shumës apo

prodhimit nuk merren në konsideratë

∏≠=

+++=n

3,2i1i 3

i)!1i(2x3y

+⋅=3

iFpp

Krijimi i algoritmeve për operim me vargje

Shembull: Te gjendet sa anëtarë ka vektori Temperaturat[10, 7, 9, 3, 5, 11,-2].

Krijimi i algoritmeve për operim me vargje

Shembull: Te gjendet prodhimi i anëtarëve të vektorit me vlerë mes 5 dhe 8, si dhe të shtypen anëtarët tjerë.

A keni ndonjë pyetje ?

Përmbajtja

� Çka mësuam javën e kaluar ?� Algoritmet me të ndërlikuara me shumë, prodhim dhe faktoriel� Tipet/Llojet e të dhënave në C++� Identifikatorët

Tipet/Llojet e të dhënave në C++� Identifikatorët� Deklarimi i variablave� Shtypja e vlerave ne ekran� Leximi i vlerave nga tastiera� Karakteret për braktisje të sekuencës� Libraria/Klasa iomanip.h

Llogaritja e vlerës së funksioneve që

përmbajnë shumë dhe faktoriel

( )∑=

−+−=n

1i

x)!1i2(*32

xy

Fillimi

x,n

F=1

j=1

F F j

i=1

s=0

F=(2i+1)!

Rasti kur faktorieli llogaritet për çdo anëtar të shumës

=1i2

Jo

Po

Jo

F=F j

j=j+1

j (2i+1)

Po

s=s+[F-x]

i=i+1

i n

y

Fundi

3s2

xy −=

Tipet/Llojet e të dhënave në C++

Tipi Rangu i vleravemadhësia

në bajta

unsigned short int

16 bit

0..65535 2

short int- 16 bit -32768..32767 2

unsigned long int 0..4294967295 4

long int -2147483648..2147483647 4

int - 32 bit -2147483648..2147483647 4int - 32 bit -2147483648..2147483647 4

unsigned int –

32 bit

0..4294967295 4

float 1.2E-38..3.4E38 4

double 2.2E-308..1.8E308 8

char 256 simbole 1

Bool True, False 1

String 256 simbole/karaktere 1 bajt per

secilin

karaketer

Identifikatorët� Njësit elementare memoruese në të cilat vendosen të dhënat dherezultatet e programeve emrohen duke përdorur identifikator (ang. Identifier)

� Si identifikator formohen emrat e konstanteve, variablave, nënprogrameve dhe strukturave tjera të krijuara gjatë programimit.

� Identifikatorët formohen si kombinim i shkronjave (a, b, ..., z, A, B, ..., Z), numrave (0, 1, 2, ..., 9) dhe simbolit për nënvizim (_). Simboli i parënë identifikator mund të jet shkronjë ose simboli për nënvizim. në identifikator mund të jet shkronjë ose simboli për nënvizim.

� P.sh., si identifikator mund të merren:� dita� Koha5� distanca_mes_rreshtave� TemperaturaDitore� _Fillimi� a234b35� P8

Identifikatorët – vazhdim

� Gjatësia e identifikatorëve nuk është e kufizuar. Por, përdorimi i identifikatorëve shum të gjatë është jopraktike ngadonjëherë edhe me probleme gjatë kompajlimit

� Fjalët kyçe të cilat përdoren në gjuhën C++ nuk lejohettë përdoren si identifikator

P.sh., si identifikator nuk mund të përdoren fjalët:� P.sh., si identifikator nuk mund të përdoren fjalët:

� else

� cout

� if

� while

Deklarimi i variablaveVariabla deklarohet, duke deklaruar tipin dhe emrin:

tipiVariablës emriVariablës,

P.sh. :

int a;

double x;

float z;

short int koha;short int koha;

char g;

char Emri[20];

int x,y;

//Deklarimi i perbashket

long int dita,e,f3;

//Deklarimet ne nje rresht

double x,h; int g; float a,p;

Deklarimi i variablave – vazhdim

Variabla deklarohet, duke deklaruar tipin dhe emrin:

tipiVariablës emriVariablës;

P.sh. :

int A[8]; //Vektoriint A[8]; //Vektori

double Z[3][5]; //Matrica

Indekset fillojnë me vlerën zero

int A[6];//6 anëtar - A[0],D[1],...,D[5].

Deklarimi dhe inicializimi

int i=5;

double a=5.3;

int A[5]={7,2,4,1,3};

char Z[7]={'d','4','*','a','G','$'};

//Vektori me karaktere

const double PI=3.1415926;

Deklarimi dhe inicializimi – vazhdim

const int m=5;

int A[m]={7,2,4,1,3};

const int m=4,n=3;

int K[m][n]={{7,4,1},int K[m][n]={{7,4,1},

{2,5,8},

{3,6,2},

{8,1,3}};

Shtypja e vlerave ne ekran

#include

<iostream.h>

int main()

Kreu i programit – Koment

Direktivat preprocesorike

cout <<a1 <<a2 … <<an;

int main()

{

int a;

a=5;

cout << a;

return 0;

}

Funksioni main()

Deklarimi i variablave

Urdhërat e programit

Mbyllja e programit

Leximi i vlerave nga tastiera

#include <iostream.h>

int main()

{

cin >>a1 >>a2 … >>an;

{

int a;

cin >> a; /leximi prej tastiere

cout << a;

return 0;

}

Shembull - Llogaritja e vleres mesatare// Programi cin-cout – Llogaritja e vleres mesatare

#include <iostream.h>

int main()

{

int n1, n2, n3;

float nm;

cout<<"Jepni tri notat: " ;cout<<"Jepni tri notat: " ;

cin >> n1 >> n2 >> n3;

nm=(n1+n2+n3)/3;

cout <<"Nota mesatare="

<< nm

<< endl;

return 0;

}

Shtypja e vlerave ne ekran në formë të

formatizuar

Cout.width(k); // rezervon shtypjen në k-kolona

cout.width(8); // shtypja e rezultatit ne 8 kolona

cout << a; // p.sh., nese shtypet variabla a, qe

// ka vleren 15

// rezultati do te duket si ne vijim

LLLLLL15 // ku L paraqet zbrazetiren, rreshtimi

// plotesimi i vendeve te rezervuara

// behet nga skaji i djathte

cout.precision(k); // shtypja me precizitet te caktuar ne k-kolona

cout.fill('f'); // mbushja me simbolin ‘f ’

Shtypja e formatizuar – shembull

#include <iostream.h>

int main()

{

int x=52;

cout.width(10);

cout.fill('*');cout.fill('*');

cout << x

<< endl;

return 0;

}

Karakteret për braktisje të sekuencës

Escape-sequence characters

\a Alarm

\b Backspace

\f Form Feed (për printer)

\n New line (CR+LF) (rreshti i ri)

\r CR (clear)

\t Tab\t Tab

\v Vertical Tab

\\ \

\? ?

\’ ‘

\” “

\000 Numër oktal

\xhh Numër heksadecimal

\0 Null zero (zero binare)

Karakteret për braktisje të sekuencës

Escape-sequence characters

\xhh, mund të përdoret për të shtypur në ekran karakteret të cilat nuk i kemi në tastierë,

p.sh. shkronja “ë” dhe “ç”, nga gjuhës shqipe. ASCII kodi përkatës i karakterit, duhet të shkruhet në formën heksadecimale. P.sh. për “ë”, kodi është: “137” (Si e formën heksadecimale. P.sh. për “ë”, kodi është: “137” (Si e shtypim zakonisht në tastierë, ALT+137). Atëherë, 137 në bazën 16 (numër heksadecimal), është: 89. Prandaj, për ta shtypur në dalje shkronjën “ë”, duhet të shkruhet: “\x89”

“Sot është ditë e mirë” – në C++ duhet të shkruhet :

cout << “Sot \x89sht\x89 dit\x89 e mir\x89” ;

Shikoni shembullin në vijim dhe provoni të

gjeni çka do të shtypet si rezultat i

ekzekutimit të programit.

#include <iostream.h>

int main()

{

int x = 5;int x = 5;

int y = 7;

cout <<endl;

cout << x + y << " " << x * y;

cout <<endl;

return 0;

}

A keni ndonjë pyetje ?

Përmbajtja

� Çka mësuam javën e kaluar ?� Libraria/Klasa iomanip.h� Libraria/Klasa math.h� Leximi i fjalive nga tastiera� Operatorët aritmetik� Operatorët krahasuesOperatorët aritmetik

� Operatorët krahasues� Operatorët logjik� Shprehjet aritmetikore në C++� Struktura për degëzim IF� Operatori për kushtëzim “?”� Struktura për degëzim Switch

Libraria/Klasa iomanip.h

� Setw(gjeresia),

� Setfill(simboli)

� Setprecision(preciziteti)

� Right

� Left� Left

Libraria/Klasa math.h

� pow(baza, eksponenti)

� exp(eksponenti)

� sqrt()

� abs()

� sin(x)� sin(x)

� Etj.

Leximi i fjalive

� cin.get(a,n) // n – numri i karaktereve që lexohen

� cin.getline() // leximi i nje rreshti

#include <iostream.h>

int main()

{

const m=20;

#include <iostream.h>

int main()const m=20;

char A[m];

cout << "Fjalia që lexohet: ";

cin.get(A,m);

cout << "Fjalia që u lexua: "

<< A

<< "\n";

return 0;

}

int main()

{

const m=20;

char A[m];

cout << "Fjalia që lexohet: ";

cin.getline(A,m);

cout << "Fjalia që u lexua: "

<< A

<< "\n";

return 0;

}

Operatorët aritmetik

Operatori Operacioni Shembull Rezultati

+ Mbledhja 3+2 5

- Zbritja 3-2 1- Zbritja 3-2 1

* Shumëzimi 3*2 6

/ Pjestimi 3/2 1.5

% Moduli 3%2 1

Operatorët krahasues / Relacional

Operato

ri

Domethënia Shembull Rezultati

< Më i vogël se 2 < 3 true

<= Më i vogël se, 3 <= 2 false

ose barazi me

== Barazi me 3 == 3 true

> Më i madhë se 3 > 2 true

>= Më i madhë se,

ose barazi me

2 >= 3 false

!= Jobarazi me 2 != 3 true

Operatorët logjik

Operatori Operacioni Shembull Rezultati

&& Konjukcioni

, AND

(2 < 3) && (4 == 4) true

, AND

|| Disnjuk-

sioni,

OR

(2 != 3) || (3 > 4) false

! Negacioni,

NOT

!(5 > 4) false

Shprehjet aritmetikore në C++

�Gjatë llogaritjes së vlerave numerike të shprehjeve

aritmetikore, merret prioriteti vijues i ekzekutimit

1. * / %

2. + -

�Nëse në shprehje paraqiten më shumë operator të rangut të njëjtë, ato ekzekutohen duke shkuar prej anës së majtë kah të njëjtë, ato ekzekutohen duke shkuar prej anës së majtë kah ana e djathtë e shprehjes.

z=2*y/a-3*b+c/2*d+4

42

cdb3

a

y2z ++−=

në matematikë

në C++

Demonstrimi i radhës së ekzekutimit

z=2*y/a-3*b+c/2*d+4

Struktura për degëzim IF

if (kushti) urdhëri ;

ose

if (kushti)

>x 0

X është pozitiv

Fillimi

x

Fundi

Po

Jo

urdhëri ;

� kushti - kushti për degëzim

� urdhëri – komanda që ekzekutohet

nëse plotësohet kushti

#include <iostream.h>

int main()

{

int x;

cout << "Vlera x=";

cin >> x;

if (x > 0)

cout << "\nx eshte pozitiv

\n";

return 0;

}

Struktura për degëzim IF– shembull

#include <iostream.h>

int main()

{

int x;

cout << "Vlera x=";

cin >> x;cin >> x;

if (x > 0)

cout << "\n x eshte

pozitiv \n";

if (x < 0)

cout << "\n x eshte

negativ \n";

return 0;

}

Struktura për degëzim IF – shembull

#include <iostream.h>

int main()

{

int x;

cout << "Vlera x=";

cin >> x;>x 0

Fillimi

x

Po

Jo

cin >> x;

if ((x%2) == 0)

cout << "\n x eshte cift\n";

if ((x%2) == 1)

cout << "\n x eshte tek\n";

return 0;

}

X është pozitiv

Fundi

Po

<x 0

X është negativ

Po

Jo

Struktura për degëzim IF – vazhdim

If (kushti)

urdhëri1;

else

urdhëri2;

� kushti - kushti për degëzim.

� urdhëri1 - urdhëri që ekzekutohet nëse plotësohet kushti k.

� urdhëri2 – urdhëri që ekzekutohet nëse nuk plotësohet kushti

Struktura për degëzim IF – shembull

#include <iostream.h>

int main()

{

int x;

cout << "Vlera x=";

cin >> x;cin >> x;

if (x > 0)

cout << "\nx eshte pozitiv \n";

else

cout << "\nx eshte negativ\n";

return 0;

}

Forma e përgjithshme e strukturës për

degëzim IF

if (kushti)

{

urdhëri1;

urdhëri2;

urdhërin;urdhërin;

}

else

{

urdhëri1;

urdhëri2;

urdhërim;

}

Struktura për degëzim IF – shembull

#include <iostream.h>

int main()

{

int x,y,z;

cout << "Vlera x=";

cin >> x;

if (x > 0)if (x > 0)

{

y=2*x;

z=x*x;

cout << "\ny=2*x="<<y;

cout << "\nz=x*x="<<z;

}

else

cout << "\nx eshte negativ\n";

cout<<endl;

return 0;

}

Strukturat e ndërthurura për degëzim

if (kushti1)

if (kushti2)

urdhëri1;

elseelse

urdhëri2;

else

urdhëri3;

Strukturat e ndërthurura për degëzim –

shembull

#include <iostream.h>

int main()

{

int x;

cout << "Vlera x=";

cin >> x;

if (x > 0)

if (x>10)

cout << "\nx eshte pozitiv me i madh se 10\n";

else

cout << "\nx eshte pozitiv me i vogel se 10\n";

else

cout << "\nx eshte negativ \n";

return 0;

}

Struktura për degëzim IF me operatorë

logjik – shembull

#include <iostream.h>

int main()

{

int x,y,z;

cout << "Vlera x=";

cin >> x;

Si do të dukej algoritmi për këtë kod ?

if ((x > 0) && (x>10))

{

cout << "\nx eshte pozitiv me i madh se 10\n";

}

else

cout << "\nx eshte negativ\n";

cout<<endl;

return 0;

}

Operatori për kushtëzim “?”

(Kushti) ? (urdhëri1) : (urdhëri2);

#include <iostream.h>

int main()

{{

int a=2, b=8;

int y;

y=(a>b) ? a : b;

cout << "Vlera e variablës y="

<< y

<< "\n";

return 0;

}

Struktura për degëzim Switch

switch (variabla)

{

case a1:

urdhërat ;

break;

case a2:

urdhërat;

break;

case an:

urdhërat;

break;

default :

urdhërat;

}

Struktura për degëzim Switch – shembull

int Nota;

cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;

cin >> Nota;

switch(Nota)

{

case 1: cout<<"Dobet: ";

break;break;

case 2: cout<<"Mjaftueshem: “;

break;

case 3: cout<<"Mire: ";

break;

case 4: cout<<"Shume mire: ";

break;

case 5: cout<<"Shkelqyeshem: ";

break;

default: cout <<"Gabim-Nota duhet”

<<“ te jete mes 1 dhe 5\n";

}

int Nota;

cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;

cin >> Nota;

if (Nota == 1) cout<<"Dobet: ";

else

if (Nota == 2) cout<<"Mjaftueshem: ";

else

if (Nota == 3) cout<<"Mire: ";

else

if (Nota == 4) cout<<"Shume mire: ";

else

if (Nota == 5) cout<<"Shkelqyeshem: ";

else cout << "Gabim - Nota duhet mes 1 dhe 5";

A keni ndonjë pyetje ?

Përmbajtja për këtë ligjëratë

� Çka mësuam javën e kaluar ?

-Struktura për degëzim IF

� Strukturat për degëzim IF të ndërthurura

� Operatori për kushtëzim “?”

� Struktura për degëzim Switch

� Kapërcimi pa kusht Goto

� Unaza While

Leximi i fjalive

� cin>>a� cin.get(a,n) // n – numri i karaktereve që lexohen� cin.getline(a,n) // leximi i nje rreshti

Cin.get( ) nuk e shlyen delimiterin nga baferi, perderi sa cin.getline e shlyen delimiterin nga baferi.cin.getline e shlyen delimiterin nga baferi.

Forma e përgjithshme e strukturës për

degëzim IF

if (kushti)

{

urdhëri1;

urdhëri2;

urdhërin;urdhërin;

}

else

{

urdhëri1;

urdhëri2;

urdhërim;

}

Strukturat e ndërthurura për degëzim

if (kushti1)

if (kushti2)

urdhëri1;

elseelse

urdhëri2;

else

urdhëri3;

Strukturat e ndërthurura për degëzim –

shembull

#include <iostream.h>

int main()

{

int x;

cout << "Vlera x=";

cin >> x;

if (x > 0)

if (x>10)

cout << "\nx eshte pozitiv me i madh se 10\n";

else

cout << "\nx eshte pozitiv me i vogel se 10\n";

else

cout << "\nx eshte negativ \n";

return 0;

}

Struktura për degëzim IF me operatorë

logjik – shembull

#include <iostream.h>

int main()

{

int x,y,z;

cout << "Vlera x=";

cin >> x;

Si do të dukej algoritmi për këtë kod ?

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

{

cout << "\nx eshte pozitiv me i vogel ose

baraz me 10\n";

}

else

else if(x>10)

else

cout << "\nx eshte negativ\n";

cout<<endl;

return 0;

Operatori për kushtëzim “?”

(Kushti) ? (urdhëri1) : (urdhëri2);

#include <iostream.h>

int main()

{{

int a=2, b=8;

int y;

y=(a>b) ? a : b;

cout << "Vlera e variablës y="

<< y

<< "\n";

return 0;

}

Struktura për degëzim Switch

switch (variabla)

{

case a1:

urdhërat ;

break;

case a2:

urdhërat;

break;

case an:

urdhërat;

break;

default :

urdhërat;

}

Struktura për degëzim Switch – shembull

int Nota;

cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;

cin >> Nota;

switch(Nota)

{

case 1: cout<<"Dobet: ";

break;break;

case 2: cout<<"Mjaftueshem: “;

break;

case 3: cout<<"Mire: ";

break;

case 4: cout<<"Shume mire: ";

break;

case 5: cout<<"Shkelqyeshem: ";

break;

default: cout <<"Gabim-Nota duhet”

<<“ te jete mes 1 dhe 5\n";

}

int Nota;

cout<<"Jepni noten 1, 2, 3, 4 ose 5 : Nota=" ;

cin >> Nota;

if (Nota == 1) cout<<"Dobet: ";

else

if (Nota == 2) cout<<"Mjaftueshem: ";

else

if (Nota == 3) cout<<"Mire: ";

else

if (Nota == 4) cout<<"Shume mire: ";

else

if (Nota == 5) cout<<"Shkelqyeshem: ";

else cout << "Gabim - Nota duhet mes 1 dhe 5";

Kapërcimi pa kusht - goto

#include <iostream.h>

int main()

{

goto Fundi;

Fillimi: //Labela – etiketa,adresa “Fillimi”

cout<< "Fillimi\n";

goto Dalja;goto Dalja;

Mesi: //Labela – etiketa,adresa “Mesii”

cout << "Mesi\n";

goto Fillimi;

Fundi:

cout << "Fundi\n";

goto Mesi;

Dalja:

return 0;

}

Kapërcimi pa kusht – goto - shembull

#include <iostream.h>int main(){int i; char zgjedhja;Perseritje: //Labela(etiketa-adresa) per kapercim pa kusht

cout << "Zgjedhni vleren per i: i=";cin >> i;cout << endl;cout << endl;if (i<10)

cout << "Keni zgjedhur i me te vogel se 10\n\n";else cout << "Keni zgjedhur i me te madh ose baraz me 10\n\n";

cout << "Perserite testin? (P-Po, J-Jo) \a";cin >> zgjedhja;if ((zgjedhja=='P') || (zgjedhja =='p'))

goto Perseritje;cout <<"\n ****************** Dalja ********************\n";return 0;}

� Përsëritja e ekzekutimit të një apo më shumë urdhrave të programit

� Unaza ka variablen e unazës, e cila përdoret si tregues se sa herë do të përsëriten urdhrat brenda unazës (ciklet e përsëritjes)

� Zakonisht variabla e unazës fillon me vlerën fillestare dhe për çdo herë të ekzekutimit të urdhrave të unazës, e ndryshon vlerën për një

Unazat (Loops - laqet)

Unaza (kushti){Variabla_e_unazës;komandat;

}

fillestare dhe për çdo herë të ekzekutimit të urdhrave të unazës, e ndryshon vlerën për një hap të caktuar, që njihet si hapi i unazës

� Ky ndryshim (rritje, zvogëlim, etj) i vlerës së variablës së unazës, për hapin e caktuar, vazhdon deri sa të plotësohet kushti për dalje prej unazës

� Në dalje apo hyrje të unazës, testohet se a është plotësuar kushti për dalje prej unazës (apo hyrje në unazë)

Unaza whilei=f;

while(kushti)

{

urdhëri/at;

i=i+h;

}

ku janë:

i - variabla e unazës.

f - vlera fillestare e variablës së unazës.

kushti - kushti i ekzekutimit të urdhërave që përfshihen në trupin e unazës.

h - hapi me të cilin ndryshohen vlerat e variablës i.

urdhëri/at – urdhërat që ekzekutohen brenda unazës.

Unaza while – shembull

#include <iostream.h>

int main()

{

double S;

int i;

S=0;

i=1;//vlera fillestare

while (i<=10)//kushti për mbetje brenda unazëswhile (i<=10)//kushti për mbetje brenda unazës

{

S=S+i; //urdhëri

i=i+1; //rritja e hapit të unazës

}

cout << "S="

<< S

<< "\n";

return 0;

}

A keni ndonjë pyetje ?

Çka mësuam javën e kaluar ? � Strukturat për degëzim IF të ndërthurura

� Operatori për kushtëzim “?”

� Struktura për degëzim Switch

� Kapërcimi pa kusht Goto

� Unaza While

Përmbajtja për këtë ligjëratë:� Unaza do – while� Unaza for� Ndërprerja e unazës� Kapërcimi i hapit të unazës� Krijimi i algoritmeve për operim me vargje� Deklarimi, inicializimi dhe shtypja e vlerave të anëtarëve të vektorit

Unaza do – while

i=f;

do

{

urdhëri/at;

i=i+h;

}

while(kushti);

i=f;

while(kushti)

{

urdhëri/at;

i=i+h;

}while

ku janë:i - variabla e unazës.

f - vlera fillestare e variablës së unazës.

kushti - kushti i ekzekutimit të urdhërave që përfshihen në trupin

e unazës.h - hapi me të cilin ndryshohen vlerat e variablës i.

urdhëri/at – urhdëri/at e përfshira brenda unazës.

}

Unaza do – while – shembull

#include <iostream.h>

int main()

{

const int m=3;

int i;

double s;

s=0;s=0;

i=1; //vlera fillestare

do //(do - bëj, vepro, kryej)

{

s=s+i; //urdhëri

i++; /rritja e hapit të unazës

}

while (i<=m);//kushti për mbetje në unazë

cout << "Shuma s= "

<< s

<< "\n";

return 0;

}

Unaza for

for (i=f; kushti; i=i+h)

{

urdhëri/at;

}

i++ � rritja per nje e vlerës së i-sëi-- � zvoglimi për një i vlerës së i-sëi+=h � rritja per hapin h e vlerës së i-sëi-=h � zvoglimi për hapin h i vlerës së i-së

ku:

i - variabla e unazës.

kushti - kushti i mbetjes brenda unazës.

h - hapi me të cilin ndryshohen vlerat e

variablës i.

urdhëri/at – urdhëri/at që ekzekutohen

brenda unazës.

Unaza for – algoritmi

Ndërprerja e unazës – komanda break

OSE

#include <iostream.h>

int main()

{

int i;

for (i=1;i<=10;i++)

{

if (i>5) if (i>5)

break;

cout << "i="

<< i

<< "\n";

}

return 0;

}

Kapërcimi i hapit të unazës – komanda continue

Fillimi

n

i=1

Po

#include <iostream.h>

int main()

{

int i;

for (i=1;i<=10;i++)

{

i

Fundi

i<=n

Po

Jo

i=i+1

i=5Po

Jo

{

if (i = = 5) continue;

//kalo hapin, për i=5

cout << "i=" << i

<<endl;

}

return 0;

}

Shembull: Të gjendet shuma e numrave prej

1 deri në n, por duke përjashtuar treshin (3)

, si në vijim:

∑≠

=

n

ii

i

31

Fillimi

n

S=0

#include <iostream.h>

int main()

{

int i,n;double s=0;

cout << "Vlera e variables n=";

cin >> n;

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

Jo

Po

Jo

i=1

S=S+i

i=i+1

i n

S

Fundi

i 3Po

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

{

if (i==3) continue;

//kaloje 3-shin

s=s+i;

}

cout << "Shuma s="

<< s

<< "\n";

return 0;

}

Krijimi i algoritmeve për operim me vargje

Shembull: Te gjendet sa anëtarë ka vektori Temperaturat[10, 7, 9, 3, 5, 11,-2].

Krijimi i algoritmeve për operim me vargje

Shembull: Te gjendet prodhimi i anëtarëve të vektorit me vlerë mes 5 dhe 12, si dhe të shtypen anëtarët tjerë.

Deklarimi, inicializimi dhe shtypja e vlerave

të anëtarëve të vektorit

//Shtypja horizontale

#include <iostream.h>

int main()

{

const int m=5;

int i;

int A[m]={2,5,-1,6,3};int A[m]={2,5,-1,6,3};

cout << "Vektori A"

<< "\n";

for (i=0;i<m;i++)

cout << A[i]

<< " ";

cout << "\n";

return 0;

}

Deklarimi, inicializimi dhe shtypja e vlerave

të anëtarëve të vektorit

//Shtypja vertikale

#include <iostream.h>

int main()

{

const int m=5;

int i;

int A[m]={2,5,-1,6,3};int A[m]={2,5,-1,6,3};

for (i=0;i<m;i++)

cout << "A["

<< i

<< "]="

<< A[i]

<< "\n";

return 0;

}

Leximi të anëtarëve të vektorit nga tastiera

#include <iostream.h>

int main()

{

const int m=5;

int i, A[m];

//Krijimi i vektorit

for (i=0;i<m;i++)for (i=0;i<m;i++)

{

cout << "A["

<< i+1

<< "]= ";

cin >> A[i];

}

// Shtypja e anëtarëve të vektorit nuk është

// paraqitur

return 0;

}

A keni ndonjë pyetje ?

Recommended