Jezik cc. §1 Splošne informacije o jeziku. Faze oblikovanja programa. Modeli življenjskega cikla aplikacije. Varen ali nevaren sistem tipov podatkov

Učenje osnov in zapletenosti programskega jezika C++. Učbenik s praktičnimi nalogami in testi. Se želite naučiti programirati? Potem ste na pravem mestu – tukaj je brezplačno usposabljanje programiranja. Ne glede na to, ali imate izkušnje ali ne, vam bodo te lekcije programiranja pomagale začeti ustvarjati, prevajati in odpravljati napake v programih C++ v različnih razvojnih okoljih: Visual Studio, Code::Blocks, Xcode ali Eclipse.

Veliko primerov in podrobnih razlag. Popoln tako za začetnike (telebane) kot tudi za naprednejše. Vse je razloženo od začetka do samih podrobnosti. Te lekcije (200+) vam bodo dale dobro osnovo/osnovo za razumevanje programiranja ne samo v C++, temveč tudi v drugih programskih jezikih. In to je popolnoma brezplačno!

Zajeto je tudi postopno ustvarjanje igre v C++, grafična knjižnica SFML in več kot 50 nalog za preizkus vaših veščin in znanja v C++. Dodaten bonus je.

Za ponovno objavo +20 za karmo in mojo hvaležnost!

Poglavje št. 0. Uvod. Začetek dela

Poglavje št. 1. Osnove C++

Poglavje št. 2. Spremenljivke in osnovni podatkovni tipi v C++

Poglavje št. 3. Operatorji v C++

Poglavje št. 4. Obseg in druge vrste spremenljivk v C++

Poglavje št. 5. Vrstni red, v katerem se izvaja koda v programu. Zanke in veje v C++

Programski jezik C++

Zadnja posodobitev: 28.08.2017

Programski jezik C++ je visokonivojski, statično vtipkan, preveden programski jezik za splošne namene, ki je primeren za ustvarjanje najrazličnejših aplikacij. Danes je C++ eden najbolj priljubljenih in razširjenih jezikov.

Korenine ima v jeziku C, ki ga je v letih 1969-1973 v Bell Labs razvil programer Dennis Ritchie. V zgodnjih osemdesetih letih je danski programer Bjarne Stroustrup, ki je takrat delal pri Bell Labs, razvil C++ kot razširitev jezika C. Pravzaprav je na začetku C++ preprosto dopolnil jezik C z nekaterimi zmogljivostmi objektno usmerjenega programiranja. In zato ga je sam Stroustrup sprva imenoval »C z razredi«.

Pozneje je novi jezik začel pridobivati ​​na priljubljenosti. Dodane so mu bile nove funkcije, zaradi katerih ni bil samo dodatek k C-ju, ampak popolnoma nov programski jezik. Posledično je bil "C z razredi" preimenovan v C++. In od takrat naprej sta se oba jezika začela razvijati neodvisno drug od drugega.

C++ je zmogljiv jezik, ki od C-ja podeduje bogate pomnilniške zmogljivosti. Zato se C++ pogosto uporablja v sistemskem programiranju, zlasti pri ustvarjanju operacijskih sistemov, gonilnikov, različnih pripomočkov, protivirusnih programov itd. Mimogrede, Windows OS je večinoma napisan v C++. Toda uporaba tega jezika ni omejena na sistemsko programiranje. C++ se lahko uporablja v programih katere koli ravni, kjer sta pomembni hitrost in zmogljivost. Pogosto se uporablja za izdelavo grafičnih aplikacij in različnih aplikacijskih programov. Posebej pogosto se uporablja tudi za ustvarjanje iger z bogato, bogato vizualizacijo. Poleg tega se v zadnjem času vse bolj krepi mobilna smer, kjer je svojo aplikacijo našel tudi C++. In tudi v spletnem razvoju lahko uporabite tudi C++ za ustvarjanje spletnih aplikacij ali nekaterih podpornih storitev, ki služijo spletnim aplikacijam. Na splošno je C++ zelo razširjen jezik, v katerem lahko ustvarite skoraj vse vrste programov.

C++ je preveden jezik, kar pomeni, da prevajalnik prevede izvorno kodo C++ v izvršljivo datoteko, ki vsebuje nabor strojnih navodil. Toda različne platforme imajo svoje značilnosti, zato prevedenih programov ni mogoče preprosto prenesti z ene platforme na drugo in tam izvajati. Vendar pa so na ravni izvorne kode programi C++ večinoma prenosljivi, razen če se uporabljajo nekatere funkcije, specifične za OS. Razpoložljivost prevajalnikov, knjižnic in razvojnih orodij za skoraj vse običajne platforme vam omogoča prevajanje iste izvorne kode C++ v aplikacije za te platforme.

Za razliko od C vam jezik C++ omogoča pisanje aplikacij v objektno usmerjenem slogu, ki predstavlja program kot zbirko razredov in objektov, ki medsebojno delujejo. Kar poenostavlja ustvarjanje velikih aplikacij.

Glavne stopnje razvoja

V letih 1979-80 je Bjarne Stroustrup razvil razširitev jezika C - "C z razredi". Leta 1983 se je jezik preimenoval v C++.

Leta 1985 je izšla prva komercialna različica jezika C++ in prva izdaja knjige "Programski jezik C++", ki je predstavljala prvi opis tega jezika v odsotnosti uradnega standarda.

Leta 1989 je bila izdana nova različica jezika C++ 2.0, ki je vključevala številne nove funkcije. Po tem se je jezik razvijal relativno počasi do leta 2011. Toda hkrati je leta 1998 prišlo do prvega poskusa standardizacije jezika s strani organizacije ISO (Mednarodna organizacija za standardizacijo). Prvi standard se je imenoval ISO/IEC 14882:1998 ali na kratko C++98. Kasneje, leta 2003, je bila objavljena nova različica standarda C++03.

Leta 2011 je bil objavljen nov standard C++11, ki je vseboval številne dodatke in jezik C++ obogatil z velikim številom novih funkcionalnosti. Po tem je bil leta 2014 izdan majhen dodatek k standardu, znan tudi kot C++14. Še ena ključna izdaja jezika je predvidena za leto 2017.

Prevajalniki in razvojna okolja

Za razvoj programov v C++ potrebujete prevajalnik - ta prevede izvorno kodo v C++ v izvršljivo datoteko, ki jo lahko nato zaženete. Toda trenutno obstaja veliko različnih prevajalnikov. Lahko se razlikujejo v različnih vidikih, zlasti pri izvajanju standardov. Osnovni seznam prevajalnikov za C++ lahko najdete na Wikipediji. Za razvoj je priporočljivo izbrati tiste prevajalnike, ki razvijajo in implementirajo vse najnovejše standarde. Zato bomo v tej vadnici uporabljali predvsem prosto dostopni prevajalnik g++, ki ga je razvil projekt GNU.

Za ustvarjanje programov lahko uporabite tudi IDE, kot so Visual Studio, Netbeans, Eclipse, Qt itd.

Standardna knjižnica C/C++ vključuje številne funkcije za branje in pisanje na konzolo (tipkovnica in monitor). Te funkcije berejo in pišejo podatke kot preprost tok znakov.

Koncept toka, ki se uporablja v programiranju, je tesno povezan z običajnim, vsakdanjim razumevanjem te besede. Vhodni tok lahko primerjamo s cevjo, po kateri voda (informacije) vstopa v bazen (pomnilnik računalnika), izhodni tok pa s cevjo, po kateri voda zapušča bazen. Pomembna značilnost te cevi je, da se lahko podatki premikajo samo v eno smer naenkrat. Tudi če sta za vhod in izhod uporabljena ista cev, se to ne more zgoditi hkrati: za zamenjavo smeri toka jo je treba ustaviti, izvesti nekaj dejanja in šele nato je mogoče tok usmeriti v nasprotno smer. Druga značilnost potoka je, da skoraj nikoli ne presahne. Včasih se izsuši, vendar to obdobje ne more biti dolgo, če sistem deluje normalno.

Standardna izhodna funkcija printf()

Funkcija printf() je standardna izhodna funkcija. S to funkcijo lahko na zaslonu monitorja prikažete niz znakov, številko, vrednost spremenljivke ...

Funkcija printf() ima prototip v stdio.h
int printf(char *kontrolni niz, ...);

Če je uspešen, printf() vrne število natisnjenih znakov.

Nadzorna vrstica vsebuje dve vrsti informacij: znake, ki so neposredno natisnjeni na zaslon, in specifikatorje formata, ki določajo, kako se natisnejo argumenti.

Funkcija printf() je formatirana izhodna funkcija. To pomeni, da je treba v parametrih funkcije določiti format podatkov, ki bodo izpisani. Format podatkov je določen z specifikatorji formata. Specifikator formata se začne z znakom %, ki mu sledi koda formata.

Specifikatorji formata:

% z simbol
%d celo decimalno število
%jaz celo decimalno število
%e decimalno število v obliki x.xx e+xx
%E decimalno število v obliki x.xx E+xx
%f
%F decimalno število s plavajočo vejico xx.xxxx
%g %f ali %e, kar je krajše
%G %F ali %E, kar je krajše
%o osmiško število
%s niz znakov
%u decimalno število brez predznaka
%x šestnajstiško število
%X šestnajstiško število
%% simbol %
%p kazalec
%n kazalec

Poleg tega lahko modifikatorja l in h uporabite za ukaze za formatiranje.

%ld natisni dolgo int
%hu znamka kratka nepodpisana
%Lf dolg dvojni žig

V določevalcu formata je za simbolom % mogoče podati natančnost (število števk za decimalno vejico). Natančnost je nastavljena na naslednji način: %.n<код формата>. Kjer je n število števk za decimalno vejico in<код формата>- eno od zgoraj navedenih kod.

Na primer, če imamo spremenljivko x=10,3563 plavajočega tipa in želimo njeno vrednost prikazati natančno na 3 decimalna mesta, potem bi morali napisati:

printf("Spremenljivka x = %.3f",x);

rezultat:
Spremenljivka x = 10,356

Določite lahko tudi najmanjšo širino polja, dodeljenega za tiskanje. Če je vrstica ali številka večja od navedene širine polja, se vrstica ali številka natisne v celoti.

Na primer, če napišete:

printf("%5d",20);

potem bo rezultat naslednji:
20

Upoštevajte, da številka 20 ni bila natisnjena od samega začetka vrstice. Če želite, da so neuporabljeni prostori polja zapolnjeni z ničlami, morate pred širino polja postaviti simbol 0.

Na primer:

printf("%05d",20);

rezultat:
00020

Poleg specifikatorjev formata podatkov lahko nadzorna vrstica vsebuje kontrolne znake:

\b BS, spodaj
\f Nova stran, sprememba strani
\n Nova vrstica, podajanje vrstice
\r Vrnitev kočije
\t Horizontalna tabeliranost
\v Navpični zavihek
\" Dvojni narekovaj
\" Apostrof
\\ Poševnica nazaj
\0 Ničelni znak, ničelni bajt
\a Signal
\N Oktalna konstanta
\xN Šestnajstiška konstanta
\? Vprašaj

Najpogosteje boste uporabili znak \n. S tem kontrolnim znakom lahko preidete v novo vrstico. Poglejte primere programov in vse vam bo jasno.

Primeri programov.

/* Primer 1 */
#vključi

praznina glavni (praznina)
{
int a,b,c; // Deklaracija spremenljivk a,b,c
a=5;
b=6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Rezultat programa:
a=5, b=6, c=9

/* Primer 2 */
#vključi

praznina glavni (praznina)
{
float x,y,z;

X=10,5;
y=130,67;
z=54;

Printf("Koordinate predmeta: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Rezultat programa:
Koordinate objekta: x:10.50, y:130.67, z:54.00

/* Primer 3 */
#vključi

void main()
{
int x;

X=5;
printf("x=%d", x*2);
}

Rezultat programa:
x=10

/* Primer 4 */
#vključi

praznina glavni (praznina)
{
printf("\"Besedilo v narekovajih\"");
printf("\nVsebnost kisika: 100%%");
}

Rezultat programa:
"Besedilo v narekovajih"
Vsebnost kisika: 100%

/* Primer 5 */
#vključi

praznina glavni (praznina)
{
int a;

A=11; // 11 v decimalnem je enako b v šestnajstiškem
printf("a-dec=%d, a-hex=%X",a,a);
}

Rezultat programa:
a-dec=11, a-hex=b

/* Primer 6 */
#vključi

praznina glavni (praznina)
{
char ch1,ch2,ch3;

Ch1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

Rezultat programa:
ABC

/* Primer 7 */
#vključi

praznina glavni (praznina)
{
char *str="Moj niz.";

Printf("To je %s",str);
}

Rezultat programa:
To je moja linija.

/* Primer 8 */
#vključi

praznina glavni (praznina)
{
printf("Pozdravljeni!\n"); // Po tiskanju bo prišlo do prehoda v novo vrstico - \n
printf("Ime mi je Pavel."); // To bo natisnjeno v novi vrstici
}

Rezultat programa:
Zdravo!
Moje ime je Pavel.

Standardna vhodna funkcija scanf()

Funkcija scanf() je formatirana vhodna funkcija. Z njegovo pomočjo lahko vnašate podatke iz standardne vnosne naprave (tipkovnice). Vhodni podatki so lahko cela števila, števila s plavajočo vejico, znaki, nizi in kazalci.

Funkcija scanf() ima v stdio.h naslednji prototip:
int scanf(char *kontrolni niz);

Funkcija vrne število spremenljivk, ki jim je bila dodeljena vrednost.

Kontrolni niz vsebuje tri vrste znakov: določitelje formata, presledke in druge znake. Specifikatorji formata se začnejo z znakom %.

Specifikatorji formata:

Pri vnosu niza s funkcijo scanf() (specifikator formata %s) se niz vnese pred prvim presledkom!! tiste. če vnesete niz "Hello world!" z uporabo funkcije scanf().


scanf("%s",str);

potem bo po vnosu nastalega niza, ki bo shranjen v matriki str, sestavljena iz ene besede "Hello". FUNKCIJA VNESE NIZ PRED PRVIM PRESLEDKOM! Če želite vnesti nize s presledki, uporabite funkcijo

char *dobi(char *buf);

S funkcijo gets() lahko vnesete celotne nize. Funkcija gets() bere znake s tipkovnice, dokler se ne pojavi znak za novo vrstico (\n). Znak za novo vrstico se prikaže, ko pritisnete tipko enter. Funkcija vrne kazalec na buf. buf - medpomnilnik (pomnilnik) za vhodni niz.

Čeprav gets() ni tema tega članka, napišimo primer programa, ki omogoča vnos celotne vrstice s tipkovnice in prikaz na zaslonu.

#vključi

praznina glavni (praznina)
{
vmesni pomnilnik; // polje (medpomnilnik) za vhodni niz

Gets (medpomnilnik); // vnesite vrstico in pritisnite enter
printf("%s",buffer); // izpis vnesenega niza na zaslon
}

Še ena pomembna opomba! Za vnos podatkov s funkcijo scanf() mora kot parametre posredovati naslove spremenljivk, ne spremenljivk samih. Če želite dobiti naslov spremenljivke, morate pred imenom spremenljivke postaviti & (ampersand). Znak & pomeni prevzem naslova.

Kaj pomeni naslov? Poskušal bom razložiti. V programu imamo spremenljivko. Spremenljivka shrani svojo vrednost v pomnilnik računalnika. To je torej naslov, ki ga uporabimo, in to je naslov v pomnilniku računalnika, kjer je shranjena vrednost spremenljivke.

Oglejmo si primer programa, ki nam pokaže, kako uporabljati &

#vključi

praznina glavni (praznina)
{
int x;

Printf("Vnesite spremenljivko x:");
scanf("%d",&x);
printf("Spremenljivka x=%d",x);
}

Zdaj pa se vrnimo k nadzorni vrstici funkcije scanf(). Ponovno:

int scanf(char *kontrolni niz);

Znak za presledek v kontrolnem nizu ukazuje, da je treba enega ali več presledkov preskočiti v vhodnem toku. Poleg presledka je mogoče zaznati tabulator ali znak za novo vrstico. Ničelni znak pomeni, da je znak prebran in zavržen.

Ločila med številkama, ki ju vnesete, so presledek, tabulator ali nova vrstica. * za % in pred kodo formata (specifikator formata) ukazuje, da se vrsta podatkov prebere, vendar se tej vrednosti ne dodeli.

Na primer:

scanf("%d%*c%d",&i,&j);

vnos 50+20 bo spremenljivko i nastavil na 50, spremenljivko j na 20, znak + pa bo prebran in prezrt.

Ukaz za format lahko poda največjo širino polja za branje.

Na primer:

scanf("%5s",str);

označuje potrebo po branju prvih 5 znakov iz vhodnega toka. Če vnesete 1234567890ABC, bo niz str vseboval samo 12345, preostali znaki pa bodo prezrti. Ločila: presledek, tabulator in nova vrstica - pri vnosu znaka se obravnavajo kot vsi ostali znaki.

Če se v kontrolnem nizu pojavijo kateri koli drugi znaki, so namenjeni prepoznavanju in preskoku ustreznega znaka. Operater toka znakov 10plus20

scanf("%dplus%d",&x,&y);

bo spremenljivki x dodelil vrednost 10, spremenljivki y vrednost 20 in bo preskočil znake plus, ker se pojavljajo v kontrolnem nizu.

Ena od zmogljivih lastnosti funkcije scanf() je njena zmožnost podajanja nabora skeniranja. Iskalni nabor določa nabor znakov, s katerimi bodo primerjani znaki, ki jih prebere funkcija scanf(). Funkcija scanf() bere znake, dokler se pojavljajo v iskalnem nizu. Takoj, ko vnesenega znaka ni mogoče najti v iskalnem nizu, se funkcija scanf() premakne na naslednji specifikator formata. Iskalni niz je opredeljen s seznamom znakov v oglatih oklepajih. Pred začetnim oklepajem je znak %. Poglejmo si to na primeru.

#vključi

praznina glavni (praznina)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
Vnesemo nabor znakov:
12345abcdefg456

Program bo na zaslonu prikazal:
12345
abcdefg456

Ko podajate iskalni niz, lahko uporabite tudi znak vezaja, da določite razmik in največjo širino vnosnega polja.

scanf("%10", str1);

Določite lahko tudi znake, ki niso vključeni v iskalni niz. Pred prvim od teh znakov je ^. Številni znaki razlikujejo med malimi in velikimi črkami.

Naj vas spomnim, da mora funkcija scanf() pri uporabi posredovati naslove spremenljivk kot parametre. Zgornja koda je bila napisana:

char str; // niz 80 znakov
scanf("%s",str);

Upoštevajte, da pred str ni &. To je storjeno, ker je str matrika in je ime matrike - str kazalec na prvi element matrike. Zato se znak & ne sme uporabljati. Naslov že posredujemo funkciji scanf(). No, preprosto povedano, str je naslov v pomnilniku računalnika, kjer bo shranjena vrednost prvega elementa matrike.

Primeri programov.

Primer 1.
Ta program prikaže zahtevo "Koliko si star?:" in čaka na vnos podatkov. Če na primer vnesete številko 20, bo program prikazal vrstico "Stari ste 20 let". Pri klicu funkcije scanf() postavimo znak & pred spremenljivko starost, saj funkcija scanf() potrebuje naslove spremenljivk. Funkcija scanf() bo zapisala vneseno vrednost na navedeni naslov. V našem primeru bo vnesena vrednost 20 zapisana na naslov spremenljivke starost.

/* Primer 1 */

#vključi

praznina glavni (praznina)
{
int starost;

Printf("\nKoliko si star?:");
scanf("%d",&starost);
printf("Stari ste %d let.", starost);
}

Primer 2.
Program za kalkulator. Ta kalkulator lahko samo sešteva številke. Ko vnesete 100+34, bo program dal rezultat: 100+34=134.

/* Primer 2 */

#vključi

praznina glavni (praznina)
{
int x, y;

Printf("\nKalkulator:");
scanf("%d+%d", &x, &y);
printf("\n%d+%d=%d", x, y, x+y);
}

Primer 3.
Ta primer prikazuje, kako nastaviti širino bralnega polja. V našem primeru je širina polja pet znakov. Če vnesete niz z velikim številom znakov, bodo vsi znaki po 5. izločeni. Opazite klic funkcije scanf(). Znak & ni pred imenom imena matrike, ker je ime imena matrike naslov prvega elementa matrike.

/* Primer 3 */

#vključi

praznina glavni (praznina)
{
char ime;

Printf("\nVnesite svoje uporabniško ime (ne več kot 5 znakov):");
scanf("%5s", ime);
printf("\nVnesli ste %s", ime);
}

Primer 4.
Zadnji primer v tem članku prikazuje, kako je mogoče uporabiti iskalni niz. Po zagonu programa vnesite številko od 2 do 5.

/* Primer 4 */

#vključi

praznina glavni (praznina)
{
char bal;

Printf("Vaša ocena je 2,3,4,5:");
scanf("%", &bal);
printf("\nOcena %c", bal);
}

Računalniki so morda najbolj vsestransko orodje, ki ga ima človeštvo na razpolago. Sposobni so izvajati neverjetne izračune, omogočajo shranjevanje ogromne količine informacij, popolnoma različnih koncev planeta in jih hkrati preprosto izmenjujejo, ne glede na lokacijo. Računalniki olajšajo mnoga vsakodnevna opravila in omogočajo avtomatizacijo številnih rutinskih procesov, ki bi bili za človeka zelo dolgočasni in dolgočasni. Računalniki lahko naredijo toliko stvari, vendar kljub temu računalniki nimajo inteligence, za razliko od ljudi. Če želite avtomatizirati še tako preprost postopek, morate računalniku jasno in nedvoumno povedati, kaj točno mora narediti. Žal se naš jezik in računalniški jezik popolnoma razlikujeta. Tako je med strojem in človekom resna jezikovna ovira, ki jo je treba nekako premagati, sicer nas računalnik ne bo razumel. In čeprav nas računalniki ne razumejo, ne bodo naredili ničesar sami. Ogromno število programskih jezikov je bilo izumljenih kot sredstvo komunikacije med osebo in računalnikom. S pomočjo programskih jezikov ustvarjamo programe in računalnik neposredno dela s programi. Sami programi so nizi navodil, ki jih lahko računalnik razume in izvede.

Vrste programov

Za učinkovito komunikacijo z računalnikom, kar si želimo, obstaja široka paleta programskih jezikov.

Glede na vrsto projekta je pri izbiri programskega jezika treba upoštevati številne dejavnike. Tukaj je seznam najpomembnejših dejavnikov:

Prevajanje, interpretacija in JIT prevajanje

Postopek prevajanja prevede kodo, napisano v programskem jeziku, v materni jezik ciljnega stroja. Program, ki izvaja ta proces, se imenuje prevajalnik. S prevajanjem lahko koda deluje precej hitro, še posebej, če je prevajalnik učinkovit pri optimizaciji. Dejstvo pa je, da nastala koda ne more delovati na različnih operacijskih sistemih in postopek prevajanja traja nekaj časa in več kot je kode, daljši je postopek prevajanja. Omeniti velja, da je pri kakršnih koli spremembah programske kode le-to potrebno prevesti in šele nato zagnati.

Interpretirane programske jezike bere program, imenovan tolmač, in izvaja isti program. Interpretirani programski jeziki se lahko izvajajo v različnih operacijskih sistemih, tako kot tolmač, in niti nimajo dolgih časov prevajanja. Toda programi, napisani z uporabo interpretiranih jezikov, običajno delujejo veliko počasneje kot enakovredni, prevedeni programi.

In končno, tako imenovana sprotna kompilacija (oz. JIT kompilacija). Takšni jeziki se hitro prevedejo ob zagonu programa. Programi, napisani v jezikih JIT, praviloma niso optimizirani, s čimer se pospeši proces prevajanja in ponovno vzpostavi ravnovesje med zmogljivostjo in združljivostjo med platformami.

Visoka ali nizka stopnja programiranja

Nizkonivojski jeziki večinoma delujejo neposredno s strojno opremo in so zato najprimernejši za pisanje gonilnikov naprav. Gonilniki so programi, ki nadzorujejo strojno opremo in imajo neposreden dostop do nje. Vendar pa je program, napisan v jeziku nizke ravni, običajno težko prenesti na druge platforme. Zato je za vsak OS ista naprava opremljena z različnimi gonilniki. Nizkonivojski programski jeziki se skoraj vedno prevedejo.

V jezikih na visoki ravni je ves poudarek na konceptu jezika. To pomeni, da mora biti takšen programski jezik enostaven za razumevanje, na primer predstavljanje podatkov kot nizov, nizov, objektov itd. Jezik na visoki ravni je običajno lažje razumeti kot jezik na nizki ravni. In praviloma je razvoj programa v jeziku na visoki ravni veliko lažji in hitrejši kot v jeziku na nizki ravni. Kot lahko vidite, so različne ravni programiranja namenjene popolnoma različnim nalogam in ne bi smeli primerjati funkcionalnosti jezikov na različnih ravneh, je nesmiselno.

Sistemi podatkovnih vrst programskega jezika

Za vsak programski jezik obstaja specifikacija, ki določa različna pravila, ki jih morajo upoštevati programski jeziki. Nekateri jeziki nimajo podatkovnih vrst, zato to zanje ne velja. Vendar ima večina jezikov (vključno s C++) vrste podatkov, zato vam bodo te informacije koristne.

Močan ali šibek sistem podatkovnega tipa

Šibek vnosni sistem ne nalaga nobenih omejitev; programer mora to spremljati. Ko rečem "šibek podatkovni sistem", mislim, da jezik s takšnim podatkovnim sistemom ne ureja strogo razpoložljivih podatkovnih tipov. Na primer, če v funkcijo množenja posredujete niz ali simbol namesto števila, bodo programski jeziki, ki niso strogo tipizirani, izvedli takšno kodo, čeprav rezultat množenja izgubi ves pomen, saj niza ni mogoče pomnožiti z število. Poleg tega bo rezultat izvajanja tega nesmiselnega množenja nepredvidljiv. Če je programski jezik strogo tipiziran, bo prevajalec na stopnji prevajanja sporočil napako in ustavil proces gradnje projekta. na primer

// primer programa v C++ #include uporaba imenskega prostora std; int main())( char string = "example"; int number = 5; cout<< string * number << endl; // умножаем строку на число }

Posledično bo prevajalnik javil napako:

napaka: neveljavni operandi vrst 'char' in 'int' v binarni 'operator*'

Enako bomo poskušali narediti v programskem jeziku, ki ni strogo tipiziran - php. Upoštevajte, da vam tudi pri deklaraciji spremenljivk ni treba podati vrste podatkov.

Rezultat izvajanja te kode bo nič. Napake ne bo, čeprav se zdi, da niza ni mogoče pomnožiti s številom. Toda v PHP je vse mogoče. Prevajalnik jezika PHP ne bo javil napake, skript bo deloval in celo ustvaril rezultat, in če je naš program sestavljen iz 1000 vrstic kode, potem bomo to napako težko našli. To je živahen primer programskega jezika s "šibkim sistemom tipov podatkov", kar pomeni, da je preprečevanje takšnih absurdnih operacij v celoti na ramenih programerja.

Določen ali nedefiniran tip podatkov

To velja tako za prevedene kot za interpretirane jezike. Številni jeziki zahtevajo eksplicitno definicijo vrste spremenljivk, tako da ni negotovosti, prevajalnik in tolmač jasno vesta, kaj storiti. Nekateri programski jeziki ne zahtevajo eksplicitne definicije vrste spremenljivk. Podatkovni tip se samodejno določi glede na vsebino spremenljivke.

Statični ali dinamični podatkovni tip

Če je jezik statično tipiziran, potem prevajalnik/tolmač enkrat preveri tip pred postopkom prevajanja/interpretacije. Če je podatkovni tip dinamičen, se podatkovni tipi preverijo med izvajanjem.

Varen ali nevaren sistem tipov podatkov

Lahko pride do situacij, ki lahko povzročijo nepričakovane rezultate ali napake. Varen jezik bo uvedel čim več omejitev, da do takšnih situacij ne bo prišlo. Medtem ko nevaren jezik vso odgovornost prelaga na programerja.

Ti dejavniki lahko označujejo enega ali več programskih jezikov.

Podprte programske paradigme

Paradigme programiranja so metodologije ali načini programiranja, ki jih podpira programski jezik. Tukaj je seznam glavnih paradigem:

Deklarativna paradigma

Deklarativni programski jezik bo dal večji poudarek cilju in ne sredstvom za dosego tega cilja. Dovolj je navesti, kaj je treba doseči, ni pa treba navesti, katera sredstva uporabiti. Ta paradigma preprečuje neželene stranske učinke, ki se lahko pojavijo pri pisanju lastne kode.

Funkcionalna paradigma

Funkcionalno programiranje je podmnožica deklarativnega programiranja, ki poskuša rešiti probleme v smislu matematičnih enačb in funkcij. Funkcionalno programiranje obravnava spremenljivke in objekte kot podatke, ki niso v skupni rabi, za razliko od imperativnih jezikov.

Posplošena paradigma

Generično programiranje se osredotoča na pisanje algoritmov v smislu tipov podatkov, ki jih je treba definirati. To pomeni, da lahko isti algoritem deluje z različnimi vrstami podatkov. Ta pristop je lahko zelo močno orodje, vendar le, če se dobro izvaja.

Imperativna paradigma

Imperativni jeziki programerjem omogočajo, da računalniku dajo urejen seznam navodil, ki so potrebna za dokončanje naloge. Imperativni programski jeziki so v nasprotju z deklarativnimi programskimi jeziki.

Strukturna paradigma

Cilj strukturnih programskih jezikov je zagotoviti neko obliko kode - hierarhično strukturo. Ko je struktura kode jasno vidna, postane vrstni red, v katerem se izvajajo stavki, intuitivno jasen. Takšni jeziki običajno odvračajo od "skakanja" iz enega dela kode v drugega, na primer dobro znani operator goto, ki je definiran v jezikih C in C++.

Proceduralna paradigma

Proceduralni programski jezik se nanaša na strukturirane programske jezike, ki podpirajo koncept postopka ali podprograma.

Objektno usmerjena paradigma

Objektno orientirano programiranje (včasih skrajšano OOP) je podmnožica strukturiranega programiranja, ki izraža programe v smislu "objektov". Ta paradigma omogoča ponovno uporabo kode in ta pristop je precej preprost za razumevanje.

Standardizacija

Ali imajo jeziki uradni standard? Standardizacija je zelo pomembna za zagotovitev brezkonfliktnega razumevanja programa s strani različnih prevajalnikov/tolmačev. Nekatere jezike je standardiziral Ameriški nacionalni inštitut za standarde (ANSI), druge pa je standardizirala Mednarodna organizacija za standardizacijo (ISO). Vsi programski jeziki morajo biti standardizirani, sicer ne bo dogovora o tem, kaj je pravilno in kaj nepravilno v sintaksi.

Opišemo programski jezik C++

Zdaj, ko smo preučili glavne značilnosti programskih jezikov, ugotovimo, katerim dejavnikom ustreza programski jezik C++.

C++ je standardiziran programski jezik ISO.

Nekaj ​​časa C++ ni imel uradnega standarda, vendar od leta 1998 C++ standardizira odbor ISO.

C++ preveden jezik.

C++ se prevede neposredno v strojno kodo, zaradi česar je eden najhitrejših jezikov na svetu.

C++ je strogo tipiziran jezik.

C++ predvideva, da programer ve, kaj dela, in dopušča neverjetno število možnosti, omejenih le z domišljijo.

C++ podpira statične in dinamične vrste podatkov.

Tako se lahko preverjanje vrste podatkov izvede v času prevajanja ali med izvajanjem. In to še enkrat dokazuje prilagodljivost C++.

C++ podpira veliko paradigem.

C++ podpira proceduralne, generične in objektno usmerjene programske paradigme ter številne druge paradigme.

C++ je prenosni programski jezik.

Kot eden najpogosteje uporabljenih jezikov na svetu in kot odprt jezik ima C++ široko paleto prevajalnikov, ki delujejo na različnih platformah. Koda standardne knjižnice C++ se bo izvajala na številnih platformah.

C++ je popolnoma združljiv z jezikom C

V C++ lahko uporabljate knjižnice C in delovale bodo pravilno.

 
Članki Avtor: tema:
Nove funkcije vmesnika
Pozdravljeni, danes bomo govorili o vmesnikih in obrazcih v 1C:Enterprise 8.2. Med zagotavljanjem sem opazil, koliko ljudi razlikuje ukazni vmesnik od navadnega vmesnika samo vizualno, zato sem se odločil razjasniti. Običajni vmesnik Običajni uporabniški vmesnik
Kako izbrisati fotografije iz Facebooka Brisanje albuma s fotografijami
Različne slike in videoposnetki naredijo komunikacijo na socialnem omrežju veliko bolj zanimivo. Povsem tehnična točka: preden naložite vsebino, jo morate ustvariti ali nekje dobiti. Ista fotografija mora biti že na voljo na vseh dostopnih medijih.
Kako namestiti
To gradivo je namenjeno namestitvi operacijskih sistemov Windows z bliskovnega pogona USB. Mnogi skeptiki še vedno trdijo, da je to nemogoče, in če je mogoče, je zelo težko, a sam obstoj tega materiala dokazuje nasprotno. Win namestitev
Kako spremeniti temo v Firefoxu Tema Firefox
Teme za Mozillo. Kje prenesti in kako namestiti. Videz brskalnika lahko spremenite na različne načine. Povedal vam bom o dveh od njih. Brezplačne teme za Mozilla Firefox Tema bo popolnoma spremenila zasnovo vašega brskalnika. To se naredi zelo preprosto. Dovolj