Programi Lab C
Programi Lab C
Laborator 1
Tema: Pёrdorimi i kushteve logjike (switch…case, if…else)
Detyrё 1: Ndёrtoni njё program ne gjuhёn C i cili lexon njё numёr nga tastiera dhe printon
nё ekran numrin me fjalё. Psh. Nqs jepet numri 4 nё ekran shfaqet “katёr”, nqs jepet numri
3 afishohet “tre”, nqs jepet numri 2 afishohet “dy”, nqs jepet numri 1 afishohet “njё”, dhe
nqs numri ёshtё i ndryshёm nga kjo bashkёsi numrash afishohet “numёr tjetёr”.
Cili ёshtё kushti logjik mё i pёrshtatshёm pёr t’u pёrdorur ne kёtё situatё? Pse? Mund tё
zёvendёsohet ai me ndonjё kusht tjetёr? Cfarё funksioni ka instruksioni break nё kete rast?
Provoni tё mos e pёrdorni. Cfarё ndodh gjatё kompilimit? Po gjatё ekzekutimit?
Zgjidhje:
#include <stdio.h>
int main()
{
int i;
printf("Jepni nje numer: ");
scanf("%d",&i);
switch(i)
{
case 4: {printf("kater "); break;}
case 3: {printf("tre "); break;}
case 2: {printf("dy "); break;}
case 1: {printf("nje "); break;}
default: {printf("numer tjeter!"); break;}
}
return 0;
}
Detyrё 2: Duke ditur qё lojerat Olimpike mbahen njё herё nё katёr vjet nё vitet qё
plotёpjesёtohen me katёr, dhe numёrimi i popullsisё behet njё herё nё dhjetё vjet, ndёrtoni
njё program ne gjuhёn C i cili pёr njё vit tё lexuar nga tastiera, tregon nqs nё kёtё vit
zhvillohen lojёrat Olimpike, bёhet numёrimi i popullsisё apo tё dyja bashkё.
Pёrdorni kushtet logjike if…else. Pёrdorni komente gjate shkrimit tё kodit.
Zgjidhje:
#include <stdio.h>
main()
{
int viti;
/* Kerkohet si input nga perdoruesi viti */
printf(Cili eshte viti qe doni te kontrolloni? ");
scanf(" %d", &viti);
1
Teknikat dhe Gjuhet e Programimit
Laborator 2
Tema: Pёrdorimi i cikleve logjike (while, do...while, for)
Pёrdorimi i instruksioneve break dhe continue brenda cikleve.
Pёrdorimi i funksionit random().
Detyrё 1: Ndёrtoni njё program nё gjuhёn C i cili printon ne ekran te gjithё numrat
pozitivё mё tё vegjёl se 1000 qё plotёpjesёtohen me 5.
a) Duke pёrdorur ciklin ‘for’
b) Duke pёrdorur ciklin ‘while’
c) Duke perdorur ciklin ‘do...while’
Zgjidhje:
b) #include <stdio.h> c)#include <stdio.h>
a) #include <stdio.h> int main() int main()
int main() { {
{ int i; int i;
int i; i=5; i=0;
for(i=5;i<=1000;i=i+5) while (i<=1000) do
printf(“%d\t”,i); { { i=i+5;
return(0); printf(“%d\t”,i); printf(“%d\t”,i);
} i=i+5; }while (i<=1000)
} return(0);
return(0); }
}
Detyrё 3: Ndёrtoni njё program i cili printon nё ekran nё mёnyrё rastёsore 20 numra nga
intervali [5...30], duke patur parasysh qё i njёjti numёr tё mos gjenerohet 2 herё tё
njёpasnjёshme. Kini kujdes qё tё gjenerohen saktesisht 20 numra.
2
Teknikat dhe Gjuhet e Programimit
Zgjidhje:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{ int i;
int temp,j;
3
Teknikat dhe Gjuhet e Programimit
Laborator 3
Tema: Pёrdorimi i vektorёve. Manipulimi i tё dhёnave me to.
Detyrё 1: Ndёrtoni njё program nё gjuhёn C. Deklaroni njё vektor me 10 elementё numra tё
plotё. Mbusheni kёtё vektor me tё dhёna nga pёrdoruesi (lexohen nga tastiera). Llogarisni
dhe afishoni mesataren e kёtyre numrave, numrin mё tё vogёl dhe mё tё madh.
Zgjidhje:
#include <stdio.h>
void main(void)
{
int numrat[10];
int totali;
float mesatare=0.0;
int max, min;
int i;
/* Llogaritet mesatarja */
mesatarja = (float)totali/10;
Detyrё 2: Ndёrtoni njё program nё gjuhёn C qё lexon 2 vektore V1 dhe V2 nga tastiera me
pёrmasa pёrkatёsisht N=10 dhe M=8. Ndёrtoni njё vektor tё ri B i cili pёrmban elementёt
vektorёve V1 dhe V2 tё renditur.
Zgjidhje:
#include <stdio.h>
int main()
{
int V1 [10]; int V2[8];
int B[18]; int i,j, temp;
printf("Jepni 10 numrat e vektorit V1: ");
for (i=0;i<10;i++)
{scanf("%d",&V1[i]);
scanf("%d",&B[i]);}
4
Teknikat dhe Gjuhet e Programimit
return(0);
}
Detyrё 3: Ndёrtoni programin nё gjuhёn C i cili pёr njё fjalё tё dhёnё tregon nqs ajo ёshtё
apo jo palindromё. Palindromё quhet njё fjalё e cila lexohet njёsoj nga tё dy anёt, psh ara,
abccba, etj.
Zgjidhje:
#include <stdio.h>
#include <string.h>
void main()
{
char fjala[50];
int n;
int i;
printf("Jepni fjalen\n");
scanf("%s", &fjala);
n = strlen(fjala);
for(i = 0; i < n/2; i++)
{
if (fjala[i] == fjala[n-i-1])
{
if (i == (n/2 - 1) )
printf("Fjala eshte palindrome");
}
else
{
printf("fjala nuk eshte palindrome");
i=2*n;
}
}
getchar();
getchar();
}
5
Teknikat dhe Gjuhet e Programimit
Laborator 4
Tema: Vektorёt 2 dimensionalё.
Detyrё 1:Shkruani njё program ne gjuhen C i cili lexon njё matrice katrore te rendit te 3 dhe
llogarit rreshtin me shumёn mё tё madhe tё elementёve. Programi duhet tё afishojё kёtё
shumё.
Zgjidhje:
#include <stdio.h>
#include <math.h>
int main(void)
{
const int N = 3;
int i,j;
int matrica[N][N];
int norma,s;
for (i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
scanf("%d", &matrica[i][j]);
printf("\n");
}
norma = 0;
for (i = 0; i < N; i++)
{ s=0;
for(j = 0; j < N; j++)
s = s + abs(matrica[i][j]);
if (s > norma)
norma = s;
}
printf("Norma e matrices eshte %d", norma);
return 0;
}
Detyrё 2: Pёrdorimi i debugging pёr tё gjetur gabimet logjike nё program. Vendosni njё
breakpoint nё ciklin for nё programin qё shkruat nё Detyrёn1. Ekzekutojeni programin duke
e ndjekur me kod instruksion pas instruksioni. Vёreni si ndryshojnё vlerat e variablave j,s dhe
norma, gjatё ekzekutimit hap pas hapi.
Gabimet qё mund tё evidentohen nё kёtё menyrё janё gabime logjike dhe jo gabime
sintakse.
Detyrё 3: Pёr kodin e mёposhtёm i cili implementon lojen Tic Tac Toe, duke analizuar
kodin e dhёnё pёrgjigjuni pyetjeve tё mёposhtme:
a) Cilat janё shenjat dalluese pёr secilin lojtar, me tё cilin ai identifikon kutinё qё ka zgjedhur.
Eshtё e thjeshtё tё ndryshohen kёto shenja nё kod?
b) Cfarё tregon instruksioni for(i = 0; i<9 && winner==0; i++), duke u nisur nga pёrdorimi i tij nё
program.
c) Ekzekutoni programin. Pas kёsaj tregoni bllokun e kodit ku ndёrtohet figura e lojёs.
d) Sa herё bёhet kontrolli per fitues? Pse?
e) Si merret parasysh rasti kur pёrdoruesi zgjedh njё numёr qё nuk ёshtё nё kutinё e lojёs? Pra,
duhet tё zgjedhё numrat 1-9 qё i pёrkasin kutisё sё lojёs, dhe zgjedh 15. Tregoni nё kod
instruksionet qё bёjnё kёtё kontroll.
6
Teknikat dhe Gjuhet e Programimit
/* Loja Tic-Tac-Toe */
#include <stdio.h>
int main(void)
{
int player = 0; /* Numri i lojtarit - 1 or 2
*/
int winner = 0; /* Lojtari fitues
*/
int choice = 0; /* Kutia e zgjedhur */
int row = 0; /* Index i rreshtit te kutise se zgjedhur */
int column = 0; /* Index i kolones se kutise se zgjedhur */
int line=0; /* Row or column index in checking loop */
int i;
char board[3][3] = { /* Figura e lojes */
{'1','2','3'}, /* Vlerat fillestare */
{'4','5','6'}, /* perdoren per te zgjedhur kutine*/
{'7','8','9'} /* nga lojtari i radhes. */
};
do
{
printf("\nLojtari %d, Ju lutemi vendosni nr e kutise "
"Ku doni te vendosni %c: ",
player,(player==1)?'X':'O');
scanf("%d", &choice);
7
Teknikat dhe Gjuhet e Programimit
(board[0][line]==board[1][line] &&
board[0][line]==board[2][line]))
winner = player;
}
/* Loja perfundon, shfaqet Figura perfundimtare e Lojes */
printf("\n\n");
printf(" %c | %c | %c\n", board[0][0], board[0][1], board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n", board[1][0], board[1][1], board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n", board[2][0], board[2][1], board[2][2]);
return 0;
}
8
Teknikat dhe Gjuhet e Programimit
Laborator 5
Tema: Strukturimi i programeve nё funksione.
Strukturat, pёrdorimi i tyre.
Skedarёt dhe manipulimi i tyre nё gjuhёn C.
Detyrё 1: Ndёrtoni programin i cili sasinё e ujit ne m3 tё njё pishine. Ndёrtoni njё funksion
qё kёrkon gjatёsinё, gjerёsinё dhe thellёsinё e pishinёs. Njё funksion tjetёr qё llogarit sasinё
nё m3 tё pishinёs, dhe njё funksion tjetёr qё printon rezultatin. Funksioni main() duhet t’i
kaloje vlerat e variablave midis funksioneve me adresё.
Zgjidhje:
#include <stdio.h>
main()
{
float gjatesi, gjeresi, thellesi, kubik;
merrVlera(&gjatesi, &gjeresi, &thellesi);
llogaritKubik(&gjatesi, &gjeresi, &thellesi, & kubik);
printoKubik(&kubik);
return 0;
}
printoKubik(float *kubik)
{
printf("\Pishina eshte %f meter kub feet\n", *kubik);
return 0;
}
Detyrё 2: Ndёrtoni programin nё gjuhёn C i cili krijon njё skedar tekst dhe shkruan nё tё
emrat e 5 studenteve mё tё mirё tё lexuar nga tastiera.
Zgjidhje:
#include <stdio.h>
FILE *fp;
main()
{
fp = fopen("EMRAT.DAT", "w");
9
Teknikat dhe Gjuhet e Programimit
fputs("\n", fp);
fputs("Mira Braho\n", fp);
fputs("Arben Tirana\n", fp);
fputs("Elia Damiani\n", fp);
fputs("Paula Hiro\n", fp);
fclose(fp);
return 0;
}
Detyrё 3: Ndёrtoni njё strukturё me 2 argumenta integer dhe nej argument karakter.
Ndёrtoni njё funksion qё merr si parametёr nje variabёl te tipit strukturёn e krijuar mё sipёr.
Ky funksion printon nё ekran vlerat e atributeve tё variablit strukturё. Pёrfshijeni kёte
funksion nё njё program nё gjuhёn C, ku i jepet vlerё variablit strukturё.
Zgjidhje:
#include <stdio.h>
struct struct_type {
int a, b;
char ch;
} ;
void f1(struct struct_type parm);
int main(void)
{
struct struct_type arg;
arg.a = 1000;
f1(arg);
return 0;
}
void f1(struct struct_type parm)
{
printf(''%d", parm.a);
}
10