Jak se naučit C++ pro začátečníky

Jak Se Naucit C Pro Zacatecniky



C++ je široce a nejčastěji používaný programovací jazyk. Tento jazyk byl založen jako vylepšení původně vyvinutého jazyka C a ovlivněn jazykem C, takže je to nadmnožina programovacího jazyka C, který také funguje spolu s dalšími nástroji a knihovnami, které byly dostupné a byly používány v jazyce C. . Je to kompilovaný jazyk, který je také panovačný.

Počátek jazyka C++ nastal v roce 1983, krátce poté 'Bjare Stroustrup' pracoval s třídami v jazyce C včetně některých dalších funkcí, jako je přetěžování operátorů. Použité přípony souborů jsou „.c“ a „.cpp“. C++ je rozšiřitelný a nezávisí na platformě a zahrnuje STL, což je zkratka Standard Template Library. Takže v podstatě známý jazyk C++ je ve skutečnosti znám jako kompilovaný jazyk, který má zdrojový soubor zkompilovaný do podoby objektových souborů, které v kombinaci s linkerem vytvoří spustitelný program.

Na druhou stranu, pokud mluvíme o jeho úrovni, jedná se o střední úroveň interpretace výhod nízkoúrovňového programování, jako jsou ovladače nebo jádra, a také aplikací vyšší úrovně, jako jsou hry, GUI nebo desktopové aplikace. Ale syntaxe je téměř stejná pro C i C++.







Součásti jazyka C++:

#include



Tento příkaz je hlavičkový soubor obsahující příkaz „cout“. V závislosti na potřebách a preferencích uživatele může existovat více než jeden soubor záhlaví.



int main()





Tento příkaz je funkcí hlavního programu, která je nezbytným předpokladem pro každý program C++, což znamená, že bez tohoto příkazu nelze spustit žádný program v C++. Zde je „int“ datový typ návratové proměnné vypovídající o typu dat, které funkce vrací.

Prohlášení:



Proměnné jsou deklarovány a jsou jim přiřazeny názvy.

Problémové prohlášení:

To je v programu nezbytné a může to být smyčka „while“, smyčka „for“ nebo jakákoli jiná použitá podmínka.

Operátoři:

Operátory se používají v programech C++ a některé jsou klíčové, protože jsou aplikovány na podmínky. Několik důležitých operátorů je &&, ||, !, &, !=, |, &=, |=, ^, ^=.

Vstup C++ Výstup:

Nyní probereme možnosti vstupu a výstupu v C++. Všechny standardní knihovny používané v C++ poskytují maximální vstupní a výstupní schopnosti, které se provádějí ve formě sekvence bajtů nebo se normálně vztahují k proudům.

Vstupní stream:

V případě, že jsou bajty streamovány ze zařízení do hlavní paměti, jedná se o vstupní proud.

Výstupní stream:

Pokud jsou bajty streamovány v opačném směru, jedná se o výstupní proud.

Soubor záhlaví se používá k usnadnění vstupu a výstupu v C++. Je napsán jako , který poskytuje metody například stew a set precision. Vstupní a výstupní příkazy jsou cin, cout, cerr a clog. Zde „cin“ označuje standardní vstup a „cout“ označuje standardní výstupní zařízení používané s operátory vkládání proudu (<<) k zobrazení příkazů na obrazovce.

Příklad:

Budeme zobrazovat řetězcovou zprávu pomocí řetězce typu znak.

V prvním řádku zahrnujeme „iostream“, který má téměř všechny základní knihovny, které bychom mohli potřebovat pro spuštění programu v C++. V dalším řádku deklarujeme jmenný prostor, který poskytuje rozsah pro identifikátory. Po zavolání hlavní funkce inicializujeme pole typu znaků, které ukládá řetězcovou zprávu a ‚cout‘ ji zobrazí zřetězením. Pro zobrazení textu na obrazovce používáme „cout“. Také jsme vzali proměnnou ‚A‘ s polem datového typu pro uložení řetězce znaků a pak jsme obě zprávy pole přidali ke statické zprávě pomocí příkazu ‚cout‘.

Vygenerovaný výstup je zobrazen níže:

Příklad:

V tomto případě bychom věk uživatele reprezentovali v jednoduché řetězcové zprávě.

V prvním kroku začleňujeme knihovnu. Poté používáme jmenný prostor, který by poskytoval rozsah pro identifikátory. V dalším kroku zavoláme hlavní() funkce. Poté inicializujeme věk jako proměnnou „int“. Pro vstup používáme příkaz „cin“ a pro výstup jednoduché řetězcové zprávy příkaz „cout“. „cin“ zadává hodnotu věku od uživatele a „cout“ ji zobrazí v druhé statické zprávě.

Tato zpráva se zobrazí na obrazovce po spuštění programu, takže uživatel může získat věk a poté stisknout ENTER.

Příklad:

Zde si ukážeme, jak vytisknout řetězec pomocí „cout“.

Chcete-li vytisknout řetězec, nejprve zahrneme knihovnu a poté jmenný prostor pro identifikátory. The hlavní() funkce je volána. Dále tiskneme výstup řetězce pomocí příkazu „cout“ s operátorem vkládání, který pak zobrazuje statickou zprávu na obrazovce.

C++ datové typy:

Datové typy v C++ jsou velmi důležité a široce známé téma, protože jsou základem programovacího jazyka C++. Podobně jakákoli použitá proměnná musí být specifikovaného nebo identifikovaného datového typu.

Víme, že pro všechny proměnné používáme datový typ při deklaraci k omezení datového typu, který je třeba obnovit. Nebo bychom mohli říci, že datové typy vždy říkají proměnné, jaký druh dat sama ukládá. Pokaždé, když definujeme proměnnou, kompilátor přidělí paměť na základě deklarovaného datového typu, protože každý datový typ má jinou kapacitu paměti.

Jazyk C++ pomáhá rozmanitosti datových typů, takže programátor může vybrat vhodný datový typ, který by mohl potřebovat.

C++ usnadňuje použití datových typů uvedených níže:

  1. Uživatelsky definované datové typy
  2. Odvozené datové typy
  3. Vestavěné datové typy

Následující řádky jsou například uvedeny pro ilustraci důležitosti datových typů inicializací několika běžných datových typů:

int A = dva ; // celočíselná hodnota

plovák F_N = 3.66 ; // hodnota s plovoucí desetinnou čárkou

dvojnásobek D_N = 8,87 ; // dvojitá hodnota s plovoucí desetinnou čárkou

char Alfa = 'p' ; // znak

bool b = skutečný ; // Boolean

Níže je uvedeno několik běžných typů dat: jakou velikost specifikují a jaký typ informací budou jejich proměnné ukládat:

  • Znak: S velikostí jednoho bajtu uloží jeden znak, písmeno, číslo nebo hodnoty ASCII.
  • Boolean: S velikostí 1 bajt uloží a vrátí hodnoty jako true nebo false.
  • Int: Při velikosti 2 nebo 4 bajtů bude ukládat celá čísla bez desetinných míst.
  • Plovoucí desetinná čárka: S velikostí 4 bajtů bude ukládat zlomková čísla, která mají jedno nebo více desetinných míst. To je dostatečné pro uložení až 7 desetinných číslic.
  • Dvojitá pohyblivá řádová čárka: S velikostí 8 bajtů bude také ukládat zlomková čísla, která mají jedno nebo více desetinných míst. To je dostatečné pro uložení až 15 desetinných číslic.
  • Prázdnota: Bez specifikované velikosti obsahuje prázdnota něco bezcenného. Proto se používá pro funkce, které vracejí hodnotu null.
  • Široký znak: S velikostí větší než 8 bitů, která je obvykle 2 nebo 4 bajty dlouhá, je reprezentována wchar_t, která je podobná char, a tedy také ukládá hodnotu znaku.

Velikost výše uvedených proměnných se může lišit v závislosti na použití programu nebo překladače.

Příklad:

Pojďme napsat jednoduchý kód v C++, který poskytne přesné velikosti několika datových typů popsaných výše:

V tomto kódu integrujeme knihovnu . Poté používáme „namespace“. V dalším řádku voláme na hlavní() funkce, ve které využíváme příkaz „cout“, který vytiskne velikosti všech datových typů zadaných v programu. Abychom našli velikost proměnných, musíme použít velikost() metoda.

Výstup je přijímán v bytech, jak je znázorněno na obrázku:

Příklad:

Zde bychom přidali velikost dvou různých datových typů.

Nejprve začleňujeme hlavičkový soubor využívající „standardní jmenný prostor“ pro identifikátory. Dále, hlavní() je volána funkce, ve které nejprve inicializujeme proměnnou „int“ a poté proměnnou „double“, abychom zkontrolovali rozdíl mezi velikostmi těchto dvou. Poté jsou jejich velikosti zřetězeny pomocí velikost() funkce. Výstup se zobrazí pomocí příkazu „cout“.

Je zde ještě jeden termín, který zde musí být zmíněn, a to je 'Úpravy dat' . Název naznačuje, že „modifikátory dat“ se používají spolu s vestavěnými datovými typy k úpravě jejich délek, které může určitý datový typ udržet podle potřeby nebo požadavku kompilátoru.

V C++ jsou dostupné následující modifikátory dat:

  1. Podepsaný
  2. Nepodepsaný
  3. Dlouho
  4. Krátký

Upravená velikost a také vhodný rozsah vestavěných datových typů jsou uvedeny níže, pokud jsou kombinovány s modifikátory datových typů:

  • Short int: Má velikost 2 bajtů, má rozsah modifikací od -32 768 do 32 767
  • Unsigned short int: Má velikost 2 bajtů, má rozsah modifikací od 0 do 65 535
  • Unsigned int: Má velikost 4 bajtů, má rozsah úprav od 0 do 4 294 967 295
  • Int: Má velikost 4 bajty, má rozsah úprav od -2 147 483 648 do 2 147 483 647
  • Long int: Má velikost 4 bajtů, má rozsah úprav od -2 147 483 648 do 2 147 483 647
  • Unsigned long int: Má velikost 4 bajtů, má rozsah úprav od 0 do 4 294 967,295
  • Long long int: Má velikost 8 bajtů a má řadu modifikací od –(2^63) do (2^63)-1
  • Unsigned long long int: Má velikost 8 bajtů, má rozsah modifikací od 0 do 18,446,744,073,709,551,615
  • Signed char: Má velikost 1 bajtu a má rozsah modifikací od -128 do 127
  • Unsigned char: Má velikost 1 bajtu a má rozsah modifikací od 0 do 255.

Výčet C++:

V programovacím jazyce C++ je ‚Enumeration‘ uživatelsky definovaný datový typ. Výčet je deklarován jako „ výčet' v C++. Používá se k přiřazení konkrétních jmen jakékoli konstantě používané v programu. Zlepšuje čitelnost a použitelnost programu.

Syntax:

Výčet v C++ deklarujeme takto:

enum název_výčtu { Konstanta1 , Konstanta2 , Konstantní3… }

Výhody Enumerace v C++:

Enum lze použít následujícími způsoby:

  • Může být často používán v příkazech switch case.
  • Může používat konstruktory, pole a metody.
  • Může rozšířit pouze třídu „enum“, nikoli jinou třídu.
  • Může to prodloužit dobu kompilace.
  • Dá se to projet.

Nevýhody výčtu v C++:

Enum má také několik nevýhod:

Pokud je jméno jednou vyjmenováno, nelze jej znovu použít ve stejném oboru.

Například:

enum Dny

{ So , slunce , Můj } ;

int So = 8 ; // Tento řádek obsahuje chybu

Enum nelze dopředu deklarovat.

Například:

enum tvary ;

barva třídy

{

prázdnota kreslit ( tvary aShape ) ; //tvary nebyly deklarovány

} ;

Vypadají jako jména, ale jsou to celá čísla. Mohou se tedy automaticky převést na jakýkoli jiný datový typ.

Například:

enum tvary

{

Trojúhelník , kruh , náměstí

} ;

int barva = modrý ;

barva = náměstí ;

Příklad:

V tomto příkladu vidíme použití výčtu C++:

Při tomto spuštění kódu nejprve začneme s #include . je jednou z bohatých knihoven v C++. Jedná se o vestavěnou knihovnu. Zahrnuje vstupní a výstupní datové toky . Poté použijeme standardní jmenný prostor. Poté jsme deklarovali ‚enum‘ konkrétní název jako předmět a přiřadili tři předměty, kterými jsou matematika, angličtina a urdština. Matematice je přiřazena hodnota 1. Naším cílem je vytisknout hodnoty předmětu deklarované ve výčtu. Poté vyvoláme hlavní() funkce. v hlavní() máme cout<<, kde „c“ znamená „znak“ a out znamená „výstup“. „Cout“ se používá k zobrazení výstupu . << označuje operátor vkládání. Pomocí ‚cout<<‘ vytiskneme hodnoty výčtu. Dále použijeme příkaz „návrat 0“. Tento příkaz vrátí výsledek ve formě hodnot.

Zde je náš výsledek provedeného programu:

Takže, jak vidíte, máme hodnoty předmětu: Math, Urdu, English; to je 1,2,3.

Příklad:

Zde je další příklad, jehož prostřednictvím objasníme naše koncepty o enum:

V tomto programu začneme integrací hlavičkového souboru . Jedná se o vestavěnou knihovnu. Zahrnuje vstupní a výstupní datové toky. Poté musíme použít standardní jmenný prostor. Potom jsme přiřadili hodnoty enum konstantám, které jsou hráči. Naším cílem je ukázat, kdo je nad tím. Dále zavoláme našim hlavní() funkce. V hlavní() funkci jsme přiřadili dvě konstanty: Shadab, jejíž hodnota je 20 do výčtové proměnné ‚bowler1‘; a Afridi, jejichž hodnota je 25 k výčtové proměnné ‚bowler2‘.

Musíme použít příkaz if-else . Také jsme použili operátor porovnání uvnitř příkazu „if“, což znamená, že porovnáváme, zda je „bowler2“ větší než „bowler1“. Poté se provede blok „if“, což znamená, že je konec Afridi. Poté jsme zadali „cout<<“, abychom zobrazili výstup. Nejprve vytiskneme prohlášení ‚Je konec‘. Poté hodnota „bowler2“. Pokud ne, je vyvolán blok else, což znamená, že Shadab skončil. Poté použitím příkazu „cout<<“ zobrazíme prohlášení „Je konec“. Poté hodnota „bowler1“.

Podle prohlášení If-else jich máme přes 25, což je hodnota Afridi. Znamená to, že hodnota výčtové proměnné ‚bowler2‘ je větší než ‚bowler1‘, proto se provede příkaz ‚if‘.

C++ Pokud je to jinak, přepněte:

V programovacím jazyce C++ používáme „příkaz if“ a „příkaz přepnout“ k úpravě toku programu. Tyto příkazy se používají k poskytování více sad příkazů pro implementaci programu v závislosti na skutečné hodnotě uvedených příkazů. Ve většině případů používáme operátory jako alternativy k příkazu „if“. Všechny tyto výše uvedené výroky jsou výroky o výběru, které jsou známé jako rozhodovací nebo podmíněné výroky.

Prohlášení „pokud“:

Tento příkaz se používá k testování daného stavu, kdykoli máte chuť změnit tok jakéhokoli programu. Zde, pokud je podmínka pravdivá, program provede zapsané instrukce, ale pokud je podmínka nepravdivá, prostě se ukončí. Podívejme se na příklad;

Toto je jednoduchý použitý příkaz „if“, kde inicializujeme proměnnou „int“ jako 10. Poté je od uživatele převzata hodnota a je zkontrolována v příkazu „if“. Pokud splňuje podmínky použité v příkazu „if“, zobrazí se výstup.

Protože zvolená číslice byla 40, výstupem je zpráva.

Prohlášení „Pokud-jinak“:

Ve složitějším programu, kde příkaz ‚if‘ obvykle nespolupracuje, používáme příkaz ‚if-else‘. V daném případě používáme ke kontrole použitých podmínek příkaz „if- else“.

Nejprve deklarujeme proměnnou datového typu ‚int‘ s názvem ‚x‘, jejíž hodnota je převzata od uživatele. Nyní je použit příkaz ‚if‘, kde jsme aplikovali podmínku, že pokud je celočíselná hodnota zadaná uživatelem 2. Výstup bude požadovaný a zobrazí se jednoduchá zpráva ‚NICE TRY‘. V opačném případě, pokud zadané číslo není 2, bude výstup jiný.

Když uživatel napíše číslo 2, zobrazí se následující výstup.

Když uživatel napíše jakékoli jiné číslo kromě 2, dostaneme výstup:

Příkaz If-else-if:

Vnořené příkazy if-else-if jsou poměrně složité a používají se, když je ve stejném kódu použito více podmínek. Pojďme se nad tím zamyslet na jiném příkladu:

Zde jsme po integraci hlavičkového souboru a jmenného prostoru inicializovali hodnotu proměnné ‚m‘ jako 200. Hodnota ‚m‘ je poté převzata od uživatele a poté křížově zkontrolována s více podmínkami uvedenými v programu.

Zde uživatel zvolil hodnotu 195. Proto výstup ukazuje, že se jedná o skutečnou hodnotu ‚m‘.

Přepnout příkaz:

Příkaz „switch“ se v C++ používá pro proměnnou, kterou je třeba otestovat, pokud se rovná seznamu více hodnot. V příkazu „přepnout“ identifikujeme podmínky ve formě samostatných případů a všechny případy mají na konci každého příkazu případ pauzu. U více případů se používají správné podmínky a příkazy s příkazy break, které ukončí příkaz switch a přejdou na výchozí příkaz v případě, že není podporována žádná podmínka.

Klíčové slovo „přestávka“:

Příkaz switch obsahuje klíčové slovo ‚break‘. Zastaví spuštění kódu v následujícím případě. Provádění příkazu switch končí, když kompilátor C++ narazí na klíčové slovo „break“ a ovládací prvek se přesune na řádek, který následuje za příkazem switch. V přepínači není nutné používat příkaz break. Provedení se přesune na další případ, pokud není použit.

V prvním řádku sdíleného kódu zahrneme knihovnu. Poté přidáme „namespace“. Vyvoláme hlavní() funkce. Poté deklarujeme stupeň znakového datového typu jako „F“. Tato známka může být vaším přáním a výsledek se zobrazí pro vybrané případy. Pro získání výsledku jsme použili příkaz switch.

Pokud jako známku zvolíme ‚F‘, výstup bude ‚příště více štěstí‘, protože toto je prohlášení, které chceme vytisknout v případě, že bude známka ‚F‘.

Změňme známku na X a uvidíme, co se stane. Napsal jsem „X“ jako známku a obdržený výstup je uveden níže:

Takže nesprávný případ ve „přepínači“ automaticky přesune ukazatel přímo na výchozí příkaz a ukončí program.

Příkazy If-else a switch mají některé společné rysy:

  • Tyto příkazy se používají ke správě způsobu provádění programu.
  • Oba vyhodnocují podmínku a ta určuje, jak program běží.
  • Přestože mají různé reprezentační styly, lze je použít ke stejnému účelu.

Příkazy If-else a switch se v určitých ohledech liší:

  • Zatímco uživatel definoval hodnoty v příkazech „switch“ case, zatímco omezení určují hodnoty v příkazech „if-else“.
  • Určit, kde je třeba změnu provést, zabere čas, je obtížné upravit prohlášení „jestliže“. Na druhou stranu se „přepínací“ příkazy snadno aktualizují, protože je lze snadno upravit.
  • Abychom zahrnuli mnoho výrazů, můžeme použít četné příkazy „if-else“.

C++ smyčky:

Nyní zjistíme, jak používat smyčky v programování v C++. Řídicí struktura známá jako „smyčka“ opakuje řadu příkazů. Jinými slovy, nazývá se to repetitivní struktura. Všechny příkazy se provádějí najednou v sekvenční struktuře . Na druhou stranu, v závislosti na zadaném příkazu, může struktura podmínky provést nebo vynechat výraz. V určitých situacích může být vyžadováno provedení příkazu více než jednou.

Typy smyček:

Existují tři kategorie smyček:

Pro smyčku:

Smyčka je něco, co se opakuje jako cyklus a zastaví se, když nepotvrdí poskytnutou podmínku. Smyčka „for“ mnohokrát implementuje posloupnost příkazů a zhušťuje kód, který si poradí s proměnnou smyčky. To ukazuje, jak je smyčka „for“ specifickým typem iterativní řídicí struktury, která nám umožňuje vytvořit smyčku, která se opakuje stanovený početkrát. Smyčka by nám umožnila provést „N“ počet kroků pomocí pouhého kódu jednoho jednoduchého řádku. Promluvme si o syntaxi, kterou budeme používat pro cyklus „for“, který se má spustit ve vaší softwarové aplikaci.

Syntaxe provádění cyklu „for“:

Příklad:

Zde používáme proměnnou smyčky k regulaci této smyčky ve smyčce „for“. Prvním krokem by bylo přiřazení hodnoty této proměnné, kterou uvádíme jako smyčku. Poté musíme definovat, zda je menší nebo větší než hodnota čítače. Nyní se má provést tělo smyčky a také se aktualizuje proměnná smyčky v případě, že příkaz vrátí hodnotu true. Výše uvedené kroky se často opakují, dokud nedosáhneme výstupní podmínky.

  • Inicializační výraz: Nejprve musíme nastavit čítač smyček na libovolnou počáteční hodnotu v tomto výrazu.
  • Testovací výraz : Nyní potřebujeme otestovat danou podmínku v daném výrazu. Pokud jsou kritéria splněna, provedeme tělo cyklu „for“ a budeme pokračovat v aktualizaci výrazu; pokud ne, musíme přestat.
  • Aktualizovat výraz: Tento výraz zvýší nebo sníží proměnnou smyčky o určitou hodnotu po provedení těla smyčky.

Příklady programů C++ pro ověření smyčky „For“:

Příklad:

Tento příklad ukazuje tisk celočíselných hodnot od 0 do 10.

V tomto scénáři máme vytisknout celá čísla od 0 do 10. Nejprve jsme inicializovali náhodnou proměnnou i s hodnotou „0“ a poté parametr podmínky, který jsme již použili, kontroluje podmínku, pokud i<=10. A když podmínku splní a stane se pravdivou, začne provádění cyklu „pro“. Po provedení se mezi dvěma parametry inkrementace nebo dekrementace provede jeden, ve kterém se hodnota proměnné i zvyšuje, dokud se zadaná podmínka i<=10 nezmění na nepravdu.

Počet iterací s podmínkou i<10:

č

iterací

Proměnné i<10 Akce
První i=0 skutečný Zobrazí se 0 a hodnota i se zvýší o 1.
Druhý i=1 skutečný Zobrazí se 1 a hodnota i se zvýší o 2.
Třetí i=2 skutečný Zobrazí se 2 a hodnota i se zvýší o 3.
Čtvrtý i=3 skutečný Zobrazí se 3 a hodnota i se zvýší o 4.
Pátý i=4 skutečný Zobrazí se 4 a hodnota i se zvýší o 5.
Šestý i=5 skutečný Zobrazí se 5 a hodnota i se zvýší o 6.
Sedmý i=6 skutečný Zobrazí se 6 a hodnota i se zvýší o 7.
Osmý i=7 skutečný Zobrazí se 7 a i se zvýší o 8
Devátý i=8 skutečný Zobrazí se 8 a hodnota i se zvýší o 9.
Desátý i=9 skutečný Zobrazí se 9 a hodnota i se zvýší o 10.
Jedenáctý i=10 skutečný Zobrazí se 10 a hodnota i se zvýší o 11.
Dvanáctý i=11 Nepravdivé Smyčka je ukončena.

Příklad:

Následující instance zobrazuje hodnotu celého čísla:

Ve výše uvedeném případě je proměnná s názvem 'a' inicializována hodnotou danou 50. Podmínka je aplikována, když je proměnná 'a' menší než 70. Poté je hodnota 'a' aktualizována tak, že je přidána 2. Hodnota 'a' se potom spustí od počáteční hodnoty, která byla 50, a 2 se přičítá souběžně v průběhu cyklu, dokud se podmínka nevrátí jako nepravda a hodnota 'a' se nezvýší ze 70 a smyčka neskončí.

Počet iterací:

č

Opakování

Variabilní a=50 Akce
První a=50 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 50 se stane 52
Druhý a=52 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 52 se stane 54
Třetí a=54 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 54 se stane 56
Čtvrtý a=56 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 56 se stane 58
Pátý a=58 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 58 se stane 60
Šestý a=60 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 60 se stane 62
Sedmý a=62 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 62 se stane 64
Osmý a=64 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 64 se stane 66
Devátý a=66 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 66 se stane 68
Desátý a=68 skutečný Hodnota a se aktualizuje přidáním dalších dvou celých čísel a z 68 se stane 70
Jedenáctý a=70 Nepravdivé Smyčka je ukončena

Zatímco smyčka:

Dokud není definovaná podmínka splněna, může být proveden jeden nebo více příkazů. Když je iterace předem neznámá, je velmi užitečná. Nejprve se zkontroluje podmínka a poté vstoupí do těla smyčky, aby se provedl nebo implementoval příkaz.

V prvním řádku začleníme hlavičkový soubor a standardní jmenný prostor. Zavoláme na hlavní() funkce. Zde inicializujeme proměnnou „a“. V dalším řádku aplikujeme podmínku while. V rámci podmínky while používáme příkaz „cout“ k zobrazení zapsané hodnoty. Poté použijeme operátor přírůstku ke zvýšení počtu. V posledním řádku použijeme příkaz „return 0“ k ukončení programu.

Do-While Loop:

Když je definovaná podmínka splněna, provede se řada příkazů. Nejprve se provede tělo smyčky. Poté se zkontroluje, zda je podmínka pravdivá nebo ne. Proto se příkaz provede jednou. Tělo cyklu je před vyhodnocením podmínky zpracováno ve smyčce „Do-while“. Program běží vždy, když je splněna požadovaná podmínka. V opačném případě, když je podmínka nepravdivá, program se ukončí.

Zde integrujeme hlavičkový soubor . Využíváme hlavní() funkce v programu. Poté inicializujeme čtyři celá čísla a použijeme příkaz „cin“, aby uživatel mohl zadat hodnotu. V dalším řádku inicializujeme dvě různá celá čísla. Aplikujeme příkaz „dělat“. Uvnitř příkazu používáme dvě aritmetické funkce. Za prvé použijeme operátor násobení a za druhé operátor sčítání. Poté v programu použijeme podmínku „while“ mimo příkaz „do“. Dále přidáme příkaz „cout“, abychom výsledek vytiskli přes celé číslo „výsledek“. V posledním řádku pro ukončení programu použijeme příkazy return 0.

C++ Pokračovat/Přerušit:

C++ Continue Statement:

Příkaz continue se používá v programovacím jazyce C++, aby se zabránilo aktuální inkarnaci smyčky a také přesunutí řízení do následující iterace. Během opakování lze příkaz continue použít k přeskočení určitých příkazů. Používá se také v rámci smyčky ve spojení s výkonnými prohlášeními. Pokud je konkrétní podmínka pravdivá, všechny příkazy následující za příkazem continue nebudou implementovány.

Se smyčkou for:

V tomto případě používáme „cyklus for“ s příkazem continue z C++, abychom získali požadovaný výsledek a zároveň splnili některé zadané požadavky.

Začneme zahrnutím knihovny a použitím ‚namespace std‘. Pak voláme na hlavní() funkce. Používáme pro smyčku. Uvnitř cyklu for deklarujeme proměnnou ‚k‘, která je považována za ležící mezi 3 a 8. Použijeme podmínku pro pokračování iterace, i když (k = = 5). Poté po zadání podmínky použijte příkaz „pokračovat“. Na konci. k zobrazení výstupu používáme příkaz „cout“ spolu s příkazem „return 0“.

S krátkou smyčkou:

Během této demonstrace jsme použili jak „smyčku while“, tak příkaz „pokračovat“ v C++ včetně některých podmínek, abychom viděli, jaký druh výstupu může být generován.

V tomto příkladu jsme nastavili podmínku pro sčítání čísel pouze do 40. Je-li zadané celé číslo záporné číslo, cyklus „while“ bude ukončen. Na druhou stranu, pokud je číslo větší než 40, bude toto konkrétní číslo z iterace vynecháno.

Zahrneme knihovnu s využitím ‚namespace std‘ a poté zavoláme hlavní() funkce. Inicializujeme proměnnou ‚s‘. Další proměnná ‘číslo’ je deklarována v dalším kroku. Používáme smyčku „while“. Nyní zadáme podmínku, že požadovaná hodnota bude vyšší nebo rovna nule. Pro sečtení všech kladných čísel použijeme příkaz ‚s += číslo‘. Příkaz „cout“ se použije k zobrazení zprávy na konzole „Zadejte libovolné číslo“. Celé číslo získáme od uživatele pomocí příkazu „cin“. Používáme také příkaz „pokud“. Kdykoli je definovaný počet větší než 40, zobrazí se zpráva. Poté jsme použili příkaz „pokračovat“. Po všech těchto krocích se provede příkaz „pokračovat“. Pro zobrazení součtu všech čísel používáme příkaz „cout“.

C++ příkaz break:

Kdykoli je příkaz break použit ve smyčce v C++, smyčka se okamžitě ukončí a řízení programu se restartuje v příkazu po smyčce. Případ je také možné ukončit v příkazu „přepnout“.

Se smyčkou for:

Zde použijeme smyčku „for“ s příkazem „break“ k pozorování výstupu iterací přes různé hodnoty.

Nejprve začleníme hlavičkový soubor . Dále použijeme ‚namespace std‘. Po zavolání funkce main() jsme použili pro cyklus. Zde bychom inicializovali proměnnou ‚m‘. Použijeme podmínku, že hodnota ‚m‘ leží mezi 10 a 20. Podmínka ‚přerušení‘ se provede, jako by (m == 17). K vytištění výsledku jsme použili „cout“. Poté bude použit příkaz „návrat 0“.

S krátkou smyčkou:

Spolu s příkazem break použijeme smyčku „while“.

Začneme importem knihovny . Bude zahrnut ‚namespace std‘. V rámci metody main() by byly inicializovány dvě proměnné ‚nbr‘ a ‚x‘. Použili jsme smyčku „while“ a jako argument jsme předali „true“. Abychom od uživatele získali hodnotu, používáme příkaz „cin“. Dále jsme použili příkaz „if“. Spolu s tím se použije podmínka „break“ pro specifikaci podmínky if (nbr < 0). Pro sečtení všech kladných hodnot jsme použili vzorce „x += nbr“. Pro zobrazení tohoto součtu jsme přidali příkaz „cout“.

Funkce C++:

Funkce se používají ke strukturování již známého programu do několika fragmentů kódů, které se spouštějí pouze tehdy, když je zavolán. V programovacím jazyce C++ je funkce definována jako skupina příkazů, kterým je přiřazen vhodný název a je jimi vyvolán. Uživatel může předávat data do funkcí, které nazýváme parametry. Funkce jsou zodpovědné za implementaci akcí, když je nejpravděpodobnější, že bude kód znovu použit.

Vytvoření funkce:

Ačkoli C++ poskytuje mnoho předdefinovaných funkcí, jako je hlavní(), což usnadňuje provádění kódu. Stejným způsobem můžete vytvářet a definovat své funkce podle vašich požadavků. Stejně jako všechny běžné funkce, i zde potřebujete název pro svou funkci pro deklaraci, která je přidána se závorkou za „()“.

Syntax:

Prázdná práce ( )

{

// tělo funkce

}

Void je návratový typ funkce. Labor je název a složené závorky by uzavíraly tělo funkce, kam přidáme kód pro provedení.

Volání funkce:

Funkce, které jsou deklarovány v kódu, se spouštějí pouze při jejich vyvolání. Pro volání funkce musíte zadat název funkce spolu se závorkou, za kterou následuje středník „;“.

Příklad:

Pojďme v této situaci deklarovat a vytvořit uživatelsky definovanou funkci.

Zpočátku, jak je popsáno v každém programu, je nám přidělena knihovna a jmenný prostor pro podporu provádění programu. Uživatelem definovaná funkce práce() se vždy volá před zapsáním hlavní() funkce. Funkce pojmenovaná práce() je deklarováno tam, kde je zobrazena zpráva ‚Práce si zaslouží respekt!‘. V hlavní() funkci s návratovým typem integer, voláme práce() funkce.

Toto je jednoduchá zpráva, která byla definována v uživatelsky definované funkci zobrazené zde pomocí hlavní() funkce.

Neplatné:

Ve výše uvedeném případě jsme si všimli, že návratový typ uživatelsky definované funkce je neplatný. To znamená, že funkce nevrací žádnou hodnotu. To znamená, že hodnota není přítomna nebo je pravděpodobně nulová. Protože kdykoli funkce pouze tiskne zprávy, nepotřebuje žádnou návratovou hodnotu.

Tato void se podobně používá v prostoru parametrů funkce, aby bylo jasné, že tato funkce nenabývá žádnou skutečnou hodnotu, když je volána. Ve výše uvedené situaci bychom také nazvali práce() fungovat jako:

Prázdná práce ( prázdnota )

{

Cout << „Práce si zaslouží respekt ! ;

}

Skutečné parametry:

Pro funkci lze definovat parametry. Parametry funkce jsou definovány v seznamu argumentů funkce, která se přidává k názvu funkce. Kdykoli voláme funkci, musíme předat skutečné hodnoty parametrů, abychom dokončili provádění. Ty jsou uzavřeny jako skutečné parametry. Zatímco parametry, které jsou definovány při definování funkce, jsou známé jako formální parametry.

Příklad:

V tomto příkladu se chystáme vyměnit nebo nahradit dvě celočíselné hodnoty pomocí funkce.

Na začátku bereme hlavičkový soubor. Uživatelsky definovaná funkce je deklarovaná a definovaná pojmenovaná sub(). Tato funkce se používá pro substituci dvou celočíselných hodnot, kterými jsou i a n. Dále jsou pro výměnu těchto dvou celých čísel použity aritmetické operátory. Hodnota prvního celého čísla „i“ se uloží místo hodnoty „n“ a hodnota n se uloží místo hodnoty „i“. Poté se vytiskne výsledek po přepnutí hodnot. Pokud mluvíme o hlavní() přebíráme hodnoty dvou celých čísel od uživatele a zobrazujeme je. V posledním kroku uživatelsky definovaná funkce sub() se zavolá a obě hodnoty se zamění.

V tomto případě dosazení dvou čísel jasně vidíme, že při použití sub() funkce, hodnoty „i“ a „n“ v seznamu parametrů jsou formálními parametry. Skutečné parametry jsou parametry, které jsou předány na konci hlavní() funkce, kde je volána substituční funkce.

Ukazatele C++:

Ukazatel v C++ je mnohem snazší se naučit a skvěle se používá. V jazyce C++ se používají ukazatele, protože nám usnadňují práci a všechny operace při použití ukazatelů fungují velmi efektivně. Existuje také několik úkolů, které nebudou provedeny, pokud nebudou použity ukazatele jako dynamická alokace paměti. Když mluvíme o ukazatelích, hlavní myšlenkou, kterou musíme pochopit, je, že ukazatel je pouze proměnná, která uloží přesnou adresu paměti jako svou hodnotu. Rozsáhlé použití ukazatelů v C++ je z následujících důvodů:

  • K předání jedné funkce druhé.
  • Chcete-li alokovat nové objekty na haldě.
  • Pro iteraci prvků v poli

Obvykle se pro přístup k adrese libovolného objektu v paměti používá operátor ‚&‘ (ampersand).

Ukazatele a jejich typy:

Ukazatel má několik typů:

  • Nulové ukazatele: Jedná se o ukazatele s hodnotou nula uložené v knihovnách C++.
  • Aritmetický ukazatel: Zahrnuje čtyři hlavní aritmetické operátory, které jsou dostupné, a to ++, –, +, -.
  • Řada ukazatelů: Jsou to pole, která se používají k ukládání některých ukazatelů.
  • Ukazatel na ukazatel: Je to místo, kde se ukazatel používá nad ukazatelem.

Příklad:

Zamyslete se nad následujícím příkladem, ve kterém jsou vytištěny adresy několika proměnných.

Po zahrnutí hlavičkového souboru a standardního jmenného prostoru inicializujeme dvě proměnné. Jednou je celočíselná hodnota reprezentovaná i‘ a další je pole typu znaku „I“ o velikosti 10 znaků. Adresy obou proměnných se pak zobrazí pomocí příkazu „cout“.

Výstup, který jsme obdrželi, je uveden níže:

Tento výsledek ukazuje adresu pro obě proměnné.

Na druhé straně je ukazatel považován za proměnnou, jejíž hodnota je sama o sobě adresou jiné proměnné. Ukazatel vždy ukazuje na datový typ, který má stejný typ, který je vytvořen pomocí operátoru (*).

Prohlášení ukazatele:

Ukazatel je deklarován takto:

typ * byl - název ;

Základní typ ukazatele je označen „typem“, zatímco název ukazatele je vyjádřen „var-name“. A pro označení proměnné k ukazateli se používá hvězdička(*).

Způsoby přiřazení ukazatelů k proměnným:

Int * ; //ukazatel celočíselného datového typu

Dvojnásobek * pd ; //ukazatel dvojitého datového typu

Plovák * pf ; //ukazatel datového typu float

Char * pc ; //ukazatel datového typu char

Téměř vždy existuje dlouhé hexadecimální číslo, které představuje adresu paměti, která je zpočátku stejná pro všechny ukazatele bez ohledu na jejich datové typy.

Příklad:

Následující instance by demonstrovala, jak ukazatele nahrazují operátor „&“ a ukládají adresu proměnných.

Chystáme se integrovat podporu knihoven a adresářů. Potom bychom vyvolali hlavní() funkce, kde nejprve deklarujeme a inicializujeme proměnnou ‚n‘ typu ‚int‘ s hodnotou 55. V dalším řádku inicializujeme ukazatelovou proměnnou s názvem ‚p1‘. Poté přiřadíme adresu proměnné ‚n‘ ukazateli ‚p1‘ a poté ukážeme hodnotu proměnné ‚n‘. Zobrazí se adresa ‚n‘, která je uložena v ukazateli ‚p1‘. Poté se hodnota ‚*p1‘ vytiskne na obrazovku pomocí příkazu ‚cout‘. Výstup je následující:

Zde vidíme, že hodnota „n“ je 55 a adresa „n“, která byla uložena v ukazateli „p1“, je zobrazena jako 0x6ffe14. Hodnota proměnné ukazatele je nalezena a je to 55, což je stejné jako hodnota celočíselné proměnné. Ukazatel tedy ukládá adresu proměnné a také ukazatel * má uloženou hodnotu celého čísla, které ve výsledku vrátí hodnotu původně uložené proměnné.

Příklad:

Podívejme se na další příklad, kdy používáme ukazatel, který ukládá adresu řetězce.

V tomto kódu nejprve přidáváme knihovny a jmenný prostor. V hlavní() musíme deklarovat řetězec s názvem ‚makeup‘, který má v sobě hodnotu ‚Řasenka‘. Ukazatel typu řetězce ‚*p2‘ se používá k uložení adresy proměnné makeupu. Hodnota proměnné ‚makeup‘ se pak zobrazí na obrazovce pomocí příkazu ‚cout‘. Poté se vytiskne adresa proměnné ‚makeup‘ a nakonec se zobrazí proměnná ukazatele ‚p2‘ s adresou paměti proměnné ‚makeup‘ s ukazatelem.

Výstup přijatý z výše uvedeného kódu je následující:

Na prvním řádku je zobrazena hodnota proměnné ‚makeup‘. Druhý řádek zobrazuje adresu proměnné ‚makeup‘. V posledním řádku je zobrazena paměťová adresa proměnné ‚makeup‘ s použitím ukazatele.

Správa paměti C++:

Pro efektivní správu paměti v C++ je mnoho operací užitečných pro správu paměti při práci v C++. Když používáme C++, nejběžněji používanou procedurou alokace paměti je dynamická alokace paměti, kde jsou paměti přiřazovány proměnným za běhu; ne jako jiné programovací jazyky, kde by kompilátor mohl alokovat paměť proměnným. V C++ je delokace proměnných, které byly dynamicky alokovány, nezbytná, aby se paměť uvolnila, když se proměnná již nepoužívá.

Pro dynamickou alokaci a dealokaci paměti v C++ provedeme „ Nový' a 'vymazat' operace. Je důležité spravovat paměť, aby nedošlo k plýtvání žádnou pamětí. Alokace paměti je snadná a efektivní. V každém programu C++ je paměť využívána jedním ze dvou aspektů: buď jako halda, nebo jako zásobník.

  • Zásobník : Všechny proměnné, které jsou deklarovány uvnitř funkce, a všechny další detaily, které s funkcí souvisejí, jsou uloženy v zásobníku.
  • Halda : Jakýkoli druh nevyužité paměti nebo část, ze které přidělujeme nebo přiřazujeme dynamickou paměť během provádění programu, se nazývá halda.

Při použití polí je alokace paměti úkol, kde prostě nemůžeme určit paměť, pokud není runtime. Poli tedy přiřadíme maximum paměti, ale to také není dobrá praxe, protože ve většině případů zůstává paměť nevyužitá a nějak se plýtvá, což prostě není dobrá volba nebo praxe pro váš osobní počítač. To je důvod, proč máme několik operátorů, které se používají k alokaci paměti z haldy během běhu. Dva hlavní operátory „new“ a „delete“ se používají pro efektivní alokaci paměti a dealokaci.

Nový operátor C++:

Nový operátor je zodpovědný za přidělení paměti a používá se následovně:

V tomto kódu zahrnujeme knihovnu a jmenný prostor. Poté jsme inicializovali ukazatel s datovým typem „int“. V dalším řádku je tomuto ukazateli přiřazen operátor „nový“.

Paměť byla úspěšně přidělena proměnné „int“ pomocí ukazatele.

Operátor odstranění C++:

Kdykoli skončíme s používáním proměnné, musíme uvolnit paměť, kterou jsme jí kdysi alokovali, protože se již nepoužívá. K tomu používáme operátor ‚delete‘ k uvolnění paměti.

Příkladem, který si nyní probereme, je zahrnutí obou operátorů.

Vypočítáváme průměr pro tři různé hodnoty převzaté od uživatele. Proměnným ukazatele je přiřazen operátor „new“ pro uložení hodnot. Vzorec průměru je implementován. Poté se použije operátor „delete“, který vymaže hodnoty, které byly uloženy v proměnných ukazatele pomocí operátoru „new“. Toto je dynamická alokace, kde se alokace provádí během běhu a poté k dealokaci dojde brzy po ukončení programu.

Použití pole pro alokaci paměti:

Nyní uvidíme, jak se používají operátory „new“ a „delete“ při použití polí. Dynamická alokace probíhá stejným způsobem jako u proměnných, protože syntaxe je téměř stejná.

V daném případě uvažujeme pole prvků, jejichž hodnota je převzata od uživatele. Vezmou se prvky pole a deklaruje se proměnná ukazatele a poté se alokuje paměť. Brzy po přidělení paměti se spustí procedura zadávání prvků pole. Dále je výstup pro prvky pole zobrazen pomocí smyčky „for“. Tato smyčka má podmínku iterace prvků, které mají velikost menší, než je skutečná velikost pole reprezentovaného n.

Když jsou všechny prvky použity a neexistuje žádný další požadavek na jejich opětovné použití, paměť přiřazená prvkům bude uvolněna pomocí operátoru „delete“.

Ve výstupu jsme viděli sady hodnot vytištěné dvakrát. První smyčka „for“ byla použita pro zapsání hodnot pro prvky a druhá smyčka „for“ se používá pro tisk již zapsaných hodnot, což ukazuje, že uživatel tyto hodnoty zapsal pro přehlednost.

výhody:

Operátory „new“ a „delete“ jsou v programovacím jazyce C++ vždy prioritou a jsou široce používány. Při důkladné diskusi a porozumění je třeba poznamenat, že „nový“ operátor má příliš mnoho výhod. Výhody „nového“ operátoru pro alokaci paměti jsou následující:

  • Nový operátor může být přetížen snadněji.
  • Při přidělování paměti za běhu by vždy, když není dostatek paměti, byla vyvolána automatická výjimka, nikoli pouze ukončení programu.
  • Shon s použitím procedury typového obsazení zde není přítomen, protože „nový“ operátor má stejný typ jako paměť, kterou jsme přidělili.
  • Operátor „new“ také odmítá myšlenku použití operátoru sizeof(), protože operátor „new“ nevyhnutelně vypočítá velikost objektů.
  • Operátor „new“ nám umožňuje inicializovat a deklarovat objekty, i když pro ně spontánně generuje prostor.

Pole C++:

Budeme mít důkladnou diskusi o tom, co jsou pole a jak jsou deklarována a implementována v programu C++. Pole je datová struktura používaná pro ukládání více hodnot pouze do jedné proměnné, čímž se snižuje shon při nezávislém deklarování mnoha proměnných.

Deklarace polí:

Pro deklaraci pole je třeba nejprve definovat typ proměnné a dát poli odpovídající název, který se pak přidá do hranatých závorek. To bude obsahovat počet prvků zobrazujících velikost konkrétního pole.

Například:

Provázkové líčení [ 5 ] ;

Tato proměnná je deklarována a ukazuje, že obsahuje pět řetězců v poli s názvem „makeup“. Abychom identifikovali a ilustrovali hodnoty pro toto pole, musíme použít složené závorky, přičemž každý prvek je samostatně uzavřen dvojitými obrácenými čárkami, každý oddělený jednou čárkou mezi nimi.

Například:

Provázkové líčení [ 5 ] = { 'Řasenka' , 'Nádech' , 'Rtěnka' , 'Nadace' , 'První' } ;

Podobně, pokud chcete vytvořit další pole s jiným datovým typem, který by měl být „int“, postup by byl stejný, stačí změnit datový typ proměnné, jak je uvedeno níže:

int Násobky [ 5 ] = { dva , 4 , 6 , 8 , 10 } ;

Při přiřazování celočíselných hodnot do pole je nesmíme obsahovat v obrácených čárkách, což by fungovalo pouze pro proměnnou typu string. Pole je tedy jednoznačně sbírkou vzájemně souvisejících datových položek s odvozenými datovými typy, které jsou v nich uloženy.

Jak získat přístup k prvkům v poli?

Všem prvkům obsaženým v poli je přiřazeno odlišné číslo, které je jejich indexovým číslem, které se používá pro přístup k prvku z pole. Hodnota indexu začíná od 0 do jedné menší, než je velikost pole. Úplně první hodnota má hodnotu indexu 0.

Příklad:

Zvažte velmi základní a snadný příklad, ve kterém budeme inicializovat proměnné v poli.

Hned v prvním kroku začleňujeme hlavičkový soubor , který do programu automaticky přidá všechny potřebné knihovny. Jmenný prostor ‚std‘ poskytne rozsah pro adresáře. Ve třetím řádku voláme hlavní() funkce. Složená závorka znamená začátek funkce. Po vstupu do funkce deklarujeme pole typu ‚int‘ s názvem ‚digits‘. Obsahuje velikost 4, což znamená, že může obsahovat pouze 4 celočíselné hodnoty najednou. Každému z prvků v poli byla přiřazena jedinečná a odlišná číslice samostatně. Poté se zobrazí celé pole, přičemž každá položka je vyvolána samostatně.

Toto je výsledek získaný z výše uvedeného kódu. Klíčové slovo „endl“ automaticky přesune další položku na další řádek.

Příklad:

V tomto kódu používáme smyčku „for“ pro tisk položek pole.

Ve výše uvedeném případě přidáváme základní knihovnu. Přidává se standardní jmenný prostor. The hlavní() funkce je funkce, kde budeme provádět všechny funkce pro provedení konkrétního programu. Dále deklarujeme pole typu int s názvem ‚Num‘, které má velikost 10. Hodnota těchto deseti proměnných je převzata od uživatele pomocí cyklu ‚for‘. Pro zobrazení tohoto pole je opět použita smyčka „for“. 10 celých čísel uložených v poli se zobrazí pomocí příkazu „cout“.

Toto je výstup, který jsme získali při provádění výše uvedeného kódu, ukazující 10 celých čísel s různými hodnotami.

Příklad:

V tomto scénáři se chystáme zjistit průměrné skóre studenta a procento, které ve třídě získal.

Nejprve musíte přidat knihovnu, která bude poskytovat počáteční podporu programu C++. Dále určujeme velikost 5 pole s názvem „Skóre“. Poté jsme inicializovali proměnnou ‚součet‘ datového typu float. Skóre každého předmětu se přebírají od uživatele ručně. Poté se použije smyčka „pro“ pro zjištění průměru a procenta všech zahrnutých subjektů. Součet se získá pomocí pole a cyklu „for“. Potom se průměr zjistí pomocí vzorce průměru. Po zjištění průměru předáme jeho hodnotu procentu, které je přidáno do vzorce pro získání procenta. Poté se vypočítá a zobrazí průměr a procento.

Toto je konečný výstup, kde se od uživatele přebírají skóre pro každý subjekt jednotlivě a vypočítá se průměr a procento.

Výhody použití Arrays:

  • Položky v poli jsou snadno přístupné díky indexovému číslu, které jim bylo přiřazeno.
  • Vyhledávací operaci můžeme snadno provést přes pole.
  • V případě, že chcete složitosti v programování, můžete použít 2-rozměrné pole, které také charakterizuje matice.
  • Pro uložení více hodnot, které mají podobný datový typ, lze snadno použít pole.

Nevýhody použití polí:

  • Pole mají pevnou velikost.
  • Pole jsou homogenní, což znamená, že je uložen pouze jeden typ hodnoty.
  • Pole ukládají data do fyzické paměti jednotlivě.
  • Proces vkládání a mazání není pro pole snadný.

Objekty a třídy C++:

C++ je objektově orientovaný programovací jazyk, což znamená, že objekty hrají v C++ zásadní roli. Když mluvíme o objektech, musíme nejprve zvážit, co jsou objekty, takže objekt je jakákoli instance třídy. Protože C++ se zabývá koncepty OOP, hlavními věcmi, o kterých je třeba diskutovat, jsou objekty a třídy. Třídy jsou ve skutečnosti datové typy, které jsou definovány samotným uživatelem a jsou určeny k zapouzdření datových členů a funkcí, které jsou přístupné pouze, je vytvořena instance pro konkrétní třídu. Datové členy jsou proměnné, které jsou definovány uvnitř třídy.



Třída jinými slovy je osnova nebo návrh, který je zodpovědný za definici a deklaraci datových členů a funkcí přiřazených těmto datovým členům. Každý z objektů, které jsou deklarovány ve třídě, by byl schopen sdílet všechny vlastnosti nebo funkce předvedené třídou.

Předpokládejme, že existuje třída s názvem ptáci, nyní zpočátku všichni ptáci mohli létat a mít křídla. Proto je létání chování, které si tito ptáci osvojují, a křídla jsou součástí jejich těla nebo základní vlastností.







Definování třídy:

Pro definování třídy musíte sledovat syntaxi a resetovat ji podle vaší třídy. Klíčové slovo ‚class‘ se používá k definování třídy a všechny ostatní datové členy a funkce jsou definovány ve složených závorkách následovaných definicí třídy.





Class NameOfClass

{

Specifikátor přístupu :

Datové členy ;

Funkce datových členů ( ) ;

} ;

Deklarace objektů:

Brzy po definování třídy musíme vytvořit objekty pro přístup a definovat funkce, které byly specifikovány třídou. K tomu musíme napsat název třídy a poté název objektu pro deklaraci.



Přístup k datovým členům:

K funkcím a datovým členům se přistupuje pomocí jednoduchého operátora s tečkou „.“. K veřejným datovým členům se také přistupuje u tohoto operátora, ale v případě soukromých datových členů k nim prostě nemáte přímý přístup. Přístup datových členů závisí na řízení přístupu, které jim udělují modifikátory přístupu, které jsou buď soukromé, veřejné nebo chráněné. Zde je scénář, který ukazuje, jak deklarovat jednoduchou třídu, datové členy a funkce.











Příklad:

V tomto příkladu budeme definovat několik funkcí a přistupovat k funkcím třídy a datovým členům pomocí objektů.



V prvním kroku integrujeme knihovnu, poté musíme zahrnout podpůrné adresáře. Třída je explicitně definována před voláním hlavní() funkce. Tato třída se nazývá „vozidlo“. Datové členy byly „název vozidla“ a „id“ tohoto vozidla, což je poznávací značka pro toto vozidlo s řetězcem, respektive datový typ int. Tyto dvě funkce jsou deklarovány pro tyto dva datové členy. The id() funkce zobrazí ID vozidla. Protože datové členy třídy jsou veřejné, můžeme k nim přistupovat i mimo třídu. Proto voláme na název() funkci mimo třídu a poté převzít hodnotu pro ‚VehicleName‘ od uživatele a vytisknout ji v dalším kroku. V hlavní() funkce, deklarujeme objekt požadované třídy, který pomůže při přístupu k datovým členům a funkcím třídy. Dále inicializujeme hodnoty pro název vozidla a jeho id, pouze pokud uživatel nezadá hodnotu pro název vozidla.

Toto je výstup obdržený, když uživatel sám zadá název vozidla a SPZ jsou statickou hodnotou, která mu byla přiřazena.

Když mluvíme o definici členských funkcí, je třeba pochopit, že není vždy povinné definovat funkci uvnitř třídy. Jak můžete vidět ve výše uvedeném příkladu, definujeme funkci třídy mimo třídu, protože datové členy jsou veřejně deklarovány a to se provádí pomocí operátoru rozlišení rozsahu zobrazeného jako „::“ spolu s názvem třídy třídu a název funkce.

C++ konstruktory a destruktory:

Pomocí příkladů se na toto téma podíváme důkladně. Velmi důležité je mazání a vytváření objektů v programování C++. Proto kdykoli vytvoříme instanci pro třídu, v několika případech automaticky voláme metody konstruktoru.

Konstruktéři:

Jak název napovídá, konstruktor je odvozen od slova „konstruovat“, které určuje vytvoření něčeho. Konstruktor je tedy definován jako odvozená funkce nově vytvořené třídy, která sdílí název třídy. A používá se pro inicializaci objektů obsažených ve třídě. Konstruktor také nemá návratovou hodnotu pro sebe, což znamená, že jeho návratový typ nebude ani neplatný. Není povinné přijmout argumenty, ale v případě potřeby je lze přidat. Konstruktory jsou užitečné při přidělování paměti objektu třídy a při nastavování počáteční hodnoty pro členské proměnné. Počáteční hodnotu lze předat funkci konstruktoru ve formě argumentů, jakmile je objekt inicializován.

Syntax:

NameOfTheClass ( )
{
//tělo konstruktoru
}

Typy konstruktérů:

Parametrizovaný konstruktor:

Jak bylo diskutováno dříve, konstruktor nemá žádný parametr, ale lze přidat parametr podle vlastního výběru. Tím se inicializuje hodnota objektu při jeho vytváření. Pro lepší pochopení tohoto konceptu zvažte následující příklad:

Příklad:

V tomto případě bychom vytvořili konstruktor třídy a deklarovali parametry.

Hned v prvním kroku začleňujeme hlavičkový soubor. Dalším krokem použití jmenného prostoru je podpora adresářů programu. Je deklarována třída s názvem ‚číslice‘, kde jsou nejprve veřejně inicializovány proměnné, aby mohly být přístupné v celém programu. Je deklarována proměnná s názvem ‚dig1‘ s datovým typem celé číslo. Dále jsme deklarovali konstruktor, jehož jméno je podobné názvu třídy. Tomuto konstruktoru je předána celočíselná proměnná jako „n“ a proměnná třídy „dig1“ je nastavena na n. V hlavní() funkce programu se vytvoří tři objekty pro třídu ‚číslice‘ a přiřadí se jim nějaké náhodné hodnoty. Tyto objekty se pak použijí k vyvolání proměnných třídy, kterým jsou automaticky přiřazeny stejné hodnoty.

Celočíselné hodnoty jsou prezentovány na obrazovce jako výstup.

Kopírovat konstruktor:

Je to typ konstruktoru, který považuje objekty za argumenty a duplikuje hodnoty datových členů jednoho objektu do druhého. Proto se tyto konstruktory používají k deklaraci a inicializaci jednoho objektu od druhého. Tento proces se nazývá inicializace kopírování.

Příklad:

V tomto případě bude deklarován konstruktor kopírování.

Nejprve integrujeme knihovnu a adresář. Je deklarována třída s názvem ‚New‘, ve které jsou celá čísla inicializována jako ‚e‘ a ‚o‘. Konstruktor je zveřejněn, kde jsou dvěma proměnným přiřazeny hodnoty a tyto proměnné jsou deklarovány ve třídě. Poté jsou tyto hodnoty zobrazeny pomocí hlavní() funkce s „int“ jako návratovým typem. The Zobrazit() funkce je volána a definována poté, kde se čísla zobrazují na obrazovce. Uvnitř hlavní() funkce, jsou vytvořeny objekty a tyto přiřazené objekty jsou inicializovány náhodnými hodnotami a poté Zobrazit() používá se metoda.

Výstup získaný použitím konstruktoru kopírování je uveden níže.

Torpédoborce:

Jak název definuje, destruktory se používají ke zničení vytvořených objektů konstruktorem. Ve srovnání s konstruktory mají destruktory identické jméno jako třída, ale následuje další vlnovka (~).

Syntax:

~Nové ( )
{
}

Destruktor nebere žádné argumenty a nemá ani žádnou návratovou hodnotu. Kompilátor implicitně apeluje na ukončení programu pro vyčištění úložiště, které již není přístupné.

Příklad:

V tomto scénáři používáme k odstranění objektu destruktor.

Zde je vytvořena třída „Obuv“. Vytvoří se konstruktor, který má podobný název jako třída. V konstruktoru se zobrazí zpráva, kde je objekt vytvořen. Po konstruktoru je vytvořen destruktor, který odstraňuje objekty vytvořené konstruktorem. V hlavní() funkce, vytvoří se objekt ukazatele s názvem „s“ a k odstranění tohoto objektu se použije klíčové slovo „delete“.

Toto je výstup, který jsme obdrželi z programu, kde destruktor čistí a ničí vytvořený objekt.

Rozdíl mezi konstruktory a destruktory:

Konstruktéři ničitelé
Vytvoří instanci třídy. Zničí instanci třídy.
Má argumenty podél názvu třídy. Nemá žádné argumenty ani parametry
Volá se při vytvoření objektu. Volá se, když je objekt zničen.
Přiděluje paměť objektům. Dealokuje paměť objektů.
Může být přetížen. Nelze přetížit.

Dědičnost C++:

Nyní se seznámíme s dědičností C++ a jejím rozsahu.

Dědičnost je metoda, jejímž prostřednictvím se generuje nová třída nebo je odvozena z existující třídy. Současná třída se nazývá „základní třída“ nebo také „rodičovská třída“ a nově vytvořená třída se nazývá „odvozená třída“. Když říkáme, že podřízená třída je zděděna z nadřazené třídy, znamená to, že podřízená třída má všechny vlastnosti nadřazené třídy.

Dědičnost se týká (je) vztahu. Jakýkoli vztah nazýváme dědičností, pokud se mezi dvěma třídami používá ‚is-a‘.

Například:

  • Papoušek je pták.
  • Počítač je stroj.

Syntax:

V programování v C++ používáme nebo zapisujeme dědičnost následovně:

třída < odvozený - třída >: < přístup - specifikátor < základna - třída >

Režimy dědičnosti C++:

Dědičnost zahrnuje 3 režimy dědění tříd:

  • Veřejnost: V tomto režimu, pokud je deklarována podřízená třída, potom členové nadřazené třídy zdědí podřízená třída stejně jako v nadřazené třídě.
  • Chráněno: I V tomto režimu se veřejní členové rodičovské třídy stanou chráněnými členy v podřízené třídě.
  • Soukromé : V tomto režimu se všichni členové nadřazené třídy stanou soukromými v podřízené třídě.

Typy dědičnosti C++:

Níže jsou uvedeny typy dědičnosti C++:

1. Jediné dědictví:

S tímto druhem dědičnosti vznikly třídy z jedné základní třídy.

Syntax:

třída M
{
Tělo
} ;
třída N : veřejný M
{
Tělo
} ;

2. Vícenásobná dědičnost:

Při tomto druhu dědičnosti může třída pocházet z různých základních tříd.

Syntax:

třída M

{

Tělo

} ;

třída N

{

Tělo

} ;

třída O : veřejný M , veřejný N

{

Tělo

} ;

3. Víceúrovňová dědičnost:

Podřízená třída je potomkem jiné podřízené třídy v této formě dědění.

Syntax:

třída M

{

Tělo

} ;

třída N : veřejný M

{

Tělo

} ;

třída O : veřejný N

{

Tělo

} ;

4. Hierarchická dědičnost:

V této metodě dědičnosti je z jedné základní třídy vytvořeno několik podtříd.

Syntax:

třída M

{

Tělo

} ;

třída N : veřejný M

{

Tělo

} ;

třída O : veřejný M

{

} ;

5. Hybridní dědičnost:

V tomto druhu dědictví se kombinuje více dědictví.

Syntax:

třída M

{

Tělo

} ;

třída N : veřejný M

{

Tělo

} ;

třída O

{

Tělo

} ;

třída P : veřejný N , veřejný O

{

Tělo

} ;

Příklad:

Spustíme kód, abychom demonstrovali koncept vícenásobné dědičnosti v programování C++.

Protože jsme začali se standardní vstupně-výstupní knihovnou, pak jsme dali základní třídě název ‚Bird‘ a zveřejnili jsme ji, aby její členové byli přístupní. Pak máme základní třídu „Reptile“ a také jsme ji zveřejnili. Poté máme „cout“ pro tisk výstupu. Poté jsme vytvořili „tučňáka“ pro děti. V hlavní() funkce jsme vytvořili objekt třídy tučňák ‚p1‘. Nejprve se spustí třída ‚Bird‘ a poté třída ‚Plaz‘.

Po provedení kódu v C++ získáme výstupní příkazy základních tříd ‚Bird‘ a ‚Reptile‘. To znamená, že třída „tučňák“ je odvozena ze základních tříd „Pták“ a „Plaz“, protože tučňák je pták stejně jako plaz. Umí létat stejně jako se plazit. Vícenásobná dědičnost tedy dokázala, že jedna podřízená třída může být odvozena z mnoha základních tříd.

Příklad:

Zde spustíme program, který ukáže, jak využít víceúrovňovou dědičnost.

Náš program jsme zahájili pomocí vstupně-výstupních proudů. Poté jsme deklarovali nadřazenou třídu ‚M‘, která je nastavena jako veřejná. Zavolali jsme na Zobrazit() funkce a příkaz „cout“ pro zobrazení výpisu. Dále jsme vytvořili podřízenou třídu ‚N‘, která je odvozena od nadřazené třídy ‚M‘. Máme novou podřízenou třídu ‚O‘ odvozenou od podřízené třídy ‚N‘ a tělo obou odvozených tříd je prázdné. Nakonec vyvoláme hlavní() funkce, ve které musíme inicializovat objekt třídy ‚O‘. The Zobrazit() funkce objektu se využívá k demonstraci výsledku.

Na tomto obrázku máme výsledek třídy „M“, což je rodičovská třída, protože jsme měli a Zobrazit() fungovat v něm. Třída „N“ je tedy odvozena od nadřazené třídy „M“ a třída „O“ od nadřazené třídy „N“, která odkazuje na víceúrovňovou dědičnost.

Polymorfismus C++:

Termín „polymorfismus“ představuje soubor dvou slov „poly“ a ' morfismus' . Slovo „Poly“ představuje „mnoho“ a „morfismus“ představuje „formy“. Polymorfismus znamená, že se objekt může v různých podmínkách chovat odlišně. Umožňuje programátorovi znovu použít a rozšířit kód. Stejný kód se chová odlišně podle podmínky. Uzákonění objektu lze použít za běhu.

Kategorie polymorfismu:

Polymorfismus se vyskytuje hlavně dvěma způsoby:

  1. Polymorfismus času kompilace
  2. Polymorfismus doby běhu

Pojďme si to vysvětlit.

6. Polymorfismus doby kompilace:

Během této doby se zadaný program změní na spustitelný program. Před nasazením kódu jsou zjištěny chyby. Jsou to především dvě kategorie.

  • Přetížení funkcí
  • Přetížení operátora

Podívejme se, jak tyto dvě kategorie využíváme.

7. Přetížení funkcí:

To znamená, že funkce může provádět různé úkoly. Funkce jsou známé jako přetížené, pokud existuje několik funkcí s podobným názvem, ale odlišnými argumenty.

Nejprve použijeme knihovnu a také standardní jmenný prostor. Potom bychom deklarovali uživatelem definovanou třídu ‚Přidat‘. Uvnitř třídy definujeme funkci ADD() se dvěma parametry jako public. Znovu deklarujte novou funkci v těle třídy se stejným názvem, ale tato funkce nemá žádný parametr. Zde inicializujeme tři řetězce. První dva řetězce mají nějakou hodnotu a poslední řetězec se používá ke zřetězení prvních dvou řetězců. K vytištění výsledku použijeme příkaz „cout“. Dále zavoláme hlavní() metoda mimo třídu. Zkonstruujeme objekt požadované třídy ‚Add‘. Nyní zavoláme první funkci se dvěma parametry a poté také zavoláme druhou funkci. V posledním kroku zahrneme příkaz „return 0“ pro ukončení programu.

Přetížení operátora:

Proces definování více funkcí operátora se nazývá přetížení operátora.

Výše uvedený příklad zahrnuje soubor záhlaví . Potom jsme použili standardní jmenný prostor. Definujeme třídu ‚Integer‘. V rámci této třídy zadáváme celé číslo jako soukromého člena třídy. Dále deklarujeme parametrizovaný konstruktor jako veřejný člen a inicializujeme v něm hodnotu celého čísla. Definujeme konstruktor s přetěžujícím prefixovým operátorem. Uvnitř tohoto konstruktoru provádíme operaci s prefixem. Kromě toho vytvoříme funkci, která zobrazí hodnotu přírůstku pomocí příkazu „cout“. Mezitím vyvoláme hlavní() funkce. Zde vytvoříme dva objekty třídy. První objekt předá hodnotu celého čísla. Poté použijte příkaz „cout“ k vytištění řádku „Před zvýšením hodnoty je“. Dále zavoláme Zobrazit() funkce pro první objekt. Druhý objekt používá operátor předběžného zvýšení. K zobrazení řádku „Po předběžném zvýšení je hodnota“ používáme příkaz „cout“. Poté použijeme Zobrazit() funkce pro druhý objekt.

8. Polymorfismus doby běhu:

Je to časový úsek, ve kterém kód běží. Po použití kódu lze detekovat chyby.

Přepsání funkce:

Stává se to, když odvozená třída používá podobnou definici funkce jako jedna z členských funkcí základní třídy.

V prvním řádku začleňujeme knihovnu pro provádění vstupních a výstupních operací. Dále přidáme standardní jmenný prostor. V dalším řádku deklarujeme nadřazenou třídu ‚Muž‘. Uvnitř třídy definujeme funkci se dvěma parametry jako public. Poté použijeme příkaz „cout“ k zobrazení textu „Chůze“. Mimo třídu vytvoříme podřízenou třídu ‚Zvíře‘, která je odvozena od rodičovské třídy. Zde vytvoříme funkci, která má podobný název jako ta, která byla dříve deklarována v nadřazené třídě. Poté použijte příkaz „cout“ k zobrazení textu „Jíst“. Používáme hlavní() funkce. Mezitím vytvoříme objekt třídy ‚m‘. Poté zavoláme funkci nadřazené třídy i funkci podřízené třídy. Použijte příkaz „návrat 0“.

Řetězce C++:

Nyní zjistíme, jak deklarovat a inicializovat řetězec v C++. Řetězec se používá k uložení skupiny znaků v programu. V programu ukládá abecední hodnoty, číslice a symboly speciálního typu. Vyhradila znaky jako pole v programu C++. Pole se používají k rezervaci kolekce nebo kombinace znaků v programování C++. K ukončení pole se používá speciální symbol známý jako znak null. Je reprezentována escape sekvencí (\0) a používá se k určení konce řetězce.

Získejte řetězec pomocí příkazu „cin“:

Používá se k zadání řetězcové proměnné bez prázdného místa. V daném případě implementujeme program C++, který získá jméno uživatele pomocí příkazu ‚cin‘.

V prvním kroku použijeme knihovnu . Mezitím jsme zahrnuli standardní jmenný prostor. Dále prohlašujeme hlavní() funkce. Inicializujeme řetězec znakového typu v těle souboru hlavní() funkce. Poté pomocí příkazu „cout“ vytiskneme „Zadejte své jméno“. Použijeme příkaz „cin“ k vyžádání řetězce od uživatele. Příkaz ‚cout‘ se použije k vytištění jména, které by zapsal uživatel. Pro ukončení programu je přidán příkaz return 0.

Uživatel zadá jméno „Ahmed Chaudry“. Ale dostaneme pouze „Ahmed“ jako výstup spíše než kompletní „Ahmed Chaudry“, protože příkaz „cin“ nemůže uložit řetězec s prázdným místem. Ukládá pouze hodnotu před mezerou.

Získejte řetězec pomocí funkce cin.get():

The dostat() funkce příkazu cin se používá k získání řetězce z klávesnice, který může obsahovat prázdná místa.

Výše uvedený příklad zahrnuje knihovnu pro provádění vstupních a výstupních operací. Poté jsme použili standardní jmenný prostor. The hlavní() funkce je volána. Poté inicializujeme řetězec s názvem „s“. V dalším kroku se příkaz „cout“ použije k zobrazení příkazu „Zadejte řetězec“. The cin.get() se použije k získání řetězce od uživatele. Pomocí cin.get() funkci předáme hodnotu řetězce a jako parametr zadáme velikost řetězce. K zobrazení výstupu programu se opět použije příkaz „cout“. Nakonec přidáme návrat 0.

Uživatel zadá řetězec „Jmenuji se Ali“. Výsledkem je úplný řetězec „Jmenuji se Ali“, protože funkce cin.get() přijímá řetězce, které obsahují prázdná místa.

Použití 2D (dvourozměrného) pole řetězců:

V tomto případě přebíráme vstup (název tří měst) od uživatele pomocí 2D pole řetězců.

Nejprve integrujeme hlavičkový soubor a standardní jmenný prostor. Vyvoláme hlavní() funkce. Poté inicializujeme dvourozměrné pole znaků se třemi řádky a patnácti sloupci. V dalším kroku se smyčka for používá k počítání proměnné ‚i‘ k iteraci přes požadovaný řetězec, dokud není identifikován znak null. Uvnitř těla cyklu „pro“ používáme příkaz „cout“ k zobrazení řádku „Zadejte název města“. Poté použijte příkaz „cin“ k získání názvu města. Opět použijeme další smyčku „for“ a příkaz „cout“ k zobrazení názvů měst v sekvenci, dokud smyčka neskončí. Dále se použije příkaz „návrat 0“.

Zde uživatel zadá název tří různých měst. Program používá index řádku k získání tří hodnot řetězce. Každá hodnota je zachována ve vlastním řádku. První řetězec je uložen v prvním řádku a tak dále. Každá hodnota řetězce je zobrazena stejným způsobem pomocí indexu řádku.

Standardní knihovna C++:

Knihovna C++ je shluk nebo seskupení mnoha funkcí, tříd, konstant a všech souvisejících položek uzavřených téměř v jedné správné sadě, vždy definující a deklarující standardizované hlavičkové soubory. Jejich implementace zahrnuje dva nové hlavičkové soubory, které standard C++ nevyžaduje, nazvané a . Existuje dlouhý seznam povinných hlavičkových souborů, který závisí na požadavcích kompilátoru. Soubory záhlaví obsahují seznam záhlaví, který má veškerý obsah ze standardní knihovny C++, včetně specifických souborů záhlaví pro šablonu Stand Library Template (STL).

Standardní knihovna odstraňuje shon s přepisováním instrukcí při programování. To má uvnitř mnoho knihoven, které mají uložený kód pro mnoho funkcí. Pro dobré využití těchto knihoven je nutné je propojit pomocí hlavičkových souborů. Když importujeme vstupní nebo výstupní knihovnu, znamená to, že importujeme veškerý kód, který byl uložen v této knihovně, a tak můžeme použít i funkce v ní obsažené tím, že skryjeme veškerý základní kód, který možná nepotřebujete. vidět.

Standardní knihovna C++ podporuje následující dva typy:

  • Hostovaná implementace, která poskytuje všechny základní soubory záhlaví standardních knihoven popsané standardem C++ ISO.
  • Samostatná implementace, která vyžaduje pouze část hlavičkových souborů ze standardní knihovny. Vhodná podmnožina je:
(prohlašující alespoň

Atomic_signed_lock_free a atomic-unsigned_lock_free)

(deklaruje alespoň atexit,abort, at_quick_exit, exit, quick_exit)

Několik hlavičkových souborů bylo odsouzeno od doby, kdy přišlo posledních 11 C++: To jsou , a .

Rozdíly mezi hostovanými a volně stojícími implementacemi jsou znázorněny níže:

  • V hostované implementaci musíme použít globální funkci, která je hlavní funkcí. V samostatné implementaci může uživatel deklarovat a definovat počáteční a koncové funkce samostatně.
  • Hostingová implementace má jedno vlákno povinně spuštěné v době shody. Zatímco v samostatné implementaci se implementátoři sami rozhodnou, zda potřebují podporu souběžného vlákna ve své knihovně.

Typy:

Jak volně stojící, tak hostované jsou podporovány v C++. Soubory záhlaví jsou rozděleny do následujících dvou:

  • Části Iostream
  • Části C++ STL (standardní knihovna)

Kdykoli píšeme program pro spuštění v C++, vždy voláme funkce, které jsou již implementovány uvnitř STL. Tyto známé funkce efektivně přebírají vstup a výstup pomocí identifikovaných operátorů.

S ohledem na historii byla STL zpočátku nazývána standardní knihovnou šablon. Poté byly části knihovny STL standardizovány ve standardní knihovně C++, která se používá v současnosti. Patří mezi ně běhová knihovna ISO C++ a několik fragmentů z knihovny Boost včetně některých dalších důležitých funkcí. Příležitostně STL označuje kontejnery nebo častěji algoritmy standardní knihovny C++. Nyní tato knihovna STL nebo standardních šablon hovoří výhradně o známé standardní knihovně C++.

Jmenný prostor std a hlavičkové soubory:

Všechny deklarace funkcí nebo proměnných se provádějí v rámci standardní knihovny pomocí hlavičkových souborů, které jsou mezi nimi rovnoměrně rozmístěny. K prohlášení by nedošlo, pokud nezahrnete hlavičkové soubory.

Předpokládejme, že někdo používá seznamy a řetězce, potřebuje přidat následující hlavičkové soubory:

#include <řetězec>

#include

Tyto hranaté závorky „<>“ znamenají, že je nutné vyhledat tento konkrétní hlavičkový soubor v adresáři, který je definován a zahrnut. Do této knihovny lze také přidat příponu „.h“, což se provádí v případě potřeby nebo přání. Pokud vyloučíme knihovnu ‚.h‘, potřebujeme dodatek ‚c‘ těsně před začátkem názvu souboru, jen jako označení, že tento hlavičkový soubor patří do knihovny C. Můžete například napsat (#include nebo #include ).

Když mluvíme o jmenném prostoru, celá standardní knihovna C++ leží uvnitř tohoto jmenného prostoru označeného jako std. To je důvod, proč musí být standardizované názvy knihoven kompetentně definovány uživateli. Například:

Std :: cout << 'Tohle přejde.' !/ n' ;

C++ vektory:

Existuje mnoho způsobů, jak ukládat data nebo hodnoty v C++. Zatím však hledáme nejjednodušší a nejflexibilnější způsob ukládání hodnot při psaní programů v jazyce C++. Takže vektory jsou kontejnery, které jsou správně sekvenovány v sériovém vzoru, jehož velikost se mění v době provádění v závislosti na vložení a odečtení prvků. To znamená, že programátor mohl během provádění programu měnit velikost vektoru podle svého přání. Připomínají pole takovým způsobem, že mají také sdělitelné úložné pozice pro jejich zahrnuté prvky. Pro kontrolu počtu hodnot nebo prvků přítomných uvnitř vektorů musíme použít „ std::count' funkce. Vektory jsou zahrnuty ve standardní knihovně šablon C++, takže má určitý soubor záhlaví, který je třeba zahrnout jako první, tj.

#include

Prohlášení:

Deklarace vektoru je uvedena níže.

Std :: vektor < DT > NameOfVector ;

Zde je použitým klíčovým slovem vektor, DT ukazuje datový typ vektoru, který lze nahradit int, float, char nebo jinými souvisejícími datovými typy. Výše uvedené prohlášení lze přepsat takto:

Vektor < plovák > Procento ;

Velikost vektoru není specifikována, protože velikost se může během provádění zvětšit nebo zmenšit.

Inicializace vektorů:

Pro inicializaci vektorů existuje v C++ více než jeden způsob.

Technika číslo 1:

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

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

V tomto postupu přímo přiřazujeme hodnoty pro oba vektory. Hodnoty přiřazené oběma z nich jsou přesně podobné.

Technika číslo 2:

Vektor < int > v3 ( 3 , patnáct ) ;

V tomto inicializačním procesu 3 určuje velikost vektoru a 15 jsou data nebo hodnota, která v něm byla uložena. Vytvoří se vektor datového typu „int“ o dané velikosti 3 s hodnotou 15, což znamená, že vektor „v3“ ukládá následující:

Vektor < int > v3 = { patnáct , patnáct , patnáct } ;

Hlavní operace:

Hlavní operace, které se chystáme implementovat s vektory uvnitř třídy vector, jsou:

  • Přidání hodnoty
  • Přístup k hodnotě
  • Změna hodnoty
  • Smazání hodnoty

Přidávání a mazání:

Přidávání a mazání prvků uvnitř vektoru se provádí systematicky. Ve většině případů se prvky vkládají na konečnou úpravu vektorových kontejnerů, ale můžete také přidat hodnoty na požadované místo, což nakonec přesune ostatní prvky do jejich nových umístění. Zatímco při mazání, když jsou hodnoty smazány z poslední pozice, automaticky se zmenší velikost kontejneru. Ale když jsou hodnoty uvnitř kontejneru náhodně odstraněny z určitého umístění, nová umístění jsou automaticky přiřazena k ostatním hodnotám.

Použité funkce:

Chcete-li změnit nebo změnit hodnoty uložené uvnitř vektoru, existují některé předdefinované funkce známé jako modifikátory. Jsou následující:

  • Insert(): Používá se pro přidání hodnoty do vektorového kontejneru na určitém místě.
  • Erase(): Používá se k odstranění nebo smazání hodnoty uvnitř vektorového kontejneru na určitém místě.
  • Swap(): Používá se pro výměnu hodnot uvnitř vektorového kontejneru, který patří ke stejnému datovému typu.
  • Assign(): Používá se pro přiřazení nové hodnoty k dříve uložené hodnotě uvnitř vektorového kontejneru.
  • Begin(): Používá se pro vrácení iterátoru uvnitř smyčky, která adresuje první hodnotu vektoru uvnitř prvního prvku.
  • Clear(): Používá se k odstranění všech hodnot uložených ve vektorovém kontejneru.
  • Push_back(): Používá se pro přidání hodnoty při dokončení vektorového kontejneru.
  • Pop_back(): Používá se pro smazání hodnoty při dokončení vektorového kontejneru.

Příklad:

V tomto příkladu jsou podél vektorů použity modifikátory.

Nejprve zahrneme hlavičkové soubory a . Poté je integrován jmenný prostor std, aby se třídy přidaly všechny najednou. Pro zápis logiky celého programu voláme funkci main(), kde je inicializován vektor s názvem ‚číslice‘. Přiřazení tohoto vektoru se provádí v dalším kroku, kde 'číslice' udělily hodnotu 6 a 24, což znamená, že uvnitř vektorového kontejneru je uloženo 6 prvků, každý s hodnotou 24. Tyto hodnoty jsou pak zobrazeny pomocí 'cout 'příkaz. Smyčka „for“ se používá pro funkci modifikátoru push_back() pro přidání prvků do kontejneru. Nyní se k číslicím na konci přidají 3 hodnoty. Inicializujeme proměnnou ‚x‘ pro uchování záznamu o velikosti vektorového kontejneru. Nyní se zobrazí hodnota posledního prvku a pop_back() funkce by vymazala číslo „3“ uložené v kontejneru. Pro zobrazení všech prvků opět používáme smyčku „for“ s vložit() modifikátor, který vloží hodnoty. Zde bude 4 vložena na začátek vektorového kontejneru a zobrazena na obrazovce. The Průhledná() modifikátor poté vymaže nebo smaže všechny hodnoty uložené v kontejneru. Velikost vektoru se zobrazí po dokončení vymazání.

Výstup je uveden níže.

Výstup souborů C++:

Soubor je soubor vzájemně souvisejících dat. V C++ je soubor posloupnost bajtů, které jsou shromážděny v chronologickém pořadí. Většina souborů se nachází na disku. Soubory však obsahují také hardwarová zařízení, jako jsou magnetické pásky, tiskárny a komunikační linky.

Vstup a výstup v souborech jsou charakterizovány třemi hlavními třídami:

  • Třída „istream“ se používá pro přijímání vstupů.
  • Pro zobrazení výstupu se používá třída „ostream“.
  • Pro vstup a výstup použijte třídu „iostream“.

Soubory jsou v C++ zpracovávány jako proudy. Když bereme vstup a výstup v souboru nebo ze souboru, používají se následující třídy:

  • Offstream: Je to třída proudu, která se používá pro zápis do souboru.
  • Ifstream: Je to třída proudu, která se používá ke čtení obsahu ze souboru.
  • Proud: Je to třída proudu, která se používá pro čtení i zápis do souboru nebo ze souboru.

Třídy „istream“ a „ostream“ jsou předky všech výše uvedených tříd. Souborové proudy se používají stejně snadno jako příkazy „cin“ a „cout“, pouze s tím rozdílem, že tyto proudy souborů přiřadíte k jiným souborům. Podívejme se na příklad ke stručné studii o třídě „fstream“:

Příklad:

V tomto případě zapisujeme data do souboru.

V prvním kroku integrujeme vstupní a výstupní proud. Poté je přidán hlavičkový soubor , protože budeme zapisovat a číst data ze souboru. Poté jsou třídy volány pomocí jmenného prostoru. The hlavní() funkce je volána pro tělo programu, kde se používá „ofstream“, který zapisuje data do souboru, soubor je vytvořen jako New_File. V dalším kroku otevíráme textový soubor s názvem „příklad“ pomocí OTEVŘENO( ) metoda. Do souboru zapisujeme text pomocí lomených závorek. Každý soubor je určen k uzavření, jakmile byl vyřešen. To je důvod, proč je soubor uzavřen pomocí zavřít() funkce.

Soubor „příklad“ se otevře z osobního počítače a text napsaný v souboru se otiskne do tohoto textového souboru, jak je uvedeno výše.

Otevření souboru:

Když je soubor otevřen, je reprezentován proudem. Pro soubor je vytvořen objekt, jako byl vytvořen New_File v předchozím příkladu. Všechny vstupní a výstupní operace, které byly provedeny na streamu, se automaticky aplikují na samotný soubor. Pro otevření souboru se funkce open() používá jako:

OTEVŘENO ( NázevSouboru , režimu ) ;

Zde je režim nepovinný.

Zavření souboru:

Jakmile jsou všechny vstupní a výstupní operace dokončeny, musíme zavřít soubor, který byl otevřen pro úpravy. Jsme povinni zaměstnat a zavřít() fungovat v této situaci.

Nový soubor. zavřít ( ) ;

Když to uděláte, soubor se stane nedostupným. Pokud je za jakýchkoli okolností objekt zničen, dokonce i když je propojen se souborem, destruktor spontánně zavolá funkci close().

Textové soubory:

K uložení textu se používají textové soubory. Pokud je tedy text buď zadán, nebo zobrazen, bude mít určité úpravy formátování. Operace zápisu uvnitř textového souboru je stejná jako při provádění příkazu „cout“.

Příklad:

V tomto scénáři zapisujeme data do textového souboru, který již byl vytvořen v předchozím obrázku.

Zde zapisujeme data do souboru s názvem ‚example‘ pomocí funkce New_File(). Soubor „example“ otevřeme pomocí OTEVŘENO() metoda. „ofstream“ se používá k přidání dat do souboru. Po provedení veškeré práce uvnitř souboru je požadovaný soubor uzavřen pomocí zavřít() funkce. Pokud se soubor neotevře, zobrazí se chybová zpráva „Soubor není podporován, chyba při načítání souboru“.

Soubor se otevře a text se zobrazí na konzole.

Čtení textového souboru:

Čtení souboru je znázorněno pomocí následujícího příkladu.

Příklad:

„ifstream“ se používá pro čtení dat uložených v souboru.

Příklad obsahuje hlavní hlavičkové soubory na začátku. Poté použijte „ifstream“ uvnitř hlavní() funkce. Pomocí ‚ifstream‘ načteme data se souborem ‚New_File‘ zobrazujícím text uložený v ‚example‘ textovém souboru. Zaměstnáváme OTEVŘENO() způsob otevření souboru. Dále použijeme smyčku „while“. Po přečtení dat z textového souboru „ukázka“ zavřít() funkce se používá k uzavření požadovaného souboru. Pokud systém konkrétní soubor nemá, zobrazí se zpráva ‚Nelze otevřít soubor‘.

Všechny informace uložené v textovém souboru se zobrazí na obrazovce, jak je znázorněno.

Závěr

Ve výše uvedené příručce jsme se podrobně seznámili s jazykem C++. Spolu s příklady je každé téma předvedeno a vysvětleno a každá akce je rozpracována.