Sådan lærer du C++ for begyndere

Sadan Laerer Du C For Begyndere



C++ er det mest og mest brugte programmeringssprog. Dette sprog blev etableret som en forbedring af det oprindeligt udviklede C-sprog og påvirket af C-sproget, så det er et supersæt af C-programmeringssproget, som også fungerer sammen med de andre værktøjer og biblioteker, der var tilgængelige og blev brugt i C-sproget . Det er et kompileret sprog, der også er bydende.

Begyndelsen af ​​C++ sproget fandt sted tilbage i 1983, kort efter hvornår ‘Bjare Stroustrup’ arbejdede med klasser i C-sproget inklusive nogle ekstra funktioner som operatøroverbelastning. De anvendte filtypenavne er '.c' og '.cpp'. C++ kan udvides og er ikke afhængig af platformen og inkluderer STL, som er forkortelsen for Standard Template Library. Så dybest set er det kendte C++-sprog faktisk kendt som et kompileret sprog, der har kildefilen kompileret sammen for at danne objektfiler, der, når de kombineres med en linker, producerer et program, der kan køres.

På den anden side, hvis vi taler om dets niveau, er det på mellemniveau, der fortolker fordelen ved lav-niveau programmering som drivere eller kerner og også de højere niveau apps som spil, GUI eller desktop apps. Men syntaksen er næsten den samme for både C og C++.







Komponenter af C++ sprog:

#include



Denne kommando er en header-fil, der omfatter 'cout'-kommandoen. Der kan være mere end én header-fil afhængigt af brugerens behov og præferencer.



int main()





Denne sætning er masterprogramfunktionen, som er en forudsætning for ethvert C++-program, hvilket betyder, at uden denne sætning kan man ikke udføre noget C++-program. Her er 'int' den returnerende variable datatype, der fortæller om den type data, funktionen returnerer.

Erklæring:



Variabler erklæres og navne tildeles dem.

Problemformulering:

Dette er essentielt i et program og kan være en 'mens'-løkke, 'til'-løkke eller enhver anden anvendt betingelse.

Operatører:

Operatører bruges i C++-programmer, og nogle er afgørende, fordi de anvendes til betingelserne. Et par vigtige operatorer er &&, ||, !, &, !=, |, &=, |=, ^, ^=.

C++ input output:

Nu vil vi diskutere input- og outputmulighederne i C++. Alle de standardbiblioteker, der bruges i C++, giver maksimale input- og output-kapaciteter, der udføres i form af en sekvens af bytes eller normalt er relateret til strømmene.

Inputstrøm:

I tilfælde af at bytes streames fra enheden til hovedhukommelsen, er det inputstrømmen.

Outputstrøm:

Hvis bytes streames i den modsatte retning, er det outputstrømmen.

En header-fil bruges til at lette input og output i C++. Det er skrevet som som giver metoder til for eksempel gryderet og sæt præcision. Input- og outputkommandoerne er cin, cout, cerr og clog. Her betegner 'cin' standardinputtet, og 'cout' betegner standardoutputenheden, der bruges med stream-indsættelsesoperatorerne (<<) til at vise udsagn på skærmen.

Eksempel:

Vi vil vise en strengmeddelelse ved hjælp af en tegntypestreng.

I den første linje inkluderer vi 'iostream', som har næsten alle de væsentlige biblioteker, som vi muligvis har brug for til et C++-programs udførelse. I den næste linje erklærer vi et navneområde, der giver rækkevidden for identifikatorerne. Efter at have kaldt hovedfunktionen initialiserer vi en tegntype-array, der gemmer strengmeddelelsen og 'cout' viser den ved at sammenkæde. Vi bruger 'cout' til at vise teksten på skærmen. Vi tog også en variabel 'A' med en karakterdatatype-array for at gemme en streng af tegn, og så tilføjede vi både array-meddelelsen langs den statiske meddelelse ved hjælp af 'cout'-kommandoen.

Det genererede output er vist nedenfor:

Eksempel:

I dette tilfælde vil vi repræsentere brugerens alder i en simpel strengmeddelelse.

I det første trin inkluderer vi biblioteket. Derefter bruger vi et navneområde, der ville give rækkevidden for identifikatorerne. I næste trin kalder vi hoved() fungere. Herefter initialiserer vi alder som en 'int'-variabel. Vi bruger 'cin'-kommandoen til input og 'cout'-kommandoen til output af den simple strengmeddelelse. 'cin' indtaster værdien af ​​alder fra brugeren, og 'cout' viser det i den anden statiske meddelelse.

Denne besked vises på skærmen efter afvikling af programmet, så brugeren kan få alder og derefter trykke på ENTER.

Eksempel:

Her demonstrerer vi, hvordan man udskriver en streng ved at bruge 'cout'.

For at udskrive en streng inkluderer vi først et bibliotek og derefter navneområdet for identifikatorer. Det hoved() funktion kaldes. Yderligere udskriver vi et strengoutput ved hjælp af 'cout'-kommandoen med indsættelsesoperatoren, der derefter viser den statiske meddelelse på skærmen.

C++ datatyper:

Datatyper i C++ er et meget vigtigt og almindeligt kendt emne, fordi det er grundlaget for C++ programmeringssprog. På samme måde skal enhver anvendt variabel være af en specificeret eller identificeret datatype.

Vi ved, at for alle variabler bruger vi datatype, mens vi gennemgår deklaration for at begrænse den datatype, der skulle gendannes. Eller vi kunne sige, at datatyperne altid fortæller en variabel, hvilken slags data den selv lagrer. Hver gang vi definerer en variabel, tildeler compileren hukommelsen baseret på den erklærede datatype, da hver datatype har en forskellig hukommelseslagerkapacitet.

C++-sproget hjælper mangfoldigheden af ​​datatyper, så programmøren kan vælge den passende datatype, som han muligvis har brug for.

C++ letter brugen af ​​datatyperne angivet nedenfor:

  1. Brugerdefinerede datatyper
  2. Afledte datatyper
  3. Indbyggede datatyper

For eksempel er følgende linjer givet for at illustrere vigtigheden af ​​datatyperne ved at initialisere nogle få almindelige datatyper:

int -en = to ; // heltalsværdi

flyde F_N = 3,66 ; // floating-point værdi

dobbelt D_N = 8,87 ; // dobbelt flydende decimalværdi

char Alfa = 'p' ; // Karakter

bool b = rigtigt ; // Boolean

Et par almindelige datatyper: hvilken størrelse de angiver, og hvilken type information deres variabler gemmer, er vist nedenfor:

  • Tegn: Med størrelsen på en byte gemmer den et enkelt tegn, bogstav, tal eller ASCII-værdier.
  • Boolean: Med størrelsen 1 byte vil den gemme og returnere værdier som enten sand eller falsk.
  • Int: Med størrelsen 2 eller 4 bytes vil den gemme hele tal uden decimaler.
  • Flydende komma: Med en størrelse på 4 bytes vil den gemme brøktal, der har en eller flere decimaler. Dette er tilstrækkeligt til at gemme op til 7 decimalcifre.
  • Dobbelt flydende komma: Med en størrelse på 8 bytes vil den også gemme de brøktal, der har en eller flere decimaler. Dette er tilstrækkeligt til at gemme op til 15 decimaler.
  • Void: Uden en specificeret størrelse indeholder et tomrum noget værdiløst. Derfor bruges den til de funktioner, der returnerer en nulværdi.
  • Bredt tegn: Med en størrelse større end 8-bit, som normalt er 2 eller 4 bytes lang, er repræsenteret af wchar_t, som ligner char og dermed også gemmer en tegnværdi.

Størrelsen af ​​de ovennævnte variabler kan variere afhængigt af brugen af ​​programmet eller compileren.

Eksempel:

Lad os bare skrive en simpel kode i C++, der vil give de nøjagtige størrelser af et par datatyper beskrevet ovenfor:

I denne kode integrerer vi biblioteket . Herefter bruger vi 'namespace'. I næste linje kalder vi hoved() funktion, hvor vi bruger en 'cout'-kommando, der vil udskrive størrelserne på alle datatyper, der er angivet i programmet. For at finde størrelsen af ​​variablerne skal vi anvende størrelse på () metode.

Outputtet modtages i bytes som vist på figuren:

Eksempel:

Her vil vi tilføje størrelsen af ​​to forskellige datatyper.

For det første inkorporerer vi en header-fil, der bruger et 'standardnavneområde' for identifikatorer. Dernæst hoved() funktion kaldes, hvor vi initialiserer 'int'-variablen først og derefter en 'dobbelt'-variabel for at kontrollere forskellen mellem størrelserne på disse to. Derefter sammenkædes deres størrelser ved brug af størrelse på () fungere. Outputtet vises med 'cout'-sætningen.

Der er endnu et udtryk, der skal nævnes her, og det er det 'Datamodifikatorer' . Navnet antyder, at 'datamodifikatorerne' bruges sammen med de indbyggede datatyper til at ændre deres længder, som en bestemt datatype kan opretholde af compilerens behov eller krav.

Følgende er de datamodifikatorer, der er tilgængelige i C++:

  1. Underskrevet
  2. Usigneret
  3. Lang
  4. Kort

Den ændrede størrelse og også det passende område af de indbyggede datatyper er nævnt nedenfor, når de kombineres med datatypemodifikatorerne:

  • Kort int: Med størrelsen 2 bytes, har en række ændringer fra -32.768 til 32.767
  • Usigneret kort int: Har størrelsen på 2 bytes, har en række ændringer fra 0 til 65.535
  • Usigneret int: Har størrelsen på 4 bytes, har en række ændringer fra 0 til 4.294.967.295
  • Int: Med størrelsen 4 bytes, har en række ændringer fra -2.147.483.648 til 2.147.483.647
  • Lang int: Har størrelsen på 4 bytes, har en række modifikationer fra -2.147.483.648 til 2.147.483.647
  • Usigneret lang int: Med størrelsen 4 bytes, har en række ændringer fra 0 til 4.294.967.295
  • Lang lang int: Har en størrelse på 8 bytes, har en række ændringer fra –(2^63) til (2^63)-1
  • Usigneret lang lang int: Med størrelsen 8 bytes, har en række ændringer fra 0 til 18.446.744.073.709.551.615
  • Signeret tegn: Med størrelsen 1 byte, har en række ændringer fra -128 til 127
  • Usigneret tegn: Har størrelsen 1 byte og har en række ændringer fra 0 til 255.

C++ opregning:

I programmeringssproget C++ er 'Enumeration' en brugerdefineret datatype. Optælling er erklæret som en ' enum' i C++. Det bruges til at tildele specifikke navne til enhver konstant, der bruges i programmet. Det forbedrer programmets læsbarhed og brugervenlighed.

Syntaks:

Vi erklærer opregning i C++ som følger:

enum enum_Name { Konstant 1 , Konstant 2 , Konstant 3… }

Fordele ved enumeration i C++:

Enum kan bruges på følgende måder:

  • Det kan bruges ofte i switch case-udsagn.
  • Det kan bruge konstruktører, felter og metoder.
  • Det kan kun udvide 'enum'-klassen, ikke nogen anden klasse.
  • Det kan øge kompileringstiden.
  • Det kan krydses.

Ulemper ved enumeration i C++:

Enum har også få ulemper:

Hvis et navn først er opregnet, kan det ikke bruges igen i samme omfang.

For eksempel:

enum Dage

{ Lør , Sol , Min } ;

int Lør = 8 ; // Denne linje har fejl

Enum kan ikke fremsendes.

For eksempel:

enum former ;

klasse farve

{

ugyldig tegne ( former som form ) ; //former er ikke blevet deklareret

} ;

De ligner navne, men de er heltal. Så de kan automatisk konvertere til enhver anden datatype.

For eksempel:

enum former

{

Trekant , cirkel , firkant

} ;

int farve = blå ;

farve = firkant ;

Eksempel:

I dette eksempel ser vi brugen af ​​C++ opregning:

I denne kodeudførelse starter vi først og fremmest med #include . er et af de rige biblioteker i C++. Det er et indbygget bibliotek. Det involverer input- og outputdatastrømme . Herefter bruger vi standardnavnerummet. Derefter erklærede vi 'enum' et specifikt navn som emne og tildelte tre fag, der er matematik, engelsk og urdu. Matematik tildeles værdi 1. Vores mål er at udskrive værdier for emnet angivet i enum. Derefter påberåber vi os hoved() fungere. I hoved() vi har cout<<, hvor 'c' betyder 'karakter' og ud betyder 'output'. 'Cout' bruges til at vise output . << angiver indsættelsesoperatoren. Ved at bruge 'cout<<' udskriver vi enum-værdier. Dernæst vil vi bruge kommandoen 'retur 0'. Denne kommando returnerer resultatet, som er i form af værdier.

Her er vores resultat af det udførte program:

Så som du kan se, har vi værdier for emnet: matematik, urdu, engelsk; altså 1,2,3.

Eksempel:

Her er et andet eksempel, hvorigennem vi klarer vores begreber om enum:

I dette program starter vi med at integrere header-filen . Det er et indbygget bibliotek. Det involverer input- og outputdatastrømme. Herefter skal vi bruge standardnavnerummet. Derefter tildelte vi enum-værdier til konstanterne, der er spillere. Vores mål er at vise, hvis over det er. Dernæst kalder vi vores hoved() fungere. I den hoved() funktion tildelte vi to konstanter: Shadab, hvis værdi er 20 til 'bowler1' enum-variablen; og Afridi, hvis værdi er 25 til enum-variablen 'bowler2'.

Vi skal bruge en if-else-sætning . Vi har også brugt sammenligningsoperatoren inde i 'if'-sætningen, hvilket betyder, at vi sammenligner, hvis 'bowler2' er større end 'bowler1'. Derefter udføres 'hvis'-blokken, hvilket betyder, at det er slut med Afridi. Derefter indtastede vi 'cout<<' for at vise outputtet. Først udskriver vi erklæringen 'Det er overstået'. Derefter værdien af ​​'bowler2'. Hvis ikke, kaldes else-blokken, hvilket betyder, at det er slut med Shadab. Derefter viser vi ved at anvende 'cout<<'-kommandoen udsagnet 'Det er overstået'. Derefter værdien af ​​'bowler1'.

Ifølge If-else-udtalelsen har vi over 25, hvilket er værdien af ​​Afridi. Det betyder, at værdien af ​​enum-variablen 'bowler2' er større end 'bowler1', det er derfor, 'if'-sætningen udføres.

C++ Hvis andet, skift:

I programmeringssproget C ++ bruger vi 'if-sætningen' og 'switch-sætningen' til at ændre programmets flow. Disse udsagn bruges til at give flere sæt kommandoer til implementering af programmet afhængigt af den sande værdi af de nævnte udsagn. I de fleste tilfælde bruger vi operatører som alternativer til 'hvis'-erklæringen. Alle disse ovennævnte erklæringer er de udvælgelseserklæringer, der er kendt som beslutnings- eller betingede erklæringer.

'Hvis'-udsagnet:

Denne erklæring bruges til at teste en given tilstand, når du har lyst til at ændre flowet i et hvilket som helst program. Her, hvis en betingelse er sand, vil programmet udføre de skrevne instruktioner, men hvis betingelsen er falsk, vil den bare afslutte. Lad os overveje et eksempel;

Dette er den simple 'if'-sætning, der bruges, hvor vi initialiserer en 'int'-variabel som 10. Derefter tages en værdi fra brugeren, og den krydstjekkes i 'if'-sætningen. Hvis det opfylder betingelserne i 'if'-sætningen, vises outputtet.

Da det valgte ciffer var 40, er outputtet beskeden.

'Hvis andet'-udsagnet:

I et mere komplekst program, hvor 'hvis'-sætningen normalt ikke samarbejder, bruger vi 'hvis-else'-sætningen. I det givne tilfælde bruger vi 'hvis-else'-erklæringen til at kontrollere de anvendte betingelser.

Først vil vi erklære en variabel af datatypen 'int' ved navn 'x', hvis værdi er taget fra brugeren. Nu bruges 'if'-sætningen, hvor vi anvendte en betingelse om, at hvis heltalsværdien indtastet af brugeren er 2. Outputtet vil være det ønskede, og en simpel 'NICE TRY'-meddelelse vil blive vist. Ellers, hvis det indtastede tal ikke er 2, ville outputtet være anderledes.

Når brugeren skriver tallet 2, vises følgende output.

Når brugeren skriver et hvilket som helst andet tal undtagen 2, er outputtet, vi får:

If-else-if-erklæringen:

Indlejrede if-else-if-sætninger er ret komplekse og bruges, når der er flere betingelser anvendt i den samme kode. Lad os overveje dette ved at bruge et andet eksempel:

Her, efter at have integreret header-filen og navneområdet, initialiserede vi en værdi af variabel 'm' som 200. Værdien af ​​'m' tages derefter fra brugeren og krydstjekkes derefter med de flere betingelser, der er angivet i programmet.

Her valgte brugeren værdien 195. Derfor viser outputtet, at dette er den faktiske værdi af 'm'.

Skift erklæring:

En 'switch'-sætning bruges i C++ til en variabel, der skal testes, hvis den er lig med en liste med flere værdier. I 'switch'-erklæringen identificerer vi forhold i form af særskilte sager, og alle sagerne har en pause i slutningen af ​​hver sagserklæring. Flere cases har de korrekte betingelser og sætninger anvendt på dem med break-sætninger, der afslutter switch-sætningen og flytter til en standardsætning, hvis ingen betingelse er understøttet.

Søgeord 'pause':

Switch-erklæringen indeholder søgeordet 'break'. Det stopper koden i at køre på den efterfølgende sag. Switch-sætningens udførelse slutter, når C++-kompileren støder på nøgleordet 'break', og kontrollen flytter til linjen, der følger efter switch-sætningen. Det er ikke nødvendigt at bruge en pauseerklæring i en switch. Udførelsen går videre til næste sag, hvis den ikke bruges.

I den første linje i den delte kode inkluderer vi biblioteket. Hvorefter vi tilføjer 'namespace'. Vi påberåber os hoved() fungere. Derefter erklærer vi en karakterdatatype-grad som 'F'. Denne karakter kunne være dit ønske, og resultatet ville blive vist henholdsvis for de valgte cases. Vi anvendte switch-erklæringen for at få resultatet.

Hvis vi vælger 'F' som karakter, er outputtet 'bedre held næste gang', fordi dette er udsagnet om, at vi ønsker at blive udskrevet, hvis karakteren er 'F'.

Lad os ændre karakteren til X og se, hvad der sker. Jeg skrev 'X' som karakteren, og det modtagne output er vist nedenfor:

Så det forkerte tilfælde i 'switch' flytter automatisk markøren direkte til standardsætningen og afslutter programmet.

If-else og switch-sætninger har nogle fælles træk:

  • Disse udsagn bruges til at styre, hvordan programmet udføres.
  • De vurderer begge en tilstand, og det afgør, hvordan programmet flyder.
  • På trods af at de har forskellige repræsentationsstile, kan de bruges til det samme formål.

If-else og switch-udsagn adskiller sig på visse måder:

  • Mens brugeren definerede værdierne i 'switch'-sagsudsagn, hvorimod begrænsninger bestemmer værdierne i 'if-else'-udsagn.
  • Det tager tid at bestemme, hvor ændringen skal gøres, det er udfordrende at ændre 'hvis-andet'-udsagn. På den anden side er 'switch'-udsagn nemme at opdatere, fordi de nemt kan ændres.
  • For at inkludere mange udtryk kan vi bruge adskillige 'hvis-andet'-udsagn.

C++ sløjfer:

Nu vil vi opdage, hvordan man bruger loops i C++-programmering. Kontrolstrukturen kendt som en 'loop' gentager en række udsagn. Det kaldes med andre ord repetitiv struktur. Alle udsagn udføres på én gang i en sekventiel struktur . På den anden side, afhængigt af den angivne sætning, kan betingelsesstrukturen udføre eller udelade et udtryk. Det kan være nødvendigt at udføre en erklæring mere end én gang i særlige situationer.

Looptyper:

Der er tre kategorier af sløjfer:

Til sløjfe:

Loop er noget, der gentager sig selv som en cyklus og stopper, når det ikke validerer den angivne betingelse. En 'for'-løkke implementerer en sekvens af udsagn adskillige gange og kondenserer koden, der håndterer loop-variablen. Dette demonstrerer, hvordan en 'for'-løkke er en specifik type iterativ kontrolstruktur, der giver os mulighed for at skabe en løkke, der gentages et bestemt antal gange. Sløjfen ville give os mulighed for at udføre 'N' antallet af trin ved blot at bruge en kode af en simpel linje. Lad os tale om den syntaks, som vi vil bruge til en 'for'-løkke, der skal udføres i din softwareapplikation.

Syntaksen for 'for' loop udførelse:

Eksempel:

Her bruger vi en loop-variabel til at regulere denne loop i en 'for'-løkke. Det første trin ville være at tildele en værdi til denne variabel, vi angiver som en løkke. Derefter skal vi definere, om den er mindre eller større end tællerværdien. Nu skal løkkens krop udføres, og også løkkevariablen opdateres, hvis sætningen returnerer sand. Ovenstående trin gentages ofte, indtil vi når udgangstilstanden.

  • Initialiseringsudtryk: Først skal vi indstille sløjfetælleren til en hvilken som helst startværdi i dette udtryk.
  • Test udtryk : Nu skal vi teste den givne betingelse i det givne udtryk. Hvis kriterierne er opfyldt, vil vi udføre 'for'-løkkens brødtekst og fortsætte med at opdatere udtrykket; hvis ikke, må vi stoppe.
  • Opdater udtryk: Dette udtryk øger eller formindsker loop-variablen med en bestemt værdi, efter at loopens krop er blevet udført.

Eksempler på C++-program til at validere en 'For'-løkke:

Eksempel:

Dette eksempel viser udskrivning af heltalsværdier fra 0 til 10.

I dette scenarie er det meningen, at vi skal udskrive hele tallene fra 0 til 10. Først initialiserede vi en tilfældig variabel i med en værdi, der gives '0', og derefter kontrollerer betingelsesparameteren, vi allerede har brugt, betingelsen, hvis i<=10. Og når det opfylder betingelsen, og det bliver sandt, begynder udførelsen af ​​'for'-løkken. Efter udførelsen skal der blandt de to stignings- eller reduktionsparametre udføres en, og i hvilken værdien af ​​variablen i øges, indtil den angivne betingelse i<=10 bliver til falsk.

Antal iterationer med betingelse i<10:

Antal af

iterationer

Variabler i<10 Handling
Først i=0 rigtigt 0 vises, og i forøges med 1.
Sekund i=1 rigtigt 1 vises, og i forøges med 2.
Tredje i=2 rigtigt 2 vises, og i forøges med 3.
Fjerde i=3 rigtigt 3 vises, og i øges med 4.
Femte i=4 rigtigt 4 vises, og i forøges med 5.
Sjette i=5 rigtigt 5 vises, og i forøges med 6.
Syvende i=6 rigtigt 6 vises, og i forøges med 7.
Ottende i=7 rigtigt 7 vises, og i øges med 8
Niende i=8 rigtigt 8 vises, og i forøges med 9.
Tiende i=9 rigtigt 9 vises, og i forøges med 10.
ellevte i=10 rigtigt 10 vises, og i forøges med 11.
Tolvte i=11 falsk Sløjfen er afsluttet.

Eksempel:

Følgende forekomst viser værdien af ​​hele tallet:

I ovenstående tilfælde initialiseres en variabel ved navn 'a' med en værdi givet 50. En betingelse anvendes, hvor variablen 'a' er mindre end 70. Derefter opdateres værdien af ​​'a', så den tilføjes med 2. Værdien af ​​'a' startes derefter fra en begyndelsesværdi, der var 50, og 2 tilføjes samtidigt gennem løkken, indtil betingelsen returnerer falsk, og værdien af ​​'a' øges fra 70, og løkken afsluttes.

Antal iterationer:

Antal af

Gentagelse

Variabel a=50 Handling
Først a=50 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 50 bliver til 52
Sekund a=52 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 52 bliver til 54
Tredje a=54 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 54 bliver til 56
Fjerde a=56 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 56 bliver til 58
Femte a=58 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal og 58 bliver til 60
Sjette a=60 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 60 bliver til 62
Syvende a=62 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 62 bliver til 64
Ottende a=64 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 64 bliver til 66
Niende a=66 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 66 bliver til 68
Tiende a=68 rigtigt Værdien af ​​a opdateres ved at tilføje yderligere to heltal, og 68 bliver til 70
ellevte a=70 falsk Sløjfen er afsluttet

Mens loop:

Indtil den definerede betingelse er opfyldt, kan en eller flere sætninger udføres. Når iteration er ukendt på forhånd, er det meget nyttigt. Først kontrolleres betingelsen og kommer derefter ind i løkkens krop for at udføre eller implementere sætningen.

I den første linje inkorporerer vi header-filen og standardnavneområdet. Vi kalder hoved() fungere. Her initialiserer vi en variabel 'a'. I næste linje anvender vi while-betingelsen. Inden for while-betingelsen bruger vi 'cout'-sætningen til at vise den værdi, der er skrevet. Derefter bruger vi inkrementoperatoren til at øge antallet. I den sidste linje bruger vi 'return 0'-sætningen til at afslutte programmet.

Do-While Loop:

Når den definerede betingelse er opfyldt, udføres en række udsagn. Først udføres løkkens krop. Derefter kontrolleres betingelsen, om den er sand eller ej. Derfor udføres erklæringen én gang. Løkkens krop behandles i en 'Do-while'-løkke, før tilstanden evalueres. Programmet kører, når den krævede betingelse er opfyldt. Ellers, når betingelsen er falsk, afsluttes programmet.

Her integrerer vi header-filen . Vi bruger hoved() funktion i programmet. Derefter initialiserer vi fire heltal og bruger 'cin'-sætningen, så brugeren kan indtaste værdien. I den næste linje initialiserer vi to forskellige heltal. Vi anvender 'gør'-erklæringen. Inde i sætningen bruger vi to aritmetiske funktioner. For det første bruger vi multiplikationsoperatoren og for det andet bruger vi additionsoperatoren. Derefter anvender vi betingelsen 'mens' i programmet uden for 'gør'-erklæringen. Yderligere tilføjer vi 'cout'-sætningen for at udskrive resultatet gennem 'resultat'-heltallet. I den sidste linje, for at afslutte programmet, bruger vi return 0 kommandoer.

C++ Fortsæt/Break:

C++ Fortsæt-erklæring:

Fortsæt-sætningen bruges i programmeringssproget C++ for at undgå en aktuel inkarnation af en loop samt flytte kontrol til den efterfølgende iteration. Under looping kan continu-sætningen bruges til at springe visse sætninger over. Det bruges også i løkken sammen med ledelseserklæringer. Hvis den specifikke betingelse er sand, implementeres alle udsagn efter fortsæt-sætningen ikke.

Med for loop:

I dette tilfælde bruger vi 'for loop' med continu-sætningen fra C++ for at få det krævede resultat, mens vi opfylder nogle specificerede krav.

Vi begynder med at inkludere -biblioteket og bruge 'namespace std'. Så ringer vi til hoved() fungere. Vi bruger til loop. Inde for loop erklærer vi en variabel 'k', der anses for at ligge mellem 3 og 8. Vi gør brug af en betingelse for at fortsætte iterationen, selvom (k = = 5). Brugte derefter 'fortsæt'-erklæringen efter at have specificeret betingelsen. I slutningen. for at vise output gør vi brug af 'cout'-kommandoen sammen med 'return 0'-kommandoen.

Med en while-løkke:

Igennem denne demonstration brugte vi både 'while loop' og C++ 'continue'-erklæringen, herunder nogle betingelser for at se, hvilken slags output der kan genereres.

I dette eksempel sætter vi en betingelse for kun at tilføje tal til 40. Hvis det indtastede heltal er et negativt tal, vil 'mens'-løkken blive afsluttet. På den anden side, hvis tallet er større end 40, vil det specifikke tal blive sprunget over fra iterationen.

Vi vil inkludere -biblioteket ved at bruge 'namespace std' og derefter kalde hoved() fungere. Vi initialiserer en variabel 's'. En anden variabel 'nummer' er deklareret i næste trin. Vi bruger 'mens'-løkken. Nu angiver vi betingelsen om, at den nødvendige værdi vil være over eller lig med nul. For at tilføje alle positive tal bruger vi sætningen 's += tal'. Kommandoen 'cout' vil blive anvendt for at vise meddelelsen på konsollen 'Indtast et vilkårligt tal'. Vi får hele tallet fra brugeren ved at bruge 'cin'-sætningen. Vi bruger også 'hvis'-erklæringen. Når det definerede tal er større end 40, vil meddelelsen blive vist. Derefter brugte vi kommandoen 'fortsæt'. Efter alle disse trin vil 'fortsæt'-erklæringen blive udført. For at vise summen af ​​alle tal bruger vi 'cout'-udsagnet.

C++ break-erklæring:

Når break-sætningen bruges i en løkke i C++, afsluttes løkken øjeblikkeligt, ligesom programstyringen genstartes ved sætningen efter løkken. Det er også muligt at afslutte en sag inde i en 'switch'-erklæring.

Med for loop:

Her vil vi bruge 'for'-løkken med 'break'-sætningen til at observere outputtet ved at iterere over forskellige værdier.

Først inkorporerer vi en header-fil. Dernæst bruger vi 'namespace std'. Efter at have kaldt funktionen main() brugte vi til løkken. Her vil vi initialisere variablen 'm'. Vi vil anvende betingelsen om, at værdien af ​​'m' ligger mellem 10 og 20. Betingelsen 'break' vil blive udført som om (m == 17). For at printe resultatet brugte vi 'cout'. Derefter vil kommandoen 'retur 0' blive anvendt.

Med en while-løkke:

Vi vil bruge 'mens'-løkken sammen med pauseerklæringen.

Vi starter med at importere -biblioteket. 'Namespace std' vil blive inkluderet. Inden for main()-metoden vil to variable 'nbr' og 'x' blive initialiseret. Vi brugte 'mens'-løkken og giver 'sand' som argument. For at få værdi fra brugeren bruger vi 'cin'-kommandoen. Dernæst brugte vi 'hvis'-erklæringen. Sammen med dette anvendes 'pause'-betingelsen for at specificere betingelsen if (nbr < 0). For at tilføje alle positive værdier brugte vi 'x += nbr' formler. For at vise denne sum tilføjede vi 'cout'-erklæringen.

C++ funktioner:

Funktioner bruges til at strukturere et allerede kendt program i flere fragmenter af koder, der kun udføres, når det kaldes. I C++ programmeringssprog er en funktion defineret som en gruppe af udsagn, der får et passende navn og kaldes ud af dem. Brugeren kan overføre data til de funktioner, som vi kalder parametre. Funktioner er ansvarlige for at implementere handlingerne, når koden med størst sandsynlighed vil blive genbrugt.

Oprettelse af en funktion:

Selvom C++ leverer mange foruddefinerede funktioner som f.eks hoved(), som letter eksekveringen af ​​koden. På samme måde kan du oprette og definere dine funktioner efter dit behov. Ligesom alle de almindelige funktioner skal du her have et navn til din funktion for en erklæring, der tilføjes med en parentes bagefter '()'.

Syntaks:

Ugyldigt arbejde ( )

{

// funktionens krop

}

Void er funktionens returtype. Labor er navnet på det, og de krøllede parenteser ville omslutte kroppen af ​​den funktion, hvor vi tilføjer koden til udførelse.

Kaldning af en funktion:

De funktioner, der er erklæret i koden, udføres kun, når de påkaldes. For at kalde en funktion skal du angive navnet på funktionen sammen med parentesen, som er efterfulgt af et semikolon ';'.

Eksempel:

Lad os erklære og konstruere en brugerdefineret funktion i denne situation.

I første omgang, som beskrevet i hvert program, tildeles vi et bibliotek og et navneområde til at understøtte programmets eksekvering. Den brugerdefinerede funktion arbejdskraft() kaldes altid, før du skriver ned hoved() fungere. En funktion med navnet arbejdskraft() er erklæret, hvor meddelelsen 'A labor deserves respect!' vises. I hoved() funktion med heltalsreturtypen, kalder vi arbejdskraft() fungere.

Dette er den enkle besked, der blev defineret i den brugerdefinerede funktion, der vises her ved hjælp af hoved() fungere.

Ugyldig:

I det førnævnte tilfælde har vi bemærket, at den brugerdefinerede funktions returtype er ugyldig. Dette indikerer, at der ikke returneres nogen værdi af funktionen. Dette repræsenterer, at værdien ikke er til stede eller sandsynligvis er nul. For når en funktion blot udskriver beskederne, behøver den ikke nogen returværdi.

Dette tomrum bruges på samme måde i funktionens parameterrum for klart at angive, at denne funktion ikke tager nogen faktisk værdi, mens den kaldes. I ovenstående situation vil vi også kalde arbejdskraft() fungere som:

Ugyldigt arbejde ( ugyldig )

{

Cout << 'En arbejdskraft fortjener respekt ! ;

}

De faktiske parametre:

Man kan definere parametre for funktionen. Parametrene for en funktion er defineret i argumentlisten for den funktion, der føjer til funktionens navn. Hver gang vi kalder funktionen, skal vi videregive de ægte værdier af parametrene for at fuldføre udførelsen. Disse konkluderes som de faktiske parametre. Hvorimod de parametre, der er defineret, mens funktionen er blevet defineret, er kendt som de formelle parametre.

Eksempel:

I dette eksempel er vi ved at udveksle eller erstatte de to heltalsværdier gennem en funktion.

I begyndelsen tager vi header-filen ind. Den brugerdefinerede funktion er den erklærede og definerede navngivne sub(). Denne funktion bruges til at erstatte de to heltalsværdier, der er i og n. Dernæst bruges de aritmetiske operatorer til udveksling af disse to heltal. Værdien af ​​det første heltal 'i' gemmes i stedet for værdien 'n', og værdien af ​​n gemmes i stedet for værdien af ​​'i'. Derefter udskrives resultatet efter ændring af værdierne. Hvis vi taler om hoved() funktion, tager vi værdierne af de to heltal fra brugeren og vises. I det sidste trin, den brugerdefinerede funktion sub() kaldes, og de to værdier ombyttes.

I dette tilfælde med at erstatte de to tal, kan vi tydeligt se, at mens du bruger sub() funktion, er værdien af ​​'i' og 'n' inde i parameterlisten de formelle parametre. De faktiske parametre er den parameter, der passerer i slutningen af hoved() funktion, hvor substitutionsfunktionen kaldes.

C++ pointere:

Pointer i C++ er ret nemmere at lære og fantastisk at bruge. I C++ sprog bruges pointere, fordi de gør vores arbejde nemt, og alle operationer fungerer med stor effektivitet, når pointere er involveret. Der er også et par opgaver, der ikke vil blive udført, medmindre der bruges pointere som dynamisk hukommelsesallokering. Når vi taler om pointere, er hovedideen, som man skal forstå, at pointeren blot er en variabel, der vil gemme den nøjagtige hukommelsesadresse som dens værdi. Den omfattende brug af pointere i C++ skyldes følgende årsager:

  • At overføre en funktion til en anden.
  • At allokere de nye objekter på heapen.
  • Til iteration af elementer i et array

Normalt bruges '&' (ampersand) operatoren til at få adgang til adressen på ethvert objekt i hukommelsen.

Pointere og deres typer:

Pointer har følgende flere typer:

  • Null pointer: Disse er pointere med en værdi på nul gemt i C++-bibliotekerne.
  • Aritmetisk pointer: Det inkluderer fire store aritmetiske operatorer, der er tilgængelige, som er ++, –, +, -.
  • En række pointer: De er arrays, der bruges til at gemme nogle pointere.
  • Peger til peger: Det er, hvor en pointer bruges over en pointer.

Eksempel:

Tænk over det efterfølgende eksempel, hvor adresserne på nogle få variabler udskrives.

Efter at have inkluderet header-filen og standardnavneområdet, initialiserer vi to variabler. Den ene er en heltalsværdi repræsenteret ved i', og en anden er en tegntype-array 'I' med størrelsen på 10 tegn. Adresserne på begge variabler vises derefter ved at bruge 'cout'-kommandoen.

Det output, vi har modtaget, er vist nedenfor:

Dette resultat viser adressen for begge variabler.

På den anden side betragtes en pointer som en variabel, hvis værdi i sig selv er adressen på en anden variabel. En pointer peger altid på en datatype, der har samme type, som er oprettet med en (*) operator.

Erklæring af en pointer:

Pointeren erklæres på denne måde:

type * var - navn ;

Grundtypen for markøren er angivet med 'type', mens markørens navn er udtrykt med 'var-navn'. Og for at give en variabel ret til markøren bruges stjerne(*).

Måder at tildele pointere til variablerne:

Int * pi ; //pointer for en heltalsdatatype

Dobbelt * pd ; //pointer af en dobbelt datatype

Flyde * pf ; //pointer for en flydende datatype

Char * pc ; //pointer for en char-datatype

Næsten altid er der et langt hexadecimalt tal, der repræsenterer hukommelsesadressen, der oprindeligt er den samme for alle pointere uanset deres datatyper.

Eksempel:

Følgende eksempel vil demonstrere, hvordan pointere erstatter '&'-operatoren og gemmer adressen på variabler.

Vi vil integrere biblioteker og biblioteksstøtte. Så ville vi påberåbe os hoved() funktion, hvor vi først erklærer og initialiserer en variabel 'n' af typen 'int' med værdien 55. På næste linje initialiserer vi en pointervariabel ved navn 'p1'. Herefter tildeler vi 'n'-variablens adresse til pointeren 'p1', og så viser vi værdien af ​​variablen 'n'. Adressen på 'n', der er gemt i 'p1'-markøren, vises. Bagefter udskrives værdien af ​​'*p1' på skærmen ved at bruge 'cout'-kommandoen. Udgangen er som følger:

Her ser vi, at værdien af ​​'n' er 55, og adressen på 'n', der blev gemt i markøren 'p1', vises som 0x6ffe14. Værdien af ​​pointervariablen er fundet, og den er 55, hvilket er det samme som heltalsvariablens værdi. Derfor gemmer en pointer variablens adresse, og også * pointeren har værdien af ​​det heltal gemt, hvilket resulterer i at returnere værdien af ​​den oprindeligt lagrede variabel.

Eksempel:

Lad os overveje et andet eksempel, hvor vi bruger en markør, der gemmer adressen på en streng.

I denne kode tilføjer vi først biblioteker og navneområde. I den hoved() funktion er vi nødt til at erklære en streng ved navn 'makeup', der har værdien 'Mascara' i sig. En string type pointer '*p2' bruges til at gemme adressen på makeup-variablen. Værdien af ​​variablen 'makeup' vises derefter på skærmen ved hjælp af 'cout'-erklæringen. Herefter udskrives adressen på variablen 'makeup', og til sidst vises pointervariablen 'p2', der viser hukommelsesadressen på 'makeup'-variablen med markøren.

Output modtaget fra ovenstående kode er som følger:

Den første linje har værdien af ​​'makeup'-variablen vist. Den anden linje viser adressen på variablen 'makeup'. På den sidste linje vises hukommelsesadressen for 'makeup'-variablen med brugen af ​​markøren.

C++ Hukommelsesstyring:

For effektiv hukommelsesstyring i C++ er mange operationer nyttige til håndtering af hukommelse, mens der arbejdes i C++. Når vi bruger C++, er den mest almindeligt anvendte hukommelsesallokeringsprocedure dynamisk hukommelsesallokering, hvor hukommelser tildeles variablerne under kørsel; ikke som andre programmeringssprog, hvor compileren kunne allokere hukommelsen til variablerne. I C++ er deallokeringen af ​​de variabler, der blev dynamisk allokeret, nødvendig, så hukommelsen frigives fri, når variablen ikke længere er i brug.

For den dynamiske allokering og deallokering af hukommelsen i C++ gør vi ' ny' og 'slet' operationer. Det er vigtigt at styre hukommelsen, så ingen hukommelse går til spilde. Tildelingen af ​​hukommelsen bliver nem og effektiv. I ethvert C++-program bruges hukommelsen i et af to aspekter: enten som en heap eller en stak.

  • Stak : Alle variabler, der er erklæret inde i funktionen, og alle andre detaljer, der er indbyrdes relateret til funktionen, gemmes i stakken.
  • Dynge : Enhver form for ubrugt hukommelse eller den del, hvorfra vi allokerer eller tildeler den dynamiske hukommelse under udførelsen af ​​et program, er kendt som en heap.

Mens vi bruger arrays, er hukommelsesallokeringen en opgave, hvor vi bare ikke kan bestemme hukommelsen, medmindre runtime. Så vi tildeler den maksimale hukommelse til arrayet, men dette er heller ikke en god praksis, da hukommelsen i de fleste tilfælde forbliver ubrugt, og den er på en eller anden måde spildt, hvilket bare ikke er en god mulighed eller praksis for din personlige computer. Dette er grunden til, at vi har nogle få operatører, som bruges til at allokere hukommelse fra heapen under kørselstiden. De to store operatører 'ny' og 'slet' bruges til effektiv hukommelsesallokering og -deallokering.

C++ ny operatør:

Den nye operatør er ansvarlig for allokeringen af ​​hukommelsen og bruges som følger:

I denne kode inkluderer vi biblioteket og navneområdet. Derefter initialiserede vi en pointer med 'int'-datatypen. I den næste linje tildeles denne pointer den 'nye' operator.

Hukommelse er blevet allokeret til 'int'-variablen med succes ved brug af en pointer.

C++ sletoperator:

Når vi er færdige med at bruge en variabel, skal vi deallokere den hukommelse, som vi engang tildelte den, fordi den ikke længere er i brug. Til dette bruger vi 'delete'-operatoren til at frigive hukommelsen.

Eksemplet, som vi skal gennemgå lige nu, er at have begge operatører inkluderet.

Vi beregner gennemsnittet for tre forskellige værdier taget fra brugeren. Pointervariablerne er tildelt den 'nye' operator for at gemme værdierne. Formlen for gennemsnit er implementeret. Herefter bruges 'delete'-operatoren, som sletter de værdier, der blev gemt i pointervariablerne ved hjælp af 'new'-operatoren. Dette er den dynamiske allokering, hvor allokeringen foretages i løbet af kørselstiden, og så sker deallokeringen kort efter programmets afslutning.

Brug af array til hukommelsesallokering:

Nu skal vi se, hvordan de 'nye' og 'slet'-operatorer bruges, mens du bruger arrays. Den dynamiske allokering sker på samme måde som det skete for variablerne, da syntaksen er næsten den samme.

I det givne tilfælde overvejer vi rækken af ​​elementer, hvis værdi er taget fra brugeren. Elementerne i arrayet tages, og pointervariablen erklæres, hvorefter hukommelsen allokeres. Kort efter hukommelsesallokeringen startes arrayelementernes inputprocedure. Dernæst vises output for array-elementerne ved at bruge en 'for'-løkke. Denne sløjfe har iterationstilstanden for elementer med en størrelse mindre end den faktiske størrelse af arrayet, der er repræsenteret af n.

Når alle elementerne er brugt, og der ikke er yderligere krav om, at de skal bruges igen, vil den hukommelse, der er tildelt elementerne, blive deallokeret ved hjælp af 'delete'-operatoren.

I outputtet kunne vi se værdisæt udskrevet to gange. Den første 'for'-løkke blev brugt til at nedskrive værdierne for elementer, og den anden 'for'-løkke bruges til at udskrive de allerede skrevne værdier, der viser, at brugeren har skrevet disse værdier for overskuelighed.

Fordele:

Operatøren 'ny' og 'slet' er altid prioriteret i C++ programmeringssprog og er meget udbredt. Når man har en grundig diskussion og forståelse, bemærkes det, at den ’nye’ operatør har for mange fordele. Fordelene ved den 'nye' operatør til allokering af hukommelsen er som følger:

  • Den nye operatør kan overbelastes med større lethed.
  • Når der tildeles hukommelse under kørsel, vil der være en automatisk undtagelse, når der ikke er nok hukommelse, snarere end blot programmet, der afsluttes.
  • Trængselen ved at bruge typecasting-proceduren er ikke til stede her, fordi den 'nye' operatør har netop den samme type som den hukommelse, vi har tildelt.
  • Operatoren 'ny' afviser også ideen om at bruge operatoren sizeof() da 'ny' uundgåeligt vil beregne størrelsen af ​​objekterne.
  • Den 'nye' operatør gør det muligt for os at initialisere og deklarere objekterne, selvom det genererer plads til dem spontant.

C++ arrays:

Vi skal have en grundig diskussion om, hvad arrays er, og hvordan de erklæres og implementeres i et C++-program. Arrayet er en datastruktur, der bruges til at gemme flere værdier i kun én variabel, hvilket reducerer besværet med at erklære mange variable uafhængigt.

Erklæring af arrays:

For at deklarere et array skal man først definere typen af ​​variabel og give et passende navn til arrayet, som derefter tilføjes langs firkantede parenteser. Dette vil indeholde antallet af elementer, der viser størrelsen af ​​et bestemt array.

For eksempel:

String makeup [ 5 ] ;

Denne variabel erklæres, hvilket viser, at den indeholder fem strenge i et array med navnet 'makeup'. For at identificere og illustrere værdierne for dette array skal vi bruge de krøllede parenteser, med hvert element separat omgivet af dobbelte omvendte kommaer, hver adskilt med et enkelt komma imellem.

For eksempel:

String makeup [ 5 ] = { “Mascara” , 'Tint' , 'Læbestift' , 'Fundament' , 'Først' } ;

Tilsvarende, hvis du har lyst til at oprette et andet array med en anden datatype, der skulle være 'int', så ville proceduren være den samme, du skal bare ændre datatypen for variablen som vist nedenfor:

int Multipler [ 5 ] = { to , 4 , 6 , 8 , 10 } ;

Mens man tildeler heltalsværdier til matrixen, må man ikke indeholde dem i de omvendte kommaer, hvilket kun ville virke for strengvariablen. Så endeligt er et array en samling af indbyrdes relaterede dataelementer med afledte datatyper gemt i dem.

Hvordan får man adgang til elementer i arrayet?

Alle elementer, der er inkluderet i arrayet, er tildelt et særskilt nummer, som er deres indeksnummer, der bruges til at få adgang til et element fra arrayet. Indeksværdien starter med et 0 op til en mindre end arrayets størrelse. Den allerførste værdi har indeksværdien 0.

Eksempel:

Overvej et meget grundlæggende og nemt eksempel, hvor vi vil initialisere variabler i et array.

I det allerførste trin inkorporerer vi header-filen, som automatisk tilføjer alle de nødvendige biblioteker i programmet. Navnerummet 'std' vil give mulighed for mapper. I tredje linje kalder vi hoved() fungere. Den krøllede parentes angiver starten af ​​funktionen. Efter at have indtastet funktionen, vil vi erklære 'int' type array med navnet 'cifre'. Den indeholder størrelsen 4, hvilket betyder, at den kun kan indeholde 4 heltalsværdier på én gang. Hvert af elementerne i arrayet er blevet tildelt et unikt og forskelligt ciffer separat. Hele arrayet vises derefter, hvor hvert element kaldes individuelt.

Dette er resultatet modtaget fra ovenstående kode. Nøgleordet 'endl' flytter automatisk det andet element til næste linje.

Eksempel:

I denne kode bruger vi en 'for'-løkke til at udskrive elementerne i et array.

I ovenstående tilfælde tilføjer vi det væsentlige bibliotek. Standardnavneområdet tilføjes. Det hoved() funktion er den funktion, hvor vi skal udføre alle funktionerne til udførelse af et bestemt program. Dernæst erklærer vi et array af int-type ved navn 'Num', som har en størrelse på 10. Værdien af ​​disse ti variable tages fra brugeren med brugen af ​​'for'-løkken. Til visning af dette array bruges en 'for'-løkke igen. De 10 heltal, der er gemt i arrayet, vises ved hjælp af 'cout'-sætningen.

Dette er det output, vi fik fra udførelsen af ​​ovenstående kode, der viser 10 heltal med forskellige værdier.

Eksempel:

I dette scenarie er vi ved at finde ud af den gennemsnitlige score for en elev og den procentdel, han har fået i klassen.

Først skal du tilføje et bibliotek, der vil give indledende support til C++-programmet. Dernæst specificerer vi størrelsen 5 af arrayet med navnet 'Score'. Derefter initialiserede vi en variabel 'sum' af datatype float. Scoren for hvert emne hentes fra brugeren manuelt. Derefter bruges en 'for'-løkke til at finde ud af gennemsnittet og procentdelen af ​​alle de inkluderede emner. Summen opnås ved at bruge arrayet og 'for'-løkken. Derefter findes gennemsnittet ved hjælp af formlen for gennemsnit. Efter at have fundet ud af gennemsnittet, overfører vi dets værdi til den procentdel, der føjes til formlen for at få procentdelen. Gennemsnittet og procentdelen beregnes derefter og vises.

Dette er det endelige output, hvor der tages score fra brugeren for hvert emne individuelt, og henholdsvis gennemsnit og procent beregnes.

Fordele ved at bruge Arrays:

  • Elementer i arrayet er nemme at få adgang til på grund af det indeksnummer, der er tildelt dem.
  • Vi kan nemt udføre søgeoperationen over et array.
  • Hvis du ønsker kompleksitet i programmering, kan du bruge et 2-dimensionelt array, som også karakteriserer matricerne.
  • For at gemme flere værdier, der har en lignende datatype, kan et array nemt bruges.

Ulemper ved at bruge Arrays:

  • Arrays har en fast størrelse.
  • Arrays er homogene, hvilket betyder, at kun en enkelt type værdi er gemt.
  • Arrays gemmer data individuelt i den fysiske hukommelse.
  • Indsættelses- og sletningsprocessen er ikke let for arrays.

C++ objekter og klasser:

C++ er et objektorienteret programmeringssprog, hvilket betyder, at objekter spiller en afgørende rolle i C++. Når man taler om objekter, skal man først overveje, hvad objekter er, så et objekt er enhver forekomst af klassen. Da C++ beskæftiger sig med begreberne OOP, er de vigtigste ting, der skal diskuteres, objekterne og klasserne. Klasser er faktisk datatyper, der er defineret af brugeren selv og er udpeget til at indkapsle datamedlemmerne, og de funktioner, der kun er tilgængelige, oprettes instansen for den pågældende klasse. Datamedlemmer er de variable, der er defineret inde i klassen.



Klasse er med andre ord en disposition eller et design, der er ansvarlig for definitionen og erklæringen af ​​datamedlemmerne og de funktioner, der er tildelt disse datamedlemmer. Hvert af de objekter, der er erklæret i klassen, vil være i stand til at dele alle de egenskaber eller funktioner, som klassen viser.

Antag, at der er en klasse ved navn fugle, nu kunne alle fuglene i første omgang flyve og have vinger. Derfor er flyvning en adfærd, som disse fugle anvender, og vingerne er en del af deres krop eller en grundlæggende egenskab.







Definition af en klasse:

For at definere en klasse skal du følge op på syntaksen og nulstille den i overensstemmelse med din klasse. Nøgleordet 'klasse' bruges til at definere klassen, og alle andre datamedlemmer og funktioner er defineret inden for de krøllede parenteser efterfulgt af klassens definition.





Klasse NameOfClass

{

Adgangsspecifikation :

Data medlemmer ;

Datamedlemsfunktioner ( ) ;

} ;

Erklæring af objekter:

Kort efter at have defineret en klasse, skal vi oprette objekterne for at få adgang til og definere de funktioner, der blev specificeret af klassen. Til det skal vi skrive navnet på klassen og derefter navnet på det objekt, der skal deklareres.



Adgang til datamedlemmer:

Funktionerne og datamedlemmerne tilgås ved hjælp af en simpel prik '.' Operator. De offentlige datamedlemmer tilgås også med denne operatør, men i tilfælde af de private datamedlemmer kan du bare ikke få direkte adgang til dem. Datamedlemmernes adgang afhænger af adgangskontrollerne givet til dem af adgangsmodifikatorerne, som enten er private, offentlige eller beskyttede. Her er et scenarie, der viser, hvordan man erklærer den simple klasse, datamedlemmer og funktioner.











Eksempel:

I dette eksempel skal vi definere nogle få funktioner og få adgang til klassefunktionerne og datamedlemmerne ved hjælp af objekterne.



I det første trin integrerer vi biblioteket, hvorefter vi skal inkludere de understøttende mapper. Klassen er eksplicit defineret, før den kaldes hoved() fungere. Denne klasse kaldes 'køretøj'. Datamedlemmerne var 'navnet på køretøjet' og 'id'et' for det køretøj, som er pladenummeret for det køretøj med henholdsvis en streng og int datatype. De to funktioner er deklareret for disse to datamedlemmer. Det id() funktionen viser køretøjets id. Da klassens datamedlemmer er offentlige, så kan vi også få adgang til dem uden for klassen. Derfor kalder vi navn() funktion uden for klassen og derefter tage værdien for 'VehicleName' fra brugeren og udskrive den i næste trin. I den hoved() funktion, erklærer vi et objekt af den påkrævede klasse, som vil hjælpe med at få adgang til datamedlemmerne og funktionerne fra klassen. Yderligere initialiserer vi værdierne for køretøjets navn og dets id, kun hvis brugeren ikke angiver værdien for køretøjets navn.

Dette er det output, der modtages, når brugeren selv opgiver navnet på køretøjet, og nummerpladerne er den statiske værdi, der er tildelt det.

Når man taler om definitionen af ​​medlemsfunktionerne, må man forstå, at det ikke altid er obligatorisk at definere funktionen inde i klassen. Som du kan se i ovenstående eksempel, definerer vi klassens funktion uden for klassen, fordi datamedlemmerne er offentligt erklæret, og dette gøres ved hjælp af scope resolution-operatoren vist som '::' sammen med navnet på klassen og funktionens navn.

C++ konstruktører og destruktorer:

Vi vil have et grundigt overblik over dette emne ved hjælp af eksempler. Sletningen og oprettelsen af ​​objekterne i C++ programmering er meget vigtig. Til det, når vi opretter en instans til en klasse, kalder vi automatisk konstruktørmetoderne i nogle få tilfælde.

Konstruktører:

Som navnet indikerer, er en konstruktør afledt af ordet 'konstruktion', som angiver skabelsen af ​​noget. Så en konstruktør er defineret som en afledt funktion af den nyoprettede klasse, der deler klassens navn. Og det bruges til initialisering af de objekter, der er inkluderet i klassen. Desuden har en konstruktør ikke en returværdi for sig selv, hvilket betyder, at dens returtype heller ikke vil være ugyldig. Det er ikke obligatorisk at acceptere argumenterne, men man kan tilføje dem, hvis det er nødvendigt. Konstruktører er nyttige ved allokering af hukommelse til objektet i en klasse og til at indstille startværdien for medlemsvariablerne. Startværdien kan overføres i form af argumenter til konstruktørfunktionen, når objektet er initialiseret.

Syntaks:

NameOfTheClass ( )
{
//konstruktørens krop
}

Typer af konstruktører:

Parametriseret konstruktør:

Som diskuteret tidligere har en konstruktør ikke nogen parameter, men man kan tilføje en parameter efter eget valg. Dette vil initialisere værdien af ​​objektet, mens det bliver oprettet. For at forstå dette koncept bedre, overvej følgende eksempel:

Eksempel:

I dette tilfælde ville vi oprette en konstruktør af klassen og erklære parametre.

Vi inkluderer header-filen i det allerførste trin. Det næste trin i at bruge et navneområde er at understøtte mapper til programmet. En klasse kaldet 'cifre' erklæres, hvor først variablerne initialiseres offentligt, så de kan være tilgængelige i hele programmet. En variabel ved navn 'dig1' med datatype heltal er erklæret. Dernæst har vi erklæret en konstruktør, hvis navn ligner navnet på klassen. Denne konstruktør har en heltalsvariabel sendt til sig som 'n', og klassevariablen 'dig1' er sat lig med n. I den hoved() funktion af programmet oprettes tre objekter til klassen 'cifre' og tildeles nogle tilfældige værdier. Disse objekter bruges derefter til at kalde de klassevariabler, der automatisk er tildelt de samme værdier.

Heltalsværdierne vises på skærmen som output.

Kopi konstruktør:

Det er typen af ​​konstruktør, der betragter objekterne som argumenterne og duplikerer værdierne af datamedlemmerne i et objekt til det andet. Derfor bliver disse konstruktører brugt til at erklære og initialisere et objekt fra det andet. Denne proces kaldes kopiinitialisering.

Eksempel:

I dette tilfælde vil kopikonstruktøren blive erklæret.

Først integrerer vi biblioteket og biblioteket. En klasse ved navn 'Ny' er erklæret, hvori heltal er initialiseret som 'e' og 'o'. Konstruktøren offentliggøres, hvor de to variable tildeles værdierne, og disse variable er deklareret i klassen. Derefter vises disse værdier ved hjælp af hoved() funktion med 'int' som returtype. Det Skærm() funktion kaldes og defineres efterfølgende, hvor tallene vises på skærmen. Inde i hoved() funktion, objekterne laves, og disse tildelte objekter initialiseres med tilfældige værdier og derefter Skærm() metoden benyttes.

Output modtaget ved brug af kopikonstruktøren er afsløret nedenfor.

Ødelæggere:

Som navnet definerer, bruges destruktorerne til at ødelægge de oprettede objekter af konstruktøren. Sammenlignet med konstruktørerne har destruktorerne det samme navn som klassen, men med en ekstra tilde (~) efterfulgt.

Syntaks:

~Ny ( )
{
}

Destruktoren tager ingen argumenter ind og har ikke engang nogen returværdi. Compileren appellerer implicit afslutningen af ​​programmet for oprydningslager, der ikke længere er tilgængeligt.

Eksempel:

I dette scenarie bruger vi en destruktor til at slette et objekt.

Her laves en 'Sko' klasse. Der oprettes en konstruktør, der har et lignende navn som klassens. I konstruktøren vises en meddelelse, hvor objektet er oprettet. Efter konstruktøren laves destruktoren, som sletter de objekter, der er oprettet med konstruktøren. I hoved() funktion, oprettes et markørobjekt ved navn 's' og et nøgleord 'delete' bruges til at slette dette objekt.

Dette er det output, vi modtog fra programmet, hvor destruktoren rydder og ødelægger det oprettede objekt.

Forskellen mellem konstruktører og destruktorer:

Konstruktører ødelæggere
Opretter forekomsten af ​​klassen. Ødelægger forekomsten af ​​klassen.
Det har argumenter langs klassenavnet. Den har ingen argumenter eller parametre
Kaldes, når objektet er oprettet. Kaldes, når objektet er ødelagt.
Tildeler hukommelsen til objekter. Deallokerer hukommelsen af ​​objekter.
Kan overbelastes. Kan ikke overbelastes.

C++ arv:

Nu vil vi lære om C++ arv og dets omfang.

Arv er den metode, hvorigennem en ny klasse genereres eller stammer fra en eksisterende klasse. Den nuværende klasse betegnes som en 'basisklasse' eller også en 'overordnet klasse', og den nye klasse, der oprettes, betegnes som en 'afledt klasse'. Når vi siger, at en børneklasse er arvet fra en forældreklasse, betyder det, at barnet besidder alle forældreklassens egenskaber.

Arv refererer til et (er et) forhold. Vi kalder ethvert forhold for en arv, hvis 'er-a' bruges mellem to klasser.

For eksempel:

  • En papegøje er en fugl.
  • En computer er en maskine.

Syntaks:

I C++ programmering bruger eller skriver vi arv som følger:

klasse < afledt - klasse >: < adgang - specificator >< grundlag - klasse >

Tilstande til C++-arv:

Arv involverer 3 tilstande til at arve klasser:

  • Offentlig: I denne tilstand, hvis en underordnet klasse erklæres, arves medlemmer af en overordnet klasse af den underordnede klasse som de samme i en overordnet klasse.
  • Beskyttet: I I denne tilstand bliver de offentlige medlemmer af forældreklassen beskyttede medlemmer i børneklassen.
  • Privat : I denne tilstand bliver alle medlemmer af en forældreklasse private i underklassen.

Typer af C++ arv:

Følgende er typerne af C++-arv:

1. Enkeltarv:

Med denne form for arv stammede klasser fra én basisklasse.

Syntaks:

klasse M
{
Legeme
} ;
klasse N : offentlige M
{
Legeme
} ;

2. Multipel arv:

I denne form for arv kan en klasse stamme fra forskellige basisklasser.

Syntaks:

klasse M

{

Legeme

} ;

klasse N

{

Legeme

} ;

klasse O : offentlige M , offentlig N

{

Legeme

} ;

3. Arv på flere niveauer:

En børneklasse nedstammer fra en anden børneklasse i denne form for arv.

Syntaks:

klasse M

{

Legeme

} ;

klasse N : offentlige M

{

Legeme

} ;

klasse O : offentlig N

{

Legeme

} ;

4. Hierarkisk arv:

Der oprettes flere underklasser fra én basisklasse i denne nedarvningsmetode.

Syntaks:

klasse M

{

Legeme

} ;

klasse N : offentlige M

{

Legeme

} ;

klasse O : offentlige M

{

} ;

5. Hybrid arv:

I denne form for arv kombineres flere arv.

Syntaks:

klasse M

{

Legeme

} ;

klasse N : offentlige M

{

Legeme

} ;

klasse O

{

Legeme

} ;

klasse P : offentlig N , offentlig O

{

Legeme

} ;

Eksempel:

Vi skal køre koden for at demonstrere konceptet Multiple Inheritance i C++ programmering.

Da vi er startet med et standard input-output-bibliotek, har vi givet basisklassens navn 'Bird' og gjort det offentligt, så dets medlemmer kan være tilgængelige. Så har vi basisklassen 'Reptile', og vi har også gjort den offentlig. Så har vi 'cout' til at udskrive outputtet. Herefter skabte vi en 'pingvin' i børneklassen. I hoved() funktion vi har lavet til objektet for klassen pingvin 'p1'. Først udføres 'Bird'-klassen og derefter 'Reptile'-klassen.

Efter udførelse af kode i C++ får vi output-sætningerne for basisklasserne 'Bird' og 'Reptil'. Det betyder, at en klasse 'pingvin' er afledt af basisklasserne 'Fugl' og 'Reptil', fordi en pingvin er en fugl såvel som et krybdyr. Den kan både flyve og kravle. Derfor beviste flere arv, at en børneklasse kan udledes fra mange basisklasser.

Eksempel:

Her vil vi udføre et program for at vise, hvordan man bruger Multilevel Inheritance.

Vi startede vores program ved at bruge input-output Streams. Derefter har vi erklæret en overordnet klasse 'M', som er indstillet til at være offentlig. Vi har ringet til Skærm() funktion og 'cout' kommando for at vise sætningen. Dernæst har vi oprettet en børneklasse 'N', der er afledt af forældreklassen 'M'. Vi har en ny børneklasse 'O' afledt af børneklasse 'N', og brødteksten i begge afledte klasser er tom. Til sidst påberåber vi os hoved() funktion, hvor vi skal initialisere objektet i klassen 'O'. Det Skærm() objektets funktion bruges til at demonstrere resultatet.

I denne figur har vi resultatet af klasse 'M', som er forældreklassen, fordi vi havde en Skærm() funktion i det. Så klasse 'N' er afledt af overordnet klasse 'M' og klasse 'O' fra forældreklasse 'N', som refererer til arv på flere niveauer.

C++ polymorfi:

Udtrykket 'polymorfisme' repræsenterer en samling af to ord 'poly' og ' morfisme' . Ordet 'Poly' repræsenterer 'mange' og 'morfisme' repræsenterer 'former'. Polymorfi betyder, at et objekt kan opføre sig forskelligt under forskellige forhold. Det giver en programmør mulighed for at genbruge og udvide koden. Den samme kode fungerer forskelligt alt efter tilstanden. Indførelsen af ​​et objekt kan anvendes under kørsel.

Kategorier af polymorfi:

Polymorfi forekommer hovedsageligt i to metoder:

  1. Kompiler tidspolymorfi
  2. Run Time Polymorphism

Lad os forklare.

6. Kompiler tidspolymorfi:

I løbet af denne tid ændres det indtastede program til et eksekverbart program. Før implementeringen af ​​koden opdages fejlene. Der er primært to kategorier af det.

  • Funktion Overbelastning
  • Operatør overbelastning

Lad os se på, hvordan vi bruger disse to kategorier.

7. Funktionsoverbelastning:

Det betyder, at en funktion kan udføre forskellige opgaver. Funktionerne er kendt som overbelastede, når der er flere funktioner med et lignende navn, men forskellige argumenter.

Først bruger vi biblioteket såvel som standardnavneområdet. Så ville vi erklære den brugerdefinerede klasse 'Tilføj'. Inde i klassen definerer vi en funktion ADD() med to parametre som en public. Igen, erklær en ny funktion inde i klassens krop med samme navn, men denne funktion har ingen parameter. Her initialiserer vi tre strenge. De første to strenge har en vis værdi, og den sidste streng bruges til at sammenkæde de to første strenge. Vi bruger 'cout'-kommandoen til at udskrive resultatet. Dernæst kalder vi hoved() metode uden for klassen. Vi konstruerer et objekt af den påkrævede klasse 'Tilføj'. Nu kalder vi den første funktion med to parametre og kalder derefter også den anden funktion. I det sidste trin inkluderer vi 'retur 0'-erklæringen for at afslutte programmet.

Operatør overbelastning:

Processen med at definere flere funktionaliteter for en operatør kaldes operatøroverbelastning.

Ovenstående eksempel inkluderer header-filen . Derefter har vi brugt et standardnavneområde. Vi definerer klassen 'Heltal'. Inden for denne klasse angiver vi et heltal som en klasses private medlem. Dernæst erklærer vi Parameterized constructor som et offentligt medlem og initialiserer værdien af ​​hele tallet i det. Vi definerer en konstruktør med en overbelastningspræfiksoperator. Inde i denne konstruktør udfører vi præfiksoperation. Desuden opretter vi en funktion, der viser stigningsværdien ved at bruge 'cout'-sætningen. I mellemtiden påberåber vi os hoved() fungere. Her opretter vi to klasseobjekter. Det første objekt sender en værdi af hele tallet. Brug derefter 'cout'-erklæringen til at udskrive linjen 'Før værdien øges'. Dernæst ringer vi Skærm() funktion for det første objekt. Det andet objekt bruger pre-increment-operatoren. Vi bruger 'cout'-kommandoen til at vise linjen 'Efter præ-inkrement er værdien'. Så bruger vi Skærm() funktion for det andet objekt.

8. Run Time Polymorphism:

Det er det tidsrum, som koden kører i. Efter brug af koden kan der opdages fejl.

Funktionstilsidesættelse:

Det sker, når en afledt klasse bruger en lignende funktionsdefinition som en af ​​basisklassemedlemsfunktionerne.

I den første linje inkorporerer vi biblioteket for at udføre input- og outputoperationer. Yderligere tilføjer vi standardnavneområdet. I næste linje erklærer vi en forældreklasse 'Mand'. Inde i klassen definerer vi en funktion med to parametre som en public. Derefter bruger vi 'cout'-erklæringen til at vise teksten 'Walking'. Uden for klassen opretter vi en børneklasse 'Dyr', der er afledt af forældreklassen. Her opretter vi en funktion med et lignende navn som det, der tidligere blev erklæret i den overordnede klasse. Brug derefter 'cout'-erklæringen til at vise teksten 'Spise'. Vi bruger hoved() fungere. I mellemtiden opretter vi et klasseobjekt 'm'. Derefter kalder vi funktionen af ​​forældreklassen såvel som funktionen af ​​​​barneklassen. Brug kommandoen 'retur 0'.

C++ strenge:

Nu vil vi opdage, hvordan man erklærer og initialiserer strengen i C++. Strengen bruges til at gemme en gruppe tegn i programmet. Den gemmer alfabetiske værdier, cifre og specielle typesymboler i programmet. Det reserverede tegn som et array i C++-programmet. Arrays bruges til at reservere en samling eller kombination af tegn i C++-programmering. Et særligt symbol kendt som et nultegn bruges til at afslutte arrayet. Det er repræsenteret af escape-sekvensen (\0), og det bruges til at angive slutningen af ​​strengen.

Hent strengen ved hjælp af 'cin'-kommandoen:

Det bruges til at indtaste en strengvariabel uden et tomt mellemrum i den. I det givne tilfælde implementerer vi et C++-program, der får navnet på brugeren ved hjælp af 'cin'-kommandoen.

I det første trin bruger vi biblioteket . I mellemtiden har vi inkluderet standardnavneområdet. Dernæst erklærer vi hoved() fungere. Vi initialiserer en tegntypestreng i kroppen af hoved() fungere. Derefter bruger vi 'cout'-erklæringen til at udskrive 'Indtast dit navn'. Vi bruger 'cin'-kommandoen til at spørge strengen fra brugeren. Kommandoen 'cout' anvendes til at udskrive det navn, der ville blive skrevet af brugeren. Return 0-sætningen tilføjes for at afslutte programmet.

Brugeren indtaster navnet 'Ahmed Chaudry'. Men vi får kun 'Ahmed' som output i stedet for den komplette 'Ahmed Chaudry', fordi 'cin'-kommandoen ikke kan gemme en streng med tomrum. Den gemmer kun værdien før mellemrum.

Hent strengen ved at bruge funktionen cin.get():

Det få() funktionen af ​​cin-kommandoen bruges til at hente strengen fra tastaturet, der kan indeholde tomme mellemrum.

Ovenstående eksempel inkluderer biblioteket til at udføre input og output operationer. Derefter brugte vi et standardnavneområde. Det hoved() funktion kaldes. Derefter initialiserer vi en streng ved navn 's'. I det næste trin bruges 'cout'-kommandoen til at vise sætningen 'Indtast en streng'. Det cin.get() anvendes for at få strengen fra brugeren. Ved at bruge cin.get() funktion sender vi en strengværdi og angiver størrelsen af ​​strengen som en parameter. Kommandoen 'cout' bruges igen til at vise programmets output. Til sidst tilføjer vi afkastet 0.

En streng 'Mit navn er Ali' indtastes af brugeren. Vi får den komplette streng 'Mit navn er Ali' som resultatet, fordi funktionen cin.get() accepterer de strenge, der indeholder de tomme mellemrum.

Brug af 2D (todimensionel) række af strenge:

I dette tilfælde tager vi input (navn på tre byer) fra brugeren ved at bruge en 2D-array af strenge.

Først integrerer vi header-filen og et standardnavneområde. Vi påberåber os hoved() fungere. Derefter initialiserer vi en todimensionel række af tegn med tre rækker og femten kolonner. I det næste trin bruges for loop til at tælle variablen 'i' for at iterere over den påkrævede streng, indtil null-tegnet er identificeret. Inde i 'for'-løkken bruger vi 'cout'-kommandoen til at vise linjen 'Indtast bynavn'. Brug derefter 'cin'-sætningen for at få bynavnet. Vi bruger igen en anden 'for'-løkke og 'cout'-sætning til at vise navnet på byer i en sekvens, indtil løkken afsluttes. Dernæst bruges 'retur 0'-kommandoen.

Her indtaster brugeren navnet på tre forskellige byer. Programmet bruger et rækkeindeks til at få tre strengværdier. Hver værdi bevares i sin egen række. Den første streng gemmes i den første række og så videre. Hver strengværdi vises på samme måde ved at bruge rækkeindekset.

C++ Standardbibliotek:

C++-biblioteket er en klynge eller en gruppe af mange funktioner, klasser, konstanter og alle de relaterede elementer indesluttet i et rigtigt sæt næsten, altid definerende og deklarerende de standardiserede header-filer. Implementeringen af ​​disse inkluderer to nye header-filer, som ikke kræves af C++-standarden kaldet og . En lang liste af obligatoriske header-filer er til stede, som afhænger af compilerens krav. Header-filerne indeholder header-listen, som har alt indholdet fra C++ Standard Library, inklusive de specifikke header-filer til Stand Library Template (STL).

Standardbiblioteket fjerner stresset med at omskrive instruktionerne under programmering. Dette har mange biblioteker inde i det, som har gemt kode til mange funktioner. For at gøre god brug af disse biblioteker er det obligatorisk at linke dem ved hjælp af header-filer. Når vi importerer input- eller outputbiblioteket, betyder det, at vi importerer al den kode, der er blevet gemt inde i det bibliotek, og det er sådan, vi også kan bruge funktionerne, der er indesluttet i det, ved at skjule al den underliggende kode, som du måske ikke behøver at se.

C++ standardbiblioteket understøtter følgende to typer:

  • En hostet implementering, der sørger for alle de væsentlige standardbibliotekets header-filer beskrevet af C++ ISO-standarden.
  • En selvstændig implementering, der kun kræver en del af header-filerne fra standardbiblioteket. Den passende undergruppe er:
(erklærer i det mindste

Atomic_signed_lock_free og atomic-unsigned_lock_free)

(erklærer mindst atexit,abort, at_quick_exit, exit, quick_exit)

Nogle få af header-filerne er blevet beklaget, siden de sidste 11 C++ kom: Det er , og .

Forskellene mellem de hostede og fritstående implementeringer er som illustreret nedenfor:

  • I den hostede implementering skal vi bruge en global funktion, der er hovedfunktionen. Mens i en fritstående implementering, kan brugeren deklarere og definere start- og slutfunktioner på egen hånd.
  • En hostingimplementering har en obligatorisk tråd, der kører på matchtidspunktet. Hvorimod, i den fritstående implementering, vil implementerne selv bestemme, om de har brug for den samtidige tråds support i deres bibliotek.

Typer:

Både den fritstående og den hostede understøttes af C++. Header-filerne er opdelt i følgende to:

  • Iostream dele
  • C++ STL dele (Standard Library)

Når vi skriver et program til udførelse i C++, kalder vi altid de funktioner, som allerede er implementeret inde i STL. Disse kendte funktioner optager input og display output ved hjælp af identificerede operatører med effektivitet.

I betragtning af historien blev STL oprindeligt kaldt Standard Template Library. Derefter blev delene af STL-biblioteket standardiseret i Standard Library of C++, der bruges i dag. Disse inkluderer ISO C++ runtime-biblioteket og nogle få fragmenter fra Boost-biblioteket inklusive nogle andre vigtige funktioner. Lejlighedsvis betegner STL containerne eller oftere algoritmerne i C++ Standard Library. Nu taler dette STL eller Standard Template Library udelukkende om det kendte C++ Standard Library.

Std navneområde og header filer:

Alle erklæringer af funktioner eller variabler udføres i standardbiblioteket ved hjælp af header-filer, der er jævnt fordelt mellem dem. Erklæringen ville ikke ske, medmindre du ikke inkluderer header-filerne.

Lad os antage, at nogen bruger lister og strenge, han skal tilføje følgende header-filer:

#inkluder

#inkluder

Disse kantede parenteser '<>' betyder, at man skal slå denne særlige header-fil op i den mappe, der defineres og inkluderes. Man kan også tilføje en '.h'-udvidelse til dette bibliotek, hvilket gøres, hvis det kræves eller ønskes. Hvis vi ekskluderer '.h'-biblioteket, skal vi have tilføjet 'c' lige før starten af ​​navnet på filen, bare som en indikation af, at denne header-fil tilhører et C-bibliotek. For eksempel kan du enten skrive (#include eller #include ).

Når vi taler om navneområdet, så ligger hele C++ standardbiblioteket inde i dette navneområde betegnet som std. Dette er grunden til, at de standardiserede biblioteksnavne skal defineres kompetent af brugerne. For eksempel:

Std :: cout << 'Det her skal gå over !/ n' ;

C++ vektorer:

Der er mange måder at gemme data eller værdier på i C++. Men indtil videre leder vi efter den nemmeste og mest fleksible måde at gemme værdierne på, mens programmerne skrives i C++-sproget. Så vektorer er beholdere, der er korrekt sekvenseret i et seriemønster, hvis størrelse varierer på udførelsestidspunktet afhængigt af indsættelse og fradrag af elementerne. Dette betyder, at programmøren kunne ændre størrelsen af ​​vektoren efter hans ønske under udførelsen af ​​programmet. De ligner arrays på en sådan måde, at de også har kommunikerbare lagerpositioner for deres inkluderede elementer. Til kontrol af antallet af værdier eller elementer, der er til stede inde i vektorerne, skal vi bruge en ' std::count' fungere. Vektorer er inkluderet i standardskabelonbiblioteket i C++, så det har en bestemt header-fil, der skal inkluderes først, dvs.

#inkluder

Erklæring:

Deklarationen af ​​en vektor er vist nedenfor.

Std :: vektor < DT > Vektornavn ;

Her er vektoren det anvendte nøgleord, DT viser datatypen for vektoren, som kan erstattes med int, float, char eller andre relaterede datatyper. Ovenstående erklæring kan omskrives som:

Vektor < flyde > Procent ;

Størrelsen for vektoren er ikke angivet, fordi størrelsen kan øges eller formindskes under udførelse.

Initialisering af vektorer:

Til initialisering af vektorerne er der mere end én måde i C++.

Teknik nummer 1:

Vektor < int > v1 = { 71 , 98 , 3. 4 , 65 } ;

Vektor < int > v2 = { 71 , 98 , 3. 4 , 65 } ;

I denne procedure tildeler vi direkte værdierne for begge vektorerne. Værdierne tildelt dem begge er nøjagtigt ens.

Teknik nummer 2:

Vektor < int > v3 ( 3 , femten ) ;

I denne initialiseringsproces dikterer 3 størrelsen af ​​vektoren, og 15 er de data eller værdier, der er blevet lagret i den. En vektor af datatypen 'int' med den givne størrelse på 3, der lagrer værdien 15, oprettes, hvilket betyder, at vektoren 'v3' gemmer følgende:

Vektor < int > v3 = { femten , femten , femten } ;

Større operationer:

De vigtigste operationer, som vi skal implementere på vektorerne inde i vektorklassen er:

  • Tilføjelse af en værdi
  • Adgang til en værdi
  • Ændring af en værdi
  • Sletning af en værdi

Tilføjelse og sletning:

Tilføjelsen og sletningen af ​​elementerne inde i vektoren sker systematisk. I de fleste tilfælde indsættes elementer ved færdiggørelsen af ​​vektorbeholderne, men du kan også tilføje værdier på det ønskede sted, som til sidst vil flytte de andre elementer til deres nye placeringer. Hvorimod i sletningen, når værdierne slettes fra den sidste position, vil det automatisk reducere størrelsen af ​​beholderen. Men når værdierne inde i beholderen slettes tilfældigt fra en bestemt placering, tildeles de nye placeringer de andre værdier automatisk.

Anvendte funktioner:

For at ændre eller ændre værdierne gemt inde i vektoren er der nogle foruddefinerede funktioner kendt som modifikatorer. De er som følger:

  • Insert(): Det bruges til at tilføje en værdi inde i en vektorbeholder på et bestemt sted.
  • Erase(): Det bruges til at fjerne eller slette en værdi inde i en vektorbeholder på et bestemt sted.
  • Swap(): Det bruges til swap af værdierne inde i en vektorbeholder, der tilhører den samme datatype.
  • Assign(): Den bruges til at allokere en ny værdi til den tidligere lagrede værdi inde i vektorbeholderen.
  • Begin(): Det bruges til at returnere en iterator inde i en løkke, der adresserer den første værdi af vektoren inde i det første element.
  • Clear(): Det bruges til sletning af alle de værdier, der er gemt i en vektorbeholder.
  • Push_back(): Den bruges til at tilføje en værdi ved færdiggørelsen af ​​vektorbeholderen.
  • Pop_back(): Det bruges til sletning af en værdi ved færdiggørelsen af ​​vektorbeholderen.

Eksempel:

I dette eksempel bruges modifikatorer langs vektorerne.

For det første inkluderer vi - og -header-filerne. Herefter integreres navnerummet std for at tilføje klasserne på én gang. For at skrive hele programmets logik kalder vi funktionen main() hvor en vektor ved navn 'cifre' initialiseres. Denne vektors tildeling udføres i næste trin, hvor 'cifre' har givet en værdi på 6 og 24, hvilket betyder, at 6 elementer er gemt inde i vektorbeholderen, hver med værdien 24. Disse værdier vises derefter ved hjælp af 'cout'en ' kommando. En 'for'-løkke bruges til modifikatorfunktionen push_back() til tilføjelse af elementerne inde i beholderen. Nu tilføjes 3 værdier til cifrene i slutningen. Vi initialiserer en variabel 'x' for at holde registreringen af ​​størrelsen af ​​vektorbeholderen. Nu vises det sidste elements værdi og pop_back() funktionen ville slette tallet '3' gemt inde i beholderen. Til visning af alle elementerne bruger vi igen en 'for'-løkke med indsæt() modifikator, der indsætter værdierne. Her vil 4 blive indsat i begyndelsen af ​​vektorbeholderen og vist på skærmen. Det klar() modifier vil derefter rydde eller slette alle de værdier, der er gemt i beholderen. Størrelsen af ​​vektoren vises derefter, efter at rydningen er udført.

Udgangen er vist nedenfor.

C++ Files Input Output:

En fil er en samling af indbyrdes relaterede data. I C++ er en fil en sekvens af bytes, der er samlet i kronologisk rækkefølge. De fleste af filerne findes inde på disken. Men også hardwareenheder som magnetbånd, printere og kommunikationslinjer er også inkluderet i filerne.

Input og output i filer er karakteriseret ved de tre hovedklasser:

  • Klassen 'istream' bruges til at tage input.
  • Klassen 'ostream' bruges til at vise output.
  • Til input og output skal du bruge 'iostream'-klassen.

Filer håndteres som streams i C++. Når vi tager input og output i en fil eller fra en fil, er følgende klasser, der bruges:

  • Offstream: Det er en stream-klasse, der bruges til at skrive på en fil.
  • Ifstream: Det er en stream-klasse, der bruges til at læse indhold fra en fil.
  • Strøm: Det er en stream klasse, der bruges til både at læse og skrive i en fil eller fra en fil.

Klasserne 'istream' og 'ostream' er forfædrene til alle de klasser, der er nævnt ovenfor. Filstrømmene er lige så nemme at bruge som kommandoerne 'cin' og 'cout', med blot forskellen på at knytte disse filstrømme til andre filer. Lad os se et eksempel for kort at studere om 'fstream'-klassen:

Eksempel:

I dette tilfælde skriver vi data i en fil.

Vi integrerer input- og outputstrømmen i det første trin. Header-filen tilføjes så, fordi vi skal skrive og læse data fra filen. Herefter kaldes klasser ved hjælp af navnerummet. Det hoved() funktionen kaldes for programmets krop, hvor 'ofstream' bruges, der skriver dataene ind i en fil, filen oprettes som New_File. I det næste trin åbner vi en tekstfil med navnet 'eksempel' ved at bruge åben( ) metode. Vi skriver en tekst ved hjælp af kantede parenteser ind i filen. Hver fil er bestemt til at blive lukket, når den er blevet behandlet. Det er derfor, filen lukkes ved hjælp af tæt() fungere.

Fil 'eksempel' åbnes fra den personlige computer, og teksten skrevet på filen indprintes på denne tekstfil som vist ovenfor.

Åbning af en fil:

Når en fil åbnes, er den repræsenteret af en strøm. Et objekt er oprettet for filen ligesom New_File blev oprettet i det forrige eksempel. Alle input- og outputhandlinger, der er blevet udført på streamen, anvendes automatisk på selve filen. Til åbning af en fil bruges funktionen open() som:

Åben ( NameOfFile , mode ) ;

Her er tilstanden ikke-obligatorisk.

Lukning af en fil:

Når alle input- og outputoperationer er færdige, skal vi lukke den fil, der blev åbnet for redigering. Vi er forpligtet til at ansætte en tæt() fungere i denne situation.

Ny_fil. tæt ( ) ;

Når dette er gjort, bliver filen utilgængelig. Hvis objektet under nogen omstændigheder ødelægges, selv om det er linket til filen, vil destruktoren spontant kalde close()-funktionen.

Tekstfiler:

Tekstfiler bruges til at gemme teksten. Derfor, hvis teksten enten indtastes eller vises, skal den have nogle formateringsændringer. Skriveoperationen inde i tekstfilen er den samme, som vi udfører 'cout'-kommandoen.

Eksempel:

I dette scenarie skriver vi data i tekstfilen, der allerede blev lavet i den forrige illustration.

Her skriver vi data i filen med navnet 'eksempel' ved at bruge funktionen New_File(). Vi åbner filen 'eksempel' ved at bruge åben() metode. 'Ofstream' bruges til at tilføje data til filen. Efter at have udført alt arbejdet inde i filen, lukkes den nødvendige fil ved brug af tæt() fungere. Hvis filen ikke åbner, vises fejlmeddelelsen 'Filen understøttes ikke, fejl under indlæsning af filen'.

Filen åbnes, og teksten vises på konsollen.

Læsning af en tekstfil:

Læsningen af ​​en fil vises ved hjælp af det efterfølgende eksempel.

Eksempel:

'ifstream' bruges til at læse de data, der er gemt i filen.

Eksemplet inkluderer hovedhovedfilerne i begyndelsen. Brug derefter 'ifstream' inde i hoved() fungere. Ved hjælp af 'ifstream' læser vi dataene med filen 'New_File', der viser teksten gemt inde i 'eksempel'-tekstfilen. Vi ansætter åben() metode til at åbne filen. Dernæst vil vi bruge 'mens'-løkken. Efter at have læst dataene fra 'eksempel'-tekstfilen, tæt() funktionen bruges til at lukke den ønskede fil. Hvis systemet ikke har den pågældende fil, får vi beskeden 'Kan ikke åbne fil'.

Alle oplysninger, der er gemt i tekstfilen, vises på skærmen som vist.

Konklusion

I ovenstående guide har vi lært om C++ sproget i detaljer. Sammen med eksemplerne bliver hvert emne demonstreret og forklaret, og hver handling er uddybet.