–
Çfarë është main?
–
main është pika hyrëse e programit.
int main() {
return 0;
}
Çfarë quajmë bllok të kodit dhe si shënohet?
–
Bllok të kodit e quajmë vargun e urdhërave të mbështjellur me kllapa gjarpërore.
{
urdher;
urdher;
urdher;
}
Të shpjegohet ky program:
#include <iostream>
using namespace std;
int main() {
cout << "Pershendetje" << endl;
return 0;
}
Detyrë: Të krijohet një projekt i ri dhe të shkruhet programi i cili shfaq këtë tekst në ekran:
Përshëndetje!
Po mësojmë gjuhën programuese "C++".
Ndihmesë: karakteri ë
shkruhet \x89
"\x89"
–
#include <iostream>
using namespace std;
int main() {
cout << "P\x89rsh\x89ndetje!"
<< endl
<< endl
<< "Po m\x89sojm\x89 gjuh\x89n programuese \"C++\".";
return 0;
}
Rikujtim: Kompjuteri të dhënat i ruan në formë binare - vargje të njësheve dhe zerove.
–
Shembull: Numri $25$ në formë binare shkruhet:
\[25_{10}=00011001_2\]Kemi disa lloje të të dhënave:
Ndahen në dy kategori kryesore:
Numrat e plotë (integer) me shenjë:
Tipi | Madhësia | Vlerat |
---|---|---|
char |
1 bajt | -128 deri 127 |
short int |
2 bajt | -32768 deri 32767 |
int |
4 bajt | -2147483648 deri 2147483647 |
long int |
4 bajt | -2147483648 deri 2147483647 |
long long int |
8 bajt | -9223372036854775808 deri 9223372036854775807 |
Numrat e plotë (integer) pa shenjë:
Tipi | Madhësia | Vlerat |
---|---|---|
unsigned char |
1 bajt | 0 deri 255 |
unsigned short int |
2 bajt | 0 deri 65535 |
unsigned int |
4 bajt | 0 deri 4294967295 |
unsigned long int |
4 bajt | 0 deri 4294967295 |
unsigned long long int |
8 bajt | 0 deri 18446744073709551615 |
Numrat me presje - floating-point
Tipi | Madhësia | Preciziteti |
---|---|---|
float |
4 bajt | 7 shifra |
double |
8 bajt | 15-16 shifra |
long double |
16 bajt | 28-29 shifra |
Shpesh përdorën këto terme:
Ka vetëm dy vlera - saktë/pasaktë, po/jo, 1/0.
Tipi | Madhësia | Vlerat |
---|---|---|
bool | 1 bajt | true ose false |
Emri | Madhësia |
---|---|
char | 1 bajt |
char16_t | 2 bajt |
char32_t | 4 bajt |
string | Pacaktuar |
String paraqet vargun e karaktereve deri te karakteri terminues \0
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
'D' |
'i' |
't' |
'a' |
'\0' |
Prej gjithë këtyre tipeve, më së shpeshti do të përdorim:
Përmes variablave “mbajmë në mend”.
Variabla ka tipin dhe emrin.
<tipi> <emri> [= <vlera fillestare>];
Variablat i kemi të njohura nga shkencat tjera:
\[F = ma\] \[v = \frac{s}{t}\] \[y = 2x + 3\]Deklarimi i variablave:
int variabla;
Nëse dëshirojmë ta inicializojmë me vlerë fillestare:
int variabla = 42;
Programi “rezervon” hapësirë për ta ruajtur këtë të dhënë.
Shembull:
nr_studenteve
është numër i plotë (int
), dhe paraqet numrin e studentëve prezent në sallë.
int nr_studenteve = 14;
cout << nr_studenteve; // Çfarë na shfaqet?
Variablave ia lëmë emrin sipas dëshirës, me kushtin që nuk është fjalë kyçe e gjuhës programuese, psh. int
, float
, etj.
int mosha;
double nota_mesatare;
bool eshte_student;
string emri;
Kur kemi disa variabla, mund t’i deklarojmë në një urdhër të vetëm:
int a, b, c;
double x, y;
Variablat mund t’i lexojmë nga tastiera:
int a, b;
cout << "Shtypni vleren a: ";
cin >> a; // Lexojmë nga standard input.
cout << "Shtypni vleren b: ";
cin >> b; // Lexojmë nga standard input.
cout << "Keni shtypur a=" << a << " dhe b=" << b << endl;
Programi “mban në mend” numrat $a$ dhe $b$.
Detyrë: Të shkruhet programi i cili lexon 3 numra të plotë dhe pastaj i shfaq ata.
Jepni vleren a: 15
Jepni vleren b: -2
Jepni vleren c: 3
Keni shtypur vlerat:
a = 15
b = -2
c = 3
–
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cout << "Jepni vleren a: ";
cin >> a;
cout << "Jepni vleren b: ";
cin >> b;
cout << "Jepni vleren c: ";
cin >> c;
cout << endl << "Keni shtypur vlerat:" << endl;
cout << "a = " << a << endl
<< "b = " << b << endl
<< "c = " << c << endl;
return 0;
}
Gjithçka që ka vlerë dhe tip quhet shprehje.
15 // Shprehje e tipit int.
x + 1.5 // Shprehje e tipit double.
"Tung" // Shprehje e tipit char[] (string).
true // Shprehje e tipit bool.
Ky definicion na duhet në vazhdim.
Përmes operatorëve kryejmë llogaritje të ndryshme.
Operatori i shoqërimit (assignment)
Llogarit shprehjen nga ana e djathtë dhe e vendos në shprehjen e anës së majtë.
int a, b;
a = 25; // Vendos 25 (ana e djathtë) në a (ana e majtë)
b = a; // Vendos a (ana e djathtë) në b (ana e majtë)
Shënohet me simbolin =
(baraz)
Shprehja e anës së majtë dhe e anës së djathtë duhet ta kenë tipin e njëjtë.
int a;
a = 25; // Ok.
a = "Tung"; // Nuk ka kuptim.
Disa shprehje nuk mund të vendosën në anën e majtë:
2 = 1 + 5 // Nuk ka kuptim!
Analizojeni kodin në vijim:
int a;
a = 3;
cout << a << endl;
a = a + 1;
cout << a << endl;
Na shfaqet:
3
4
Pse?
a = 3;
a = a + 1;
// a == 4
Llogaritet shprehja e djathtë:
\[\begin{array}{rl} a &\leftarrow \overbrace{a}^{3} + 1 \\ a &\leftarrow 3 + 1 \\ a &\leftarrow 4 \end{array}\]Shembull: Është dhënë vlera $a=21$, ndërsa vlera $b$ duhet të jepet nga tastiera. Të llogaritet vlera $c=a+b$ dhe të shfaqet në ekran.
#include <iostream>
using namespace std;
int main() {
int a = 21;
int b;
int c;
cin >> b; // Vlera b lexohet nga tastiera.
c = a + b;
cout << "Vlera e a+b eshte: " << c << endl;
return 0;
}
double a = 10.0;
double b = 4.0;
Veprimi | Operatori | Shprehja | Rezultati |
---|---|---|---|
Mbledhja | + |
a + b |
14.0 |
Zbritja | - |
a - b |
6.0 |
Shumëzimi | * |
a * b |
40.0 |
Pjesëtimi | / |
a / b |
2.5 |
Modulimi | % |
a % b |
2.0 |
Shumëzimi dhe pjesëtimi kanë përparësi ndaj mbledhjes dhe zbritjes.
int a = 2 + 2 * 2;
cout << a;
Na shfaqet:
6
Përmes kllapave mund të caktojmë përparësi tjetër të operatorëve.
int a = (2 + 2) * 2;
cout << a;
Na shfaqet:
8
Detyrë: Të shkruhet programi i cili lexon 3 numra me presje dhe llogaritë mesatarën e tyre.
Jepni vleren a: 3.2
Jepni vleren b: 6
Jepni vleren c: 1.3
Vlera mesatare: 3.5
–
#include <iostream>
using namespace std;
int main() {
double a, b, c, m;
cout << "Jepni vleren a: ";
cin >> a;
cout << "Jepni vleren b: ";
cin >> b;
cout << "Jepni vleren c: ";
cin >> c;
cout << endl;
m = (a + b + c) / 3.0;
cout << "Vlera mesatare: " << m << endl;
return 0;
}
Detyrë: Të lexohen nga tastiera brinjët e drejtkëndëshit, pastaj të llogariten perimetri dhe sipërfaqja (në variabla), dhe të shfaqen në ekran.
Jepni brinjen a: 5
Jepni brinjen b: 3
Perimetri i drejtkendeshit: 16
Siperfaqja e drejtkendeshit: 15
Kujtesë: $\;S=ab,\; P=2(a+b)$
–
#include <iostream>
using namespace std;
int main() {
int a, b, S, P;
cout << "Jepni brinjen a: ";
cin >> a;
cout << "Jepni brinjen b: ";
cin >> b;
P = 2 * (a + b);
S = a * b;
cout << "Perimetri i drejtkendeshit: " << P << endl;
cout << "Siperfaqja e drejtkendeshit: " << S << endl;
return 0;
}
Kur e përfshijmë headerin <math.h>
, na mundësohet thirrja e funksioneve matematikore sikur:
Funskioni | Emri | Shembull | Interpretimi |
---|---|---|---|
Rrënja katrore | sqrt |
sqrt(16) |
$\sqrt{16}$ |
Ngritja në fuqi | pow |
pow(2, 4) |
$2^4$ |
Sinusi | sin |
sin(0) |
$\sin{(0_\text{rad})}$ |
Kosinusi | cos |
cos(3.14) |
$\cos{(\pi_\text{rad})}$ |
Dhe tjera…
Detyrë: Janë dhënë vlerat reale $a=2.0,\;b=3.5,\;c=1.2$.
Të llogariten shprehjet:
\[\begin{array}{rlcr} 1) & a + 2c - \frac{7}{9}b & \Rightarrow & 1.67 \\ 2) & a + 2(1.1 + b) - c & \Rightarrow & 10 \\ 3) & b^a - 2c & \Rightarrow & 9.85 \\ 4) & \sqrt{\frac{a^2 + b^2}{c + 1}} & \Rightarrow & 2.71 \\ \end{array}\]–
#include <iostream>
#include <math.h>
using namespace std;
int main() {
double a = 2.0;
double b = 3.5;
double c = 1.2;
cout << a + 2 * c - 7.0 / 9.0 * b << endl;
cout << a + 2 * (1.1 + b) - c << endl;
cout << pow(b, a) - 2 * c << endl;
cout << sqrt((pow(a, 2) + pow(b, 2)) / (c + 1)) << endl;
return 0;
}
Ndonjëherë vlera e variables është fikse dhe nuk ndryshon asnjëherë.
Këto quhen konstante dhe shkruhen duke ia shtuar fjalën const
përpara deklarimit të variablës:
const double pi = 3.14;
const int a = 4;
Detyrë: Të gjendet sipërfaqja dhe perimetri i rrethit, nëse rrezja $r$ jepet nga tastiera. Vlera e PI ($\pi$) të deklarohet si konstante.
Jepni vleren e rrezes: 3
Perimetri i rrethit: 18.84
Siperfaqja e rrethit: 28.26
Kujtesë: $\;P=2\pi r,\; S=\pi r^2,\;\pi\approx 3.14$
–
#include <iostream>
#include <math.h>
using namespace std;
int main() {
const double pi = 3.14;
double r, P, S;
cout << "Jepni vleren e rrezes: ";
cin >> r;
P = 2 * pi * r;
S = pi * pow(r, 2);
cout << "Perimetri i rrethit: " << P << endl;
cout << "Siperfaqja e rrethit: " << S << endl;
return 0;
}
Shpesh kemi nevojë ta zmadhojmë ose zvogëlojmë një variabël për një vlerë të caktuar.
Shkurtesa | Kuptimi |
---|---|
a += x |
a = a + x |
a -= x |
a = a - x |
a *= x |
a = a * x |
a /= x |
a = a / x |
a %= x |
a = a % x |
Shembull
int a = 7;
int b = 2;
a += b; // Rrite a per b.
b -= 1; // Zvogeloje b per 1.
cout << "Vlera e a: " << a << endl;
cout << "Vlera e b: " << b << endl;
Shfaqet:
Vlera e a: 9
Vlera e b: 1
Shkurtesat për inkrement dhe dekrement.
Shkurtesa | Kuptimi |
---|---|
a++ |
Ktheje a , pastaj rrite për 1 . |
++a |
Rrite a për 1 , pastaj ktheje. |
a-- |
Ktheje a , pastaj zvogëloje për 1 . |
--a |
Zvogëloje a për 1 , pastaj ktheje. |
Shembulli 1: a++
int a = 5;
cout << "Para inkrementimit: " << a << endl;
cout << "Gjate inkrementimit: " << a++ << endl;
cout << "Pas inkrementimit: " << a << endl;
Shfaqet:
Para inkrementimit: 5
Gjate inkrementimit: 5
Pas inkrementimit: 6
Shembulli 2: ++a
int a = 5;
cout << "Para inkrementimit: " << a << endl;
cout << "Gjate inkrementimit: " << ++a << endl;
cout << "Pas inkrementimit: " << a << endl;
Shfaqet:
Para inkrementimit: 5
Gjate inkrementimit: 6
Pas inkrementimit: 6
Detyrë: Të deklarohet variabla $shuma=0$, dhe të lexohen pesë numrat e ardhshëm nga tastiera. Secili numër i lexuar t’i shtohet shumës.
Jepni numer: 3
Jepni numer: 1
Jepni numer: 2
Jepni numer: 7
Jepni numer: 4
Totali: 17
–
#include <iostream>
using namespace std;
int main() {
int shuma = 0;
int numri;
cout << "Jepni numer: ";
cin >> numri;
shuma += numri;
cout << "Jepni numer: ";
cin >> numri;
shuma += numri;
cout << "Jepni numer: ";
cin >> numri;
shuma += numri;
cout << "Jepni numer: ";
cin >> numri;
shuma += numri;
cout << "Jepni numer: ";
cin >> numri;
shuma += numri;
cout << "Totali: " << shuma << endl;
return 0;
}
Detyrë: Të lexohen numrat e plotë $a$ dhe $b$ nga tastiera, dhe pastaj t’iu ndërrohen vlerat mes veti.
Shtypni a: 10
Shtypni b: 3
Para nderrimit:
a = 10, b = 3
Pas nderrimit:
a = 3, b = 10
–
#include <iostream>
using namespace std;
int main() {
int a, b, temp;
cout << "Shtypni a: ";
cin >> a;
cout << "Shtypni b: ";
cin >> b;
cout << "Para nderrimit:"
<< "a = " << a
<< ", b = " << b << endl;
temp = a;
a = b;
b = temp;
cout << "Pas nderrimit:"
<< "a = " << a
<< ", b = " << b << endl;
return 0;
}
Detyrë: Të llogaritet hipotenuza e trekëndëshit nëse katetet $a$ dhe $b$ jepen nga tastiera.
Shtypni a: 4
Shtypni b: 3
Hipotenuza e trekendeshit me katetet a=4 dhe b=3 eshte c=5.
Kujtesë: $\;c=\sqrt{a^2+b^2}$
–
#include <iostream>
#include <math.h>
using namespace std;
int main() {
double a, b, c;
cout << "Shtypni a: ";
cin >> a;
cout << "Shtypni b: ";
cin >> b;
c = sqrt(pow(a, 2) + pow(b, 2));
cout << "Hipotenuza e trekendeshit me katetet a="
<< a << " dhe b=" << b << " eshte c=" << c << endl;
return 0;
}
Detyrë: Të shkruhet programi që bën konvertimin nga Celsius në Fahrenheit. Vlera në Celsius lexohet nga tastiera.
Te jepet vlera ne Celsius: 25
Vlera ne Fahrenheit: 77
Kujtesë: $\;F=\frac{9}{5}C + 32$
–
#include <iostream>
using namespace std;
int main() {
double celsius, fahrenheit;
cout << "Te jepet vlera ne Celsius: ";
cin >> celsius;
fahrenheit = 9.0 / 5.0 * celsius + 32.0;
cout << "Vlera ne Fahrenheit: " << fahrenheit << endl;
return 0;
}
Detyrë: Të shkruhet nga një program për secilën formulë më poshtë.
\[F = ma \tag{1}\] \[v = \frac{s}{t} \tag{2}\] \[E = mc^2 \tag{3}\] \[y = -5\times\sqrt{2x^2 + 3} \tag{4}\]–
(1)
#include <iostream>
using namespace std;
int main() {
double F, m, a;
cout << "Jepni m: ";
cin >> m;
cout << "Jepni a: ";
cin >> a;
F = m * a;
cout << "F = " << F << endl;
return 0;
}
–
(2)
#include <iostream>
using namespace std;
int main() {
double v, s, t;
cout << "Jepni s: ";
cin >> s;
cout << "Jepni t: ";
cin >> t;
v = s / t;
cout << "v = " << v << endl;
return 0;
}
–
(3)
#include <iostream>
#include <math.h>
using namespace std;
int main() {
const double c = 3e8;
double E, m;
cout << "Jepni m: ";
cin >> m;
E = m * pow(c, 2);
cout << "E = " << E << endl;
return 0;
}
–
(4)
#include <iostream>
#include <math.h>
using namespace std;
int main() {
double x, y;
cout << "Jepni x: ";
cin >> x;
y = -5 * sqrt(2 * pow(x, 2) + 3);
cout << "y = " << y << endl;
return 0;
}