Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Hekuri
  • Struktura e përgjithshme e programit c. Struktura e programeve C

Struktura e përgjithshme e programit c. Struktura e programeve C

Vetë programi C++ është një skedar teksti që përmban konstruktet dhe operatorët e gjuhës së dhënë në rendin e përcaktuar nga programuesi. Në rastin më të thjeshtë, ky skedar teksti mund të përmbajë informacionin e mëposhtëm:

Listimi 1.1. Një shembull i një programi të thjeshtë.

/* Shembull i një programi të thjeshtë */
#përfshi
int main()
{
printf ("Përshëndetje Botë!");
kthimi 0;
}

dhe zakonisht ka një shtrirje cpp, si p.sh. "ex1.cpp".

Hapi tjetër është përpilimi i kodit burimor. Kompilimi është procesi me të cilin përmbajtja e një skedari teksti konvertohet në kod të ekzekutueshëm të makinës që kuptohet nga procesori i kompjuterit. Megjithatë, përpiluesi nuk krijon një program të gatshëm për ekzekutim, por vetëm kodin e objektit (një skedar me shtesën *.obj). Ky kod është një hap i ndërmjetëm në krijimin e një programi të përfunduar. Fakti është se programi që krijohet mund të përmbajë funksione të bibliotekave standarde C++, zbatimet e të cilave përshkruhen në skedarët e objekteve të bibliotekave. Për shembull, programi i mësipërm përdor funksionin printf() të bibliotekës standarde "stdio.h". Kjo do të thotë që skedari i objektit ex1.obj do të përmbajë vetëm udhëzime për thirrjen e këtij funksioni, por kodi për vetë funksionin do të mungojë.

Në mënyrë që programi përfundimtar i ekzekutueshëm të përmbajë të gjitha implementimet e nevojshme të funksioneve, përdoret një lidhës i kodit të objektit. Një lidhës është një program që kombinon në një skedar të vetëm të ekzekutueshëm kodet e objektit të programit që krijohet, kodet e objekteve të zbatimit të funksioneve të bibliotekës dhe kodin standard të nisjes për një sistem operativ të caktuar. Në fund, si skedari i objektit ashtu edhe skedari i ekzekutueshëm përbëhen nga udhëzimet e kodit të makinës. Sidoqoftë, skedari i objektit përmban vetëm rezultatin e përkthimit në gjuhën e makinës të tekstit të programit të krijuar nga programuesi, dhe skedari i ekzekutueshëm përmban gjithashtu kodin e makinës për rutinat standarde të bibliotekës së përdorur dhe për kodin e nisjes.

Le t'i hedhim një vështrim më të afërt shembullit të programit në Listimin 1.1. Rreshti i parë specifikon komentet, d.m.th. komente për t'ju ndihmuar të kuptoni më mirë programin. Ato janë vetëm për lexim dhe injorohen nga përpiluesi. Rreshti i dytë përmban direktivën #include, e cila udhëzon paraprocesorin C++ të fusë përmbajtjen e skedarit 'stdio.h' në vend të kësaj rreshti gjatë kompilimit. Rreshti i tretë përcakton një funksion të quajtur main që kthen një numër të plotë (lloji int) dhe nuk merr asnjë argument (lloji void). Funksioni main() është një funksion i detyrueshëm për të gjitha programet C++, dhe pa të, një mesazh gabimi shfaqet në fazën e përpilimit, që tregon mungesën e këtij funksioni. Natyra e detyrueshme e këtij funksioni është për faktin se është pika hyrëse në program. Në këtë rast, pika hyrëse kuptohet si funksioni me të cilin fillon dhe përfundon programi. Për shembull, kur lëshohet një skedar exe, funksioni main() aktivizohet, të gjitha deklaratat e përfshira në të ekzekutohen dhe programi përfundon. Kështu, logjika e të gjithë programit përmbahet në këtë funksion. Në shembullin e mësipërm, kur thirret funksioni main(), thirret funksioni printf() i cili shfaq mesazhin “Hello World!” në ekranin e monitorit dhe më pas ekzekutohet deklarata kthyese, e cila kthen një vlerë null. Ky numër kthehet nga vetë funksioni main() në sistemin operativ dhe tregon përfundimin me sukses të programit. Kllapat kaçurrelë () përdoren për të përcaktuar fillimin dhe fundin e trupit të funksionit, d.m.th. ato përmbajnë të gjithë operatorët e mundshëm që përshkruajnë punën e këtij funksioni. Duhet theksuar se pas çdo operatori në gjuhën C ++ vendoset simboli ';'. Kështu, shembulli i mësipërm tregon strukturën e përgjithshme të programeve C++.

Një program C përbëhet nga një ose më shumë nënprograme të quajtura funksione.

Gjuha C është e strukturuar në bllok. Çdo bllok është i mbyllur në kllapa kaçurrelë () .

Blloku kryesor në një program aplikimi të tastierës C është funksioni kryesor i quajtur main().

Çdo veprim në gjuhën C përfundon me një pikëpresje - ; . Një veprim mund të jetë një thirrje funksioni ose ndonjë operacion.

Emri i funksionit është emri kolektiv i një grupi deklaratash dhe deklaratash,
i mbyllur në një bllok (kllapa kaçurrelë). Emri i funksionit ndiqet nga parametrat e funksionit në kllapa.

Komentet në gjuhën C

Gjuha C përdor simbole për komente.

/* - fillimi i komentit;
*/ - fundi i komentit.

E gjithë sekuenca e mbyllur mes këtyre personazheve është një koment.

Është i dobishëm për të shkruar komente me shumë rreshta:

int a; /* numër i plotë
ndryshore */

Komentet me shumë rreshta janë gjithashtu të dobishëm kur korrigjoni gabimet për të fshehur një pjesë të kodit nga ekzekutimi.

Për më tepër, personazhet // mund të përdoren për të shkruar komente të shkurtra. Në këtë rast, një koment është gjithçka që ndodhet pas karaktereve // ​​dhe deri në fund të rreshtit:

noton b; // ndryshore reale

Funksioni kryesor

Kur ekzekuton një aplikacion konsolë të shkruar në gjuhën C, sistemi operativ i kompjuterit ia kalon kontrollin një funksioni të quajtur main(). Funksioni main() nuk mund të thirret nga funksionet e tjera të programit, ai është funksioni i kontrollit.

Kllapat pas emrit të funksionit përdoren për të treguar parametrat (argumentet) që i kalohen funksionit kur ai thirret. Në këtë rast, sistemi operativ nuk kalon asnjë argument në funksionin main(), kështu që lista e argumenteve në kllapa është bosh.

Funksioni kryesor mund të shkruhet në mënyra të ndryshme:

  • int main()
  • void main().

Emrit të funksionit i paraprin lloji i vlerës së kthyer. Kur thirret funksioni kryesor, vlera i kthehet sistemit operativ. Hyrja e fundit nuk do të kthejë një vlerë. por void main()- shënim jo mjaft i saktë, pasi i tregon kompajlerit se funksioni kryesor () nuk kthen asnjë vlerë.

Në të njëjtën kohë, rekordi int main() i thotë kompajlerit të kthejë një vlerë të plotë që i nevojitet sistemit operativ dhe i thotë se programi përfundoi në mënyrë të këndshme. Nëse kjo vlerë nuk kthehet, atëherë sistemi operativ kupton që programi ka përfunduar në modalitetin e urgjencës.
Për të kthyer një vlerë të plotë, një rresht shtohet para përfundimit të funksionit

kthimi 0; // ndryshore reale

Kllapat kaçurrelë mbyllin përshkrime dhe operatorë.

Në përgjithësi, një program mund të përmbajë disa funksione. Secili funksion ka një listë të parametrave që i kalojnë, të specifikuara në kllapa, dhe një grup operacionesh të mbyllura në një bllok të kufizuar me kllapa kaçurrelë.

Shembull: Shfaqja e mesazhit "Përshëndetje, botë!" .

1
2
3
4
5
6
7

#përfshi // Lidhja e bibliotekës I/O
int main() // funksioni kryesor
{
printf ("Përshëndetje botë!"); // Shfaq mesazhin
getchar (); // Vonesa e dritares së konsolës
kthimi 0;
}


Rezultati i programit:

Tani le të përpiqemi të shkruajmë tekstin në Rusisht.

1
2
3
4
5
6
7

#përfshi
int main()
{
printf( "Përshendetje Botë!");
getchar ();
kthimi 0;
}


Rezultati i programit:


Problemi me gjuhën ruse në aplikacionet e tastierës është se tastiera dhe redaktori i kodit të Microsoft Visual Studio mbështesin faqe të ndryshme kodi. Për të parë karakteret ruse në tastierë, duhet të ndryshoni faqen e kodit në tastierë që të përputhet me faqen e kodit të redaktuesit (1251). Për këtë qëllim, funksioni i sistemit quhet ( "chcp 1251") me linjën e duhur komanduese. Prototipi i funksionit system() gjendet në bibliotekë .

Më pas, teksti i programit do të duket si ky:

Përbërja e gjuhësNë tekst në çdo gjuhë natyrore, katër
elementet bazë: simbolet, fjalët, frazat dhe fjalitë.
Elementë të ngjashëm gjenden në gjuhën algoritmike:
Alfabeti i një gjuhe, ose simbolet e saj, janë shenjat themelore të pandashme, me
me të cilin shkruhen të gjitha tekstet në gjuhë.
Një leksemë është njësia më e vogël e një gjuhe që ka një të pavarur
kuptimi.
Një shprehje përcakton një rregull për llogaritjen e disa vlerave.
Një operator specifikon një përshkrim të plotë të disa veprimeve.
Për të përshkruar një veprim kompleks, kërkohet një sekuencë
operatorët. Operatorët mund të kombinohen në një përbërje
deklaratë, ose bllok (një bllok në gjuhën C++ është
një sekuencë deklaratash të mbyllura në kllapa kaçurrelë ( )).
Në këtë rast, ato trajtohen si një deklaratë.
Çdo element i gjuhës përcaktohet nga sintaksa dhe semantika.
Përkufizimet sintaksore vendosin rregulla ndërtimi
elementet e gjuhës, dhe semantika përcakton kuptimin dhe rregullat e tyre
përdorni.
Kombinuar nga një algoritëm i vetëm, një grup përshkrimesh dhe
operatorët formon një program në një gjuhë algoritmike.

Procesi i ekzekutimit të programit

Për të ekzekutuar një program, duhet ta përktheni atë
në një gjuhë të kuptueshme për procesorin - në kodet e makinës. Kjo
procesi përbëhet nga disa faza:
Programi i kalohet fillimisht paraprocesorit, i cili
përfshin skedarë teksti që përmbajnë përshkrim
elementet e përdorura në program.
Teksti i plotë që rezulton i programit është futur
përpilues, i cili nxjerr në pah argumentet, dhe më pas bazohet në
gramatika e gjuhës njeh shprehje dhe operatorë,
ndërtuar nga këto leksema. Kompiluesi më pas zbulon
gabime sintaksore dhe, nëse nuk ka, ndërton
moduli i objektit.
Lidhësi, ose lidhësi, gjeneron
moduli i ekzekutueshëm i programit, që lidhet me objektin
module module të tjera objektesh. Nëse programi është
nga disa skedarë burimor, ato përpilohen nga
veçmas dhe të kombinuara në fazën e lidhjes.
Moduli i ekzekutueshëm ka shtrirjen .exe dhe mund të jetë
nisur për ekzekutim.

Alfabeti i gjuhës C++

Alfabeti C përfshin:
shkronjat e mëdha dhe të vogla të alfabetit latin (A,B,...,Z, a, b,..., z) dhe dhe dhe
nënvizoj;
shifrat: 0,1,2,3,4,5,6,7,8,9
karaktere speciale: " , () | () * + - / % \ ; " . :?< = >_ ! & # karaktere që nuk mund të shfaqen ("karaktere të përgjithësuara të hapësirës së bardhë"),
përdoret për të ndarë leksema nga njëra-tjetra (p.sh. hapësira,
skeda, rreshti i ri).
Nga personazhet e alfabetit
Formohen leksema gjuhësore:
identifikues;
fjalë kyçe (të rezervuara);
shenjat e funksionimit;
konstante;
ndarës (kllapa, pikë, presje, karaktere hapësinore).
Kufijtë e tokenit përcaktohen nga shenja të tjera, si p.sh
ndarësit ose shenjat e funksionimit.

Identifikuesit

Identifikuesi është emri i objektit të programit. NË
Mund të përdoren identifikues latinë
shkronjat, numrat dhe nënvizat. Shkronjat e mëdha dhe
shkronjat e vogla janë të ndryshme. Personazhi i parë
identifikuesi mund të jetë një shkronjë ose një shenjë
nënvizon. ku:
identifikuesi nuk duhet të përputhet me fjalët kyçe
fjalët dhe emrat e standardit të përdorur
objekte gjuhësore;
nuk rekomandohet fillimi i identifikuesve me një karakter
nënvizon;
Identifikuesit mund të jenë të çdo gjatësie, por
përpiluesi merr parasysh jo më shumë se 31 karaktere nga
fillimi i identifikuesit;
Shembuj identifikues:
KOM_16, madhësia 88, _MIN, KOHA, koha

Fjalë kyçe

Fjalët kyçe janë identifikues të rezervuar që kanë
vlerë e veçantë për kompajlerin. Ato mund të përdoren vetëm në
kuptimi në të cilin ato përcaktohen. Lista e fjalëve kyçe C++ është dhënë në
tabela:
INT
CHAR
NOT
DYFISHTE
STRUKT
UNION
GJAT
SHKURT
I PAFIRSHTUAR
AUTO
KONST
E VËRTETË
EKSTERN
REGJISTROHU
TYPEDEF
STATIKE
SHKO
KTHIMI
MADHËSIA E
THYES
VAZHDO
NËSE
I PAPOSHTË
I RI
TJETER
PËR
BËJ
DERISA
NDËRKONI
RAST
PARALAKTUAR
HYRJA
DHE
STRUKT
TYPEDEF
BOOL

Shenjat e operacionit

Shenja e funksionimit është një ose më shumë
simbolet e veprimit
mbi operandët. shenjë e brendshme
hapësirat nuk lejohen.
Operacionet ndahen në unare,
binar dhe tresh në numër
operandët e përfshirë.

Lloje të thjeshta të dhënash

Lloji i të dhënave përcakton:
paraqitje e brendshme e të dhënave në memorie
kompjuter;
grup vlerash që mund
pranoni vlera të këtij lloji;
operacionet dhe funksionet që mund të jenë
zbatohen për vlerat e këtij lloji.
Gjuha C++ përcakton gjashtë standarde
lloje të thjeshta të dhënash për t'u përfaqësuar
numër i plotë, real, karakter dhe
vlerat logjike.

Llojet e të dhënave
Përcaktuesit e tipit përfshijnë:
karakter
- simbolike;
dyfish - pikë lundruese me saktësi të vërtetë të dyfishtë;
float - pikë lundruese reale;
int - numër i plotë;
gjatë
- numër i plotë me gjatësi të shtuar (numër i plotë i gjatë);
i shkurtër - numër i plotë me gjatësi të reduktuar (short integer);
nënshkruar - nënshkruar, d.m.th. numër i plotë i nënshkruar (biti më i rëndësishëm llogaritet si
ikonë);
i panënshkruar - i panënshkruar, d.m.th. numër i plotë i panënshkruar (biti më i rëndësishëm jo
konsiderohet ikonë).
i pavlefshëm
- mungesa e vlerës;
bool - boolean (mund të marrë vetëm vlerat "true" dhe "false".
Paraqitja e brendshme e false është 0 (zero).
Çdo vlerë tjetër interpretohet si e vërtetë.)
Për të përshkruar konstante, përdorni fjalën e shërbimit const më parë
përshkrimi i llojit. Për shembull, konst float g=9.8;

10. Struktura e një programi C

Një program C++ është
një ose më shumë funksione. Një nga funksionet
duhet të quhet main(). Është nga kjo
funksioni fillon të ekzekutojë programin, dhe nga
këtë funksion, sipas nevojës,
quhen funksione të tjera.
Përkufizimi më i thjeshtë i funksionit ka formatin e mëposhtëm:
emri i llojit të kthimit ([ parametrat ])
{
pohime që përbëjnë trupin e funksionit
}
Si rregull, funksioni përdoret për të llogaritur disa
vlerat, pra emri i funksionit paraprihet nga lloji i tij. Nëse
funksioni nuk duhet të kthejë një vlerë, lloji void është specifikuar.
ku:
– Trupi i funksionit është i mbyllur në mbajtëse kaçurrelë.
– Funksionet nuk mund të ndërlidhen.
– Çdo deklaratë përfundon me një pikëpresje (përveç
operatori i përbërë).

11. Struktura e një programi C

Një program mund të përbëhet nga disa module (skedarë burim) dhe, si rregull,
përmban direktiva të paraprocesorëve. Një shembull i një strukture programi që përmban
funksionet kryesore, f1 dhe f2:
direktivat e parapërpunuesve
përshkrimet
int main()
{
operatorët e funksionit kryesor
}
int f1 () (
operatorët e funksionit f1
}
int f2 () (
operatorët e funksionit f2
}
/* Shembull i një programi të thjeshtë */
#përfshi
int main()
{
printf ("Përshëndetje Botë!");
kthimi 0;
}

12. Funksionet I/O të stilit C

Funksionet bazë I/O të stilit C:
int scanf (konst char* format...) // hyrje
int printf(format konst char*...) // dalje
Ata kryejnë hyrje dhe dalje të formatuar të një numri arbitrar vlerash sipas vargut
format. Vargu i formatit përmban karaktere që kopjohen në transmetim (në ekran) ose
kërkohen nga transmetimi (nga tastiera) në hyrje dhe specifikimet e konvertimit duke filluar me
shenjë %, të cilat zëvendësohen nga vlera specifike gjatë hyrjes dhe daljes.
#përfshi
int main() (
int i;
printf("Fut një numër të plotë\n");
scanf("%d", &i);
printf("Keni futur numrin %d, faleminderit!", i);
kthimi 0; )
Rreshti i parë i këtij programi është një direktivë paraprocesori që futet në tekstin e programit
skedari i kokës , që përmban një përshkrim të funksioneve hyrëse/dalëse të përdorura në program. Gjithçka
Direktivat e paraprocesorit fillojnë me një shenjë #.
Rreshti i tretë është një përshkrim i një variabli të tipit të plotë të quajtur i.
Funksioni printf në rreshtin e katërt printon kërkesën Enter një numër të plotë dhe kalon në një rresht të ri në
sipas sekuencës \n të arratisjes.
Funksioni scanf ruan numrin e plotë të futur nga tastiera në variablin i, dhe deklarata e mëposhtme printohet në
shfaqni vargun që përmban, duke zëvendësuar specifikimin e konvertimit me vlerën e atij numri.

13. Funksionet I/O në stilin C++

I njëjti program duke përdorur bibliotekën
Klasat C++ :
#përfshi
duke përdorur hapësirën e emrave std;
int main()
{
int i;
cout<< "Введите целое число\n";
cin >> i;
cout<< "Вы ввели число" << i << ", спасибо!"; return 0;
}

14. Bibliotekat standarde

Gjuha C ka mbështetje të pasur në formë
më shumë se 450 rutina bibliotekare të funksioneve dhe makrove që mundeni
telefononi nga programet tuaja C për të zgjidhur
një gamë të gjerë detyrash, duke përfshirë I/O
niveli i ulët dhe i lartë, punë me
linjat dhe skedarët, shpërndarja e memories,
menaxhimi i procesit, transformimi
të dhënat, llogaritjet matematikore dhe
me shume.

15. Direktivat e parapërpunuesve

Faza e parë quhet paraprocesor.
përpilues. Udhëzimet e paraprocesorit
quhen direktiva. Ata duhet
filloni me një karakter #, të paraprirë nga
rreshti mund të përmbajë vetëm hapësira
simbolet.
Kërkoni për një skedar nëse shtegu i plotë nuk është specifikuar,
mbahen në katalogë standardë
skedarë të përfshirë. Në vend të këndore
mund të përdoren kllapa, thonjëza (" ").
- në këtë rast kërkimi i dosjes kryhet në
drejtoria që përmban skedarin burimor, dhe
atëherë tashmë në drejtoritë standarde.
Skedarët e kokës zakonisht kanë
shtrirje.h .

16. Direktiva e paraprocesorit #include

Për të lidhur bibliotekat, përdorni
direktiva e paraprocesorit
# përfshi [emri i skedarit]
#përfshi direktivë<имя_файла>fut
përmbajtjen e skedarit të specifikuar deri në atë pikë
skedari burim ku është shkruar.
Për shembull:
#përfshi
#include "mylib.h"

17. #define direktiva e paraprocesorit

Direktiva #define përcakton një zëvendësim në tekst
programet. Përdoret për të përcaktuar
konstante simbolike.
Formati simbolik i përkufizimit konstant:
#define name substitution_text /*Të gjitha dukuritë
emrat zëvendësohen me tekstin zëvendësues */
Shembuj:
#përcaktoni M 1000
#përcaktoni Vasia "Vasily Ivanovich"

18. Disa biblioteka standarde

ALLOC.H
Përshkrimi i funksioneve të menaxhimit të kujtesës
(shpërndarja, shpërndarja, etj.)
BIOS.H
Përshkrimi i funksioneve të ndryshme të përdorura në
qasja në nënprogramet e BIOS (bazë
sistemi I/O).
CONIO.H Përshkrimi i funksioneve të ndryshme të përdorura në
duke hyrë në rutinat DOS I/O me
tastierë.
GRAPHICS.H Përmban prototipe të funksioneve grafike.
MATH.H Përmban një përshkrim të prototipeve të matematikës
funksione
STDIO.H Përcakton llojet dhe makrot e nevojshme për
paketa standarde I/O. Gjithashtu përcakton
prurjet standarde hyrëse/dalëse stdin, stdout dhe
përshkruan nënprogramet I/O.
STDLIB.H përshkruan disa rutina për qëllime të përgjithshme:
nënprograme për transformim, kërkim, renditje dhe të tjera.
STRING.H
Përshkruan disa rutina të përpunimit të vargjeve dhe
puna e kujtesës.

19. Funksioni i daljes së formatit PRINTF

Ne kemi përdorur tashmë më të zakonshmet
funksioni i daljes në C është nënprogrami printf. Ajo
qëllimi është të shkruani informacion në ekran.
Formati i tij është i thjeshtë dhe fleksibël:
printf(<строка формата>, <объект>, <объект>, ...);

20. Funksioni i hyrjes së formatit SCANF

Për modalitetin e hyrjes interaktive, ndoshta mund të përdoret në
në shumicën e rasteve, funksioni i skanimit. scanf është një funksion hyrës, sipas përkufizimit
ekuivalente me printf; formati i tij duket si ky:
scanf(<строка формата>,<адрес>,<адрес>,...)
Megjithatë, scanf ka një ndryshim shumë të rëndësishëm: objektet e mëposhtme
vargu i formatit duhet të jetë adresa, jo vlera. Për shembull, në
Programi përmban thirrjen e mëposhtme:
scanf("%d %d", &a, &b);
Kjo thirrje i tregon programit se duhet të presë të dhëna nga ju.
dy numra dhjetorë (numër të plotë) të ndarë me një hapësirë; vullneti i parë
caktuar për a, dhe e dyta për b. Vini re se këtu ne përdorim operacionin
adresat (&) për të kaluar adresat a dhe b te scanf.

21. Formatoni vargun

Vargu i formatit është vargu që fillon
dhe përfundon me thonjëza të dyfishta ("si ky");
qëllimi i printf është të shkruajë këtë rresht në ekran. Përpara
dalja e printf zëvendëson gjithçka shtesë
objektet e renditura në linjë sipas
me specifikimet e formatit të specifikuara në
vetë linja. Një shembull i një deklarate printf:
printf(“ d= %f \n”,d);

22. Formatoni vargun

%f në vargun e formatit është specifikimi i formatit. Gjithçka
specifikimet e formatit fillojnë me një shenjë përqindjeje (%) dhe
(zakonisht) e ndjekur nga një shkronjë e vetme që tregon llojin
të dhënat dhe si t'i transformoni ato.
%f e përdorur në specifikim thotë atë që pritet
ndonjë numër real. Këtu janë disa specifikime të tjera të formatit të përdorura zakonisht:
- %u numër i plotë i panënshkruar
- %ld numër i plotë i gjatë
- %p vlera e treguesit
- %d numër i plotë
- %e numër me pikë lundruese në formë eksponenciale
- %c karakter
- %s varg
- %x ose %X numër i plotë në format heksadecimal.

23. Formatoni vargun

Ju mund të vendosni gjerësinë e fushës duke e vendosur atë
ndërmjet % dhe shkronjës, p.sh. fusha dhjetore
gjerësia 4 jepet si %4d. Vlera do të jetë
e shtypur e zhvendosur djathtas (përpara
hapësira), kështu që gjerësia totale e fushës është 4.
Ose për shembull %6.2f do të thotë se
caktuan 6 pozicione për një numër real,
dhe 2 - nën pjesën e pjesshme.
Nëse dëshironi të printoni një shenjë %, atëherë futni %%.

24. Formatoni vargun

\n në një varg nuk është një specifikim formati, por
përdoret (për arsye historike) si
sekuencën e arratisjes, dhe përfaqëson
një karakter i veçantë i futur në një varg. Në këtë rast
\n fut një karakter në fillim të një rreshti të ri, kështu që
pasi të dalë linja, kursori do të lëvizë në fillim të rreshtit të ri
linjat.
- \f (përkthimi në format ose ekrani i pastër)
- \t (skedë)
- \b (backspace<-)
- \xhhh (fut karakterin me kodin ASCII hhh, ku hhh
përmban 1 deri në 3 shifra heksadecimal)
Nëse keni nevojë të printoni një vijë të prapme, atëherë
fut \\.

25. Një shembull i një programi C

#përfshi
#përfshi
kryesore ()
{
noton x1,y1,x2,y2;
printf("Fut dy numra: ");
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
float d = sqrt(pow((x2-x1),2)+pow((y2-y1),2));
printf("d= %f \n", d);
}

26. Funksione të tjera dalëse PUTS, PUTCHAR

Ka dy funksione të tjera dalëse që mund t'ju ndihmojnë
me interes: vë dhe putçar. Funksioni puts nxjerr një varg në
ekran dhe përfundon daljen me një karakter të linjës së re.
Konsideroni një shembull të programit:
#përfshi
kryesore ()
{
vendos ("Përshëndetje, student i VKI NSU");
}
Vini re se \n është lënë jashtë në fund të rreshtit; kjo nuk është e nevojshme, sepse
vë vetë shton këtë karakter.
Anasjelltas, funksioni putchar shkruan një karakter të vetëm
ekran dhe nuk shton \n. putchar(ch) është ekuivalente me
printf("%c",ch).

27. MERR, MERR funksionet

kryesore ()
{
emri char;
printf("Si e ke emrin:");
scanf("%s", emri);

}
Nëse vendosni një mbiemër dhe një emër, do të shfaqet vetëm mbiemri. Sepse
hapësira që futni pas emrit sinjalizon për të skanuar fundin e hyrjes
linjat.
Ju mund ta zgjidhni këtë problem duke përdorur funksionin merr.
kryesore ()
{
emri char;
printf("Si e ke emrin:");
merr (emri);
printf("Përshëndetje, %s\n", emri);
}

28. MERR, MERR funksionet

#përfshi
#përfshi
kryesore ()
{
clrscr();
emri char;
printf("Si e ke emrin:");
merr (emri);
printf("Përshëndetje, %s\n", emri);
getch();
}
Këtu funksioni getch pret që çdo karakter të futet.
Funksioni getch lexon një karakter të vetëm nga tastiera pa lëshuar
atë në ekran (ndryshe nga scanf dhe merr). Vini re se ajo nuk ka
parametri. Nëse ia caktojmë funksionin një ndryshoreje simbolike, atëherë
do të marrë vlerën e karakterit të shtypur.
Për shembull: c=getch();

29. Operacioni i caktimit

Operacioni më i zakonshëm është caktimi,
për shembull, p=a/b ose ch = getch(). Në C
caktimi shënohet me një shenjë të vetme
barazi (=); ndërsa vlera në të djathtë të shenjës
barazia i është caktuar ndryshores në të majtë.
Ju gjithashtu mund të përdorni sekuenciale
detyrat, për shembull: sum=a= b. Të tillë
rastet, caktimi bëhet në të djathtë
në të majtë, domethënë, b do t'i caktohet a, e cila në
nga ana e tij do të caktohet për të shumës, kështu që të gjithë
tre variabla do të marrin të njëjtën vlerë (dhe
gjegjësisht, vlera fillestare b).

30. Veprimet aritmetike. Rritje. Zvogëlimi.

C mbështet grupin e zakonshëm të operacioneve aritmetike:
- shumëzimi (*)
- ndarje (/)
- përcaktimi i pjesës së mbetur (%)
- shtimi (+)
- zbritja (-)
Për të rritur vlerën e një ndryshoreje me një, përdorni rritjen (++),
zvogëlimi (--) për t'u ulur me një.
Kështu që:
x++; // rritje x me një
y--; // zvogëloni y me një
Shembuj të operacioneve postfiks dhe prefiks:
a=2;
a=2;
x=18-2*a++;
x=18-2*(++a);
Ne marrim:
a=3
a=3
x=14
x=12

31. Operacione të kombinuara

Më poshtë janë disa shembuj të shprehjeve
dhe mënyrat për t'i reduktuar ato:
a = a + b shkurtuar në a += b;
a = a - b; shkurtuar në a -= b;
a = a * b; shkurtuar në a *= b;
a = a / b; shkurtuar në a /= b;
a = a % b; reduktuar në një %= b;

32. Shembulli 1

Llogaritni X3 dhe X10 duke përdorur katër shumëzime për
është dhënë vlera e plotë X.
#përfshi
int x,x2,x3,x5,x10;
kryesore () (
printf("\n Programi i llogaritjes X^3 dhe X^10\n");
puts ("Fut vlerën X");
scanf("%i",&x);
x2=x*x;
x3=x*x2;
x5=x2*x3;
x10=x5*x5;
printf("%i në fuqinë e 3-të = %i \n",x,x3);
printf("%i në fuqinë e 10-të = %i",x,x10);
}

33. Shembulli 2

Jepet një kënd në radianë. Njehsoni sinusin dhe kosinusin e një këndi.
#përfshi
#përfshi
Këndi notues,Rezultati1,Rezultati2;
kryesore ()
{
printf("\n Program për llogaritjen e këndit të sin dhe cos\n");
puts ("Vendosni vlerën e këndit në radianë");
scanf("%f",&kënd);
Rezultati1=mëkat(Këndi);
Rezultati2=cos(Këndi);
printf("Sinusi i këndit është %f \n",Rezultati1);
printf("Kosinusi i këndit është %f",Rezultati2);

Në programet C, ekziston një sekuencë e caktuar:

Për të filluar, ne shtojmë bibliotekat që na duhen #include Nëse skedari është në drejtorinë aktuale të projektit, ai tregohet në thonjëza. Për një skedar të vendosur në një drejtori tjetër, duhet të specifikoni rrugën e plotë në thonjëza.

#përfshi
#përfshi "math.h"

Pas kësaj Ne mund të shtojmë konstantat që na duhen #define A 3

Pas kësaj, funksioni fillon, me komandën Main ()

Pasi të ketë përfunduar gjithçka, mund të futni getchar ()

2. Për çfarë përdoret pikëpresja në C?

Pikëpresja përdoret për të shënuar fundin e një deklarate në C.

3. A kërkojnë të gjithë përpiluesit C përdorimin e një deklarate kthyese në program?

Për të kthyer një vlerë të plotë, rreshti shtohet përpara përfundimit të funksionit

Gjithashtu, në shumicën e rasteve, kthim do të thotë dalje nga funksioni.

Deklaratat e trupit të funksionit ekzekutohen përpara deklaratës së parë të kthimit. Nëse nuk ka një operator të tillë në trupin e funksionit (d.m.th., funksioni nuk kthen asnjë rezultat), atëherë ekzekutohen të gjithë operatorët deri në kllapin e operatorit mbyllës.

Funksioni për printimin e elementeve të grupit nuk jep asnjë rezultat, d.m.th. nuk ka asnjë deklaratë kthimi në trupin e funksionit.

4. Për çfarë qëllimi futen komentet në tekstin e programit?

Komentet futen për të shpjeguar një veprim të caktuar.

p.sh. Printf ("Hello World"); // shfaq mbishkrimin Hello World

Gjithashtu, komentet mund të futen me karakteret /* - në fillim */ - në fund të komentit

5. Pse përdoren parametrat gjatë thirrjes së një funksioni?

Një lidhje është në thelb një emër i dytë për të njëjtin objekt. Kur një objekt i kalohet një funksioni me referencë, ai objekt në të vërtetë kalohet. Kur kalojmë një objekt sipas vlerës, një kopje e tij i kalohet funksionit.

void func_1(int a) // kaloj sipas vlerës

6. A kërkojnë të gjitha funksionet që të kalojnë parametrat kur thirren?

Sipas mendimit tim, jo ​​gjithçka fare, sepse ne mund të shkruajmë lehtësisht një funksion si main () pa kaluar parametrat sipas vlerës

1. Cili është lloji i të dhënave char?

Lloji i të dhënave char është një lloj i të dhënave me numër të plotë që përdoret për të përfaqësuar karakteret. Kjo do të thotë, çdo karakter korrespondon me një numër të caktuar nga diapazoni. Lloji i të dhënave char quhet edhe tipi i të dhënave të karakterit, pasi paraqitja grafike e karaktereve në C++ është e mundur falë char. Për të përfaqësuar karakteret në C ++, llojit të të dhënave char i caktohet një bajt, në një bajt - 8 bit, pastaj ngremë dy në fuqinë 8 dhe marrim vlerën 256 - numri i karaktereve që mund të kodohen. Kështu, duke përdorur llojin e të dhënave char, mund të shfaqet ndonjë nga 256 karakteret. Të gjithë karakteret e koduara janë të përfaqësuara në tabelën ASCII.

2. Si ndryshon simboli “3” nga numri 3?

karakteri 3 ndryshon nga numri i plotë 3 në atë që karakteri nuk mund të përdoret në veprime aritmetike

3. Cili është ndryshimi midis një konstante dhe një ndryshoreje?

Dallimi midis një ndryshoreje dhe një konstante është mjaft i qartë: gjatë ekzekutimit të një programi, vlera e një ndryshoreje mund të ndryshohet (për shembull, me caktim), por vlera e një konstante jo.

4. Si të përcaktohet një konstante?

Konstantat në C++ janë të ngjashme me konstantat në C. Për të përfaqësuar një konstante në C, u përdor vetëm direktiva #define e paraprocesorit:

lloji konst Emri i ndryshores = Vlera fillestare;

Shtrirja e një konstante është e njëjtë me atë të një ndryshoreje të zakonshme. Fjala kyçe const mund të përdoret për të deklaruar një tregues në një konstante.

5. A e mbështet C llojin e të dhënave të vargut?

Gjuha C nuk mbështet një lloj të veçantë të të dhënave të vargut, por lejon që vargjet të përcaktohen në dy mënyra të ndryshme. I pari përdor një grup karakteresh, ndërsa i dyti përdor një tregues për karakterin e parë në grup.

6. A e ruan ndryshorja vlerën e saj gjatë gjithë programit?

gjatë ekzekutimit të programit, vlera e një ndryshore mund të ndryshohet (për shembull, me caktim), por vlera e një konstante nuk mund të

7. Si të ndryshohet vlera e një konstante?

1. Cilat janë ndryshimet midis sekuencave \n dhe \r të arratisjes?

Përafërsisht, \r supozohej të vendoste numrin e karaktereve në zero. duke e lënë numrin e rreshtit të pandryshuar (d.m.th., do të lëvizë karrocën e makinës së shkrimit në fillim të rreshtit pa prekur letrën) dhe \n - përkundrazi, do të bëjë një kalim në rreshtin tjetër, duke e lënë pozicionin aktual të printimit të pandryshuar (do të lëvizë letrën pa prekur karrocën).

2. Si të shfaqni karakterin "citate" në ekran?

printf("Teksti im është: \"teksti im\"\n");

3. Cilat janë dy pjesët e listës së parametrave të funksionit printf()?

Kur shtypni ndonjë numër ose shprehje, fillimisht shkruhet Printf ().

Në kllapa, në fillim në thonjëza, shkruajmë të dhënat që na duhen, përkatësisht

%s - karakter i vetëm
%d - numër i plotë dhjetor i nënshkruar
%f - numër me pikë lundruese (paraqitje dhjetore)
%s - varg karakteresh (për variablat e vargut)
%u - numër i plotë dhjetor i panënshkruar
%% - shenjë e përqindjes së printimit

Për shembull:

printf("x=%5i\ty=%f\tz=%7.3f\n",x, y, z);

4. Cilat janë avantazhet e printf() ndaj puts()?

5. Çfarë është një tregues i formatit?

Lexon një vlerë me pikë lundruese (vetëm C99)

Njësoj si %a (vetëm C99)

Lexon një personazh

Lexon një numër të plotë dhjetor

Lexon një numër të plotë në çdo format (decimal, oktal ose heksadecimal)

Njësoj si %e

Lexon një numër me pikë lundruese

Njësoj si %f (vetëm C99)

Lexon një numër me pikë lundruese

Njësoj si %g

Lexon një numër oktal

Lexon një rresht

Lexon një numër heksadecimal

Njësoj si %x

Lexon treguesin

Merr një vlerë të plotë të barabartë me numrin e karaktereve të lexuara deri më tani

Lexon numrin e plotë dhjetor të panënshkruar

Kërkon një grup karakteresh

Lexon një shenjë përqindjeje

6. Si të shfaqet vlera e një ndryshoreje numerike?

Ju mund të printoni vlerën e tij duke përdorur funksionin Printf().

printf("%7.3f\t%7.3f\n",x,y);

%<количество_позиций_под_значение>.<количество_позиций_под_дробную_часть>f

%<количество_позиций_под_значение>i

Struktura e një programi C.

Përdorimi i gjuhës së programimit C në zgjidhjen e problemeve ekonomike

Programet dhe të dhënat

Përparësitë e gjuhës C

1) C është një gjuhë moderne, struktura e saj inkurajon programuesin të përdorë metoda në punën e tij: dizajn nga lart-poshtë, programim i strukturuar, strukturë modulare e programeve.

2) C është një gjuhë efikase. Programet C janë kompakte dhe të shpejta për t'u ekzekutuar.

3) C - gjuhë e lëvizshme ose e lëvizshme.

4) C është një gjuhë e fuqishme dhe fleksibël.

5) Programet e shkruara në C përdoren për të zgjidhur probleme të niveleve të ndryshme. C ka një numër konstruksionesh të fuqishme asamblerësh.

6) C është një gjuhë e përshtatshme, është e strukturuar dhe në të njëjtën kohë nuk kufizon shumë lirinë e programuesve.

7) C është një gjuhë e tipit përpilues. Për shkak se C është një gjuhë e standardizuar, e pavarur nga pajisja, gjerësisht e disponueshme, aplikacionet e shkruara në C shpesh mund të ekzekutohen me pak ose aspak modifikim në një shumëllojshmëri të gjerë sistemesh kompjuterike. Kompjuteri, pavarësisht shpejtësisë dhe fuqisë së tij llogaritëse, është një pajisje e thjeshtë që manipulon numrat binare. Disa numra binarë interpretohen nga kompjuteri si komanda, të tjerët si të dhëna. Për ta bërë një kompjuter të bëjë diçka të dobishme, duhet të shkruani një program.

Programimi aktivitete programore.

Programi është një përshkrim i algoritmit për zgjidhjen e një problemi të dhënë në gjuhën e kompjuterit.

Komanda udhëzime për hapin tjetër.

Shembull komandat: С=А+В, ku A, В-operandët, +- veprim.

Operacioni është ajo që kompjuteri duhet të bëjë sipas çdo komande.

operandët -pjesëmarrësit e operacionit, pastaj mbi çfarë dhe me çfarë kryhet operacioni. Një grup veprimesh elementare nga mënyrat e përshkrimit të tyre formojnë një sistem komandash të gjuhës së programimit.

Shembulli #1:

#përfshi

(void main(void) //titulli i funksionit kryesor të programit

jashtë<< “Здравствуй, С!\ n”;

1 rresht: lidhja e bibliotekave ndihmëse të fokusuara në hyrjen dhe daljen e të dhënave të llojeve të ndryshme në rrymë.

rreshti i 2-të: kreu i funksionit kryesor të programit. Deklarata Cout për të nxjerrë informacionin<< – помещение в класс данных, \n-переход к новой строке вывода.

Programi është një sekuencë udhëzimesh që zbatojnë një algoritëm, një grup recetash që përcaktojnë në mënyrë unike përmbajtjen dhe sekuencën e veprimeve për zgjidhjen e problemeve.

Përdorimi i S.

1. Programet dhe të dhënat.

2. Skema e ekzekutimit të programit në kompjuter:

Shembulli #1:

#përfshi< stdio.h>

printf ("Unë studioj në BSUIR\ n");

Rreshti 1: Komanda e përfshirjes së paraprocesorit, duke përfshirë skedarin stdio.h, i cili përshkruan funksionin e bibliotekës printf.

Rreshti 2: përcaktimi i një funksioni të quajtur main që nuk merr asnjë argument. Deklarata kryesore është e mbyllur në mbajtëse kaçurrelë. Funksioni kryesor thërret funksionin e bibliotekës printf për të printuar, të dhënë në sekuencën e karaktereve. Slash (\n) - vijë e re fjalë për fjalë, kalim në vijë të re.

Për të ekzekutuar programin në PVEM, duhet të bëni sa më poshtë:

1) Shkruani një program në një gjuhë programimi.

2) Transmetoni në standardin e kësaj gjuhe.

3) Lidheni atë me programet dhe funksionet e nevojshme.

4) Ngarkoni në RAM.

5) Vraponi dhe merrni rezultatin.


SKEMA E KOMPILIMIT

Një përkthyes është një program kompjuterik që përkthen një program të shkruar në një gjuhë programimi në një formë që një kompjuter mund ta kuptojë. Dalja e përpiluesit është një skedar me shtesën obj. Një skedar i ekzekutueshëm ose një modul ngarkues është një skedar që përmban një program të përpiluar dhe gati për t'u ekzekutuar. Borland C++ është një mjedis zhvillimi për programe që përfshijnë një përpilues dhe disa mjete të tjera.

Struktura e një programi C.

Çdo program C përbëhet nga një ose më shumë funksione dhe elemente. Funksioneve të ndryshme mund t'u jepet çdo emër. Funksionet përmbajnë udhëzime (komanda) që përshkruajnë veprime në një hap të caktuar të ekzekutimit, dhe ndryshorja ruan vlerat e përdorura në rrjedhën e këtyre veprimeve. Veprime të tilla mund të jenë caktimi i vlerave për variabla, kontrollimi i disa kushteve. Funksioni me emrin kryesor. Ekzekutimi i çdo programi fillon me funksionin kryesor.

a) Struktura e përgjithshme e një programi C pa iu referuar një nënprogrami:

b) Struktura e përgjithshme e një programi C në lidhje me nënprojektet:

Argumentet janë një nga mekanizmat e ndërveprimit ndërmjet funksioneve. Lista e argumenteve në kllapa ndjek emrin e funksionit. Kllapat kaçurrelë kornizojnë fillimin dhe fundin e një programi. Udhëzime që përbëjnë trupin e programeve nga operatorët dhe operandët. Në C, çdo deklaratë dhe çdo rresht i thirrjeve të funksionit përfundon me një pikëpresje. Përjashtim bëjnë komandat e paraprocesorit dhe emrat e funksioneve që shfaqen në fillim të një njësie programore. Qëllimi i shumicës së programeve është të zgjidhin problemin përmes transformimeve të ndryshme të të dhënave burimore. Për këtë është e nevojshme.

Artikujt kryesorë të lidhur