You are on page 1of 5

UNIVERSITETI I TIRANËS

FAKULTETI I EKONOMISË

PROJEKT

Tema :

Shkruaj një program ne C++ .

Lënda :

Programim Sistemesh ne C++

Punoi :

Erta Liçi
Ergesta Bajraktari
Flora Alibeja
Helena Gërmau

Grupi :

102

Tiranë, 2023

Hyrje :
C++ është një gjuhë programimi e orientuar drejt objekteve dhe është një ndër
gjuhët më popullore të programimit . E zhvilluar nga Bjarne Stroustrup duke filluar
nga viti 1979 , C++ është derivuar nga gjuha C dhe në pjesën më të madhe
bazohet në të.

Kjo gjuhë programimi përdoret në fusha të ndryshme duke i dhenë zgjidhje


problemeve të ndryshme . Për t'i dhënë zgjidhje këtyre problemeve hartohen
programe ne formën e pseudokodit i cili përbëhet nga komanda dhe instruksione të
ndryshme . Ashtu si edhe gjuhët e tjera të programimit, edhe C++ ka një sintaksë të
tijin , i cili ndryshe quhet kodim .

Më poshtë është paraqitur zgjidhja e një problemi me anë të programit C++ .

 Shkruani një program që lexon një tekst të shkruar në gjuhen shqipe në nje
tekst file (.txt) dhe afishon frekuencen e secilit karakter(perfshirë karakteret
speciale të gjuhës shqipe). Outputi të afishojë listen e 36 shkronjave dhe
karaktereve speciale që gjenden në tekst shoqëruar me frekuencen e tyre.

Zgjidhje :
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
using namespace std;

class Frekuenca{
public:
void lexoFile(ifstream &, const char [], int [], int);
void afisho(const char[], int [], int);
};

void Frekuenca::lexoFile(ifstream &file, const char karakteret[], int shpeshtia[], int madhesia){
char c; //karakteri ku do mbahet elementi i rradhes
while( file.get(c) ) // lexohen karakteret njeri pas tjetrit dhe ruhen ne variavlin c me tip te
dhenash karakter
{

int pozicioni = 0 ;

while( karakteret[pozicioni] != c ){
++pozicioni ;
}

++ shpeshtia[pozicioni] ; // rritet shpeshtia me 1


}
}

void Frekuenca::afisho(const char karakteret[], int shpeshtia[], int madhesia){


cout <<"Afishimi i karaktereve dhe frekuences perkatese nga skedari input.txt!"<<endl<<endl;
cout << " Karakteri "<< setw(10) << " Numri i hereve \n" ; //behet formatimi i outputit
for(int i = 0; i < madhesia; i++) // afishimi i rezultateve
{
if(shpeshtia[i] != 0){ //kontrollohen te dhenat qe te afishohen vetem
karakteret qe jane hasur te pakten 1 here
cout << " " << karakteret[i] << " "
<< setw(5) << shpeshtia[i] << "\n" ; //behet formatimi i outputit
}
}
}
int main()
{
ifstream file( "input.txt" );
const char karakteret[] =
"abcçddheëfggjhijkllmnopqrsshtthuvwxxyzzhABCÇDDHEËFGGJHIJKLLMNOPQRSSHTTHUVWXXHYZZH%'}
{\\/,.~`!?@#$^&*()_+=-|\":<>; 0123456789"; //te gjitha karakteret qe mund te numerohen
const int madhesia = strlen(karakteret);
int shpeshtia[madhesia] = { 0 }; //numri total i karaktereve qe mund te llogaritet frekuenca

Frekuenca frek; //krijimi i objektit

frek.lexoFile(file,karakteret, shpeshtia, madhesia); //leximi i te dhenave nga file


dhe llogaritja e frekuences
frek.afisho(karakteret, shpeshtia, madhesia); //thirrja e funksionit per te bere afishimin e
elementeve te tabelave perkatese

file.close();

return 0;
}

Komente :
Ne fillim , në rreshtat e parë të pseudokodit kemi thirrjet e "librarive" të cilat
përmbajnë funksione në lidhje me zgjidhjen e problemit . Si fillim është thirrur
"libraria" kryesore , iostream për instruksionet input - output . Më pas , është
thirrur "libraria" fstream , e cila lexon dhe shkruan në një tekst që jepet si input .
"Libraria" iomanip e cila shërben për "manipulim" të output-it dhe në fund thirrja e
cstring , "librari" e cila deklaron një sërë funksionesh për të punuar me shkronjat
në program .
Në këtë pseudokod , bëhet leximi i një teksti (duke përfshirë dhe gjuhën shqipe)
dhe afishoh frekuencën e secilit karakter të tekstit , pra sa herë është përsëritur një
karakter i caktuar . Është përdorur instruksioni "void" i cili nuk kthen vlerë. Bëhet
deklarimi i variablave tek të cilat do të mbahen të dhënat dhe lloji i tyre , ku në
këtë rast i kemi të tipit shkronjë dhe numër . Bëhet deklarimi i variablave , variabli
"karakter" i cili do të mbajë secilën shkronjë për të cilën do te gjendet shpeshtia ,
variabli "shpeshtia" i cili do të mbajë numrin e herëve që haset një shkronjë e
caktuar , variabli "c" i cili do të mbajë një shkronjë , të cilën do ta krahasojë me të
gjithë shkronjat e tekstit për të gjetur shpeshtinë e saj, pra numrin e herëve qe ajo
shkronjë është hasur ne tekst . Sa herë që një shkronjë e caktuar haset në tekst,
shpeshtia rritet me 1 dhe në rast të kundërt kalohet tek pozicioni/shkronja tjeter .
Në fund pseudokodi është mbyllur me return 0 . Arrijme të dallojmë vendosjen e ;
(pikëpresjes) në fund të çdo rreshti të kodit , që është një veçori e gjuhës C++ .

You might also like