Professional Documents
Culture Documents
Teknikat Dhe Gjuhët e Programimit - l6
Teknikat Dhe Gjuhët e Programimit - l6
int a = 0; /* Ndërtohet a */
/* Variabli a mund te përdoret në këtë pikë */
/* variabli b nuk mund te përdoret në këtë pikë*/
{
int b = 10; /* Ndërtohet b */
/* Variabli a dhe b mund te përdoret në këtë pikë */
} /* b përfundon në këtë pikë */
/* variabli b nuk mund te përdoret në këtë pikë*/
/* Variabli a mund te përdoret në këtë pikë */
} /* a përfundon në këtë pikë */
int main(void){
int v1 = 1;
do{
int v2 = 0;
++v2;
printf("\nVariabli1 = %d Variabli2 = %d", v1,v2);
} while( ++v1 <= 8 );
/* v2 nuk ekziston */
printf("\nVariabli1 = %d\n", v1);
return 0;
}
2020 Departamenti i Inxhinierisë Informatike 4
Hapësira & llojet e variablave
FTI – Teknikat dhe gjuhët e programimit
void display();
int n = 5; // variabel global
int main(){
++n;
display();
return 0;
}
void display(){
++n;
printf("n = %d", n);
}
2020 Departamenti i Inxhinierisë Informatike 6
Variabël lokal
#include <stdio.h>
FTI – Teknikat dhe gjuhët e programimit
int main(void) {
for (int i = 0; i < 5; ++i) {
printf("C programming");
}
printf("%d",i);//Gabim: i nuk eshte e deklaruar per kete hapsire
return 0;
}
void display();
int main()
{
display();
display();
}
void display()
{
static int c = 1;
c += 5;
printf("%d \n",c);
}
2020 Departamenti i Inxhinierisë Informatike 8
Variabël regjistër
• Perdoret fjala register perpara deklarimit te variablit me qellim qe ky variable
FTI – Teknikat dhe gjuhët e programimit
#include<stdio.h>
int main() {
register int i = 10;
printf("%d - %p", i, &i);
return 0;
}
një detyre.
• Gjuha C ofron mundësinë e ndërtimit të programit të bazuar në funksione
• Llojet e funksioneve
– Funksione te librarive standarte
– Funksione te zhvilluesit
trupi i funksionit
}
• Lloji i Return − Një funksion mund të kthejë një vlere pas ekzekutimi te tij. Lloji i
të dhënës që kthehet funksioni vendoset në fillim. Në rastet kur nuk kthehet vlerë
në vend të llojit të të dhënës vendoset void.
• Emri i funksionit − Çdo funksion duhet të ketë një emër dhe duhet te bazuar në
rregullat që janë si rregullat e deklarimit te variablave.
• Parametri − një funksion mund të marrë vlera nga thirrja dhe ti përdor këto vlera
brenda trupit të funksionit. Këto vlera kalohen me anë të parametrave të cilat janë
përcaktuar në momentin e ndërtimit.
• Trupi i funksionit − trupi i funksionit është bashkësia e instruksioneve (statement)
të cilat do të ekzekutohet për të plotësuar detyrën e funksionit.
2020 Departamenti i Inxhinierisë Informatike 12
Funksioni
#include <stdio.h>
FTI – Teknikat dhe gjuhët e programimit
return 0;
}
#include <stdio.h>
int kontrollo_nr_thjeshte(int n) {
int j, kushti = 1;
for (j = 2; j <= n / 2; ++j) {
if (n % j == 0) {
kushti = 0;
break;
}
}
return kushti;
}
2020 Departamenti i Inxhinierisë Informatike 18
Shembuj funksionesh
int main() {
FTI – Teknikat dhe gjuhët e programimit
#include <math.h>
#include <stdio.h>
long long convertb(int n) {
long long bin = 0;
int rem, i = 1, step = 1;
while (n != 0) {
rem = n % 2;
printf("Hapi %d:%d/2,Mbetja=%d,Heresi=%d\n",step++,n,rem, n/2);
n /= 2;
bin += rem * i;
i *= 10;
}
return bin;
}
2020 Departamenti i Inxhinierisë Informatike 21
Shembuj funksionesh
int convertd(long long n) {
FTI – Teknikat dhe gjuhët e programimit
int n, d;
printf("Jepni nje numer dhjetor : ");
scanf("%d", &n);
long long b;
b=convertb(n);
printf("\n%d decimal = %lld binar", n,b );
d=convertd(b);
printf("\n%lld binar = %d decimal", b,d );
return 0;
}
• Një funksion rekursiv duhet që të ketë një pikë e cila të kontrollojë thirrjen e
vetvetes në mënyrë që mos behet funksion i pafundëm.
f(n) = n*f(n-1)
int main(void){
unsigned long nr = 0L;
printf("\nJepni nje vlere te plote: ");
scanf(" %lu", &nr);
printf("\nFaktoriali i %lu is %lu\n", nr, factorial(nr));
return 0;
}
Zgjidhja :
– Funksion për leximin e elementeve të vektorit
– Funksion për gjetjen e maksimumit
– Funksion për gjetjen e mesatares (shuma/n)
– Funksion për gjetjen e elementeve ndërmjet mesatares dhe maksimumit
– Thirrja e funksioneve në main()
int v[100];
void lexo_vektorin(int i, int n){
if (n==i)
return;
printf("Jepni elementin[%d]:",i+1);
scanf("%d",&v[i]);
lexo_vektorin(++i,n);
}
return v[n-1];
int m=gjej_maksimum(++i,n);
if (m>v[i])
return m;
else
return v[i];
}
lexo_vektorin(0,nr);
s=gjej_shuma(0,nr);
mes=s/nr;
max=gjej_maksimum(0,nr);
t= numero(0,nr,mes,max,0);
• Zgjidhja :
– Fillimisht ndërtojmë një funksion rekursiv i cili do printojë kombinimet për r element
– Duke filluar për r =1 deri ne n thërrasim funksionin rekursiv dhe n ë këtë formë përfitojmë
të gjitha kombinimet
int main()
{
char arr1[100];
int r = 3,i; // r mban nr e kombinimeve
char data[1];
int main(){
char arr1[100];
int r,i;
printf("Jepni nje shprehje: ");
gets(arr1);
int n = strlen(arr1);
printf("Kombinimet e karaktereve te shprehjes %s jane: \n",arr1);
paraqit_kombinim(arr1, n, r);}
2020 Departamenti i Inxhinierisë Informatike 38
Funksioni Rekursiv
FTI – Teknikat dhe gjuhët e programimit