§1 Všeobecné informácie o jazyku. Etapy návrhu programu

Štandardná knižnica C/C++ obsahuje množstvo funkcií na čítanie a zápis do konzoly (klávesnica a monitor). Tieto funkcie čítajú a zapisujú dáta ako jednoduchý prúd znakov.

Pojem stream, používaný v programovaní, úzko súvisí s bežným, každodenným chápaním tohto slova. Vstupný tok možno prirovnať k potrubiu, ktorým voda (informácie) vstupuje do bazéna (pamäť počítača), a výstupný tok možno prirovnať k potrubiu, ktorým voda opúšťa bazén. Dôležitou vlastnosťou tohto potrubia je, že údaje sa môžu pohybovať iba jedným smerom. Aj keď sa na vstup a výstup použije to isté potrubie, nemôže sa to stať súčasne: na prepnutie smeru prúdenia sa musí zastaviť, musí sa vykonať nejaký úkon a až potom môže byť prúd nasmerovaný opačným smerom. Ďalšou vlastnosťou potoka je, že takmer nikdy nevysychá. Niekedy vyschne, ale toto obdobie nemôže byť dlhé, ak systém funguje normálne.

Štandardná výstupná funkcia printf()

Funkcia printf() je štandardná výstupná funkcia. Pomocou tejto funkcie môžete na obrazovke monitora zobraziť reťazec znakov, číslo, hodnotu premennej...

Funkcia printf() má prototyp v stdio.h
int printf(char *riadiaci retazec, ...);

Ak je to úspešné, funkcia printf() vráti počet vytlačených znakov.

Riadiaci riadok obsahuje dva typy informácií: znaky, ktoré sa tlačia priamo na obrazovku, a špecifikátory formátu, ktoré určujú spôsob tlače argumentov.

Funkcia printf() je formátovaná výstupná funkcia. To znamená, že v parametroch funkcie je potrebné špecifikovať formát dát, ktoré budú na výstupe. Formát údajov je určený špecifikátormi formátu. Špecifikátor formátu začína znakom %, za ktorým nasleduje kód formátu.

Špecifikátory formátu:

%S symbol
%d celé desiatkové číslo
%i celé desiatkové číslo
%e desatinné číslo v tvare x.xx e+xx
%E desatinné číslo v tvare x.xx E+xx
%f
%F desatinné číslo s pohyblivou rádovou čiarkou xx.xxxx
%g %f alebo %e, podľa toho, čo je kratšie
%G %F alebo %E, podľa toho, čo je kratšie
%o osmičkové číslo
%s znakový reťazec
%u desiatkové číslo bez znamienka
%X hexadecimálne číslo
%X hexadecimálne číslo
%% symbol %
%p ukazovateľ
%n ukazovateľ

Okrem toho je možné na formátovacie príkazy použiť modifikátory l a h.

%ld tlačiť dlhý int
%hu pečiatka krátka nepodpísaná
%Lf dlhá dvojitá pečiatka

V špecifikátore formátu je za symbolom % možné zadať presnosť (počet číslic za desatinnou čiarkou). Presnosť je nastavená nasledovne: %.n<код формата>. kde n je počet číslic za desatinnou čiarkou a<код формата>- jeden z kódov uvedených vyššie.

Napríklad, ak máme premennú x=10,3563 typu float a chceme zobraziť jej hodnotu s presnosťou na 3 desatinné miesta, mali by sme napísať:

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

výsledok:
Premenná x = 10,356

Môžete tiež určiť minimálnu šírku poľa prideleného na tlač. Ak je riadok alebo číslo väčšie ako špecifikovaná šírka poľa, potom sa riadok alebo číslo vytlačí celé.

Napríklad, ak napíšete:

printf("%5d",20);

potom bude vysledok nasledovny:
20

Upozorňujeme, že číslo 20 nebolo vytlačené od samého začiatku riadku. Ak chcete, aby boli nevyužité medzery poľa vyplnené nulami, musíte pred šírku poľa umiestniť symbol 0.

Napríklad:

printf("%05d",20);

výsledok:
00020

Okrem špecifikátorov formátu údajov môže riadiaci riadok obsahovať riadiace znaky:

\b BS, dole
\f Nová stránka, zmena stránky
\n Nový riadok, posun riadku
\r Vrátenie vozíka
\t Horizontálna tabuľka
\v Vertikálna karta
\" Dvojitý citát
\" Apostrof
\\ Spätné lomítko
\0 Null znak, null byte
\a Signál
\N Osmičková konštanta
\xN Hexadecimálna konštanta
\? Otáznik

Najčastejšie budete používať znak \n. Pomocou tohto ovládacieho znaku môžete prejsť na nový riadok. Pozrite si príklady programov a všetko pochopíte.

Príklady programov.

/* Príklad 1 */
#include

void main (void)
{
int a, b, c; // Oznámenie premenné a,b,c
a = 5;
b = 6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Výsledok programu:
a=5, b=6, c=9

/* Príklad 2 */
#include

void main (void)
{
float x,y,z;

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

Printf("Súradnice objektu: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Výsledok programu:
Súradnice objektu: x:10,50, y:130,67, z:54,00

/* Príklad 3 */
#include

void main()
{
int x;

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

Výsledok programu:
x=10

/* Príklad 4 */
#include

void main (void)
{
printf("\"Text v úvodzovkách\"");
printf("\nObsah kyslíka: 100%%");
}

Výsledok programu:
"Text v úvodzovkách"
Obsah kyslíka: 100%

/* Príklad 5 */
#include

void main (void)
{
int a;

A = 11; // 11 v desiatkovej sústave sa rovná b v šestnástkovej sústave
printf("a-dec=%d, a-hex=%X",a,a);
}

Výsledok programu:
a-dec=11, a-hex=b

/* Príklad 6 */
#include

void main (void)
{
char ch1,ch2,ch3;

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

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

Výsledok programu:
ABC

/* Príklad 7 */
#include

void main (void)
{
char *str="Môj reťazec.";

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

Výsledok programu:
Toto je moja línia.

/* Príklad 8 */
#include

void main (void)
{
printf("Ahoj!\n"); // Po vytlačení dôjde k prechodu na nový riadok - \n
printf("Volám sa Pavel."); // Toto sa vytlačí na nový riadok
}

Výsledok programu:
Ahoj!
Volám sa Pavel.

Štandardná vstupná funkcia scanf()

Funkcia scanf() je formátovaná vstupná funkcia. S jeho pomocou môžete zadávať údaje zo štandardného vstupného zariadenia (klávesnice). Vstupnými údajmi môžu byť celé čísla, čísla s pohyblivou rádovou čiarkou, znaky, reťazce a ukazovatele.

Funkcia scanf() má v stdio.h nasledujúci prototyp:
int scanf(char *riadiaci retazec);

Funkcia vráti počet premenných, ktorým bola priradená hodnota.

Riadiaci reťazec obsahuje tri typy znakov: špecifikátory formátu, medzery a iné znaky. Špecifikátory formátu začínajú znakom %.

Špecifikátory formátu:

Pri zadávaní reťazca pomocou funkcie scanf() (špecifikátor formátu %s), riadok sa zadáva pred prvou medzerou!! tie. ak zadáte reťazec "Ahoj svet!" pomocou funkcie scanf().


scanf("%s",str);

potom po zadaní výsledného reťazca, ktorý bude uložený v poli str, bude pozostávať z jedného slova „Ahoj“. FUNKCIA VSTUPUJE DO STRUNKY PRED PRVÝM PRIESTOROM! Ak chcete zadať reťazce s medzerami, použite funkciu

char *gets(char *buf);

Pomocou funkcie get() môžete zadať celé reťazce. Funkcia get() číta znaky z klávesnice, kým sa neobjaví znak nového riadku (\n). Samotný znak nového riadku sa zobrazí po stlačení klávesu enter. Funkcia vráti ukazovateľ na buf. buf - vyrovnávacia pamäť (pamäť) pre vstupný reťazec.

Hoci get() nie je témou tohto článku, napíšme si príklad programu, ktorý vám umožní zadať celý riadok z klávesnice a zobraziť ho na obrazovke.

#include

void main (void)
{
char buffer; // pole (buffer) pre vstupný reťazec

Gets(buffer); // zadajte riadok a stlačte enter
printf("%s",buffer); // výstup zadaného reťazca na obrazovku
}

Ďalší dôležitá poznámka! Na zadávanie údajov pomocou funkcie scanf() potrebuje ako parametre odovzdať adresy premenných, nie samotné premenné. Ak chcete získať adresu premennej, musíte pred názov premennej uviesť znak & (ampersand). Znak & znamená prijatie adresy.

Čo znamená adresa? Pokúsim sa vysvetliť. V programe máme premennú. Premenná ukladá svoju hodnotu do pamäte počítača. Takže toto je adresa, ktorú získame pomocou & je adresa v pamäti počítača, kde je uložená hodnota premennej.

Pozrime sa na príklad programu, ktorý nám ukazuje, ako používať &

#include

void main (void)
{
int x;

Printf("Zadajte premennu x:");
scanf("%d"&x);
printf("Premenna x=%d",x);
}

Teraz sa vráťme k riadiacemu riadku funkcie scanf(). znova:

int scanf(char *riadiaci retazec);

Znak medzery v riadiacom reťazci nariaďuje preskočenie jednej alebo viacerých medzier vo vstupnom toku. Okrem medzery je možné vnímať znak tabulátora alebo nového riadku. Nenulový znak znamená, že znak je prečítaný a vyradený.

Oddeľovače medzi dvoma číslami, ktoré zadáte, sú medzera, tabulátor alebo nový riadok. Znak * za % a pred kódom formátu (špecifikátor formátu) prikazuje čítať typ údajov, ale nepriraďuje sa k tejto hodnote.

Napríklad:

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

zadanie 50+20 nastaví premennú i na 50, premennú j na 20 a znak + sa prečíta a ignoruje.

Príkaz format môže určiť najväčšiu šírku poľa, ktoré sa má čítať.

Napríklad:

scanf("%5s",str);

označuje potrebu prečítať prvých 5 znakov zo vstupného toku. Ak zadáte 1234567890ABC, pole str bude obsahovať iba 12345, zvyšné znaky budú ignorované. Oddeľovače: medzera, tabulátor a nový riadok – pri zadávaní symbolu sa s nimi zaobchádza ako so všetkými ostatnými znakmi.

Ak sa v riadiacom reťazci vyskytnú nejaké ďalšie znaky, sú určené na identifikáciu a preskočenie príslušného znaku. Operátor streamu znakov 10plus20

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

priradí hodnotu 10 premennej x, hodnotu 20 premennej y a preskočí znaky plus, pretože sa vyskytujú v riadiacom reťazci.

Jednou z výkonných funkcií funkcie scanf() je jej schopnosť špecifikovať sadu skenov. Vyhľadávacia množina definuje množinu znakov, s ktorými sa budú porovnávať znaky načítané funkciou scanf(). Funkcia scanf() číta znaky, pokiaľ sa nachádzajú vo vyhľadávacej množine. Akonáhle sa zadaný znak nenájde vo vyhľadávacej množine, funkcia scanf() sa presunie na ďalší špecifikátor formátu. Vyhľadávacia množina je definovaná zoznamom znakov uzavretých v hranatých zátvorkách. Znak % sa umiestni pred úvodnú zátvorku. Pozrime sa na to na príklade.

#include

void main (void)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
Zadáme množinu znakov:
12345abcdefg456

Program zobrazí na obrazovke:
12345
abcdefg456

Pri zadávaní množiny vyhľadávania môžete použiť aj znak pomlčky na určenie medzier, ako aj maximálnej šírky vstupného poľa.

scanf("%10", str1);

Môžete tiež definovať znaky, ktoré nie sú zahrnuté vo vyhľadávacej množine. Pred prvým z týchto znakov je znak ^. Mnoho znakov rozlišuje medzi malými a veľkými písmenami.

Pripomínam, že pri použití funkcie scanf() jej musíte ako parametre odovzdať adresy premenných. Vyššie uvedený kód bol napísaný:

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

Všimnite si, že pred str nie je znak &. Je to spôsobené tým, že str je pole a názov poľa - str je ukazovateľ na prvý prvok poľa. Znak & by sa preto nemal používať. Adresu už odovzdávame funkcii scanf(). Jednoducho povedané, str je adresa v pamäti počítača, kde bude uložená hodnota prvého prvku poľa.

Príklady programov.

Príklad 1
Tento program zobrazí požiadavku „Koľko máš rokov?:“ a čaká na zadanie údajov. Ak napríklad zadáte číslo 20, program zobrazí riadok „Máte 20 rokov. Pri volaní funkcie scanf() vložíme pred premennú vek znak &, keďže funkcia scanf() potrebuje adresy premenných. Funkcia scanf() zapíše zadanú hodnotu na zadanú adresu. V našom prípade sa zadaná hodnota 20 zapíše na adresu premennej veku.

/* Príklad 1 */

#include

void main (void)
{
int vek;

Printf("\nKoľko máš rokov?:");
scanf("%d",&vek);
printf("Máš %d rokov.", vek);
}

Príklad 2
Program kalkulačky. Táto kalkulačka dokáže sčítať iba čísla. Keď zadáte 100+34, program vygeneruje výsledok: 100+34=134.

/* Príklad 2 */

#include

void main (void)
{
int x, y;

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

Príklad 3
Tento príklad ukazuje, ako nastaviť šírku čítacieho poľa. V našom príklade je šírka poľa päť znakov. Ak zadáte riadok s veľké množstvo znaky, potom budú všetky znaky po 5. vyradené. Všimnite si volanie funkcie scanf(). Znak & nepredchádza názvu poľa, pretože názov poľa je adresou prvého prvku poľa.

/* Príklad 3 */

#include

void main (void)
{
názov znaku;

Printf("\nZadajte svoje užívateľské meno (nie viac ako 5 znakov):");
scanf("%5s", meno);
printf("\nZadali ste %s", meno);
}

Príklad 4.
Posledný príklad v tomto článku ukazuje, ako možno použiť množinu vyhľadávania. Po spustení programu zadajte číslo od 2 do 5.

/* Príklad 4 */

#include

void main (void)
{
char bal;

Printf("Vaše hodnotenie je 2,3,4,5:");
scanf("%", &bal);
printf("\nHodnotenie %c", bal);
}

1. Úvod

Programovanie si vyžaduje nové univerzálne algoritmické modely a hardvér implementuje algoritmy nielen v inej forme, ale aj na základe iného algoritmického modelu - automatov. Požičiavanie si technológie z vývoja hardvéru je kľúčovou myšlienkou programovania automatov. Syntéza digitálnych zariadení sa však líši od programovania. No pri požičaní modelu na jednej strane nie je vhodné ho výrazne meniť a na druhej strane nemožno ignorovať už existujúcu teóriu a prax programovania.

Ďalej sa pozrieme na technológiu SWITCH na navrhovanie programov automatov, v ktorých sa s podobnými procesmi stretávate neustále. Na jednej strane to zmenilo model konečného stroja natoľko, že to v skutočnosti prekročilo rámec teórie automatov. A na druhej strane zavádza do programovania pojmy, ktoré sú pre programátorov ťažko pochopiteľné a niekedy sú jednoducho nadbytočné, pretože existujú známejšie analógie z teórie programov a programátorskej praxe.

Ako základ pre diskusiu o problémoch automatického programovania si vezmeme nedávnu prednášku Shalyto A.A. a jeho „programátorské“ články k definícii paradigmy automatického programovania.

Tieto návody sú pre každého, či už s programovaním začínate alebo máte rozsiahle skúsenosti s programovaním v iných jazykoch! Tento materiál je pre tých, ktorí sa chcú naučiť jazyky C/C++ od úplných základov až po tie najzložitejšie štruktúry.

C++ je programovací jazyk, znalosť tohto programovacieho jazyka vám umožní ovládať počítač na špičková úroveň. V ideálnom prípade budete môcť prinútiť počítač robiť, čo chcete. Naša stránka vám pomôže zvládnuť programovací jazyk C++.

Inštalácia /IDE

Úplne prvá vec, ktorú by ste mali urobiť predtým, ako sa začnete učiť C++, je uistiť sa, že máte IDE – integrované vývojové prostredie (program, v ktorom budete programovať). Ak nemáte IDE, tak tu to máte. Keď sa rozhodnete pre výber IDE, nainštalujte si ho a precvičte si vytváranie jednoduchých projektov.

Úvod do C++

Jazyk C++ je súbor príkazov, ktoré informujú počítač, čo má robiť. Táto sada príkazov sa zvyčajne nazýva zdroj alebo len kód. Príkazy sú buď „funkcie“ alebo „ Kľúčové slová" Kľúčové slová (vyhradené slová C/C++) sú základnými stavebnými kameňmi jazyka. Funkcie sú zložité stavebné kamene, pretože sú napísané z hľadiska jednoduchších funkcií – uvidíte to v našom úplne prvom programe, ktorý je zobrazený nižšie. Táto štruktúra funkcií pripomína obsah knihy. Obsah môže zobrazovať kapitoly knihy, každá kapitola v knihe môže mať svoj vlastný obsah pozostávajúci z odsekov, každý odsek môže mať svoje pododstavce. Aj keď C++ poskytuje veľa bežných funkcií a rezervovaných slov, ktoré môžete použiť, stále existuje potreba písať svoje vlastné funkcie.

V ktorej časti programu to začína? Každý program v C++ má jednu funkciu, nazýva sa hlavná alebo hlavná funkcia, vykonávanie programu začína touto funkciou. Z hlavnej funkcie môžete volať aj ďalšie funkcie, či už sú to tie, ktoré sme napísali, alebo, ako už bolo spomenuté, poskytnuté kompilátorom.

Ako teda získate prístup k týmto štandardným funkciám? Ak chcete získať prístup k štandardným funkciám, ktoré sa dodávajú s kompilátorom, musíte zahrnúť hlavičkový súbor pomocou direktívy preprocesora - #include . Prečo je to účinné? Pozrime sa na príklad pracovný program:

#include << "Моя первая программа на С++\n"; cin.get(); }

Pozrime sa podrobne na prvky programu. #include je direktíva "preprocessor", ktorá hovorí kompilátoru, aby vložil kód zo súboru hlavičky iostream do nášho programu pred vytvorením spustiteľného súboru. Pripojením hlavičkového súboru k programu získate prístup k mnohým rôznym funkciám, ktoré môžete vo svojom programe použiť. Napríklad operátor cout vyžaduje iostream . Riadok využívajúci menný priestor std; hovorí kompilátoru, aby použil skupinu funkcií, ktoré sú súčasťou štandardnej knižnice std. Tento riadok tiež umožňuje programu používať operátory ako cout . Bodkočiarka je súčasťou syntaxe C++. Oznamuje kompilátoru, že toto je koniec príkazu. O chvíľu uvidíte, že na ukončenie väčšiny príkazov v C++ sa používajú bodkočiarky.

Ďalším dôležitým riadkom programu je int main(). Tento riadok informuje kompilátor, že existuje funkcia s názvom main a že funkcia vracia celé číslo. Zložené zátvorky ( a ) signalizujú začiatok (a koniec) funkcie. Zložené zátvorky sa používajú aj v iných blokoch kódu, ale vždy označujú jednu vec – začiatok a koniec bloku, resp.

V C++ sa objekt cout používa na zobrazenie textu (vyslovuje sa „C out“). Používa symboly<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

Ďalším príkazom je cin.get() . Toto je ďalšie volanie funkcie, ktoré načítava dáta zo vstupného dátového toku a čaká na stlačenie klávesu ENTER. Tento príkaz zabráni zatvoreniu okna konzoly, kým nestlačíte kláves ENTER. To vám dáva čas vidieť výstup programu.

Po dosiahnutí konca hlavnej funkcie (uzavieracia zložená zátvorka) náš program vráti operačnému systému hodnotu 0. Táto návratová hodnota je dôležitá, pretože jej analýzou môže operačný systém posúdiť, či náš program úspešne skončil alebo nie. Návratová hodnota 0 znamená úspech a vracia sa automaticky (ale len pre typ údajov int; ostatné funkcie vyžadujú, aby ste hodnotu vrátili manuálne), ale ak by sme chceli vrátiť niečo iné, napríklad 1, museli by sme to urobiť manuálne.

#include pomocou menného priestoru std; int main() ( cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Na konsolidáciu materiálu zadajte kód programu do vášho IDE a spustite ho. Keď sa program spustí a uvidíte výstup, trochu experimentujte s príkazom cout. To vám pomôže zvyknúť si na jazyk.

Nezabudnite komentovať svoje programy!

Pridajte do svojho kódu komentáre, aby bol prehľadnejší nielen pre vás, ale aj pre ostatných. Kompilátor ignoruje komentáre pri vykonávaní kódu, čo vám umožňuje použiť ľubovoľný počet komentárov na popis skutočného kódu. Ak chcete vytvoriť komentár, použite alebo // , ktoré povie kompilátoru, že zvyšok riadku je komentár, alebo /* a potom */ . Keď sa učíte programovať, je užitočné mať možnosť komentovať časti kódu, aby ste videli, ako sa mení výstup programu. O technike komentovania si môžete prečítať podrobne.

Čo robiť so všetkými týmito typmi premenných?

Niekedy môže byť mätúce mať viacero typov premenných, keď sa niektoré typy premenných zdajú byť nadbytočné. Je veľmi dôležité použiť správny typ premennej, pretože niektoré premenné vyžadujú viac pamäte ako iné. Navyše, kvôli spôsobu, akým sú uložené v pamäti, čísla s pohyblivou rádovou čiarkou, float a double sú „nepresné“ a nemali by sa používať, keď je potrebné uložiť presnú celočíselnú hodnotu.

Deklarovanie premenných v C++

Ak chcete deklarovať premennú, použite typ syntaxe<имя>; . Tu je niekoľko príkladov deklarácií premenných:

Int num; znak znaku; float num_float;

Na jednom riadku je prípustné deklarovať viacero premenných rovnakého typu, na to je potrebné každú z nich oddeliť čiarkou.

Int x, y, z, d;

Ak ste sa pozorne pozreli, možno ste videli, že za deklaráciou premennej vždy nasleduje bodkočiarka. Môžete sa dozvedieť viac o konvencii „pomenovania premenných“.

Časté chyby pri deklarovaní premenných v C++

Ak sa pokúsite použiť premennú, ktorá nie je deklarovaná, váš program sa neskompiluje a dostanete chybové hlásenie. V C++ všetky kľúčové slová jazyka, všetky funkcie a všetky premenné rozlišujú veľké a malé písmená.

Používanie premenných

Takže teraz viete, ako deklarovať premennú. Tu je príklad programu demonštrujúci použitie premennej:

#include pomocou menného priestoru std; int main() ( int cislo; cout<< "Введите число: "; cin >>číslo; cin.ignore(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Poďme sa pozrieť na tento program a preskúmať jeho kód, riadok po riadku. Kľúčové slovo int označuje, že číslo je celé číslo. Funkcia cin >> načíta hodnotu do čísla, užívateľ musí po zadanom čísle stlačiť enter. cin.ignore() je funkcia, ktorá číta znak a ignoruje ho. Náš vstup sme usporiadali do programu, po zadaní čísla stlačíme kláves ENTER, symbol, ktorý sa prenáša aj do vstupného toku. Nepotrebujeme to, tak to zahodíme. Majte na pamäti, že premenná bola deklarovaná ako celočíselný typ, ak sa používateľ pokúsi zadať desiatkové číslo, bude skrátené (to znamená, že desiatková časť čísla bude ignorovaná). Skúste zadať desatinné číslo alebo postupnosť znakov, keď spustíte vzorový program, odpoveď bude závisieť od vstupnej hodnoty.

Upozorňujeme, že pri tlači z premennej sa úvodzovky nepoužívajú. Absencia úvodzoviek hovorí kompilátoru, že existuje premenná, a preto by mal program skontrolovať hodnotu premennej, aby pri spustení nahradil názov premennej jej hodnotou. Viacnásobné príkazy posunu na rovnakom riadku sú úplne prijateľné a výstup sa vykoná v rovnakom poradí. Mali by ste oddeliť reťazcové literály (reťazce v úvodzovkách) a premenné, pričom každej z nich poskytnete vlastný operátor posunu<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Meniť a porovnávať hodnoty

Samozrejme, bez ohľadu na to, aký typ údajov používate, premenné nie sú veľmi zaujímavé bez možnosti meniť ich hodnotu. Nasledujúci text ukazuje niektoré operátory používané v spojení s premennými:

  • * násobenie,
  • - odčítanie,
  • + prídavok,
  • / divízia,
  • = úloha,
  • == rovnosť,
  • > viac
  • < меньше.
  • != nerovný
  • >= väčšie alebo rovné
  • <= меньше или равно

Operátory, ktoré vykonávajú matematické funkcie, musia byť použité napravo od priraďovacieho znaku, aby bolo možné priradiť výsledok k premennej vľavo.

Tu je niekoľko príkladov:

A = 4*6; // použi riadkový komentár a bodkočiarku, a sa rovná 24 a = a + 5; // rovná sa súčtu pôvodnej hodnoty a päť a == 5 // nepriradí päť, skontroluje, či sa rovná 5 alebo nie

== budete často používať v konštrukciách, ako sú podmienené príkazy a cykly.

A< 5 // Проверка, a менее пяти? a >5 // Skontrolujte, je viac ako päť? a == 5 // Kontrola, rovná sa päť? a != 5 // Skontrolujte, či sa to nerovná piatim? a >= 5 // Skontrolujte, či a je väčšie alebo rovné päť? a<= 5 // Проверка, a меньше или равно пяти?

Tieto príklady neukazujú použitie porovnávacích znakov veľmi jasne, ale keď začneme študovať výberové operátory, pochopíte, prečo je to potrebné.

C++ (čítaj c-plus-plus) je skompilovaný, staticky typovaný univerzálny programovací jazyk, v ktorom môžete vytvárať programy akejkoľvek úrovne zložitosti.
Už viac ako 20 rokov patrí tento jazyk medzi tri najpopulárnejšie a najžiadanejšie programovacie jazyky. (Môžete si to overiť na webovej stránke TIOBE).
Jazyk vznikol začiatkom 80. rokov, keď zamestnanec Bell Labs Björn Stroustrup prišiel s množstvom vylepšení jazyka C pre svoje potreby.

Bjarne Stroustrup – tvorca jazyka C++

Stroustrup sa rozhodol rozšíriť jazyk C o možnosti, ktoré nájdete v jazyku Simula. C, ktorý je základným jazykom systému UNIX, na ktorom bežali počítače Bell, je rýchly, bohatý na funkcie a prenosný. Stroustrup pridal možnosť pracovať s triedami a objektmi. Výsledkom bolo, že praktické modelovacie problémy sa ukázali byť ľahko riešiteľné z hľadiska času vývoja (vďaka použitiu tried podobných Simule) aj z hľadiska výpočtového času (vďaka rýchlosti C).
Tu je návod, ako o tom hovorí samotný vývojár jazyka:



V roku 1998 výbor pre štandardy zverejnil prvý jazykový štandard známy ako C++98. C++ sa neustále vyvíja, aby spĺňal súčasné požiadavky. Jednou zo skupín, ktoré vyvíjajú jazyk C++ a predkladajú návrhy na jeho zlepšenie Výboru pre štandardy C++, je Zosilnenie, ktorá sa okrem iného zaoberá zlepšovaním schopností jazyka pridávaním funkcií metaprogramovania. Najnovší štandard bol vydaný v roku 2017 a volá sa C++17. Ďalší štandard na seba nenechá dlho čakať a očakáva sa, že sa objaví v roku 2020.
Nikto nevlastní práva na jazyk C++, je zadarmo. V marci 2016 bola v Rusku vytvorená pracovná skupina WP21 C++. Skupina bola zorganizovaná s cieľom zozbierať návrhy pre štandard C++, poslať ich komisii a obhájiť ich na valných zhromaždeniach Medzinárodnej organizácie pre normalizáciu.
C++ je multiparadigmový jazyk (od slova paradigma – štýl písania počítačových programov), zahŕňajúci širokú škálu rôznych programovacích štýlov a technológií. Často je klasifikovaný ako objektovo orientovaný jazyk, ale striktne povedané, nie je to tak. Vývojár dostáva počas pracovného procesu absolútnu voľnosť pri výbere nástrojov tak, aby problém riešený konkrétnym prístupom bol vyriešený čo najefektívnejšie. Inými slovami, C++ nenúti programátora dodržiavať len jeden štýl vývoja programu (napríklad objektovo orientovaný).
C++ má bohatú štandardnú knižnicu, ktorá obsahuje bežné kontajnery a algoritmy, I/O, regulárne výrazy, podporu multithreadingu a ďalšie funkcie. C++ ovplyvnilo mnoho programovacích jazykov vrátane: Java, C#, D. Keďže C++ patrí do rodiny jazykov založených na syntaxi jazyka C, môžete ľahko ovládať ďalšie programovacie jazyky tejto rodiny: JavaScript, PHP , Perl, Objective-C a mnoho ďalších. atď., vrátane samotného materského jazyka - C. ()
Jazyk C++ si počas svojej existencie osvojil pretrvávajúce mýty, ktoré sa dajú ľahko vyvrátiť (pozri tu: 1. časť a 2. časť)

História vydania jazyka a noriem

1983

Tvorcom jazyka je Björn Stroustrup, zamestnanec Bell Labs, predstavil skorú verziu jazyka C++ („C s triedami“)

1985

Prvé komerčné vydanie C++, jazyk preberá svoje moderné meno

1986

Vydanie prvého vydania The C++ Programming Language - knihy venovanej C++, ktorú napísal Björn Stroustrup

1998

Bola ratifikovaná medzinárodná norma pre jazyk C++: ISO/IEC 14882:1998 „Štandard pre programovací jazyk C++“

2003
2005

Vyšla technická správa knižnice 1 (TR1). Správa síce nie je oficiálne súčasťou štandardu, ale popisuje rozšírenia štandardnej knižnice, ktoré by mali byť zahrnuté v ďalšej verzii jazyka C++.

2011

Vydanie nového štandardu – C++11 alebo ISO/IEC 14882:2011; nový štandard zahŕňal doplnenie jazykového jadra a rozšírenie štandardnej knižnice, vrátane väčšiny TR1

2014

Vydanie normy C++14 („Medzinárodná norma ISO/IEC 14882:2014(E) Programovací jazyk C++“); C++14 možno považovať za malé rozšírenie oproti C++11, ktoré obsahuje väčšinou opravy chýb a menšie vylepšenia

2017

Vydanie nového štandardu – C++1z (C++17). Táto norma priniesla množstvo zmien a doplnkov. Napríklad STD zahŕňala knižnice štandardu C11, súborový systém založený na boost::filesystem a väčšinu experimentálnej knižnice TS I.

2020

C++20 je neoficiálny názov normy ISO/IEC pre programovací jazyk C++, od ktorého sa očakáva, že bude nasledovať po C++17. Návrh normy N4800.

Filozofia C++

Björn Stroustrup vo svojej knihe The Design and Evolution of C++ (2007) opisuje princípy, ktorými sa riadil pri navrhovaní C++ (skrátene):

  • Získajte univerzálny jazyk so statickými dátovými typmi, efektívnosťou a prenosnosťou jazyka C.
  • Priama a komplexná podpora rôznych štýlov programovania.
  • Dajte programátorovi slobodu voľby, aj keď mu to dáva možnosť vybrať si nesprávne.
  • Udržujte kompatibilitu s C čo najviac, čím sa umožní jednoduchý prechod z programovania v C.
  • Vyhnite sa nezrovnalostiam medzi C a C++: každá konštrukcia, ktorá je platná v oboch jazykoch, musí znamenať to isté v každom z nich a viesť k rovnakému správaniu programu.
  • Vyhnite sa funkciám, ktoré sú závislé od platformy alebo nie sú univerzálne.
  • „Neplaťte za to, čo nepoužívate“ – žiadna jazyková funkcia by nemala viesť k zníženiu výkonu programov, ktoré ju nepoužívajú.
  • Nevyžaduje príliš komplikované programovacie prostredie.

C a C++

Syntax jazyka C++ je prevzatá z jazyka C. Hoci formálne jedným z princípov C++ zostáva zachovanie kompatibility s jazykom C, v skutočnosti štandardizačné skupiny pre tieto jazyky neinteragujú a zmeny, ktoré vykonajú, nie sú len nekorelujú, ale často si zásadne ideologicky protirečia. Prvky, ktoré nové štandardy C pridávajú do jadra, sú teda v štandardných prvkoch C++ štandardnej knižnice a v jadre sa vôbec nenachádzajú, napríklad dynamické polia, polia s pevnými hranicami, zariadenia na paralelné spracovanie. Podľa Stroustrupa by spojenie vývoja týchto dvoch jazykov bolo veľkým prínosom, ale je nepravdepodobné, že by to bolo možné z politických dôvodov. Takže praktická kompatibilita medzi C a C++ sa postupne stratí.
V tomto príklade, v závislosti od použitého kompilátora, bude výstup „C++“ alebo „C“:

Program 9.1

#include int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); return 0; )

Je to spôsobené tým, že znakové konštanty v C sú typu int a v C++ sú typu char, ale veľkosti týchto typov sú rôzne.

Modely životného cyklu aplikácií

Životný cyklus softvér je časový úsek, ktorý začína okamihom prijatia rozhodnutia o potrebe vytvorenia softvérového produktu a končí okamihom jeho úplného vyradenia z prevádzky. Tento cyklus je proces budovania a vývoja softvéru. Existuje niekoľko modelov životného cyklu.
Kaskádový modelživotný cyklus (anglický model vodopádu) navrhol v roku 1970 Winston Royce. Zabezpečuje postupnú realizáciu všetkých etáp projektu v presne stanovenom poradí. Prechod do ďalšej fázy znamená úplné dokončenie práce v predchádzajúcej fáze. Požiadavky stanovené vo fáze tvorby požiadaviek sú prísne zdokumentované vo forme technických špecifikácií a zaznamenávajú sa počas celého vývoja projektu. Každá fáza vyvrcholí vydaním kompletného súboru dokumentácie, ktorý je dostatočný na to, aby vo vývoji mohol pokračovať ďalší vývojový tím.
Etapy projektu podľa vodopádového modelu:

  1. Tvorba požiadaviek;
  2. Dizajn;
  3. Implementácia;
  4. Testovanie;
  5. Implementácia;
  6. Prevádzka a údržba.

V kaskádovom modeli prechod z jednej projektovej fázy do druhej predpokladá, že výsledok predchádzajúcej fázy je úplne správny. Pri veľkých projektoch je to takmer nemožné dosiahnuť. Preto je tento model vhodný len na vývoj malého projektu. (Sám W. Royce sa tohto modelu nedržal a použil iteračný model).
Iteračný model
Alternatívou ku kaskádovému modelu je iteračný a prírastkový vývojový (IID) model, ktorý dostal od T. Gilba v 70. rokoch. názov evolučného modelu. Model IID zahŕňa rozdelenie životného cyklu projektu na postupnosť opakovaní, z ktorých každá pripomína „miniprojekt“, vrátane všetkých vývojových procesov použitých na vytvorenie menších častí funkcionality v porovnaní s projektom ako celkom. Cieľom každej iterácie je získať pracovnú verziu softvérového systému vrátane funkcionality definovanej integrovaným obsahom všetkých predchádzajúcich a súčasných iterácií. Výsledok finálnej iterácie obsahuje všetky požadované funkcie produktu. Po dokončení každej iterácie teda produkt dostáva prírastok – prírastok – k svojim schopnostiam, ktoré sa teda evolučne vyvíjajú.


Vo väčšine moderných vývojových metodík sú implementované rôzne varianty iteračného prístupu:

Vývojový proces – Rational Unified Process (RUP)

Rational Unified Process (RUP)(racionálny jednotný proces) je metodika vývoja softvéru spravovaná spoločnosťou Rational Software (IBM). Metodika poskytuje odporúčania pre všetky fázy vývoja: od obchodného modelovania až po testovanie a uvedenie hotového programu do prevádzky. Ako modelovací jazyk sa používa Unified Modeling Language (UML).
Celý životný cyklus vývoja produktu pozostáva zo štyroch fáz, z ktorých každá zahŕňa jednu alebo viac iterácií.

  • Počiatočná fáza (začiatok)
  • Stanovenie rozsahu projektu a množstva potrebných zdrojov. Stanovia sa základné požiadavky, obmedzenia a kľúčová funkčnosť produktu. Riziká sa hodnotia. Akčné plánovanie. Na konci úvodnej fázy sa hodnotí dosiahnutie cieľového míľnika životného cyklu, čo predpokladá dohodu medzi zainteresovanými stranami o pokračovaní projektu.

  • Objasnenie
  • Požiadavky na dokumentáciu. Návrh, implementácia a testovanie spustiteľnej architektúry. Objasnenie podmienok a nákladov. Zníženie kľúčových rizík. Úspešné dokončenie vývojovej fázy znamená dosiahnutie míľnika architektúry životného cyklu.

  • Stavebníctvo
  • Vo fáze „Build“ je implementovaná väčšina funkcionality produktu: je dokončený návrh aplikácie, je napísaný zdrojový kód. Fáza budovania končí prvým externým vydaním systému a míľnikom počiatočnej prevádzkovej schopnosti.

  • Úvod
  • Vo fáze „Implementácia“ sa vytvorí finálna verzia produktu, ktorá sa prenesie od vývojára k zákazníkovi. To zahŕňa program beta testovania, školenie používateľov a určenie kvality produktu. V prípade, že kvalita nespĺňa očakávania užívateľa alebo kritériá stanovené vo fáze Štart, fáza Implementácie sa znova opakuje. Splnenie všetkých cieľov znamená dosiahnutie míľnika vydania produktu a dokončenie celého vývojového cyklu.



"Informačné technológie. Systémové a softvérové ​​inžinierstvo. Procesy životného cyklu softvéru“. Táto norma bola prijatá Federálnou agentúrou pre technickú reguláciu a metrológiu Ruskej federácie a je podobná medzinárodnej norme ISO/IEC 12207:2008. Táto norma stanovuje všeobecnú štruktúru procesov životného cyklu softvéru, ktorú možno v softvérovom priemysle dodržiavať. Norma nenavrhuje konkrétny model životného cyklu. Jeho ustanovenia sú spoločné pre všetky modely životného cyklu, metódy a technológie na tvorbu softvéru. Popisuje štruktúru procesov životného cyklu bez toho, aby špecifikoval, ako implementovať alebo dokončiť činnosti a úlohy zahrnuté v týchto procesoch.

Prezentácia na lekciu
Témy správ
  • Free Software Foundation (FSF)
  • Licencie bezplatného softvéru
  • FreeSoftware a Open Source
  • História vývoja programovacích jazykov
  • História jazyka C. C a C++
  • Príbeh
  • Kritika C++
  • História UNIXu
  • Špirálový model životného cyklu softvéru
  • UML (Unified Modeling Language)
  • Microsoft Solutions Framework
  • IDE pre programovanie v C/C++ v systéme Windows
  • C/C++ kompilátory
  • Vytvorenie konzolovej aplikácie v systéme Windows
Otázky
  1. Prečo sa vodopádový model vývoja softvéru nepoužíva vo veľkých projektoch?
  2. Aký je rozdiel medzi vodopádovými a iteračnými modelmi vývoja?
  3. Uveďte fázy vývoja softvéru v metodike Rational Unified Process (RUP).

Naučiť sa základy a zložitosti programovacieho jazyka C++. Učebnica s praktickými úlohami a testami. Chcete sa naučiť programovať? Potom ste na správnom mieste – tu je bezplatné školenie programovania. Či už máte skúsenosti alebo nie, tieto lekcie programovania vám pomôžu začať vytvárať, kompilovať a ladiť programy C++ v rôznych vývojových prostrediach: Visual Studio, Code::Blocks, Xcode alebo Eclipse.

Veľa príkladov a podrobných vysvetlení. Ideálne pre začiatočníkov (figuríny) aj pokročilejších. Všetko je vysvetlené od základov až po detaily. Tieto lekcie (200+) vám poskytnú dobrý základ/základy na pochopenie programovania nielen v C++, ale aj v iných programovacích jazykoch. A je to úplne zadarmo!

Pokryté je aj postupné vytváranie hry v C++, grafická knižnica SFML a viac ako 50 úloh na otestovanie vašich schopností a vedomostí v C++. Ďalším bonusom je.

Za opätovné odoslanie +20 ku karme a moju vďačnosť!

Kapitola č.0. Úvod. Začiatok práce

Kapitola č.1. Základy C++

Kapitola č.2. Premenné a základné dátové typy v C++

Kapitola č.3. Operátori v C++

Kapitola č.4. Rozsah a iné typy premenných v C++

Kapitola č.5. Poradie, v ktorom sa kód vykonáva v programe. Slučky a vetvy v C++