Professional Documents
Culture Documents
Identiteti - I Vjeter
Identiteti - I Vjeter
Agni H. Dika
Prishtin 2007
Paraqitja analitike 2
Paraqitja grafike 4
Testimi i algoritmeve 7
Prcjellja n kompjuter 9
2 Algoritmet
Paraqitja analitike
N form m t lir, paraqitja analitike e algoritmeve duket ashtu si sht
dhn n shembullin e algoritmit pr kalimin e rrugkryqit, n Fig.1.1. Kjo form
e paraqitjes s algoritmeve, nse prdoret gjat zgjidhjes s problemeve t
komplikuara, mund t jet e paqart dhe e paprcaktuar plotsisht.
N praktik prdoret forma analitike e paraqitjes s algoritmeve e shprehur
prmes nj numri hapash, t cilt kryhen sipas nj radhe t fiksuar plotsisht.
Kshtu, shembulli i algoritmit t dhn n Fig.1.1, i paraqitur n 10 hapa, do t
duket si n Fig.1.2.
Paraqitja e algoritmeve 3
1.
2.
Fillimi
A ka semafor?
Nse JO, hapi i 6.
3. A punon semafori?
Nse JO, hapi i 6.
4. A sht paraqitur ngjyra e gjelbr?
Nse PO, hapi i 9.
5. Duhet pritur. Hapi i 4.
6. Shiko majtas e djathtas
7. A ka automjete?
Nse JO, hapi i 9.
8. Duhet pritur. Hapi i 6.
9. Kalo rrugn n vendkalim
10. Fundi.
Fig.1.2 Forma analitike e algoritmit pr kalimin e rrugkryqit
Hapat e veant t ktij algoritmi kryhen me radh prej fillimi, derisa nuk
urdhrohet kaprcimi n nj hap t caktuar. Kshtu, p.sh., nse n rrugkryq ka
semafor dhe paraqitet ngjyra e gjelbr, vargu i hapave npr t cilt do t kalohet
gjat ekzekutimit t algoritmit t dhn sht: 1, 2, 3, 4, 9 dhe 10. Por, n
kushtet e kulturs s komunikacionit n hapsirat tona, kur shpesh ndodh q
automjetet e kalojn rrugkryqin kur n semafor sht e ndezur drita e kuqe, m
e sigurt pr kmbsorin sht nse hapi i katrt i algoritmit shkruhet kshtu:
4.
4 Algoritmet
Shembull
y = 2x
x 3
pr x < 0.9
pr x = 0.9
pr x > 0.9
4.
5.
6.
7.
8.
Fillimi.
Merre vlern e variabls x
A sht x<0.9, ose x=0.9, ose x>0.9?
Nse x<0.9, hapi i 4.
Nse x=0.9, hapi i 5.
Nse x>0.9, hapi i 6.
y=x2. Hapi i 7.
y=2x. Hapi i 7.
y=x-3. Hapi i 7.
Shtype vlern e variabls y
Fundi.
Fig.1.3 Algoritmi numerik
Paraqitja grafike
Gjat paraqitjes analitike t algoritmeve, nse kemi t bjm edhe me
algoritme relativisht t komplikuara, vshtir se mund t ndiqet rrjedhja e
procesit llogarits. N praktik, algoritmet paraqiten prmes skemave grafike, pr
vizatimin e t cilave prdoren disa figura gjeometrike, prkatsisht blloqe t formave t
ndryshme.
Forma gjeometrike e blloqeve q shfrytzohen gjat prpilimit t skemave
grafike e tregon edhe natyrn e operacioneve q kryhen brenda tyre. Disa nga
Paraqitja e algoritmeve 5
blloqet elementare q prdoren gjat vizatimit t skemave grafike jan dhn n
Fig.1.4.
Blloku
Prdorimi
Fillimi
ose
Fundi
6 Algoritmet
a. Forma analitike
1.
2.
3.
4.
5.
6.
Fillimi.
Merri vlerat e brinjve: a, b
s=ab
p=2(a+b)
Shtypi vlerat e llogaritura: s, p
Fundi.
Fig.1.5
b. Forma grafike
Fillimi
a,b
s=ab
p=2(a+b)
s,p
Fundi
Fig.1.6
Shembull
Paraqitja e algoritmeve 7
Fillimi
1
8
A ka semafor
Po
2
3
Jo
Duhet
pritur
Jo
A punon semafori
Shiko majtas
e djathtas
Po
Duhet
pritur
6
Po
7
A ka automjete
A sht paraqitur
drita e gjelbr
Jo
Jo
Po
Kalo rrugn n vendkalim
Fundi
10
Testimi i algoritmeve
Me qllim t kontrollimit t saktsis s funksionimit t algoritmeve q
prpilohen, duhet t bhet testimi i tyre, duke marr vetm vlerat me t cilat
prfshihen t gjitha rastet e mundshme t shfrytzimit t tyre. N kt mnyr,
me pun minimale vrtetohet sjellja reale e algoritmeve para prdorimit praktik
t tyre.
Shembull
8 Algoritmet
a. Bllok-diagrami
<
Fillimi
2
>
x <>- 0.9
=
y=x2
y=2x
Fundi
y=x-3
Fig.1.8
Me qllim q testimi i bllok-diagramit t rrjedh me nj procedur standarde,
mund t shfrytzohet nj tabel pr testim, p.sh., si ajo q sht dhn n Fig.1.9.
b. Testimi - pr x=4.7
Urdhri
Vlerat numerike
merren
Hapi
Blloku
Fillimi
2
3
4
2
3
6
Lexo: x
Prej njsis hyrse
Pyet:x0.9 x 2
y=x-3
x 2
Shtyp: y
Fundi
y 3
-
Rezultati
Fillimi i
algoritmit
x=4.7
>
y=4.7-3=1.7
Shtypet
numri 1.7
Fundi i
algoritmit
Fig.1.9
N tabel, me shkurtesat x2 dhe y3 duhet nnkuptuar se vlera
numerike e variabls x merret nga hapi i 2, kurse ajo e variabls y - nga hapi i 3.
Gjithnj, mes Fillimit dhe Fundit t algoritmit, gjegjsisht bllok-diagramit,
ekziston nj rrug e mbyllur, e cila, varsisht nga vlerat hyrse, kalon npr pjes t
ndryshme t bllok-diagramit, ose nj numr t ndryshm hersh n pjes t
caktuara t tij.
Paraqitja e algoritmeve 9
c. Rruga - pr x=4.7
1
2
3
7
8
Fig.1.10
Testimi i algoritmit do t jet komplet vetm nse, duke kaluar npr t
gjitha rrugt e mundshme, vrtetohet funksionimi i sakt i tij.
Algoritmet npr blloqet e bllok-diagramit prkats t t cilve mund t
kalohet vetm njher, p.sh. si ai q sht dhn n Fig.1.6, quhen algoritme
lineare. Kurse, algoritmet te bllok-diagramet e t cilve paraqiten m shum deg,
p.sh. ashtu si sht ai i dhn n Fig.1.8, quhen algoritme t degzuara.
Prcjellja n kompjuter
Prkthimi i algoritmeve n nj form t kuptueshme pr kompjuterin bhet
duke i shkruar programet prkatse n nj gjuh programuese. Meq aktualisht njra ndr
gjuht programuese m t popullarizuara sht gjuha C, prkatsisht versioni i saj
C++, n pjesn vijuese t librit, prve paraqitjeve grafike t algoritmeve, do t
jepen edhe programet prkatse n kt gjuh.
Shembull
10 Algoritmet
// Programi Prg1_8
#include <iostream>
using namespace std;
int main()
{
double x,y;
cout << "Vlera e variabls x=";
cin >> x;
if (x < 0.9)
y=x*x;
else
if (x == 0.9)
y=2*x;
else
y=x-3;
cout << "Rezultati y="
<< y
<< "\n";
return 0;
}
Shumat e zakonshme 12
Shumat e fardoshme 20
12 Algoritmet
Shumat e zakonshme
Si raste m t thjeshta t llogaritjes s shumave merren mbledhjet e numrave
natyror, katrorve ose kubeve t ktyre numrave, numrave natyror tek ose ift
etj.
Shembull
s = 3 + 4 + ... + n =
i=3
Llogaritja e shums 13
a. Bllok-diagrami
Po
b. Rruga - pr n=5
Fillimi
s=0
i=3
s=s+i
i=i+1
i n
Jo
s
Fundi
Fig.2.1
Fig.2.2
14 Algoritmet
c. Testimi - pr n=5
Urdhri
Vlerat numerike
merren
Hapi
Blloku
Fillimi
Lexo: n
3
4
5
6
7
8
9
10
11
12
13
3
4
5
6
7
5
6
7
5
6
7
s=0
i=3
s=s+i
i=i+1
Pyet:in
s=s+i
i=i+1
Pyet:in
s=s+i
i=i+1
Pyet:in
prej njsis
hyrse
s 3, i 4
i 4
i 6, n 2
s 5, i 6
i 6
i 9, n 2
s 8, i 9
i 9
i 12, n 2
14
Shtyp:s
s 11
15
Fundi
Rezultati
Fillimi i
algoritmit
n=5
s=0
i=3
s=0+3=3
i=3+1=4
Po
s=3+4=7
i=4+1=5
Po
s=7+5=12
i=5+1=6
Jo
Shtypet numri
12
Fundi i
algoritmit
Fig.2.3
Vlera numerike e nj variable, e cila nevojitet n nj hap t caktuar, merret n
hapin ku ajo variabl takohet s pari, nse kthehemi pas n rrugn e kaluar.
Kshtu, p.sh., n tabeln e Fig.2.3, vlerat e variablave s dhe i n hapin e 11 jan
marr nga hapat 8 e 9, sepse, nse prej hapit t 11 kthehemi pas, n kolonn e
fundit t tabels, variabla i s pari takohet n hapin e 9, kurse variabla s - n
hapin e 8. Shigjeta e cila prdoret pr t treguar se n cilin hap merren vlerat
e nevojshme numerike, duhet t lexohet prej hapit.
Gjat testimit n tabeln e msiprme, shtimi i antarve t seris s numrave
natyror, n hapat e veant rrjedh ashtu si sht treguar n Fig.2.4.
Llogaritja e shums 15
Vlera fillestare(3)
s = 0 + 3 + 4 + 5
5
8
11
Fig.2.4
d. Programi
// Programi Prg2_1
#include <iostream>
using namespace std;
int main()
{
int n,i;
double s;
cout << "Vlera e variabls n=";
cin >> n;
s=0;
i=3;
do
{
s=s+i;
i=i+1;
}
while (i<=n);
cout << "Shuma e numrave natyror s="
<< s
<< "\n";
return 0;
}
16 Algoritmet
ngjashme me ato q u dhan m sipr, duke pasur kujdes vetm n ligjshmrin e
gjenerimit t antarve t vargut.
Shembull
s = 23 + 43 + ... =
i3
i=2
(ift)
a. Bllok-diagrami
b. Rruga - pr n=9
Fillimi
n
s=0
i=2
s=s+i3
i=i+2
Po
i n
Jo
s
Fundi
Fig.2.5
Rezultati q fitohet gjat rrugs s kaluar sht:
vlera fillestare
s = 0 + 23 + 43 + 63 + 83 = 800
Fig.2.6
Llogaritja e shums 17
c. Programi
// Programi Prg2_5
#include <iostream>
using namespace std;
int main()
{
int n,i;
double s;
cout << "Vlera e variabls n=";
cin >> n;
s=0;
i=2;
do
{
s=s+i*i*i;
i=i+2;
}
while (i<=n);
cout << "Shuma s="
<< s
<< "\n";
return 0;
}
T llogaritet shuma:
a.
b.
c.
d.
18 Algoritmet
Shprehjet e shumave prkatse do t duken:
a.
s = 2 + 4 + 6 + ... =
i=2
(ift)
b.
n
s = 1 + 3 + 5 + ... = i
i=1
(tek)
c.
s = 42 + 52 + 62 + ... + n2 =
i2
i =4
d.
n
s = 3 + 5 + 7 + ... = i
i =3
(tek)
s = 1 2 + 3 4 + 5 6 + ... =
i (i + 1)
i =1
(tek)
Llogaritja e shums 19
a. Bllok-diagrami
b. Rruga - pr n=8
Fillimi
n
s=0
i=1
s=s+i(i+1)
i=i+2
Po
i n
Jo
s
Fundi
Fig.2.7
Fig.2.8
Detyra
T llogaritet shuma:
a. e pjestimit t numrave natyror tek me katrort e
numrave natyror ift - t njpasnjshm, mes vlerave 1 dhe
n;
b. e katrorve t numrave natyror tek dhe e kubeve t
numrave natyror ift - t njpasnjshm, mes vlerave 1 dhe
n,
nse dihet vlera e variabls n.
20 Algoritmet
Shprehjet e shumave t krkuara duken:
a.
s=
1
2
3
2
5
62
+ ...
b.
s = 12 + 23 + 32 + 43 + ...
Shumat e fardoshme
Antart e serive numerike mund t formohen si shprehje t fardoshme
matematikore. Procedurat e gjetjes s shumave t tyre nuk do t ndryshojn
aspak nga ato q u dhan m sipr.
Shembull
s =
n +1
2i +
3
i=2
(i 4)
Llogaritja e shums 21
a. Bllok-diagrami
Fillimi
x,n
s=0
i=2
Jo
i 4
Po
s = s + 2i +
2
x
i=i+1
Po
i(n+1)
Jo
s
Fundi
Fig.2.9
Fig.2.10
1
1
1
1
s = 2 2 + + 2 3 + + 2 5 + + 2 6 + = 317.778
3
3
3
3
c. Programi
// Programi Prg2_9
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,i;
double x,s;
22 Algoritmet
Shuma s=317.778
ashtu si u fitua edhe gjat llogaritjes me dor.
Nga krejt kjo q u dha m sipr, si prfundim mund t nxirret se n rastin e
prgjithshm, gjat llogaritjes s shums, shprehja pr llogaritjen e shums
brenda unazs s mbyllur shkruhet:
s=s+(shprehja nn simbolin e shums)
Detyra
T llogariten shumat:
a.
n +1
y = {x + 2k 1}3 2
k =1
b.
z =
i +
2n
i=2
(ift)
Llogaritja e shums 23
c.
g =
n +2
j= 1
(j 3,4,5)
j3
2j + 3
b.
2
2
4
2n
z = 2 + + 4 + + ... + 2n +
3
3
3
c.
13
g =
2 1 + 3
23
2 2 + 3
63
2 6 + 3
+ ...
x m+n1 2
y = + 2 x +
3
i
i=1
24 Algoritmet
a. Bllok-diagrami
s=
x,m,n
m +n+1
2
i
x +
i =1
i 3
s=0
i=1
s = s + x +
i3
2
i=i+1
Po
i(m+n-1)
Jo
y=
x
+ 2s
3
y
Fundi
Fig.2.11
Fig.2.12
13
23
33
1
2
2
2
+ 1 +
+ 1 +
+ 2 1 +
3
1
2
3
c. Programi
// Programi Prg2_11
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
Llogaritja e shums 25
int m,n,i;
double x,s,y;
cout << "Vlerat hyrse x,m dhe n: ";
cin >> x
>> m
>> n;
s=0;
i=1;
do
{
s=s+pow(x+2./i,i/3.);
i=i+1;
}
while (i<=m+n-1);
y=x/3+2*s;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
2
2x + 3 {j + 2x}
j= 1
y =
3x2 + 2x 1
pr x 4.55
pr x > 4.55
26 Algoritmet
a. Bllok-diagrami
Fillimi
n,x
Po
x4.55
Jo
s=0
j=1
n +1
s = {j + 2x}
j=1
s=s+{j+2x}2
j=j+1
Po
j(n+1)
Jo
y=3x2+2x-1
y=2x+3s
y
Fundi
Fig.2.13
Nga bllok-diagrami i dhn n Fig.2.13 shihet se ktu prve strukturs
algoritmike t degzuar, n njrn deg t algoritmit paraqitet edhe struktur
algoritmike ciklike. Pr t qen algoritmi m i sakt, vlera e variabls n do t duhej
t lexohet n degn e majt t bllokut pr degzim.
Llogaritja e shums 27
b. Rruga - pr n=3 dhe x=3.5
Fig.2.14
c. Programi
// Programi Prg2_13
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,j;
double x,y,s;
cout << "Vlerat hyrse n dhe x: ";
cin >> n
>> x;
if (x<=4.55)
{
s=0;
28 Algoritmet
j=1;
do
{
s=s+pow(j+2*x,2);
j=j+1;
}
while (j<=n+1);
y=2*x+3*s;
}
else
y=3*pow(x,2)+2*x-1;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
}x b
y = ax2 bx + 4 i2 + 2a
i =3
b.
z =
x
3x
+ n +3
a
{m + 2i}a
i=2
(ift)
c.
2x2 + 3x 4
g=
+m
x2 2n
3k + k2
k =2
pr x + 2 > a + 1
pr x + 2 a + 1
Llogaritja e shums 29
y =
m
m +2 i
x
+ 3 (2i + b) 4 b
2
a
i =1
i=2
Fillimi
(2i + b )
d=
x,a,b,m
i=1
d=0
i=1
d=d+(2i+b)
i=i+1
Po
i m
Jo
e=0
i=2
i
e = e + b
a
i=i+1
Po
y=
i m+2
Jo
x
+ 3d - 4e
2
e=
m+2
i
a
i = 2
Fundi
Fig.2.15
Fig.2.16
Vlera e funksionit, e cila llogaritet gjat rrugs s kaluar m sipr, sht:
30 Algoritmet
y =
4
2
4
+ 3 {(2 1 + 3) + (2 2 + 3)} 4 3 + 3 + 3
2
2
2
2
c. Programi
// Programi Prg2_15
#include <iostream>
using namespace std;
int main()
{
int m,i;
double a,b,x,y,d,e;
cout << "Vlerat hyrse x,a,b dhe m: ";
cin >> x
>> a
>> b
>> m;
d=0;
i=1;
do
{
d=d+(2*i+b);
i=i+1;
}
while (i<=m);
e=0;
i=2;
do
{
e=e+(i/a-b);
i=i+1;
}
while (i<=m+2);
y=x/3+3*d-4*e;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
Llogaritja e shums 31
Shembull
g = 2m 3 (ki + b)
i=2
pr k = 1,2,..., m
a. Bllok-diagrami
Fillimi
m,b
k=1
m +1
s = (k i + b )
i=2
s=0
i=2
s=s+(ki+b)
i=i+1
Po
i(m+1)
Jo
g=2m-3s
k,g
k=k+1
Po
k m
Jo
Fundi
Fig.2.17
Vlerat q llogariten gjat rrugs s kaluar jan:
Fig.2.18
32 Algoritmet
k = 1
k = 2
g = 22 3
{(2
2 + 3.5) + (2 3 + 3.5)}
c. Programi
// Programi Prg2_17
#include <iostream>
using namespace std;
int main()
{
int m,k,i;
double b,s,g;
cout << "Vlerat hyrse b dhe m: ";
cin >> b
>> m;
for (k=1;k<=m;k++)
{
s=0;
for (i=2;i<=m+1;i++)
s=s+(k*i+b);
g=2*m-3*s;
cout << "k="
<< k
<< "
g="
<< g
<< "\n";
}
return 0;
}
k=1
k=2
g=-32
g=-47
Prodhimet e zakonshme 34
Prodhimet e fardoshme 37
34 Algoritmet
Prodhimet e zakonshme
Prodhimet elementare t cilat takohen n praktik jan ato t llogaritjes s
prodhimit t numrave natyror, katrorve ose kubeve t tyre, prodhimit t
numrave natyror tek ose ift etj.
Shembull
p = 2 3 4 5 ... n =
i=2
Llogaritja e prodhimit 35
a. Bllok-diagrami
b. Rruga - pr n=3
Fillimi
p=1
i=2
p=pi
i=i+1
i n
Jo
p
Fundi
Po
Fig.3.1
Fig.3.2
c. Testimi - pr n=3
Hapi
Blloku
Urdhri
Fillimi
Lexo: n
3
4
5
6
7
8
9
10
11
3
4
5
6
7
5
6
7
8
p=1
i=2
p=p i
i=i+1
Pyet:in
p=p i
i=i+1
Pyet:in
Shtyp:p
12
Fundi
Vlerat numerike
merren
prej njsis
hyrse
p 3, i 4
i 4
i 6, n 2
p 5, i 6
i 6
i 9, n 2
p 8
-
Fig.3.3
Rezultati
Fillimi i
algoritmit
n=3
p=1
i=2
p=1 2=2
i=2+1=3
Po
p=2 3=6
i=3+1=4
Jo
Shtypet numri 6
Fundi i
algoritmit
36 Algoritmet
Llogaritja e vlers s prodhimit, n hapat e veant t testimit, rrjedh kshtu:
Vlera fillestare(3)
p = 1 2 3
5
8
Fig.3.4
d. Programi
// Programi Prg3_1
#include <iostream>
using namespace std;
int main()
{
int n,i;
double p;
cout << "Vlera e variabls n=";
cin >> n;
p=1;
i=2;
do
{
p=p*i;
i=i+1;
}
while (i<=n);
cout << "Prodhimi p="
<< p
<< "\n";
return 0;
}
Llogaritja e prodhimit 37
Detyra
T llogaritet prodhimi:
a. i numrave natyror ift mes 4 dhe n;
b. i katrorve t numrave natyror tek mes 3 dhe n;
c. i shums s numrave natyror tek e ift - t
njpasnjshm mes 1 dhe n;
d. i katrorve t numrave natyror tek dhe i kubeve t
numrave natyror ift - t njpasnjshm mes 1 dhe n,
nse dihet vlera e variabls n.
p = 4 6 8 ...
b.
p = 32 52 72 ...
c.
d.
p = 12 23 32 43 ...
Prodhimet e fardoshme
Procedura q zbatohet gjat llogaritjes s prodhimit t antarve t serive t
fardoshme, sht e ngjashme me ate q prdoret pr llogaritjen e shums s
serive prkatse.
Shembull
m +1
i +
i=2
(ift)
a. Bllok-diagrami
38 Algoritmet
Fillimi
x,m
p=1
i=2
2
p = p i +
x
i=i+2
Po
i(m+1)
Jo
g=3x+4p
g
Fundi
Fig.3.5
Fig.3.6
g = 3 1.5 + 4 2 +
4 +
6 +
8 +
1.5
1.5
1.5
1.5
c. Programi
// Programi Prg3_5
#include <iostream>
using namespace std;
int main()
{
int m,i;
double x,p,g;
cout << "Vlerat hyrse x dhe m: ";
cin >> x
>> m;
Llogaritja e prodhimit 39
p=1;
i=2;
do
{
p=p*(i+2/x);
i=i+2;
}
while (i<=m+1);
g=3*x+4*p;
cout << "Vlera e funksionit g="
<< g
<< "\n";
return 0;
}
x 2n +2 k 2 + x
d=
3
k=1
2x
e + 3
pr x > n + 2
pr x < n + 2
pr x = n + 2
a. Bllok-diagrami
40 Algoritmet
Fillimi
n,x
<
<- (n+2)
>
>
=
p=1
k=1
x
p = p k2 +
3
k=k+1
Po
k(n+2)
Jo
d=x-2p
d=e2x+3
d=2x+3n-1
d
Fundi
Fig.3.7
Versioni m i sakt i bllok-diagramit mund t vizatohet duke e vendosur
bllokun pr leximin e variabls n n degn e majt t degzimit q sht
vendosur n fillim t tij, sepse variabla n fjal shfrytzohet vetm n kt pjes.
Llogaritja e prodhimit 41
Fig.3.8
c. Programi
// Programi Prg3_7
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,k;
double x,p,d;
cout << "Vlerat hyrse n dhe x: ";
cin >> n
>> x;
if (x<(n+2))
{
42 Algoritmet
p=1;
for (k=1;k<=n+2;k++)
p=p*(k*k+x/3);
d=x-2*p;
}
else
if (x==n+2)
d=exp(2*x)+3;
else
d=2*x+3*n-1;
cout << "Rezultati d="
<< d
<< "\n";
return 0;
}
Nse programi i dhn ekzekutohet pr vlerat hyrse n=2 dhe x=3, n ekran
do t shtypet:
Rezultati d=-3397
Brenda shprehjes s nj funksioni mund t paraqiten edhe m shum
prodhime t antarve t serive, t cilat duhet t llogariten para se prej
kompjuterit t krkohet llogaritja e vlers s vet funksionit.
Shembull
m +n
i =1
i=2
(ift)
z = 3a + 2 (2i + a)
(i + b)
Llogaritja e prodhimit 43
a. Bllok-diagrami
Po
i(m+1)
Jo
f=1
i=2
f=f(i+b)
i=i+2
Po
i(m+n)
Jo
z=3x+2e-f
z
Fundi
Fig.3.9
Fig. 3.10
44 Algoritmet
Vlera e funksionit, e cila llogaritet gjat rrugs s kaluar n Fig.3.10, sht:
z = 3 3 + 2 {(2 1 + 3) (2 2 + 3) (2 3 + 3)}
e
{(2 + 1) (4 + 1) (6 + 1) (8 + 1)}
f
c. Programi
// Programi Prg3_9
#include <iostream>
using namespace std;
int main()
{
int m,n,i;
double a,b,e,f,z;
cout << "Vlerat hyrse m,n,a dhe b: ";
cin >> m
>> n
>> a
>> b;
e=1;
for (i=1;i<=m+1;i++)
e=e*(2*i+a);
f=1;
i=2;
do
{
f=f*(i+b);
i=i+2;
}
while (i<=m+n);
z=3*a+2*e-f;
cout << "Vlera e funksionit z="
<< z
<< "\n";
return 0;
}
Llogaritja e prodhimit 45
a.
y =
m+n
x
+ 2 {k + 3x}a 2
2
k =1
(k 3)
b.
m
g = 3 {x + 2j}2
j= 2
1
n
(k + 1)
k =2
c.
n
pr x 2 + 1 7
(i + 3)
i=2
(ift)
t=
m +2
x
2
2 4 (2i + 1) pr x + 1 > 7
i=1
48 Algoritmet
n
m+n
x
+ 3 (2i + n) 2 (k + x)
2
i =1
k =2
(tek)
a. Bllok-diagrami
s=s+(2i+n)
i=i+2
Po
i(m+n)
Jo
A
p=1
k=2
p=p(k+x)
k=k+1
Po
k n
Jo
y=
x
+ 3s 2p
2
y
Fundi
Fig.4.1
Fig.4.2
1
+ 3 {(2 1 + 3) + (2 3 + 3) + (2 5 + 3)}
2
2 {(2 + 1) (3 + 1)}
c. Programi
// Programi Prg4_1
#include <iostream>
using namespace std;
int main()
{
int m,n,i,k;
double s,p,x,y;
cout << "Vlerat hyrse m,n dhe x: ";
cin >> m
>> n
>> x;
s=0;
50 Algoritmet
i=1;
do
{
s=s+(2*i+n);
i=i+2;
}
while (i<=m+n);
p=1;
for (k=2;k<=n;k++)
p=p*(k+x);
y=x/2+3*s-2*p;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
2x 3 (i + x)
i=2
2
4x + 3x + 1
g=
m
x
x
+ 4 k +
3
k=1
2
(k3)
pr x + 1 < 4.5
pr x + 1 = 4.5
pr x + 1 > 4.5
Fillimi
m,n,x
<
>
s=0
p=1
i=2
k=1
Po
k = 3
s=s+(i+x)
Jo
x
p = pk +
3
i=i+1
Po
i(n+1)
k=k+1
Jo
Po
k m
Jo
g=2x-3s
g=4x2+3x+1
g=
x
+ 4p
2
d
Fundi
Fig.4.3
Ktu, versioni m i sakt i bllok-diagramit do t vizatohej nse blloqet
pr leximin e variablave m dhe n vendosen n degn e majt dhe t djatht
(prkatsisht), sepse vetm n kto deg shfrytzohen.
52 Algoritmet
b. Rruga - pr m=4, n=4 dhe x=2
Fig.4.4
Gjat rrugs s kaluar n Fig.4.4, meq plotsohet kushti x+1<4.5, vlera e
funksionit llogaritet prmes shprehjes s par ku figuron shuma, kshtu:
g = 2 2 3 {(2 + 2) + (3 + 2) + (4 + 2) + (5 + 2)}
s
54 Algoritmet
Detyra
y = x + 2
n+1
(i +
x + 1
3)2
(i + 1)
i=1
(tek)
i=2
b.
n
x
+ 3 (2i + 1)
i =1
2
z =
x 2 n (k + x)
3
k =1
(k 3,4)
pr 2x > m
pr 2x m
c.
m
v = e2x +
1
m
(i + 1)
i =1
2 (k + 1)
k =2
n
3 (k + 3)2
k =1
Faktorieli i zakonshm 56
Faktorieli ift dhe tek 64
Faktorieli brenda shums 66
Faktorieli brenda prodhimit 81
56 Algoritmet
Faktorieli i zakonshm
Procedura pr llogaritjen e faktorielit t zakonshm, kur ai gjindet jasht
shprehjeve t shumave, prodhimeve ose edhe shprehjeve tjera, sht e njjt me
llogaritjen e prodhimit t numrave natyror.
Shembull
F = 1 2 3 ... n =
i
i=1
Llogaritja e faktorielit 57
Po
Fillimi
F=1
i=1
F=Fi
i=i+1
i n
Jo
F
Fundi
Fig. 5.1
Fig.5.2
c. Testimi - pr n=3
Hapi
Blloku
Urdhri
Fillimi
Lexo: n
3
4
5
6
7
8
9
10
11
12
13
3
4
5
6
7
5
6
7
5
6
7
F=1
i=1
F=F i
i=i+1
Pyet:in
F=F i
i=i+1
Pyet:in
F=F i
i=i+1
Pyet:in
Vlerat numerike
merren
prej njsis
hyrse
F 3, i 4
i 4
i 6, n 2
F 5, i 6
i 6
i 9, n 2
F 8, i 9
i 9
i 12, n 2
Rezultati
Fillimi i
algoritmit
n=3
F=1
i=1
F=1 1=1
i=1+1=2
Po
F=1 2=2
i=2+1=3
Po
F=2 3=6
i=3+1=4
Jo
58 Algoritmet
14
Shtyp:F
15
Fundi
F 11
-
Shtypet vlera 6
Fundi i
algoritmit
Fig.5.3
Vlera e faktorielit q fitohet gjat procedurs s testimit sht:
Vlera fillestare(3)
F = 1 1 2 3
5
8
11
Fig.5.4
d. Programi
// Programi Prg5_1
#include <iostream>
using namespace std;
int main()
{
int n,i;
double F;
cout << "Vlera hyrse n: ";
cin >> n;
F=1;
for (i=1;i<=n;i++)
F=F*i;
cout << "Faktorieli F="
<< F
<< "\n";
return 0;
}
Llogaritja e faktorielit 59
Njlloj gjendet edhe vlera e faktorielit pr shprehjet e ndryshme, rezultati i t
cilave sht nj numr natyror.
Shembull
F = 1 2 3 ... (2m + n) =
2m + n
i
i=1
a. Bllok-diagrami
Po
i(2m+n)
Jo
F
Fundi
Fig.5.5
c. Programi
// Programi Prg5_5
#include <iostream>
using namespace std;
Fig.5.6
60 Algoritmet
int main()
{
int m,n,i;
double F;
cout << "Vlerat hyrse m dhe n: ";
cin >> m
>> n;
F=1;
for (i=1;i<=2*m+n;i++)
F=F*i;
cout << "Faktorieli F="
<< F
<< "\n";
return 0;
}
Nse gjat ekzekutimit t programit, si vlera hyrse prmes tastiers jepen
vlerat m=1 dhe n=2, n ekran do t shtypet:
Faktorieli F=24
ku vlera 24 i prgjigjet 4!.
Procesi i llogaritjes do t ket nj cikl m pak, nse gjat llogaritjes s
faktorielit t nj numri m t madh se 1 nisemi prej vlers fillestare F=1 dhe
vlera e variabls merret i=2. Ngjashm, kur llogaritet faktorieli i nj numri m
t madh se 2, procesi i llogaritjes do t zvoglohet pr dy cikle, nse merret F=2
dhe i=3.
Nse faktorieli paraqitet brenda shprehjeve t funksioneve, veprohet njlloj
si edhe te shumat e prodhimet, prkatsisht s pari llogaritet vlera e faktorielit
dhe pastaj vlera e funksionit.
Shembull
y = 0
pr x + m = 5
(3n + 2)! - x2
pr x + m < 5
Llogaritja e faktorielit 61
a. Bllok-diagrami
Fillimi
m,n,x
<
(x+m)
<>
>
F=1
F=1
i=1
i=1
F=Fi
F=Fi
i=i+1
i=i+1
Po
Po
i(3n+2)
i(m+1)
Jo
Jo
y=F-x2
y=0
y
Fundi
Fig. 5.7
y=F+3x-4
62 Algoritmet
b. Rruga - pr m=2, n=1 dhe x=5
Fig.5.8
Vlera q llogaritet gjat rrugs s kaluar sht:
y = 123+ 35 4
c. Programi
// Programi Prg5_7
#include <iostream>
#include <cmath>
using namespace std;
int main()
Llogaritja e faktorielit 63
{
int m,n,i;
double F,x,y;
cout << "Vlerat hyrse m,n dhe x: ";
cin >> m
>> n
>> x;
if (x+m<5)
{
F=1;
for (i=1;i<=3*n+2;i++)
F=F*i;
y=F-pow(x,2);
}
else
if (x+m==5)
y=0;
else
{
F=1;
for (i=1;i<=m+1;i++)
F=F*i;
y=F+3*x-4;
}
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
x
(3n + m + 1)!
2
64 Algoritmet
b.
3x + 2
z =
x
(m + 1)! +
(m + n)!
pr x < m
pr x m
c.
e2x 3x2 + (4n)!
(n + 1)!-2x
g =
(n! )2 + 1
(2n)!
pr x + 3 < n
pr x + 3 = n
pr x + 3 > n
F = 2 4 6 ... 2n =
2n
i=2
(ift)
Llogaritja e faktorielit 65
a. Bllok-diagrami
c. Rruga - pr n=3
Fillimi
n
F=1
i=2
F=Fi
i=i+2
Po
i(2n)
Jo
F
Fundi
Fig.5.9
c. Programi
// Programi Prg5_9
#include <iostream>
using namespace std;
int main()
{
int n,i;
double F;
cout << "Vlera hyrse n: ";
cin >> n;
F=1;i=2;
do
{
F=F*i;
i=i+2;
}
while (i<=2*n);
cout << "Faktorieli ift F="
<< F
<< "\n";
return 0;
Fig.5.10
66 Algoritmet
}
F = 1 3 5 ... (2n 1) =
2n 1
i=1
(tek)
y = 3x 2 (n + 2)! +
3
i =1
n
2
1
Llogaritja e faktorielit 67
a. Bllok-diagrami
F=(n+2)!
F=1
i=1
F=Fi
i=i+1
Po
i(n+2)
Jo
s=0
i=1
i
s = s + F +
3
i=i+1
Po
i n
Jo
y=3x-2s
n
i
s = F +
3
i = 1
y
Fundi
Fig.5.11
c. Programi
Fig.5.12
68 Algoritmet
// Programi Prg5_11
#include <iostream>
using namespace std;
int main()
{
int n,i;
double x,y,F,s;
cout << "Vlerat hyrse x dhe n: ";
cin >> x
>> n;
F=1;
for (i=1;i<=n+2;i++)
F=F*i;
s=0;
for (i=1;i<=n;i++)
s=s+(F+i/3.);
y=3*x-2*s;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
y = 3x 2 (i + 2)! +
3
i = 1
1
2
n
Llogaritja e faktorielit 69
Nga shprehja e dhn m sipr shihet se vlera e faktorielit nuk sht
konstante, por ajo ndryshon pr do i, gj q e imponon nevojn e llogaritjes s
ksaj vlere brenda unazs pr llogaritjen e shums. Meq n antarin e par i cili
merr pjes n mbledhje figuron 3!, vlera fillestare e faktorielit duhet t merret
2!=2 dhe pastaj t shumzohet me (i+2).
a. Bllok-diagrami
Fillimi
x,n
s=0
F=2
i=1
F=F(i+2)
i
s = s + F +
3
i=i+1
Po
i n
Jo
y=3x-2s
y
Fundi
Fig.5.13
c. Programi
Fig.5.14
70 Algoritmet
// Programi Prg5_13
#include <iostream>
using namespace std;
int main()
{
int n,i;
double x,y,F,s;
cout << "Vlerat hyrse x dhe n: ";
cin >> x
>> n;
s=0;
F=2;
for (i=1;i<=n;i++)
{
F=F*(i+2);
s=s+(F+i/3.);
}
y=3*x-2*s;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
n
x
3 [(2i + 1)! x]
2
i =1
{ [(2 1
+ 1)! - x
+ [(2 2 + 1)! - x
]}
Llogaritja e faktorielit 71
a. Bllok-diagrami
Fillimi
x,n
s=0
i=1
F=(2i+1)!
F=1
j=1
F=Fj
j=j+1
Po
j(2i+1)
Jo
s=s+[F-x]
i=i+1
Po
i n
Jo
x
y = 3s
2
y
Fundi
Fig.5.15
Nse vizatohet rruga e kaluar n kt rast, numri i vijave te pjesa e bllokdiagramit pr llogaritjen e faktorielit do t jet i madh, sepse llogaritja prsritet
prej fillimit pr do vler t variabls i.
b. Programi
72 Algoritmet
// Programi Prg5_15
#include <iostream>
using namespace std;
int main()
{
int n,i,j;
double x,y,s,F;
cout << "Vlerat hyrse x dhe n: ";
cin >> x
>> n;
s=0;
for (i=1;i<=n;i++)
{
F=1;
for (j=1;j<=2*i+1;j++)
F=F*j;
s=s+(F-x);
}
y=x/2-3*s;
cout << "Vlera e funksionit y="
<< y
<< "\n";
return 0;
}
y = 3x + 4 [(2i + 1)!! + i]
i =1
Llogaritja e faktorielit 73
a. Bllok-diagrami
F=Fj
s=s+[F+i]
j=j+1
i=i+1
Po
i(n+1)
Jo
y=3x+4s
y
Fundi
Fig.5.16
c. Programi
// Programi Prg5_16
#include <iostream>
using namespace std;
int main()
{
Fig.5.17
74 Algoritmet
int n,i,j;
double x,y,s,F;
cout << "Vlerat hyrse x dhe n: ";
cin >> x
>> n;
s=0;
i=1;
F=1;
j=3;
do
{
F=F*j;
s=s+(F+i);
j=j+2;
i=i+1;
}
while (i<=n+1);
y=3*x+4*s;
cout << "Vlera e llogaritur y="
<< y
<< "\n";
return 0;
}
g = 2a + 3 i!! +
2
i =1
Llogaritja e faktorielit 75
x
x
a. Bllok-diagrami
n!! + 2
Fillimi
a,x,n
s=0
i=1
F=1
j=i
F=Fj
j=j-2
Po
j > 1
Jo
x
s = s + F +
2
i=i+1
Po
i n
Jo
y=2a+3s
y
Fundi
Fig.5.18
Fig.5.19
76 Algoritmet
c. Programi
// Programi Prg5_18
#include <iostream>
using namespace std;
int main()
{
int n,i,j;
double a,x,y,s,F;
cout << "Vlerat e variablave a, x dhe n: ";
cin >> a
>> x
>> n;
s=0;
for (i=1;i<=n;i++)
{
F=1;
j=i;
do
{
F=F*j;
j=j-2;
}
while (j>1);
s=s+(F+x/2);
}
y=2*a+3*s;
cout << "Vlera e llogaritur y="
<< y
<< "\n";
return 0;
}
n +2
3x
i
+ 4 (2i + 3)! +
a
b
i = 2
Llogaritja e faktorielit 77
b.
(n + 1)!
a
m
3 (2i + 1)!! +
g = i =1
i
(2n)!!
pr x < (a + b)
pr x = (a + b)
pr x > (a + b)
z = 3 [k + a]2 4
k =1
(m + 1)!
+ 3 +
2
x + 2
i=2
2m
(ift)
z = 3
2m
4
+ 3
4 + 3 + 3 ...
2
2
2
1 2 3 ... (m + 1)
+
x + 2
78 Algoritmet
a. Bllok-diagrami
Fillimi
x,a,n
s=
m -1
[k + a]2
k=1
s=0
k=1
s=s+[k+a]2
k=k+1
Po
k(m-1)
Jo
p=1
i=2
p = p + 3
2
p=
2m i
+ 3
2
i=2
(ift)
i=i+2
Po
i 2m
Jo
A
Llogaritja e faktorielit 79
F=1
i=1
F=(n+1)!
F=Fi
i=i+1
Po
i(m+1)
Jo
z = 3 s 4 p +
F
x+2
z
Fundi
Fig.5.20
c. Programi
// Programi Prg5_20
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const double x=3,a=0.5;
const int m=3;
int i,k;
double s,p,F,z;
s=0;
for (k=1;k<=m-1;k++)
s=s+pow(k+a,2);
p=1;
i=2;
do
{
p=p*(i/2.+3);
Fig.5.21
80 Algoritmet
i=i+2;
}
while (i<=2*m);
F=1;
for (i=1;i<=m+1;i++)
F=F*i;
z=3*s-4*p+F/(x+2);
cout << "Rezultati z="
<< z
<< "\n";
return 0;
}
n +1
x
+ 2 [(2i)!! + 3] [(n + 2)!] 2
3
i =1
(i 3)
b.
n
(n + 1)! + 3 [k + 1]
k =1
(tek)
(2n + 1)!! + 2a - b
g =
(2n)!! + x
pr (a + x) < b
pr (a + x) = b
pr (x + a) > b
Llogaritja e faktorielit 81
(i + 1)! + 3
i =1
n
y = 3x + 2
(i 2,3)
y = 3x + 2
1
4
2! + 3 5! + 3 ...
n + 1
(n + 1)! +
3
82 Algoritmet
a. Bllok-diagrami
Fillimi
x,n
p=1
i=1
Po
i=2
Jo
i=3
Jo
F=1
j=1
F=Fj
j=j+1
Po
j(i+1)
Jo
i
p = p F +
3
i=i+1
Po
i n
Jo
y=3x+2p
y
Fundi
Fig.5.22
Po
Llogaritja e faktorielit 83
b. Rruga - pr x=2 dhe n=4
Fig.5.23
84 Algoritmet
c. Programi
// Programi Prg5_22
#include <iostream>
using namespace std;
int main()
{
int n,i,j;
double x,y,p,F;
cout << "Vlerat hyrse x dhe n: ";
cin >> x
>> n;
p=1;
for (i=1;i<=n;i++)
if ((i==2) || (i==3))
{
}
else
{
F=1;
for (j=1;j<=i+1;j++)
F=F*j;
p=p*(F+i/3.);
}
y=3*x+2*p;
cout << "Vlera e llogaritur y="
<< y
<< "\n";
return 0;
}
m
x
x
3 k!! +
2
2
k =1
Llogaritja e faktorielit 85
b.
m +1 i
3x + 2 + 3
2
i =1
g =
2
m
x
ax
e
3
(2j
3)!
+
+
a
j= 2
(ift)
pr x a
pr x = a
c.
h =
m +2 i
1
2 m 2
a
+ 4i
(j!)
3
3 j= 1
j
i =1 3
(i 3,5)
Vektort
90
Matricat 134
Fushat tridimensionale 217
88 Algoritmet
Matematika
Kimia
Fizika
Biologjia
Programimi
Edukata
fizike
Agroni
Ardiani
Arianisa
Arta
Besa
2
Gjuha e huaj
1
2
3
4
5
Emri
1
Gjuha amtare
Numri rendor
5
5
5
5
5
5
5
5
5
5
5
5
5
5
4
5
4
5
5
4
5
4
5
5
4
5
4
5
5
5
5
5
5
5
5
5
5
5
5
4
A =
Fushat numerike 89
Grumbulli i notave t nxnsve, t cilat jan shnuar n tabeln e dhn n
Fig.6.1:
B =
...
a2 ... an
ose shkurt A(n), ku a1, a2, ..., an jan antart e vektorit. Matrica e notave t
nxnsve sht:
j=1
...
dhe shkurt shnohet B(m,n), ku b11, b12, ..., bm1, bm2,..., bmm jan antart e
matrics.
Numrat t cilt i shoqrojn antart e vektorit, ose t matrics, quhen
indekse. Kshtu, p.sh., indeksi i nots s matematiks te vektort e notave t
nxnsve sht 3, kurse antari i ktij vektori pr notn e Arts sht a3=5.
Te matrica, p.sh., antari b53=4 i prgjigjet nots s Bess nga lnda e
matematiks.
90 Algoritmet
Vektort
Mbushja e vektorve me vlera numerike, prkatsisht operimi me vlerat e
antarve t veant t tyre bhet duke i shfrytzuar indekset prkats.
Prcaktimi i vektorve
Vlerat numerike t antarve t vektorve kompjuterit mund t'i jepen prmes
leximit si numra t gatshm, ose ato mund t llogariten n baz t ligjshmris s
dhn.
Shembull
a. Bllok-diagrami
b. Rruga - pr n=5
Fillimi
n
i=1
ai=3i+1
i,ai
i=i+1
Po
i n
Jo
Fundi
Fig.6.2
Fig.6.3
Fushat numerike 91
c. Programi
// Programi Prg6_2
#include <iostream>
using namespace std;
int main()
{
int const n=5;
int i,A[n];
for (i=0;i<n;i++)
{
A[i]=3*i+1;
cout << "A["
<< i
<< "]="
<< A[i]
<< "\n";
}
return 0;
}
i
x
+ 3 (j + 2i)
3
j= 1
a. Bllok-diagrami
92 Algoritmet
Fillimi
n,x
i=1
s=0
j=1
s=s+(j+2i)
j=j+1
Po
j i
Jo
a =
i
x
+ 3s
2
i,ai
i=i+1
Po
i n
Jo
Fundi
Fig.6.4
Fig.6.5
c. Programi
{ [1
+ 2 1] }
{ [1
+ 2 2] + [2 + 2 2] }
{ [1
+ 2 3] + [2 + 2 3] + [3 + 2 3] }
Fushat numerike 93
// Programi Prg6_4
#include <iostream>
using namespace std;
int main()
{
int const n=3,
x=1;
int i,j;
double s,A[n];
for (i=0;i<n;i++)
{
s=0;
for (j=1;j<=i;j++)
s=s+(j+2*i);
A[i]=x/2.+3*s;
cout << "A["
<< i
<< "]="
<< A[i]
<< "\n";
}
return 0;
}
94 Algoritmet
a. Bllok-diagrami
b. Rruga - pr
A=
-2
Fillimi
n,(ai,i=1,n)
i=1
bi=i+2ai2-1
i,bi
i=i+1
Po
i n
Jo
Fundi
Fig.6.6
Fig.6.7
Fushat numerike 95
Pas ekzekutimit t programit, antart e vektorit t formuar do t shtypen n
ekran kshtu:
B[0]=17
B[1]=50
B[2]=9
B[3]=130
Vektort mund t formohen edhe duke shfrytzuar vlerat numerike t
antarve t disa vektorve njkohsisht.
Shembull
a. Bllok-diagrami
Fillimi
m,n,(ai,i=1,n),(bi,i=1,m)
i=1
Po
i m
gi=bi
Jo
gi=ai-m
i,gi
i=i+1
Po
i(m+n)
Jo
Fundi
Fig.6.8
96 Algoritmet
b. Rruga
A =
-3
B =
-2
Fig.6.9
c. Programi
// Programi Prg6_8
#include <iostream>
using namespace std;
int main()
{
int const m=3,n=2;
int A[n]={9,-3},
B[m]={6,-2,8},
i,G[m+n];
for (i=0;i<m+n;i++)
{
if (i<m)
G[i]=B[i];
Fushat numerike 97
else
G[i]=A[i-m];
cout << "G["
<< i
<< "]="
<< G[i]
<< "\n";
}
return 0;
}
Operacionet aritmetikore
N praktik shpesh her kryhen operacione t ndryshme aritmetikore mbi
antart e nj vektori, si dhe mes antarve t dy ose m shum vektorve.
Shembull
98 Algoritmet
a. Bllok-diagrami
Fillimi
x,n,(ai,i=1,n)
i=1
Po
ai < 0
bi=iai
Jo
bi=xai
i,bi
i=i+1
Po
i n
Jo
Fundi
Fig.6.10
b. Rruga e kaluar - pr x=2 dhe
A =
Fig.6.11
-3
-2
Fushat numerike 99
Vlerat q llogariten gjat rrugs s kaluar jan:
b1 = x a1
b2 = x a2
b3 = 3 a3
b4 = x a4
b5 = 5 a5
c. Programi
// Programi Prg6_10
#include <iostream>
using namespace std;
int main()
{
int const x=2,n=5;
int A[n]={6,9,-3,4,-2},i,B[n];
for (i=0;i<n;i++)
{
if (A[i]<0)
B[i]=i*A[i];
else
B[i]=x*A[i];
cout << "B["
<< i
<< "]="
<< B[i]
<< "\n";
}
return 0;
}
100 Algoritmet
F(m), duke ua shtuar antarve t veant vlerat e shumave:
fi + i
zi = i
fj2
j= 1
pr i 3
pr i < 3
a. Bllok-diagrami
Fillimi
m,(fi,i=1,m)
i=1
Po
Jo
i < 3
s=0
j=1
s=s+fj2
j=j+1
Po
j i
Jo
zi=s
zi=fi+i
i,zi
i=i+1
Po
i m
Jo
Fundi
Fig.6.12
-1
Fig.6.13
-4
102 Algoritmet
Gjat rrugs s kaluar n Fig.6.13 antart e vektorit Z(n) llogariten kshtu:
z1 = f12
z2
z3
z4
z5
=
=
=
=
f12
f3
f4
f5
+ f22
+ 3
+ 4
+ 5
c. Programi
// Programi Prg6_12
#include <iostream>
using namespace std;
int main()
{
int const m=5;
int F[m]={3,2,-1,6,-4},i,j,s,Z[m];
for (i=0;i<m;i++)
{
if (i<2)
{
s=0;
for (j=0;j<=i;j++)
s=s+F[j]*F[j];
Z[i]=s;
}
else
Z[i]=F[i]+i;
cout << "Z["
<< i
<< "]="
<< Z[i]
<< "\n";
}
return 0;
}
a. Bllok-diagrami
Fillimi
x,m,(ai,i=1,m),(bi,i=1,m)
i=1
gi=ai2|bi|
Po
gi > x
Jo
i,gi
i=i+1
Po
i m
Jo
Fundi
Fig.6.14
gi=gi/i
104 Algoritmet
b. Rruga - pr x=20 dhe A=
-1
B = 2
-3
-4
Fig.6.15
c. Programi
// Programi Prg6_14
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const x=20,m=4;
int A[m]={-1,7,5,2},
B[m]={2,-3,8,4},i;
double G[m];
for (i=0;i<m;i++)
{
G[i]=A[i]*A[i]*abs(B[i]);
if (G[i]>x)
G[i]=G[i]/i;
cout << "G["
<< i
<< "]="
<< G[i]
<< "\n";
}
return 0;
}
106 Algoritmet
a. Bllok-diagrami
Fillimi
n,(ai,i=1,n)
s=0
i=1
Po
ai < 0
s=s+ai2
s=s+ai
i=i+1
Po
Jo
i n
Jo
s
Fundi
Fig.6.16
-2
-3
Fig.6.17
Shuma e cila llogaritet gjat rrugs s kaluar sht:
s = 7 + (-2)2 + 4 + 6 + (-3) 2
c. Programi
// Programi Prg6_16
#include <iostream>
using namespace std;
int main()
{
int const n=5;
int A[n]={7,-2,4,6,-3},i,s;
s=0;
for (i=0;i<n;i++)
108 Algoritmet
{
if (A[i]<0)
s=s+A[i]*A[i];
else
s=s+A[i];
}
cout << "Shuma e krkuar s="
<< s
<< "\n";
return 0;
}
b. Bllok-diagrami
b. Rruga - pr A =
19
-2 10
Fillimi
n,(ai,i=1,n)
p=1
i=1
Jo
ai > 5
Po
Jo
ai < 12
Po
p=pai
i,ai
i=i+1
Po
i n
Jo
p
Fundi
Fig.6.18
Fig.6.19
Njkohsisht, shtypen edhe indekset dhe vlerat e antarve t cilt jan jasht
kufijve t dhn:
2
19
4
-2
110 Algoritmet
c. Programi
// Programi Prg6_18
#include <iostream>
using namespace std;
int main()
{
int const n=5;
char t[20]="--------------";
int A[n]={7,19,8,-2,10},i,p;
p=1;
cout << " i
A[i]"
<< "\n"
<< t
<< "\n";
for (i=0;i<n;i++)
{
if ((A[i]>5) && (A[i]<12))
p=p*A[i];
else
cout << " "
<< i
<< "
"
<< A[i]
<< "\n";
}
cout << t
<< "\n"
<< "Prodhimi p="
<< p
<< "\n";
return 0;
}
Shembull
3x + 4 ( ai + 2)
i =1
y =
e2x 2 n a2 x
i
i=2
(ift)
pr x < 0.55
pr x 0.55
a. Bllok-diagrami
Fillimi
n,(ai,i=1,n),x
Po
Po
x < 0.55
Jo
p=1
s=0
i=1
i=2
p=p(|ai|+2)
s=s+(ai2-x)
i=i+1
i=i+2
Po
i n
Jo
i n
Jo
y=e2x-2s
y=3x+4p
y
Fundi
Fig.6.20
112 Algoritmet
b. Rruga - pr x = 0.2 dhe A=
-9
Fig.6.21
c. Programi
// Programi Prg6_20
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const n=3;
int A[n]={6,4,-9},i;
double s,p,x,y;
cout << "Vlera e variabls x=";
cin >> x;
114 Algoritmet
a. Bllok-diagrami
b. Rruga - pr
A=
-2
Fillimi
m,(ai,i=1,m)
n=0
i=1
ai < 0
Po
Jo
n=n+1
i=i+1
Po
i m
Jo
n
Fundi
Fig.6.22
c. Programi
// Programi Prg6_22
#include <iostream>
using namespace std;
int main()
{
int const m=5;
int A[m]={3,-2,7,-4,5},i,n;
n=0;
for (i=0;i<m;i++)
if (A[i]<0)
n=n+1;
cout << "Antar negativ n="
<< n
<< "\n";
return 0;
}
Fig.6.23
-4
a. Bllok-diagrami
-7
Fillimi
x,m,(fi,i=1,m)
k=0
i=1
Jo
fi<0
Po
Jo
|fi|>x
Po
k=k+1
i=i+1
Po
i m
Jo
k
Fundi
Fig.6.24
c. Programi
Fig.6.25
-5 -1
116 Algoritmet
// Programi Prg6_24
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const m=5,x=3;
int F[m]={-7,4,-5,-1,6},i,k;
k=0;
for (i=0;i<m;i++)
if ((F[i]<0) && (abs(F[i])>x))
k=k+1;
cout << "Numri i krkuar k="
<< k
<< "\n";
return 0;
}
a. Bllok-diagrami
b. Rruga - pr A=
-3
-7
ai < 0
n=n+1
Jo
p=p+1
i=i+1
Po
i m
Jo
n,p
Fundi
Fig.6.26
c. Programi
// Programi Prg6_26
#include <iostream>
using namespace std;
int main()
{
int const m=5;int A[m]={2,-3,-7,4,1},i,p,n;
p=0;n=0;
for (i=0;i<m;i++)
if (A[i]<0)
n=n+1;
else
p=p+1;
cout << "Antar pozitiv p="
<< p
<< "\n";
cout << "Antar negativ n="
<< n
<< "\n";
return 0;
Fig.6.27
118 Algoritmet
}
Pr vlerat e shfrytzuara gjat vizatimit t rrugs s kaluar n Fig.6.27, pas
ekzekutimit t programit, si rezultat shtypet:
Shembull
a. Bllok-diagrami
b. Rruga - pr
A=
Fillimi
n,(ai,i=1,n)
k=0
i=1
Jo
ai>3
Po
Jo
ai<8
Po
k=k+1
i,ai
i=i+1
Po
i n
Jo
k
Fundi
Fig.6.28
c. Programi
// Programi Prg6_28
Fig.6.29
-7
T gjendet:
a. sa antar t vektorit t dhn Y(n), prnga vlera
absolute jan numra m t mdhenj se numri pozitiv x;
b. numri i antarve n vektorin e dhn T(m), t cilt jan
m t mdhenj se x e m t vegjl se y, ku x>y.
120 Algoritmet
a. Bllok-diagrami
b. Rruga - pr
A=
Fillimi
m,(ai,i=1,m)
x=a1
i=2
x ai
Jo
x=ai
Po
i=i+1
Po
i m
Jo
x
Fundi
Fig.6.30
Fig.6.31
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3
4
5
6
7
8
5
7
8
5
6
7
8
9
17
10
Urdhri
Fillimi
Lexo: m
(ai ,i=1,m)
x=a1
i=2
Pyet: xai
x=ai
i=i+1
Pyet:im
Pyet: xai
i=i+1
Pyet:im
Pyet: xai
x=ai
i=i+1
Pyet:im
Shtyp:x
Fundi
Vlerat numerike
merren
Rezultati
Fillimi i
algoritmit
prej njsis
m=4, a1 =3, a2 =7,
hyrse
a3 =7, a4 =9
x=3
a1 2
i=2
Jo
x3, i4, ai 2
X=7
i4, ai 2
i=2+1=3
i4,
Po
i7, m2
Po
x6, i7, ai 2
i=3+1=4
i7,
Po
i10, m2
x6, i10, ai 2 Jo
x=9
i10, ai 2
i=4+1=5
i10,
Jo
i14, m2
Shtypet numri 9
x13
Fundi i
algoritmit
-
Fig.6.32
d. Programi
// Programi Prg6_30
#include <iostream>
using namespace std;
int main()
{
int const m=4;
int A[m]={3,7,5,9},i,x;
x=A[0];
for (i=1;i<m;i++)
{
if (x>=A[i])
{
}
else
122 Algoritmet
x=A[i];
}
cout << "Numri m i madh x="
<< x
<< "\n";
return 0;
}
a. Bllok-diagrami
b. Rruga - pr
A=
-7
Fillimi
n,(gi,i=1,n)
v=|gn|
i=n-1
v |gi|
Jo
v=|gi|
Po
i=i-1
Po
i > 0
Jo
v
Fundi
Fig.6.33
Fig.6.34
-6
-8
int main()
{
int const n=5;
int G[n]={-7,3,-6,4,-8},i,v;
v=abs(G[n-1]);
i=n-2;
do
{
if (v<=abs(G[i]))
{
}
else
v=abs(G[i]);
i--;
}
while (i>0);
cout << "Vlera m e vogl v="
<< v
<< "\n";
return 0;
}
124 Algoritmet
a. Bllok-diagrami
b. Rruga - pr
A=
-7
Fillimi
n,(zi,i=1,n)
t=|z1|
k=1
i=2
t < |zi|
Po
t=|zi|
Jo
k=i
i=i+1
Po
i n
Jo
k,t
Fundi
Fig.6.35
c. Programi
// Programi Prg6_35
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const n=5;
int Z[n]={4,-7,2,9,-5},i,t,k;
t=abs(Z[0]);
k=0;
for (i=1;i<n-1;i++)
Fig.6.36
-5
126 Algoritmet
a. Bllok-diagrami
Fillimi
n,(ai,i=1,n)
i=1
Po
ai < 0
Jo
i=i+1
d=|ai|
k=i+1
Po
i n
Jo
ak<0
Jo
Po
Jo
d>|ak|
d=|ak|
Po
k=k+1
Po
k n
Jo
Mesazhi
Fundi
Fig.6.37
Pjesa X e bllok-diagramit t dhn n Fig.6.37 shfrytzohet pr prcaktimin e
vlers fillestare t variabls d, n t ciln si rezultat do ruhet vlera e krkuar e
vektorit. N kt pjes, variabls d i shoqrohet vlera e antarit negativ, i cili
gjendet n procesin e krkimit, q fillon prej antarit t par t vektorit.
N pjesn Y, pasi paraprakisht sht prcaktuar vlera fillestare e variabls d,
procedura e krahasimit dhe e gjetjes s vlers absolute m t madhe n
grumbullin e antarve negativ fillon prej antarit k=i+1, ku i sht indeksi i
antarit t par negativ n vektor, i cili fitohet n pjesn X t bllok-diagramit.
A =
-2
-7
Fig.6.38
c. Programi
// Programi Prg6_37
#include <iostream>
#nclude <cmath>
using namespace std;
int main()
{
int const n=6;
int A[n]={3,-9,2,-6,7,-15},i,d,k;
i=0;
128 Algoritmet
do
{
if (A[i]<0)
goto Y;
i++;
}
while (i<n);
cout << "Nuk ka asnj vler negative"
<< "\n";
goto F;
Y:
d=abs(A[i]);
for (k=i+1;k<n;k++)
{
if (A[k]<0)
if (d>abs(A[k]))
{
}
else
d=abs(A[k]);
}
cout << "Vlera e gjetur d="
<< d
<< "\n";
F:
return 0;
}
Programi i dhn sht shkruar ashtu q pr nga struktura t'i ngjaj bllokdiagramit. Nse gjat krkimit n pjesn X nuk gjendet asnj antar negativ, sht
parapar q si rezultat t shtypet mesazhi prkats:
Nuk ka asnj vler negative
Pr vlerat e marra gjat vizatimit t rrugs s kaluar n Fig.6.38 rezultati q
shtypet n ekran sht:
Vlera e gjetur d=7
sepse, prej dy vlerave negative (-2 dhe -7), numri i dyt sht m i madh si
vler absolute.
Detyra
Radhitja e antarve
Antart e vektorit t dhn A(n) mund t radhiten sipas madhsis, n
(n-1)-hapa, kshtu:
Hapi i par
(i=1)
Hapi i dyt
(i=2)
.............
Hapi i fundit (i=n-1)
ai
1
aj
3
Fig.6.39
Shembull
130 Algoritmet
a. Bllok-diagrami
b. Rruga - pr
A=
Fillimi
n,(ai,i=1,n)
i=1
j=i+1
aiaj
Jo
b=ai
Po
ai=aj
aj=b
j=j+1
Po
jn
Jo
i=i+1
Po
i n-1
Jo
(ai,i=1,n)
Fundi
Fig.6.40
c. Programi
// Programi Prg6_40
#include <iostream>
using namespace std;
int main()
{
int const n=4;
Fig.6.41
2
2
2
7
3
3
8
8
7
3
7
8
Vlerat e fiksuara n fund t hapit t tret jan vlerat e radhitura t vektorit sipas
madhsive, prej m t voglit kah m i madhi, dhe rezultati q shtypet pas
ekzekutimit t programit sht:
A=[
a. Bllok-diagrami
A=
-7
-4
132 Algoritmet
Fillimi
n,(ai,i=1,n)
i=1
j=i+1
|ai||aj|
Jo
Po
b=ai
ai=aj
aj=b
j=j+1
Po
jn
Jo
i=i+1
Po
i n-1
Jo
(ai,i=1,n)
Fundi
Fig.6.42
c. Programi
// Programi Prg6_42
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
Fig.6.43
-7
-4
134 Algoritmet
Matricat
Gjat puns me matrica, pr t'i shfrytzuar antart e vendosur n fushat e
veanta t tyre, prdoren indekset e rreshtave dhe t kolonave prkatse.
Prcaktimi i matricave
Vlerat e antarve t matricave kompjuterit mund t'i jepen si vlera t gatshme
hyrse, ose duke i llogaritur ato n baz t procedurs s dhn.
Shembull
aij
2i + 3j
= i + j
3i j2
pr i < j
pr i = j
pr i > j
aij=2i+3j
i <>- j
=
aij=i+j
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
a ,i=1,m
ij j=1,n
Fundi
Fig.6.44
>
aij=3i-j2
136 Algoritmet
Fig.6.45
c. Programi
// Programi Prg6_44
#include <iostream>
using namespace std;
int main()
{
int const m=2,n=3;
int i,j,A[m][n];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (i<j)
rij
a. Bllok-diagrami
i + j+ 1
3 (k + 2i 3j)
= k =1
(i + j)!
pr i < j
pr i j
138 Algoritmet
Fillimi
s=
i+j+1
m,n
k =1
i=1
(k + 2i 3j)
j=1
Po
Jo
F=(i+j)!
i < j
s=0
F=1
k=1
k=1
s=s+(k+2i-3j)
F=Fk
k=k+1
k=k+1
Po
Po
k i+j+1
Jo
rij=3s
k i+j
Jo
rij=F
j=j+1
j n
i=i+1
i n
r ,i=1,m
ij j=1,n
Fundi
Fig.6.46
int main()
{
int const m=2,n=3;
int i,j,k,s,f,R[m][n];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (i<j)
{
s=0;
for (k=1;k<=(i+j+1);k++)
s=s+(k+2*i-3*j);
R[i][j]=3*s;
}
else
{
f=1;
for (k=1;k<=(i+j);k++)
f=f*k;
R[i][j]=f;
}
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(5);
cout << R[i][j];
}
cout << "\n";
}
return 0;
}
140 Algoritmet
G =
j=1
...
i=1
...
-3
...
-3
-3
...
-3
-3
-3 ...
j=1
...
i=1
...
...
...
b.
G =
...
A =
...
d1 +2 d1 +3 ... d1 +m
i=1
d1
d2 +8
d3 +8 d3 +8
d2
d2 +3 ... d2 +m
d3
... d3 +m
dm +8 dm +8 dm +8 ...
a. Bllok-diagrami
dm
Fillimi
m,(di,i=1,m)
i=1
j=1
<
aij=di+j
i <>- j
=
aij=di
j=j+1
Po
j m
Jo
i=i+1
Po
i m
Jo
a ,i=1,m
ij j=1,m
Fundi
Fig.6.47
>
aij=di+8
142 Algoritmet
Si shihet edhe nga bllok-diagrami, pr i<j duhet t mbushen antart mbi
diagonalen kryesore, kurse kur sht i>j kemi t bjm me antart nn
diagonalen kryesore.
b. Programi
// Programi Prg6_47
#include <iostream>
using namespace std;
int main()
{
int const m=5;
int D[m]={3,-7,4,9,-2};
int i,j,A[m][m];
for (i=0;i<m;i++)
for (j=0;j<m;j++)
if (i<j)
A[i][j]=D[i]+j;
else
if (i==j)
A[i][j]=D[i];
else
A[i][j]=D[i]+8;
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<m;j++)
{
cout.width(5);
cout << A[i][j];
}
cout << "\n";
}
return 0;
}
G =
...
...
b2
...
b3
...
bm
...
a. Bllok-diagrami
Fillimi
m,(bi,i=1,m)
i=1
j=1
Po
Jo
j=1
gij=bj
gij=i
j=j+1
Po
j m
Jo
i=i+1
Po
i m
Jo
g ,i=1,m
ij j=1,m
Fundi
Fig.6.48
144 Algoritmet
b. Programi
// Programi Prg6_48
#include <iostream>
using namespace std;
int main()
{
int const m=5;
int B[m]={9,2,-4,6,-5};
int i,j,G[m][m];
for (i=0;i<m;i++)
for (j=0;j<m;j++)
if (j==0)
G[i][j]=B[i];
else
G[i][j]=i;
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<m;j++)
{
cout.width(5);
cout << G[i][j];
}
cout << "\n";
}
return 0;
}
0
1
2
3
4
0
1
2
3
4
Detyra
b.
a.
j=1
i=1
...
b.
...
i=1
A = ...
j=1
-5
A = ...
...
m+1
i=1
2
A
Z = ...
m
m+1
146 Algoritmet
a. Bllok-diagrami
Fillimi
i=1,m
m, aij,j=1,m
i=1
j=1
zij=aij
j=j+1
Po
j m
Jo
zi,m+1=4
i=i+1
Po
i m
Jo
j=1
zm+1,j=9
j=j+1
Po
j m
Jo
zm+1,m+1=0
z ,i=1,m +1
ij j=1,m +1
Fundi
Fig.6.49
int main()
{
int const m=4;
int A[m][m]={ {3,5,-4,2},
{6,9,-2,8},
{1,-3,7,4},
{2,0,-5,3}
};
int i,j,Z[m+1][m+1];
for (i=0;i<m;i++)
{
for (j=0;j<m;j++)
Z[i][j]=A[i][j];
Z[i][m]=4;
}
for (j=0;j<m;j++)
Z[m][j]=9;
Z[m][m]=0;
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<=m;i++)
{
for (j=0;j<=m;j++)
{
cout.width(5);
cout << Z[i][j];
}
cout << "\n";
}
return 0;
}
2
8
4
3
9
4
4
4
4
0
148 Algoritmet
Algoritmi pr formimin e matrics Z mund t realizohet edhe ndryshe, duke
parapar mbushjen e t gjitha pjesve t saj brenda unazave pr indekset i dhe
j, t cilat ndryshohen mes vlerave 1 dhe m+1, ashtu si sht treguar n vijim.
a. Bllok-diagrami
Fillimi
i=1,m
m, aij,j=1,m
i=1
j=1
Po
Po
zij=0
j=m+1
Jo
i=m+1
Jo
Po
zij=9
zij=4
j=j+1
Po
j m+1
Jo
i=i+1
Po
i m+1
Jo
z ,i=1,m +1
ij j=1,m +1
Fundi
Fig.6.50
j=m+1
Jo
zij=aij
Detyra
-9
R =
R =
150 Algoritmet
Gjat formimit t matricave, pjes t caktuara t tyre mund t mbushen edhe
me vlerat e matricave t njohura, p.sh., si sht matrica njsi, ose matrica zero
etj.
Shembull
i n
Po
i=j
tij=0
tij=1
tij=0
j=j+1
Po
j n
Jo
i=i+1
Po
i 2n
Jo
t ,i=1,2n
ij j=1,n
Fundi
Fig.6.51
b. Programi
// Programi Prg6_51
#include <iostream>
using namespace std;
int main()
{
int const n=5;
int i,j,T[2*n][n];
Jo
152 Algoritmet
for (i=0;i<(2*n);i++)
for (j=0;j<n;j++)
if (i<n)
if (i==j)
T[i][j]=1;
else
T[i][j]=0;
else
T[i][j]=0;
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<(2*n);i++)
{
for (j=0;j<n;j++)
{
cout.width(3);
cout << T[i][j];
}
cout << "\n";
}
return 0;
}
e formuar
0 0 0
0 0 0
1 0 0
0 1 0
0 0 1
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
Detyra
j=1 ...
i=1
2
R = .
:
m
b.
m+1 ... 2m
m+1 ... 2m
154 Algoritmet
a. Bllok-diagrami
Fillimi
i=1,m
i=1,m
m, aij,
, bij,j=1,m
=
j
1,
m
i=1
j=1
Po
j m
dij=aij
Jo
dij=bi,j-m
j=j+1
Po
j 2m
Jo
i=i+1
Po
i m
Jo
d ,i=1,m
ij j=1,2m
Fundi
Fig.6.52
b. Programi
// Programi Prg6_52
#include <iostream>
using namespace std;
int main()
{
int const m=3;
int A[m][m]={ {4,7,3},
{-2,3,9},
156 Algoritmet
Detyra
G =
G =
3
-6
B
i=1
.
:
R = m
m+1
.
:
m+l
i=1
j=1
Po
Po
j n
rij=fij
Jo
i m
Jo
Po
rij=0
rij=0
j=j+1
Po
j n+k
Jo
i=i+1
Po
i m+l
Jo
r ,i=1,m +l
ij j=1,n+k
Fundi
Fig.6.53
b. Programi
// Programi Prg6_53
#include <iostream>
using namespace std;
int main()
j n
Jo
rij=gi-m,j-n
158 Algoritmet
{
int const m=3,n=4,l=4,k=3;
int F[m][n]={ {4,7,3,5},
{-2,3,9,2},
{8,-4,2,7}
};
int G[l][k]={ {-2,9,1},
{4,8,3},
{6,1,7},
{-9,4,2}
};
int i,j,R[m+l][n+k];
for (i=0;i<m+l;i++)
for (j=0;j<n+k;j++)
if (i<m)
if (j<n)
R[i][j]=F[i][j];
else
R[i][j]=0;
else
if (j<n)
R[i][j]=0;
else
R[i][j]=G[i-m][j-n];
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<m+l;i++)
{
for (j=0;j<n+k;j++)
{
cout.width(4);
cout << R[i][j];
}
cout << "\n";
}
return 0;
}
0
0
0
0
0
0
0
0
0
4
6
-9
8
1
4
3
7
2
f ,i=1,m , g ,i=1,l
ij j=1,n ij j=1,k
i=1
j=1
Po
Jo
i m
rij=fij
rij=0
j=j+1
Po
j n
Jo
i=i+1
Po
i m+l
Jo
A
160 Algoritmet
A
i=1
j=n+1
Po
Jo
i m
rij=0
rij=gi-m,j-n
j=j+1
Po
j n+k
Jo
i=i+1
Po
i m+l
Jo
r ,i=1,m +l
ij j=1,n+k
Fundi
Fig.6.54
b. Programi
Pjesa e programit pr mbushjen e matrics me vlera, e cila ndryshon nga
programi q u dha m sipr, duket si n vijim.
// Programi Prg6_54
.......................................
for (i=0;i<m+l;i++)
for (j=0;j<n;j++)
if (i<m)
R[i][j]=F[i][j];
else
R[i][j]=0;
for (i=0;i<m+l;i++)
162 Algoritmet
a. Bllok-diagrami
Fillimi
m,n,l,k
a ,i=1,m , b ,i=1,m
ij j=1,n ij j=1,k
c ,i=1,l , d ,i=1,l
ij j=1,n ij j=1,k
i=1
j=1
Po
Po
fij=aij
j n
Jo
i m
Jo
Po
fij=bi,j-n
fij=ci-m,j
j=j+1
Po
j n+k
Jo
i=i+1
Po
i m+l
Jo
f ,i=1,m +l
ij j=1,n+ k
Fundi
Fig.6.55
j n
Jo
fij=di-m,j-n
b. Programi
// Programi Prg6_55
#include <iostream>
using namespace std;
int main()
{
int const m=3,n=2,l=2,k=3;
int A[m][n]={ {4,7},
{-2,5},
{8,3}};
int B[m][k]={ {-1,9,6},
{2,3,8},
{4,1,5}
};
int C[l][n]={ {1,2},
{3,4}
};
int D[l][k]={ {5,4,3},
{2,1,0}
};
int i,j,F[m+l][n+k];
for (i=0;i<m+l;i++)
for (j=0;j<n+k;j++)
if (i<m)
if (j<n)
F[i][j]=A[i][j];
else
F[i][j]=B[i][j-n];
else
if (j<n)
F[i][j]=C[i-m][j];
else
F[i][j]=D[i-m][j-n];
cout << "Matrica e formuar"
<< "\n";
for (i=0;i<m+l;i++)
{
for (j=0;j<n+k;j++)
{
cout.width(4);
cout << F[i][j];
}
cout << "\n";
}
164 Algoritmet
return 0;
}
6
8
5
3
0
F=
b.
F=
c.
F=
d.
F=
Operacionet aritmetikore
Mbi antart e matricave mund t zbatohen operacionet elementare
aritmetikore.
...
a1n +b1n
...
a2n +b2n
...
...
...
amn +bmn
...
...
166 Algoritmet
a. Bllok-diagrami
Fillimi
i=1,m
i=1,m
m,n, aij,j=1,n , bij,j=1,n
i=1
j=1
cij=aij+bij
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
c ,i=1,m
ij j=1,n
Fundi
Fig.6.56
c. Programi
// Programi Prg6_56
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {4,7,8,-6,9},
{1,-2,5,4,6},
{8,3,2,-1,0},
{-3,5,8,4,1}
};
int B[m][n]={ {-1,6,9,6,4},
formuar
17
0 13
12
8 -2
4 -2
5
14
8
2
Shumzimi
Matrica shumzohet me vektor nse numri i kolonave t matrics sht i
barabart me numrin e antarve t vektorit. Rezultati q fitohet pas shumzimit
t matrics me vektor sht vektor, i cili do t ket aq antar sa ka rreshta
matrica.
168 Algoritmet
Shembull
b1
b2
...
bn
= a ij b j
j=1
(bi,i=1,n)
i=1
s=0
j=1
s=s+aijbj
j=j+1
Po
j n
Jo
ti=s
i=i+1
Po
i m
Jo
(ti,i=1,m)
Fundi
Fig.6.57
b. Programi
170 Algoritmet
// Programi Prg6_57
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,5,8,-1,4},
{7,-4,9,2,1},
{6,2,1,5,-7},
{2,4,6,-8,3}
};
int B[n]={-1,6,9,6,4};
int i,j,s,T[m];
for (i=0;i<m;i++)
{
s=0;
for (j=0;j<n;j++)
s=s+A[i][j]*B[j];
T[i]=s;
}
cout << "Vektori i prodhimit"
<< "\n";
cout << "T=[ ";
for (i=0;i<m;i++)
cout << T[i]
<< " ";
cout << "]"
<< "\n";
return 0;
}
T gjendet:
a. matrica Y(m,n) si prodhim i matrics X(m,n) me
konstanten k;
b. vektori F(n) si prodhim i vektorit A(m) me matricn
B(m,n).
172 Algoritmet
a. Bllok-diagrami
Fillimi
m,n,k
a ,i=1,m , b ,i=1,k
ij j=1,k ij j=1,n
i=1
j=1
s=0
l=1
s=s+ailblj
l=l+1
Po
l k
Jo
cij=s
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
i
=
1,
m
c ,
ij j=1,n
Fundi
Fig.6.58
b. Programi
// Programi Prg6_58
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5,k=3;
int A[m][k]={ {3,5,8},
{7,-4,9},
{6,2,1},
{2,4,6}
};
int B[k][n]={ {-1,6,9,6,4},
{2,6,8,4,-3},
{5,3,-2,5,9}
};
int i,j,l,s,C[m][n];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
s=0;
for (l=0;l<k;l++)
s=s+A[i][l]*B[l][j];
C[i][j]=s;
}
cout << "Matrica e prodhimit C"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(5);
cout << C[i][j];
}
cout << "\n";
}
return 0;
}
prodhimit C
51 78 69
13 71 121
69 49 27
38 58 50
174 Algoritmet
Ekuacionet matricore
Duke u mbshtetur n rregullat e ekzekutimit t operacioneve elementare
aritmetikore t dhna m sipr, mund t formohen ekuacione matricore.
Shembull
a. Bllok-diagrami
Fillimi
m,n,k
i=1
j=1
s=0
l=1
s=s+ailblj
s=
a il b lj
l =1
l=l+1
Po
l k
Jo
rij=s-zij
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
z ,i=1,m
ij j=1,n
Fundi
Fig.6.59
176 Algoritmet
b. Programi
// Programi Prg6_59
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5,k=3; int i,j,l,s,R[m][n];
int X[m][k]={ {3,5,8},
{7,-4,9},
{6,2,1},
{2,4,6}};
int Y[k][n]={ {-1,6,9,6,4},
{2,6,8,4,-3},
{5,3,-2,5,9}};
int Z[m][n]={ {3,4,6,2,-1},
{9,1,3,-5,2},
{7,-2,1,4,8},
{-2,5,3,1,4}};
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
s=0;
for (l=0;l<k;l++)
s=s+X[i][l]*Y[l][j];
R[i][j]=s-Z[i][j];
}
cout << "Matrica e rezultatit R"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(4);
cout << R[i][j];
}
cout << "\n";
}
return 0;
}
rezultatit R
45 76 70
10 76 119
67 45 19
35 57 46
Antart n vektor
Duke shfrytzuar antart e matricave, mund t formohen vektor t
ndryshm. P.sh., me qllim t sortimit sipas madhsis t antarve t matrics
s dhn, vlerat e tyre mund t vendosen n vektor, p.sh., duke shkuar sipas
rreshtave t matrics. Pastaj, sortimi i vlerave t antarve t vektorit bhet ashtu
si u tregua m par.
Shembull
a. Bllok-diagrami
Fillimi
i = 1,m
m, n, aij,
j
= 1,n
k=0
i=1
j=1
k=k+1
zk=aij
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
(zi,i=1,k)
Fundi
Fig.6.60
178 Algoritmet
Ktu, numratori k shfrytzohet pr prcaktimin e indeksit t pozits n
vektor t antarve t veant t matrics.
b. Programi
// Programi Prg6_60
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=3;
int A[m][n]={ {3,-4,6},
{-9,1,2},
{7,-8,1},
{-2,5,-3}
};
int i,j,k,Z[m*n];
k=-1;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
k=k+1;
Z[k]=A[i][j];
}
cout << "Z=[";
for (i=0;i<=k;i++)
{
cout.width(3);
cout << Z[i];
}
cout << " ]\n";
return 0;
}
3 -4
6 -9
7 -8
1 -2
5 -3
m, n, aij,
j
= 1,n
k=0
i=1
j=1
Jo
aij < 0
Po
k=k+1
zk=aij
j=j+1
Po
jn
Jo
i=i+1
Po
im
Jo
(zi,i=1,k)
Fundi
Fig.6.61
b. Programi
180 Algoritmet
// Programi Prg6_61
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=3;
int A[m][n]={ {3,-4,6},
{-9,1,2},
{7,-8,1},
{-2,5,-3}
};
int i,j,k,Z[m*n];
k=-1;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (A[i][j]<0)
{
k=k+1;
Z[k]=A[i][j];
}
cout << "Z=[";
for (i=0;i<=k;i++)
{
cout.width(3);
cout << Z[i];
}
cout << " ]\n";
return 0;
}
m, n, aij,
j= 1,n
x=0
y=0
i=1
j=1
Po
aij < 0
x=x+1
y=y+1
fx=aij
gy=aij
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
(fi,i=1,x)
(gi,i=1,y)
Fundi
Fig.6.62
b. Programi
Jo
182 Algoritmet
// Programi Prg6_62
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=3; int i,j,x,y,F[m*n],G[m*n];
int A[m][n]={ {3,-4,6},
{-9,1,2},
{7,-8,1},
{-2,5,-3}};
x=-1;y=-1;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (A[i][j]<0)
{
x=x+1; F[x]=A[i][j];
}
else
{
y=y+1; G[y]=A[i][j];
}
cout << "F=[";
for (i=0;i<=x;i++)
{
cout.width(3);
cout << F[i];
}
cout << " ]\n";
cout << "G=[";
for (i=0;i<=y;i++)
{
cout.width(3);
cout << G[i];
}
cout << " ]\n";
return 0;
}
5 ]
i = 1,m
m, n, x, a ij,
j
= 1,n
k=0
i=1
j=1
aij > 0
Jo
Po
aij < x
Po
k=k+1
fk=aij2
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
(fi,i=1,k)
Fundi
Fig.6.63
Jo
184 Algoritmet
b. Programi
// Programi Prg6_63
#include <iostream>
using namespace std;
int main()
{
int const x=6,m=4,n=3;
int A[m][n]={ {3,-4,6},
{-9,1,2},
{7,-8,4},
{-2,5,-3}
};
int i,j,k,F[m*n];
k=-1;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if ((A[i][j]>=0) && (A[i][j]<x))
{
k=k+1;
F[k]=A[i][j]*A[i][j];
}
cout << "F=[";
for (i=0;i<=k;i++)
{
cout.width(3);
cout << F[i];
}
cout << " ]\n";
return 0;
}
4 16 25 ]
a. Bllok-diagrami
m, n, aij,
j
= 1,n
k=0
i=2
j=1
Jo
aij > 0
Po
k=k+1
fk=sin(aij)
j=j+1
Po
jn
Jo
i=i+2
Po
im
Jo
(fi,i=1,k)
Fundi
Fig.6.64
b. Programi
// Programi Prg6_64
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const m=4,n=3;
int A[m][n]={ {3,-5,6},
186 Algoritmet
{-9,1,2},
{7,-8,4},
{-2,5,-3}
};
int i,j,k;
double F[m*n];
k=-1;
i=1;
do
{
for (j=0;j<n;j++)
if (A[i][j]>=0)
{
k=k+1;
F[k]=sin(A[i][j]);
}
i=i+2;
}
while (i<=m);
cout << "F=[";
for (i=0;i<=k;i++)
{
cout.precision(3);
cout.width(7);
cout << F[i];
}
cout << " ]\n";
return 0;
}
0.841
0.909 -0.959 ]
Veprime t tjera
Prve veprimeve t prmendura m sipr, pr pjes t caktuara t matrics,
si jan rreshtat, kolonat, pjesa mbi, n ose nn diagonalen kryesore t matrics,
ose pr komplet matricn, mund t gjendet shuma, prodhimi, t numrohen ose
t gjenden antar t caktuar etj.
= aij
i = 1j= 1
a. Bllok-diagrami
Fillimi
i = 1,m
m, n, aij,
j
= 1,n
s=0
i=1
j=1
s=s+aij
j=j+1
Po
jn
Jo
i=i+1
Po
im
Jo
s
Fundi
Fig.6.65
188 Algoritmet
b. Programi
// Programi Prg6_65
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,6,7,2},
{-9,1,2,5,8},
{7,-8,4,3,9},
{6,5,-3,4,8}
};
int i,j,s;
s=0;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
s=s+A[i][j];
cout << "Shuma s="
<< s
<< "\n";
return 0;
}
a. Bllok-diagrami
Fillimi
i = 1,m
m, n, aij,
j
= 1,n
i=1
s=0
j=1
aij
s=s+aij
j=j+1
Po
jn
Jo
s
i=i+1
Po
im
Jo
Fundi
Fig.6.66
b. Programi
// Programi Prg6_66
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,6,7,2},
{-9,1,2,5,8},
{7,-8,4,3,9},
190 Algoritmet
{6,5,-3,4,8}
};
int i,j,s;
for (i=0;i<m;i++)
{
s=0;
for (j=0;j<n;j++)
{
cout.width(4);
cout << A[i][j];
s=s+A[i][j];
}
cout << "
s="
<< s
<< "\n";
}
return 0;
}
7
5
3
4
2
8
9
8
s=13
s=7
s=15
s=20
a. Bllok-diagrami
m, aij,
= 1,m
j
s=0
p=1
i=1
j=1
Po
i < j
Jo
i = j
Po
p=paij
s=s+aij
j=j+1
Po
j m
Jo
i=i+1
Po
i m
Jo
s,p
Fundi
Fig.6.67
b. Programi
Jo
192 Algoritmet
// Programi Prg6_67
#include <iostream>
using namespace std;
int main()
{
int const m=5;
int A[m][m]={ {4,3,5,-7,1},
{-5,6,4,9,2},
{3,-4,7,6,1},
{8,3,-2,5,9},
{6,4,8,-3,7}
};
int i,j,s,p;
s=0;
p=1;
for (i=0;i<m;i++)
for (j=0;j<m;j++)
if (i<j)
s=s+A[i][j];
else
if (i==j)
p=p*A[i][j];
cout << "Shuma
s="
<< s
<< "\n"
<< "Prodhimi p="
<< p
<< "\n";
return 0;
}
m, n, aij,
= 1,n
j
x=0
y=0
z=0
i=1
j=1
Po
aij > 0
Jo
aij < 0
Jo
Po
x=x+1
y=y+1
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
x,y,z
Fundi
Fig.6.68
b. Programi
// Programi Prg6_68
#include <iostream>
z=z+1
194 Algoritmet
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,6,7,2},
{-9,1,0,-7,8},
{0,-8,4,3,9},
{6,5,-3,0,8}
};
int i,j,x,y,z;
x=0;y=0;z=0;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (A[i][j]>0)
x=x+1;
else
if (A[i][j]<0)
y=y+1;
else
z=z+1;
cout << "Antar pozitiv x="
<< x
<< "\n"
<< "Antar negativ y="
<< y
<< "\n"
<< "Antar zero
z="
<< z
<< "\n";
return 0;
}
a. Bllok-diagrami
m, n, aij,
j
= 1,n
i=1
x=0
y=0
j=1
Po
aij > 0
Jo
Po
aij < 0
Jo
x=x+1
y=y+1
aij
j=j+1
Po
jn
Jo
x,y
i=i+1
Po
im
Jo
Fundi
Fig.6.69
b. Programi
// Programi Prg6_69
#include <iostream>
using namespace std;
196 Algoritmet
int main()
{
int const m=4,n=5;
int A[m][n]={ {1,-8,-5,7,2},
{-6,0,-4,3,-8},
{4,-8,0,3,2},
{-1,0,-3,9,0}
};
int i,j,x,y;
for (i=0;i<m;i++)
{
x=0;
y=0;
for (j=0;j<n;j++)
{
if (A[i][j]>0)
x=x+1;
else
if (A[i][j]<0)
y=y+1;
cout.width(3);
cout << A[i][j];
}
cout << "
x="
<< x
<< " y="
<< y
<< "\n";
}
return 0;
}
7 2
3 -8
3 2
9 0
x=3
x=1
x=3
x=1
y=2
y=3
y=1
y=2
a. Bllok-diagrami
Fillimi
i = 1,m
m, aij,
j= 1,m
n=0
i=2
j=1
Jo
aij > 2
Po
aij < 7
Po
n=n+1
j=j+1
Po
j i-1
Jo
i=i+1
Po
i m
Jo
n
Fundi
Fig.6.70
b. Programi
// Programi Prg6_70
#include <iostream>
using namespace std;
Jo
198 Algoritmet
int main()
{
int const m=5;
int A[m][m]={ { 4, 3, 5,-7, 1},
{-5, 6, 4, 9, 2},
{ 3, 9, 7, 6, 1},
{ 1,-3,-2, 5, 9},
{ 6, 5, 8, 4, 7}
};
int i,j,n;
n=0;
for (i=1;i<m;i++)
for (j=0;j<=i-1;j++)
{
if ((A[i][j]>2) && (A[i][j]<7))
n=n+1;
}
cout << "Numri i krkuar n="
<< n
<< "\n";
return 0;
}
a. Bllok-diagrami
m, n, aij,
j
= 1,n
z=a11
i=1
j=1
Jo
aij < z
Po
zk=aij
j=j+1
Po
jn
Jo
i=i+1
Po
im
Jo
z
Fundi
Fig.6.71
Ktu, pr i=1 dhe j=1 do t krahasohet antari i par i matrics me
vetveten, gj q imponohet si krahasim i domosdoshm, meq nse merret i=1
dhe j=2, pr vlerat e tjera t variabls i, gjat krahasimit do t kaprcehen
antart e kolons s par t matrics.
b. Programi
200 Algoritmet
// Programi Prg6_71
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,6,7,2},
{-9,1,2,5,8},
{7,-8,4,3,9},
{6,5,-3,4,8}
};
int i,j,z;
z=A[0][0];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (A[i][j]<z)
z=A[i][j];
cout << "Vlera minimale z="
<< z
<< "\n";
return 0;
}
Rezultati q shtypet n ekran pas ekzekutimit t programit sht:
Vlera minimale z=-9
N matric, prve antarit t caktuar, mund t gjendet edhe pozita e tij,
prkatsisht indekset prkatse.
Shembull
m, n, aij,
j= 1,n
x=|a11|
f=1
g=1
i=1
j=1
|aij| > x
Po
x=|aij|
f=i
g=j
j=j+1
Po
jn
Jo
i=i+1
Po
im
Jo
f,g,x
Fundi
Fig.6.72
b. Programi
Jo
202 Algoritmet
// Programi Prg6_72
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,8,7,2},
{-4,1,2,5,8},
{7,-9,4,3,2},
{6,5,-3,4,7}
};
int i,j,f,g,x;
x=abs(A[0][0]);
f=1;g=1;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (abs(A[i][j])>x)
{
x=abs(A[i][j]);
f=i;
g=j;
}
cout << "Vlera maksimale absolute x: "
<< x
<< "\n"
<< "Pozita ............... f,g: "
<< f
<< ","
<< g
<< "\n";
return 0;
}
a. Bllok-diagrami
Fillimi
i = 1,m
m, n, aij,
j= 1,n
i=1
x=ai1
j=1
aij > x
Po
x=aij
aij
j=j+1
Po
jn
Jo
x
i=i+1
Po
im
Jo
Fundi
Fig.6.73
b. Programi
Jo
204 Algoritmet
// Programi Prg6_73
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,8,7,2},
{-4,1,2,6,-3},
{7,-9,4,3,2},
{9,5,-3,4,1}
};
int i,j,x;
for (i=0;i<m;i++)
{
x=A[i][1];
for (j=0;j<n;j++)
{
if (A[i][j]>x)
x=A[i][j];
cout.width(3);
cout << A[i][j];
}
cout << "
x="
<< x
<< "\n";
}
return 0;
}
7 2
6 -3
3 2
4 1
x=8
x=6
x=7
x=9
a. Bllok-diagrami
Fillimi
i = 1,m
m, n, aij,
j
= 1,n
x=a12
y=a21
i=1
j=1
i j
Jo
Po
Po
Jo
i<j
aij > x
aij > y
Po
Po
x=aij
y=aij
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
x,y
Fundi
Fig.6.74
b. Programi
Jo
Jo
206 Algoritmet
// Programi Prg6_74
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5;
int A[m][n]={ {3,-5,8,7,2},
{-4,1,2,6,-3},
{7,-9,6,3,4},
{9,5,-3,4,1}
};
int i,j,x,y;
x=A[0][1];
y=A[1][0];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (i!=j)
if (i<j)
if (A[i][j]>x)
x=A[i][j];
else
{
}
else
if (A[i][j]>y)
y=A[i][j];
else
{
}
cout << "Mbi diagonale x="
<< x
<< "\n"
<< "Nn diagonale y="
<< y
<< "\n";
return 0;
}
x =
1 n
aij , pr i = 1,2,..., m.
n j= 1
208 Algoritmet
a. Bllok-diagrami
Fillimi
i = 1,m
m, n, aij,
j= 1,n
i=1
s=0
j=1
s=s+aij
aij
j=j+1
Po
j n
Jo
x =
s
n
x
i=i+1
Po
i m
Jo
Fundi
Fig.6.75
int main()
{
int const m=4,n=5;
int A[m][n]={ {7,3,4,9,5},
{6,1,2,4,8},
{7,6,4,1,2},
{9,5,3,8,7}
};
int i,j;
double s,x;
for (i=0;i<m;i++)
{
s=0;
for (j=0;j<n;j++)
{
s=s+A[i][j];
cout.width(3);
cout << A[i][j];
}
x=s/n;
cout << "
x="
<< x
<< "\n";
}
return 0;
}
3
1
6
5
4
2
4
3
9
4
1
8
5
8
2
7
x=5.6
x=4.2
x=4
x=6.4
210 Algoritmet
Detyra
m, n, l, aij,
j= 1,n
i=1
j=1
Po
i<l
bij=aij
bij=ai+1,j
j=j+1
Po
j n
Jo
i=i+1
Po
Jo
i m-1
Jo
i = 1,m -1
bij,j= 1,n
Fundi
Fig.6.76
b. Programi
// Programi Prg6_76
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5,l=2;
int A[m][n]={ {7,-3,4,-9,5},
{6,1,-2,4,-8},
{-7,6,-4,1,2},
212 Algoritmet
{9,-5,3,8,-6}
};
int i,j,B[m][n];
for (i=0;i<m-1;i++)
for (j=0;j<n;j++)
if (i<1)
B[i][j]=A[i][j];
else
B[i][j]=A[i+1][j];
cout << "Matrica B"
<< "\n";
for (i=0;i<m-1;i++)
{
for (j=0;j<n;j++)
{
cout.width(3);
cout << B[i][j];
}
cout << "\n";
}
return 0;
}
a. Bllok-diagrami
m, n, k, aij,
j
= 1,n
j=1
i=1
Po
j<k
bij=aij
bij=ai,j+1
i=i+1
Po
i m
Jo
j=j+1
Po
Jo
j n-1
Jo
i = 1,m
bij,j= 1,n-1
Fundi
Fig.6.77
b. Programi
// Programi Prg6_77
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5,k=2;
int A[m][n]={ {7,-3,4,-9,5},
{6,1,-2,4,-8},
{-7,6,-4,1,2},
{9,-5,3,8,-6}
};
214 Algoritmet
int i,j,B[m][n];
for (j=0;j<n-1;j++)
for (i=0;i<m;i++)
if (j<k)
B[i][j]=A[i][j];
else
B[i][j]=A[i][j+1];
cout << "Matrica B"
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n-1;j++)
{
cout.width(3);
cout << B[i][j];
}
cout << "\n";
}
return 0;
}
a. Bllok-diagrami
=1,n
j
i=1
j=1
Po
Po
bij=aij
j<k
Jo
i<l
Jo
Po
bij=ai,j+1
bij=ai+1,j
j=j+1
Po
j n-1
Jo
i=i+1
Po
i m-1
Jo
b ,i=1,m 1
ij j=1,n1
Fundi
Fig.6.78
b. Programi
j<k
Jo
bij=ai+1,j+1
216 Algoritmet
// Programi Prg6_78
#include <iostream>
using namespace std;
int main()
{ int const m=4,n=5,l=1,k=2;
int A[m][n]={ {7,-3,4,-9,5},
{6,1,-2,4,-8},
{-7,6,-4,1,2},
{9,-5,3,8,-6}
};
int i,j,B[m-1][n-1];
for (i=0;i<n-1;i++)
for (j=0;j<m;j++)
if (i<1)
if (j<k)
B[i][j]=A[i][j];
else
B[i][j]=A[i][j+1];
else
if (j<k)
B[i][j]=A[i+1][j];
else
B[i][j]=A[i+1][j+1];
cout << "Matrica B"
<< "\n";
for (i=0;i<m-1;i++)
{
for (j=0;j<n-1;j++)
{
cout.width(3);
cout << B[i][j];
}
cout << "\n";
}
return 0;
}
Detyra
Ktu, para se t filloj fshirja duhet t kontrollohet se a ka pr fshirje xrreshta dhe y-kolona, prej rreshtit t l-t dhe kolons s k-t.
Fushat tridimensionale
Gjat zgjidhjes s problemeve me kompjuter prdoren edhe fusha
shumdimensionale. Kshtu, p.sh., operimi me t dhna, t cilat prcaktohen
prmes tri madhsive t ndryshme, thjeshtohet dukshm, nse shfrytzohen
fusha tridimensionale.
N algoritme, me fushat tridimensionale operohet duke i shikuar ato si
grumbuj matricash, ku me dimensionin e tret t tyre prcaktohet numri i
matrics n strukturn tridimensionale t fushs, ashtu si shihet n Fig.6.79.
218 Algoritmet
k
j
j=1 2 ... n
i=1 a111 a121 ... a1n1
i
j=1
...
j=1
...
...
a. Bllok-diagrami
Fillimi
i=1,m
i=1,m
m,n,l, aij,
, bij,j=1,n
=
j
1,
n
k=1
i=1
j=1
Po
Jo
k=1
cijk=aij
cijk=bij
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
k=k+1
Po
kl
Jo
k = 1,l
cijk , i = 1,m
j = 1,n
Fundi
Fig.6.80
220 Algoritmet
b. Programi
// Programi Prg6_80
#include <iostream>
using namespace std;
int main()
{
int const m=4,n=5,l=2;
int A[m][n]={ { 4,-2, 3, 7, 1},
{ 2, 5,-9, 1,-5},
{ 6, 4, 2, 9, 3},
{ 6,-2, 1, 8,-4}
};
int B[m][n]={ { 1, 3,-4,-6, 2},
{ 6, 5,-2, 4,-8},
{-2, 3,-7, 1, 8},
{ 9,-6, 2, 1, 7}
};
int i,j,k,C[m][n][l];
for (k=0;k<l;k++)
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (k==0)
C[i][j][k]=A[i][j];
else
C[i][j][k]=B[i][j];
cout << "
Fusha C"
<< "\n";
for (k=0;k<l;k++)
{
cout << " k="
<< k
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(3);
cout << C[i][j][k];
}
cout << "\n";
}
cout << "\n";
}
return 0;
7 1
1 -5
9 3
8 -4
k=1
1 3 -4 -6 2
6 5 -2 4 -8
-2 3 -7 1 8
9 -6 2 1 7
Plotsisht njlloj si edhe gjat puns me matrica, mund t operohet edhe me
antart e fushave tridimensionale.
Shembull
a. Bllok-diagrami
222 Algoritmet
Fillimi
k = 1,l
j = 1,n
s=0
k=1
i=1
j=1
aijk < 0
Po
s=s+aijk2
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
k=k+1
Po
kl
Jo
s
Fundi
Fig.6.81
b. Programi
Jo
// Programi Prg6_81
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const m=3,n=4,l=2;
int A[m][n][l]={
{{3,5},{-2,4},{5,2},{-7,-1}},
{{-4,9},{6,1},{-2,7},{4,8}},
{{7,3},{6,-5},{8,1},{-2,9}}
};
int i,j,k;
double s;
s=0;
for (k=0;k<l;k++)
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (A[i][j][k]<0)
s=s+A[i][j][k]*A[i][j][k];
cout << "Fusha A"
<< "\n";
for (k=0;k<l;k++)
{
cout << " k="
<< k
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(3);
cout << A[i][j][k];
}
cout << "\n";
}
cout << "\n";
}
cout << "Shuma s="
<< s
<< "\n";
return 0;
}
224 Algoritmet
Pas ekzekutimit t programit t dhn, fusha e lexuar A si dhe shuma e
katrorve t antarve negativ t saj n ekran do t shtypen kshtu:
Fusha A
k=0
3 -2 5 -7
-4 6 -2 4
7 6 8 -2
k=1
5 4
9 1
3 -5
2 -1
7 8
1 9
Shuma s=103
Detyra
k = 1,l
j = 1,n
e=|a111|
k=1
i=1
j=1
|aijk| > e
Po
e=|aijk|
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
k=k+1
Po
kl
Jo
e
Fundi
Fig.6.82
Jo
226 Algoritmet
b. Programi
// Programi Prg6_82
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const m=3,n=4,l=2;
int A[m][n][l]={
{{3,-9},{-2,3},{4,2},{-5,-1}},
{{-4,8},{6,1},{-2,7},{-4,-8}},
{{7,3},{6,-5},{8,1},{-2,1}}
};
int i,j,k,e;
e=abs(A[0][0][0]);
for (k=0;k<l;k++)
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if (abs(A[i][j][k])>e)
e=abs(A[i][j][k]);
cout << "Fusha A"
<< "\n";
for (k=0;k<l;k++)
{
cout << " k="
<< k
<< "\n";
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout.width(3);
cout << A[i][j][k];
}
cout << "\n";
}
cout << "\n";
}
cout << "Vlera absolute m e madhe e="
<< e
<< "\n";
return 0;
}
2 -1
7 -8
1 1
a. Bllok-diagrami
228 Algoritmet
Fillimi
k = 1,l
j = 1,n
p=0
k=1
i=1
j=1
Po
aijk < 0
Jo
Po
aijk > 5
k,i,j,aijk
Jo
j=j+1
Po
j n
Jo
i=i+1
Po
i m
Jo
k=k+1
Po
kl
Jo
p
Fundi
Fig.6.83
Po
aijk < 9
Jo
p=p+1
i
0
0
1
1
1
2
j
1
3
0
2
3
3
A[i][j][k]
-2
-5
-4
-2
-4
-2
230 Algoritmet
1
1
1
1
Numri i krkuar
0
0
1
2
p=6
0
3
3
1
-9
-1
-8
-5
232 Algoritmet
2i
i =1 i
s=0
i=1
1
i
2i
z=
>
Jo
Po
1
2i
Fundi
s=s+z
i,z
i=i+1
Fig.7.1
1.0000000
0.0625000
0.0013717
0.0000153
0.0000001
234 Algoritmet
Shuma s=1.0638871
ku n kolonn e dyt jan shtypur antart e seris s pafundme t cilt marrin
pjes n llogaritjen e vlers s shums.
Gjat llogaritjes s vlerave prmes serive t pafundme, llogaritja mund t
ndrpritet n nj numr t caktuar antarsh t seris, i cili zgjidhet lirisht.
Shembull
(1)i
i =1
x
3i 2
3i - 2
s=s+z
i,z
i=i+1
Po
ik
Jo
s
Fundi
Fig.7.2
b. Programi
// Programi Prg7_2
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int const x=2,k=5;
int i;
double z,s;
s=0;
for (i=1;i<=k;i++)
{
z=pow((-1.),i)*x/(3*i-2);
s=s+z;
cout.width(5);
cout <<i;
cout.precision(7);
cout.width(13);
cout.setf(ios::fixed, ios::floatfield);
cout <<z;
cout << "\n";
}
cout << "Shuma s="
<< s
<< "\n";
return 0;
}
236 Algoritmet
Shembull
i =1
5i4
s=0
i=1
ln 1 +
>
5i4
Po
z = 1+
5i
s=s+z
i,z
i=i+1
Fig.7.3
Jo
s
Fundi
b. Programi
// Programi Prg7_3
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
const double e=0.001,pi=3.1415926,x=2;
float i;
double z,s;
s=0;
i=1;
while (log(1+pi/(5*pow(i,4))) > e)
{
z=1+pi/(5*pow(i,4));
s=s+z;
cout.precision(0);
cout.width(5);
cout <<i;
cout.precision(5);
cout.width(10);
cout.setf(ios::fixed, ios::floatfield);
cout <<z;
cout << "\n";
i=i+1;
}
cout << "Shuma s="
<< s
<<"\n";
return 0;
}
238 Algoritmet
ku n kolonn e dyt jan shtypur antart e seris, t cilt i shtohen vlerss s
shums.
(1)i
i =0
x2i + 1
(2i + 1)!
Sv Sp
Sv
ku jan:
Sp - shuma parciale paraprake
Sv - shuma parciale vijuese.
a. Bllok-diagrami
Fillimi
x,
s=0
240 Algoritmet
i=0
Sp=s
F=1
Fig.7.4
b. Programi
j=1
// Programi
Prg7_4
#include
<iostream>
#include
<cmath>
#include
<iomanip>
using namespace
std;
int main()
{
const
double
e=0.0001,x=0.75
;
int i,j;
double
s,Sp,Sv,r,F;
s=0;
i=0;
do
{
F=Fj
j=j+1
Po
F=1;
for
(j=1;j<=2*i+1;j
++)
j(2i+1)
Jo
s = s + (- 1)
2i+1
(2i + 1)!
Sv=s
r=
Sv Sp
Sv
i,r
i=i+1
Po
Sp=s;
F=(2i+1)!
r
Jo
s,sin(x)
Fundi
F=F*j;
s=s+pow((-1.),i)*pow(x,2*i+1)/F;
Sv=s;
r=fabs((Sv-Sp)/Sv);
cout.width(4);
cout <<i;
cout.precision(6);
cout.width(10);
cout.setf(ios::fixed, ios::floatfield);
242 Algoritmet
Nse ekzekutohet programi, rezultati q shtypet n ekran sht:
0
1
2
3
Vlera
Vlera
1.000000
0.103448
0.002901
0.000039
e prafrt s=0.681639
e sakt sin=0.681639
i =1
i3
ku jan:
Sp - shuma parciale paraprake
Sv - shuma parciale vijuese.
s = s+
Sv=s
a=|Sv-Sp|
i,a
i=i+1
Po
a
Jo
s
Fundi
Fig.7.5
b. Programi
// Programi Prg7_5
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
const double x=2,e=0.01;
float i;
double s,Sp,Sv,a;
s=0;
i=1;
do
{
244 Algoritmet
Sp=s;
s=s+x/pow(i,3);
Sv=s;
a=fabs(Sv-Sp);
cout.precision(0);
cout.width(4);
cout <<i;
cout.precision(6);
cout.width(10);
cout.setf(ios::fixed, ios::floatfield);
cout <<a;
cout << "\n";
i=i+1;
}
while (a>=e);
cout << "Vlera e llogaritur s="
<< s
<<"\n";
return 0;
}
2.000000
0.250000
0.074074
0.031250
0.016000
0.009259
e llogaritur s=2.380583
i =1
i3
246 Algoritmet
s =
=
=
zi
i =1
n
(xi
+ jyi)
xi
+ j yi
i =1
n
i =1
i =1
= a + jb
in
Jo
a,b
Fundi
Fig.8.1
b. Programi
// Programi Prg8_1
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int const n=5;
int a,b,i;
int X[n]={3,7,4,2,-8};
int Y[n]={6,-9,5,8,1};
a=0;
b=0;
cout << "
i
X
Y"
248 Algoritmet
<< "\n";
cout << "-------------"
<< "\n";
for (i=0;i<n;i++)
{
a=a+X[i];
b=b+Y[i];
cout << setw(4) << i
<< setw(4) << setiosflags(ios::right)<<X[i]
<< setw(4) << setiosflags(ios::right)<<Y[i]
<< "\n";
}
cout << "Shuma reale .... a="
<< a
<< "\n"
<< "Shuma imagjinare b="
<< b
<< "\n";
return 0;
}
Shembull
P=
=
(xi + jy i)
i=1
n
i eji
i=1
)(
i e i=1
= ej
i=1
= cos + j sin
= a + jb
ku jan:
=
=
i =1
n
i
i=1
a = cos ,
b = sin
i =
xi2 + yi2
y
i = arctg i
xi
250 Algoritmet
a. Bllok-diagrami
Fillimi
n,(xi,i=1,n),(yi,i=1,n)
=1
=0
i=1
i = x i2 + y i2
y
i = arctg i
xi
= i
= i
i,xi,yi
i=i+1
Po
i n
Jo
a=cos
b=sin
a,b
Fundi
Fig.8.2
b. Programi
// Programi Prg8_2
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int const n=5;
int i;
double X[n]={3,7,4,2,-8};
double Y[n]={6,-9,5,8,1};
double a,b,Alfa,Beta,Ro[n],Fi[n];
Alfa=1;
Beta=0;
cout << "
i
X
Y"
<< "\n";
cout << "-------------"
<< "\n";
for (i=0;i<n;i++)
{
Ro[i]=sqrt(pow(X[i],2)+pow(Y[i],2));
Fi[i]=atan(Y[i]/X[i]);
Alfa=Alfa*Ro[i];
Beta=Beta+Fi[i];
cout << setw(4) << i
<< setw(4) << setiosflags(ios::right)<< X[i]
<< setw(4) << setiosflags(ios::right)<< Y[i]
<< "\n";
}
a=Alfa*cos(Beta);
b=Alfa*sin(Beta);
cout << "Pjesa reale .... a="
<< a
<< "\n"
<< "Pjesa imagjinare b="
<< b
<< "\n";
return 0;
}
252 Algoritmet
i
X
Y
------------0
3
6
1
7 -9
2
4
5
3
2
8
4 -8
1
Pjesa reale .... a=-21570
Pjesa imagjinare b=24390
Llogaritja e shums:
s=
sin zi
i =1
sin zi
s=
=
i=1
n
sin(xi + jyi)
i=1
n eyi e yi
eyi + e yi
sin xi + j
cos xi
2
2
i=1
i=1
= a + jb
n
ku jan:
eyi + e yi
sin xi
2
i=1
n
a=
eyi e yi
cos xi
2
i=1
n
b=
a. Bllok-diagrami
Fillimi
n,(xi,i=1,n),(yi,i=1,n)
a=0
b=0
i=1
a =a+
yi
+e
yi
sin x i
2
b = b+
yi
yi
i,xi,yi
i=i+1
Po
in
Jo
a,b
Fundi
Fig.8.3
b. Programi
// Programi Prg8_3
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int const n=5;
int i;
double X[n]={3,7,4,2,-8};
double Y[n]={6,-9,5,8,1};
cos x i
254 Algoritmet
double a=0,b=0;
cout << "
i
X
Y"
<< "\n";
cout << "-------------"
<< "\n";
for (i=0;i<n;i++)
{
a=a+(exp(Y[i])+exp(-Y[i]))/2*sin(X[i]);
b=b+(exp(Y[i])-exp(-Y[i]))/2*cos(X[i]);
cout << setw(4) << i
<< setw(4) << setiosflags(ios::right)<<X[i]
<< setw(4) << setiosflags(ios::right)<<Y[i]
<< "\n";
}
cout << "Pjesa reale .... a="
<< a
<< "\n"
<< "Pjesa imagjinare b="
<< b
<< "\n";
return 0;
}
Detyra
coszi
i=1
s=
ln zi
i=1
256 Algoritmet
y = n
2
x
+
2
i
i = 1
pr x 3
pr x > 3
Jo
x3
s=0
i=1
s = s + + 2i
2
i=i+1
Po
i n
Jo
y=e
2x+1
y=s
x,y
x=x+h
Po
xb
Jo
Fundi
Fig.9.1
258 Algoritmet
b. Programi
// Programi Prg9_1
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
const double a=2,b=5,h=0.5;
int n=3,i;
double x,y,s;
cout << "Tabela e vlerave"
<< "\n";
cout << "
x
y"
<< "\n";
x=a;
do
{
if (x<=3)
y=exp(2*x+1);
else
{
s=0;
for (i=1;i<=n;i++)
s=s+pow(x/2+2*i,2);
y=s;
}
cout.setf(ios::fixed);
cout.precision(2);
cout.width(6);
cout << x;
cout.precision(4);
cout.width(12);
cout << y
<< "\n";
x=x+h;
}
while (x<=b);
return 0;
}
-2
-1
260 Algoritmet
a. Bllok-diagrami
Fillimi
a,b,h
x=a
y=3x2+2x-1
t=ex+2sin x
Po
x1
Jo
v=3 ln(x-1)
Po
x=2
Jo
z=
1
2 x
x,y,z,v,t
x=x+h
Po
z=
xb
Jo
Fundi
Fig.9.2
x,y,v,t
1
2 x
x,y,z,t
262 Algoritmet
<< t
<< "\n";
}
else
{
z=1/(2-x);
cout << setw(5)
<< x
<< setw(8)
<< y
<< setw(6)
<< z
<< setw(8)
<< v
<< setw(7)
<< t
<< "\n";
}
}
x=x+0.5;
}
while (x<=b);
return 0;
}
264 Algoritmet
Mesatarja aritmetikore
a =
1 n
xi
n i =1
Mesatarja gjeometrike
g = n
xi
i =1
Mesatarja harmonike
h =
n
n
i =1 i
1
x
i=i+1
Po
in
Jo
s
a= 1
n
g=
h=
n
s
2
a,g,h
Fundi
Fig.10.1
266 Algoritmet
b. Programi
// Programi Prg10_1
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int n=5;
int X[n]={7,4,2,8,5},i;
double s1=0,p=1,s2=0,a,g,h;
for (i=0;i<n;i++)
{
s1=s1+X[i];
p=p*X[i];
s2=s2+1./X[i];
}
a=s1/n;
cout << "Mesatarja aritmetikore a="
<< a;
g=pow(p,1./n);
cout << "\nMesatarja gjeometrike g="
<< g;
h=n/s2;
cout << "\nMesatarja harmonike
h="
<< h
<< "\n";
return 0;
}
Devijimi aritmetikor
=
1 n
(xi a)2
n i =1
Devijimi gjeometrik
=
1 n
(xi g)2
n i =1
Devijmi absolut
=
1 n
xi a
n i =1
Shembull
a. Bllok-diagrami
Fillimi
n,(xi,i=1,n)
s1=0
p=1
s2=0
i=1
s1=s1+xi
p=pxi
s =s +
2
1
x
i=i+1
Po
in
Jo
A
268 Algoritmet
a = s1 / n
g=np
h = n/s2
a,g,h
s3=0
s4=0
s5=0
i=1
s3=s3+(xi-a)2
s4=s4+(xi-g)2
s5=s5+|xi-a|
i=i+1
Po
in
Jo
= s3 / n
= s4 / n
= s5 / n
,,
Fundi
Fig.10.2
b. Programi
// Programi Prg10_2
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int n=5;
int X[n]={7,4,2,8,5},i;
double s1=0,p=1,s2=0,a,g,h;
double s3=0,s4=0,s5=0,Sigma,Ro,Delta;
for (i=0;i<n;i++)
{
s1=s1+X[i];
p=p*X[i];
s2=s2+1./X[i];
}
a=s1/n;
cout << "Mesatarja aritmetikore a="
<< a;
g=pow(p,1./n);
cout << "\nMesatarja gjeometrike g="
<< g;
h=n/s2;
cout << "\nMesatarja harmonike
h="
<< h;
for (i=0;i<n;i++)
{
s3=s3+pow(X[i]-a,2);
s4=s4+pow(X[i]-g,2);
s5=s5+fabs(X[i]-a);
}
Sigma=sqrt(s3/n);
cout << "\nDevijimi aritmetikor Sigma="
<< Sigma;
Ro=sqrt(s4/n);
cout << "\nDevijimi gjeometrik
Ro="
<< Ro;
Delta=s5/n;
cout << "\nDevijimi absolut
Delta="
<< Delta
<< "\n";
return 0;
}
270 Algoritmet
272 Algoritmet
Integralet e njfishta
Vlera e integralit t njfisht:
b
f(x)dx
ku
h =
n 1
f(a
i =1
+ i h)
b a
n
(x
+ 1)dx
b-a
n
s=0
i=1
s=s+f(a+ih)
i=i+1
Po
T = h
i n-1
Jo
f(a)+ f(b) + s
2
T
Fundi
Fig.11.1
b. Programi
// Programi Prg11_1
#include <iostream>
using namespace std;
double f(double x);
int main()
{
const int n=10;
const double a=1,b=4;
int i;
double T,s,h;
h=(b-a)/n;
s=0;
for (i=1;i<=n-1;i++)
274 Algoritmet
s=s+f(a+i*h);
T=h*((f(a)+f(b))/2+s);
cout << "Vlera e integralit T="
<< T
<< "\n";
return 0;
}
// Nnprogrami
double f(double x)
{
return x*x+1;
}
n
n 1
h
f(a) + f(b) + 4 f[a + (2i 1)h] + 2 f[a + 2ih]
3
i =1
i =1
b a
2n
(x
+ 1)dx
a. Bllok-diagrami
Fillimi
f(x)=x2+1
n,a,b
h=
b-a
2n
s1=0
s2=0
i=1
s1=s1+f[a+(2i-1)h]
s2=s2+f(a+2ih)
i=i+1
Po
i n-1
Jo
s1=s1+f[a+(2n-1)h]
S=
h
f(a)+ f(b)+ 4 s + 2 s
1
2
3
S
Fundi
Fig.11.2
276 Algoritmet
b. Programi
// Programi Prg11_2
#include <iostream>
using namespace std;
double f(double x);
int main()
{
const int n=10;
const double a=1,b=4;
int i;
double S,s1,s2,h;
h=(b-a)/(2*n);
s1=0;
s2=0;
for (i=1;i<=n-1;i++)
{
s1=s1+f(a+(2*i-1)*h);
s2=s2+f(a+2*i*h);
}
s1=s1+f(a+(2*n-1)*h);
S=h/3*(f(a)+f(b)+4*s1+2*s2);
cout << "Vlera e integralit S="
<< S
<< "\n";
return 0;
}
// Nnprogrami
double f(double x)
{
return x*x+1;
}
Integralet e dyfishta
Pr llogaritjen e vlers s integralit t dyfisht:
bd
f(x, y)dx dy
ac
m 1
1 n 1
f(xi,c)+ f(xi,d)+ f(a,y j)+ f(b,y j)
2 i=1
j=1
m-1 n-1
+ f(xi,y j)
j=1 i=1
ku jan:
xi = a + ih
yj = c + jd
b a
n
d c
g =
m
h =
Shembull
1 3 (x
1
+ y )2
dx dy
278 Algoritmet
a. Bllok-diagrami
Fillimi
f(x,y) =
(x + y )2
m,n,a,b,c,d
h=
b-a
n
g=
d-c
m
r=
1
f(a,c)+ f(a,d)+ f(b,c)+ f(b,d)
4
s1=0
i=1
xi=a+ih
s1=s1+f(xi,c)+f(xi,d)
i=i+1
Po
i n-1
Jo
A
s2=0
j=1
yj=c+jg
s2=s2+f(a,yj)+f(b,y1)
j=j+1
Po
j m-1
Jo
s3=0
i=1
j=1
yj=c+jg
s3=s3+f(xi,yi)
j=j+1
Po
j m-1
Jo
i=i+1
Po
i n-1
Jo
T = h g r +
1
2
[s
T
Fundi
Fig.11.3
+s
] + s3
280 Algoritmet
b. Programi
// Programi Prg11_3
#include <iostream>
#include <cmath>
using namespace std;
double f(double x,double y);
int main()
{
const int m=6,n=4;
const double a=1,b=2,c=3,d=4;
int i,j;
double T,s1,s2,s3,r,h,g,xi,yj;
h=(b-a)/n;
g=(d-c)/m;
r=(f(a,c)+f(a,d)+f(b,c)+f(b,d))/4;
s1=0;
for (i=1;i<=n-1;i++)
{
xi=a+i*h;
s1=s1+f(xi,c)+f(xi,d);
}
s2=0;
for (j=1;j<=m-1;j++)
{
yj=c+j*g;
s2=s2+f(a,yj)+f(b,yj);
}
s3=0;
for (i=1;i<=n-1;i++)
{
xi=a+i*h;
for (j=1;j<=m-1;j++)
{
yj=c+j*g;
s3=s3+f(xi,yj);
}
}
T=h*g*(r+(s1+s2)/2+s3);
cout << "Vlera e integralit T="
<< T
<< "\n";
return 0;
}
// Nnprogrami
double f(double x,double y)
{
return 1/pow(x+y,2);
}
284 Algoritmet
Metoda Runge-Kutta
Sipas metods Runge-Kutta t rendit t katrt, pr pikn (xi,yi), fillimisht
llogariten vlerat e koeficientve:
r1 = f(xi, yi ) h
h
r
r2 = f xi + , yi + 1 h
2
2
h
r
r3 = f xi + , yi + 2 h
2
2
r4 = f(xi + h, yi + r3 ) h
x p x0
n
h=
x=x0
y=y0
i=1
r1=f(x,y)h
r = f x +
2
r = f x +
3
,y +
r1
2
,y +
r2
2
r4=f(x+h,y+r3)h
y=y+
1
r + 2r + 2r + r
2
3
4
6 1
x=x+h
i,x,y
i=i+1
Po
in
Jo
Fundi
Fig.12.1
286 Algoritmet
b. Programi
// Programi Prg12_1
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
double f(double x,double y);
int main()
{
const int n=10;
const double x0=1,y0=1,xp=2;
int i;
double x,y,h,r1,r2,r3,r4;
h=(xp-x0)/n;
x=x0;y=y0;
cout << "
i
x
y"
<< "\n------------------------"
<< "\n";
cout.setf(ios::fixed);
for (i=1;i<=n;i++)
{
r1=f(x,y)*h;
r2=f(x+h/2,y+r1/2)*h;
r3=f(x+h/2,y+r2/2)*h;
r4=f(x+h,y+r3)*h;
y=y+(r1+2*r2+2*r3+r4)/6;
x=x+h;
cout.width(4);
cout << i;
cout.precision(2);
cout.width(8);
cout << x;
cout.precision(5);
cout.width(11);
cout << y
<< "\n";
}
return 0;
}
// Nnprogrami
double f(double x,double y)
{
return pow(x,2)+y;
}
Metoda Kutta-Merson
Gjat zgjidhjes s ekuacioneve diferenciale sipas metods Kutta-Merson,
vlera e piks vijuese t funksionit yi+1 caktohet duke shfrytzuar vlern e piks
paraprake yi:
yi + 1 = yi +
1
(k1 + 4k4 + k5 )
6
h
k
k2 = f xi + , yi + 1 h
3
3
h
k + k2
k3 = f xi + , yi + 1
h
3
6
h
k1
3
k4 = f xi + , yi +
+ k3 h
2
8
8
k
3
k5 = f xi + h , yi + 1 k3 + 2k4 h
2
2
x p x0
n
Shembull
288 Algoritmet
a. Bllok-diagrami
Fillimi
f(x,y)= (x y)/2
n,x0,y0,xp
h = (x p - x 0)/2
x=x0
y=y0
i=1
k1=f(x,y)h
k = f x +
2
k = f x +
3
k = f x +
4
h
3
,y +
k1
,y +
( k1 + k 2 )
h
6
k
3
,y + 1 + k h
3
2
8 8
k
3
k5 = f x + h,y + 1 k3 + 2 k4 h
2
2
in
Jo
Fundi
Fig.12.2
290 Algoritmet
10
1.00
1.28403
Agni H. Dika
ALGORITMET
njohuri themelore
Lektor
Dr. Ilaz Metaj
Kopertina
AfiDesign
Shtypi
Adea
Prishtin
Copyright 2007