Sdílet prostřednictvím


Vytvoření kalkulačky konzoly v C++

Obvyklým výchozím bodem programátora jazyka C++ je aplikace "Hello, world!", která běží na příkazovém řádku. Začnete s tím v tomto článku a pak přejdeme k něčemu náročnějšímu: aplikaci kalkulačky.

Požadavky

  • Visual Studio s vývojem desktopových aplikací s nainstalovanou a spuštěnou úlohou jazyka C++ na vašem počítači Pokud ho chcete nainstalovat, přečtěte si téma Instalace podpory jazyka C++ v sadě Visual Studio.
  • Tento kurz ukazuje funkci nazvanou úpravy a pokračování, která umožňuje provádět změny kódu, když je aplikace spuštěná. Pokud chcete povolit úpravy a pokračovat, v hlavní nabídce vyberte Možnosti>nástroje>Ladění>Obecné a ujistěte se, že je zaškrtnuté políčko Vyžadovat zdrojové soubory přesně podle původní verze.

Vytvoření projektu aplikace

Visual Studio používá projekty k uspořádání kódu pro aplikaci a řešení k uspořádání jednoho nebo více projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla použitá k sestavení aplikace. Spravuje také vztah mezi všemi soubory projektu a všemi externími soubory. Pokud chcete vytvořit aplikaci, nejprve vytvořte nový projekt a řešení.

  1. Spusťte Visual Studio – zobrazí se dialogové okno Start sady Visual Studio. Začněte výběrem možnosti Vytvořit nový projekt .

    Snímek obrazovky s dialogovým oknem, které se zobrazí při spuštění sady Visual Studio 2022

    Dialogové okno obsahuje možnosti klonování úložiště, otevření projektu nebo řešení, otevření místní složky a vytvoření nového projektu.

  2. V seznamu šablon projektů vyberte Konzolová aplikace a pak vyberte Další.

    Snímek obrazovky s dialogovým oknem Vytvořit nový projekt v sadě Visual Studio Možnost Šablony konzolové aplikace je zvýrazněná.

    Důležité

    Ujistěte se, že jste vybrali verzi C++ šablony konzolové aplikace . Má značky C++, Windows a Konzoly a v rohu má ikonu "++".

  3. V dialogovém okně Konfigurovat nový projekt vyberte textové pole Název projektu, pojmenujte nový projekt CalculatorTutorial a pak vyberte Vytvořit.

    Snímek obrazovky s dialogovým oknem Konfigurace nového projektu v sadě Visual Studio Obsahuje pole pro název projektu, umístění projektu a název řešení.

    Vytvoří se prázdná konzolová aplikace C++ pro Windows Hello World. Konzolové aplikace používají okno konzoly systému Windows k zobrazení výstupu a přijetí uživatelského vstupu. V sadě Visual Studio se otevře okno editoru a zobrazí vygenerovaný kód:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

Ověřte, že se vaše nová aplikace sestaví a spustí.

Šablona pro novou konzolovou aplikaci pro Windows vytvoří jednoduchou aplikaci "Hello World" V jazyce C++. V tomto okamžiku si můžete prohlédnout, jak Visual Studio sestaví a spustí aplikace, které vytvoříte přímo z integrovaného vývojového prostředí (IDE).

  1. Projekt sestavíte tak, že v nabídce Sestavení vyberete Sestavit řešení. V okně Výstup se zobrazí výsledky procesu sestavení.

    Snímek obrazovky s oknem Výstup sady Visual Studio Zobrazuje zprávu, že sestavení bylo úspěšné.

  2. Pokud chcete kód spustit, na řádku nabídek vyberte Ladit, Spustit bez ladění (Ctrl+F5).

    Snímek obrazovky konzoly ladění sady Visual Studio zobrazující výstup aplikace: Hello World!.

    Otevře se okno konzoly a pak spustí vaši aplikaci.

    Když spustíte konzolovou aplikaci v sadě Visual Studio, spustí se váš kód a vytiskne se "Stisknutím libovolné klávesy zavřete toto okno . . ", abyste získali šanci zobrazit výstup.

    Gratulujeme! V sadě Visual Studio jste vytvořili svou první konzolovou aplikaci Hello, world!.

  3. Stisknutím klávesy zavřete okno konzoly a vraťte se do sady Visual Studio.

Teď máte nástroje pro sestavení a spuštění aplikace po každé změně, abyste ověřili, že kód stále funguje podle očekávání. Později vám ukážeme, jak ho ladit, pokud ne.

Úprava kódu

Teď upravíme kód v této šabloně tak, aby byl aplikací kalkulačky.

  1. CalculatorTutorial.cpp Obsah souboru nahraďte následujícím kódem, aby odpovídal tomuto příkladu:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
            << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    Principy kódu:

    • Příkazy #include umožňují odkazovat na kód umístěný v jiných souborech. Někdy se může zobrazit název souboru obklopený úhlovými závorkami (<>); jindy je obklopen uvozovkami (" "). Obecně platí, že při odkazování na standardní knihovnu C++ se používají úhlové závorky, zatímco uvozovky se používají pro jiné soubory.
    • Řádek using namespace std; říká kompilátoru, aby očekával, že se budou v tomto souboru používat věci ze standardní knihovny jazyka C++. Bez tohoto řádku by každé klíčové slovo z knihovny muselo předcházet std:: , aby bylo možné označit jeho rozsah. Například bez toho řádku by každý odkaz cout musel být zapsán jako std::cout. Příkaz using se přidá, aby kód vypadal čistěji.
    • Klíčové cout slovo slouží k tisku do standardního výstupu v jazyce C++. Operátor << říká kompilátoru, aby do standardního výstupu odeslal cokoli, co je napravo od něj.
    • Klíčové endl slovo je jako klávesa Enter; končí řádek a přesune kurzor na další řádek. Je lepší dát \n do řetězce (obsaženého "") stejný postup, protože endl vždy vyprázdní vyrovnávací paměť, která může poškodit výkon programu. Vzhledem k tomu, že se jedná o velmi malou aplikaci, endl používá se místo toho pro lepší čitelnost.
    • Všechny příkazy jazyka C++ musí končit středníky a všechny aplikace jazyka main() C++ musí obsahovat funkci. Tato funkce je to, co program spouští na začátku. Aby bylo možné použít veškerý kód, musí být přístupný.main()
  2. Pokud chcete soubor uložit, stiskněte Ctrl+S nebo vyberte ikonu Uložit v horní části integrovaného vývojového prostředí (IDE), ikonu diskety na panelu nástrojů pod řádkem nabídek.

  3. Pokud chcete aplikaci spustit, stiskněte Ctrl+F5 nebo přejděte do nabídky Ladění a vyberte Spustit bez ladění. Mělo by se zobrazit okno konzoly, které zobrazuje text zadaný v kódu.

  4. Až budete hotovi, zavřete okno konzoly.

Přidání kódu pro určitou matematiku

Třída je jako podrobný plán objektu, který něco dělá. V tomto případě definujeme třídu kalkulačky, která bude obsahovat matematickou logiku.

Přidání třídy Kalkulačka

  1. Přejděte do nabídky Projekt a vyberte Přidat třídu. Do textového pole Název třídy zadejte Kalkulačku. Vyberte OK.

    Snímek obrazovky s dialogovým oknem Přidat třídu sady Visual Studio

    Pole název třídy je nastaveno na kalkulačku. Pole souboru .h obsahuje Calculator.h. Pole souboru .cpp obsahuje Calculator.cpp. Pole základní třídy je prázdné. Další možnosti pro virtuální destruktor, vložený a nespravovaný není zaškrtnuto.

    Do projektu se přidají dva nové soubory. Pokud chcete uložit všechny změněné soubory najednou, stiskněte Kombinaci kláves Ctrl+Shift+S. Jedná se o klávesovou zkratku pro ukládání souborů>. Vedle tlačítka Uložit je také tlačítko panelu nástrojů pro uložit vše, ikona dvou disket. Obecně platí, že je vhodné provést možnost Uložit vše často, takže při ukládání nezmeškáte žádné soubory.

    Průvodce přidáním třídy vytvoří .h a .cpp soubory, které mají stejný název jako třída. Úplný seznam souborů projektu můžete zobrazit v okně Průzkumník řešení, který je viditelný na straně integrovaného vývojového prostředí (IDE). Pokud okno není viditelné, můžete ho otevřít z řádku nabídek: vyberte Zobrazit> Průzkumník řešení.

    Snímek obrazovky s oknem Průzkumník řešení sady Visual Studio

    Projekt kurzu kalkulačky obsahuje uzel souborů hlaviček obsahující Calculator.h. Uzel Zdrojové soubory obsahuje Calculator.cpp a CalculatorTutorial.cpp. Uzly pro odkazy, externí závislosti a soubory prostředků jsou viditelné, ale zavřené.

    Soubor můžete otevřít poklikáním v okně Průzkumník řešení. Poklikáním Calculator.h ho otevřete.

  2. Nahraďte obsah Calculator.h následujícím kódem, aby soubor teď vypadal takto:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    Vysvětlení kódu

    • Tento kód deklaruje novou funkci s názvem Calculate, kterou používáme ke spouštění matematických operací pro sčítání, odčítání, násobení a dělení.
    • Kód C++ je uspořádaný do souborů hlaviček (.h) a zdrojových (.cpp) souborů. Různé kompilátory podporují několik dalších přípon souborů, ale jsou to hlavní, o kterých je potřeba vědět. Funkce a proměnné jsou obvykle deklarovány, to znamená, že mají název a typ, v souborech hlaviček a implementují se nebo mají definici ve zdrojových souborech. Pro přístup k kódu definovanému v jiném souboru můžete použít #include "filename.h", kde filename.h je název souboru, který deklaruje proměnné nebo funkce, které chcete použít.
    • Je vhodné kód uspořádat do různých souborů na základě toho, co dělá, takže kód, který budete potřebovat, snadno najdete později. V našem případě definujeme Calculator třídu odděleně od souboru obsahujícího main() funkci, ale plánujeme odkazovat na Calculator třídu v main().
  3. Pod zelenou vlnovkou se zobrazí Calculate zelená vlnovka, protože i když Calculate je funkce deklarována, není definována. Najeďte Calculatemyší , klikněte na šipku dolů na šroubováku, který se zobrazí, a vyberte Vytvořit definici "Calculate" in Calculator.cpp.

    Snímek obrazovky s rozevíracím seznamem šroubováku v okně editoru sady Visual Studio Je zvýrazněná možnost Vytvořit definici výpočtu v Calculator.cpp.

    Tento kód se přidá do Calculator.cpp:

    Snímek obrazovky editoru sady Visual Studio s definicí funkce Calculate

    Definice konstruktoru je: double Calculator::Calculate( double x; char oper; double y) { return 0,0; }

    V současné době vrátí pouze hodnotu 0,0. Pojďme to změnit.

  4. Přepněte do Calculator.cpp souboru v okně editoru. Nahraďte obsah Calculator::Calculate(double x, char oper, double y) tímto obsahem:

    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    Vysvětlení kódu

    • Funkce Calculate využívá číslo, operátor a druhé číslo a potom provede požadovanou operaci s čísly.
    • Příkaz switch zkontroluje, který operátor byl poskytnut, a provede pouze případ odpovídající dané operaci. Výchozí hodnota: Případ je náhradní v případě, že uživatel zadá operátor, který není přijat, takže program se neruší. Obecně je nejlepší zpracovat neplatný uživatelský vstup elegantnějším způsobem, ale to je nad rámec tohoto kurzu.
    • Klíčové double slovo označuje typ čísla, který podporuje desetinná místa. Kalkulačka tak dokáže zpracovat desetinnou matematiku i celočíselnou matematiku. Funkce Calculate je povinná vždy vrátit takové číslo, protože double na začátku kódu (označuje návratový typ funkce), což je důvod, proč vrátíme hodnotu 0,0 i ve výchozím případě.
    • Soubor .h deklaruje prototyp funkce, který kompilátoru předem řekne, jaké parametry vyžaduje, a jaký návratový typ má od něj očekávat. Soubor .cpp obsahuje všechny podrobnosti implementace funkce.

Pokud kód sestavíte a spustíte znovu v tomto okamžiku, okamžitě se ukončí po zadání operace, která se má provést. Proto upravte main funkci tak, aby dělala více výpočtů.

Calculator Volání členských funkcí třídy

  1. Aktualizujte main funkci CalculatorTutorial.cpp následujícím způsobem:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
             << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result " << "of " << x << oper << y << " is: " << result << endl;
        }
    
        return 0;
    }
    

    Vysvětlení kódu

    • Vzhledem k tomu, že programy C++ vždy začínají na main() funkci, musíme odtamtud volat náš další kód, takže je potřeba příkaz #include .
    • Některé počáteční proměnné x, , yopera result jsou deklarovány pro uložení prvního čísla, druhého čísla, operátoru a konečného výsledku. Vždy je vhodné jim dát nějaké počáteční hodnoty, aby se zabránilo nedefinované chování, což se tady dělá.
    • Řádek Calculator c; deklaruje objekt s názvem c jako instanci Calculator třídy. Samotná třída je pouze podrobný plán, jak kalkulačky fungují; objekt je konkrétní kalkulačka, která provádí matematiku.
    • Příkaz while (true) je smyčka. Kód uvnitř smyčky se bude i nadále spouštět znovu, dokud podmínka uvnitř blokování () true. Vzhledem k tomu, že podmínka je jednoduše uvedena jako true, je vždy true, takže smyčka běží navždy. Chcete-li program zavřít, musí uživatel ručně zavřít okno konzoly. Jinak program vždy čeká na nový vstup.
    • Klíčové cin slovo se používá k přijetí vstupu od uživatele. Tento vstupní datový proud je dostatečně inteligentní pro zpracování řádku textu zadaného v okně konzoly a jeho umístění do každé z uvedených proměnných v uvedeném pořadí za předpokladu, že vstup uživatele odpovídá požadované specifikaci. Tento řádek můžete upravit tak, aby přijímal různé typy vstupu, například více než dvě čísla, i když Calculate() by funkce také potřebovala aktualizovat, aby to zvládla.
    • Výraz c.Calculate(x, oper, y); volá funkci definovanou Calculate dříve a poskytuje zadané vstupní hodnoty. Funkce pak vrátí číslo, které se uloží do result.
    • Nakonec se vytiskne do konzoly, result takže uživatel uvidí výsledek výpočtu.

Opětovné sestavení a otestování kódu

Teď program znovu otestujte, abyste měli jistotu, že všechno funguje správně.

  1. Stisknutím kombinace kláves Ctrl+F5 aplikaci znovu sestavíte a spustíte.

  2. Zadejte 5+5a stiskněte Enter. Ověřte, že výsledek je 10.

    Snímek obrazovky s příkazovým oknem zobrazujícím výsledky spuštění programu

    Výstupem aplikace je zpráva: Zadejte operaci, kterou chcete provést. Formát: a+b | a-b | a*b | a/b. Uživatel zadal 5+5. Výstup aplikace: Výsledek 5+5 je: 10

Ladění aplikace

Vzhledem k tomu, že uživatel může do okna konzoly zadat cokoli, pojďme se ujistit, že kalkulačka zpracovává neočekávaný vstup. Místo spuštění programu ho pojďme ladit, abychom mohli zkontrolovat, co dělá krok za krokem.

Spuštění aplikace v ladicím programu

  1. Nastavte CalcuatorTutorial.cppzarážku na řádku: result = c.Calculate(x, oper, y);. Pokud chcete nastavit zarážku, klikněte vedle čáry na šedém svislém pruhu podél levého okraje okna editoru. Zobrazí se červená tečka.

    Snímek obrazovky s editorem sady Visual Studio Na řádku se zobrazí červená tečka představující zarážku: výsledek = c.Calculate(x, oper, y).

    Když teď program ladíme, provádění se na daném řádku pozastaví. Už máme hrubý nápad, že program funguje pro jednoduché případy. Vzhledem k tomu, že nechceme pozastavit provádění při každém volání Calculate(), nastavíme podmíněný zarážku.

  2. Klikněte pravým tlačítkem myši na červenou tečku, která představuje zarážku, a vyberte Podmínky. Do textového pole podmínky zadejte (y == 0) && (oper == '/'). Vyberte tlačítko Zavřít a uložte podmínku zarážky.

    Snímek obrazovky se sadou Visual Studio zobrazující zarážku Nastavení automaticky otevírané okno

    Podmínka zarážky je: y===0 && oper == '/' Je true.

    Spuštění se teď pozastaví na zarážce, když se aplikace pokusí vydělit 0.

  3. Pokud chcete program ladit, stiskněte klávesu F5 nebo vyberte tlačítko panelu nástrojů Místní ladicí program systému Windows s ikonou zelené šipky. Pokud do konzolové aplikace zadáte něco jako "5 –0", program se chová normálně a pořád běží. Pokud ale zadáte "10 / 0", pozastaví se na zarážce. Můžete zadat libovolný počet mezer mezi operátorem a čísly: cin je dostatečně inteligentní, abyste mohli správně analyzovat vstup.

    Snímek obrazovky editoru sady Visual Studio Spuštění programu se zastavilo na podmíněné zarážce na řádku: result = c.Calculate(x, oper, y);.

Užitečná okna v ladicím programu

Při ladění kódu si můžete všimnout, že se zobrazí některá nová okna. Tato okna vám můžou pomoct s laděním. Podívejte se do okna Automatické položky . V okně Automatické položky se zobrazí aktuální hodnoty proměnných, které se používají alespoň tři řádky před a až do aktuálního řádku.

Snímek obrazovky s oknem automatického ladicího programu sady Visual Studio

Hodnota opery je 47 '/', výsledek je 5, x je 10 a y je 0.

Pokud chcete zobrazit všechny proměnné z této funkce, přepněte do okna Místní hodnoty. Hodnoty těchto proměnných můžete upravit při ladění, abyste viděli, jaký vliv mají na program. V tomto případě je necháme samotné.

Snímek obrazovky s oknem Místní hodnoty v sadě Visual Studio zobrazující aktuální hodnoty místních proměnných při ladění

Hodnota operu je 47 '/', výsledek je 0, x je 10 a y je 0.

Můžete také najet myší na proměnné v kódu a zobrazit jejich aktuální hodnoty v okamžiku, kdy je právě pozastaveno provádění. Kliknutím na okno editoru se nejprve ujistěte, že je na něm fokus.

Snímek obrazovky s popisem znázorňující hodnotu proměnné oper, která je 47 nebo /

Pokračovat v ladění

  1. Žlutá šipka vlevo zobrazuje aktuální bod provádění. Volání aktuálního řádku Calculate, takže stisknutím klávesy F11 přejděte do funkce. Teď spouštíte kód v těle Calculate funkce. Krok do buďte opatrní, protože postupují do všech funkcí na řádku, ve kterém jste, včetně standardních funkcí knihovny. Je v pořádku přejít ke standardní knihovně, ale možná vás bude zajímat, že se místo kódu knihovny zaměříte na svůj kód.

  2. Teď, když je bod provádění na začátku Calculate funkce, stisknutím klávesy F10 přejděte na další řádek provádění programu. F10 se také označuje jako Step Over. Krok přes můžete použít k přechodu z řádku na čáru, aniž byste se museli zabývat podrobnostmi o tom, co se v každé části řádku vyskytuje. Obecně platí, že místo kroku Do byste měli použít krok přes, pokud se nechcete hlouběji ponořit do kódu, který je volána odjinud (stejně jako jste dosáhli těla Calculate).

  3. Pokračujte v používání klávesy F10 k kroku přes každý řádek, dokud se nedostanete zpět na main() funkci v druhém souboru, a zastavte na cout řádku.

    Program dělá to, co se očekává: vezme první číslo a vydělí ho druhým číslem. cout Na řádku najeďte myší na result proměnnou nebo se podívejte result do okna Automatické. Jeho hodnota inf, která nevypadá správně, takže ji opravíme. Řádek cout jenom vypíše libovolnou hodnotu uloženou result, takže když krokujete jeden řádek vpřed pomocí klávesy F10, zobrazí se okno konzoly:

    Snímek obrazovky konzoly ladění sady Visual Studio zobrazující výsledek operace dělení nulou

    Výstup aplikace: Zadejte operaci, kterou chcete provést. Formát: a+b | a-b | a*b | a/b. Uživatel zadal 5-0. Výstup aplikace: Výsledek je: 5. Uživatel THe zadal 10/0. Výstup aplikace: Výsledek je: inf

    Výsledkem je, že dělení nulou není definováno, takže program nemá číselnou odpověď na požadovanou operaci.

Oprava chyby "dělit nulou"

Pracujme s dělením nulou elegantněji, aby uživatel snadněji pochopil problém.

  1. Proveďte následující změny v souboru CalculatorTutorial.cpp. (Program můžete nechat spuštěný při úpravách, a to díky funkci ladicího programu, která se nazývá Upravit a pokračovat). if Přidejte následující cin >> x >> oper >> y; příkaz, který zkontroluje dělení nulou a vypíše zprávu uživateli, pokud k tomu dojde. V opačném případě se výsledek vytiskne.

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Attempted to divide by zero!" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result " << "of " << x << oper << y << " is: " << result << endl;
        }
    
        return 0;
    }
    
  2. Stiskněte jednou klávesu F5 . Provádění programu pokračuje celou dobu, dokud se nebude muset pozastavit a požádat o uživatelský vstup. Znovu zadejte 10 / 0 . Teď se vytiskne užitečnější zpráva. Uživateli se zobrazí výzva k zadání dalšího vstupu a program se bude normálně spouštějí.

    Snímek obrazovky okna konzoly zobrazující konečný výstup po implementaci změn pro zpracování dělení nulou

    V okně konzoly se zobrazí dva řádky: 10 / 0 Výsledek je: inf, následovaný, 10 / 0 Matematická chyba: Pokus o dělení nulou.

    Poznámka:

    Když upravujete kód v režimu ladění, hrozí, že kód přestane být zastaralý. K tomu dochází, když ladicí program stále spouští váš starý kód a ještě ho neaktualizoval o provedené změny. Ladicí program zobrazí dialogové okno, které vás informuje o tom, kdy k tomu dojde. Někdy možná budete muset stisknout klávesu F5 , abyste aktualizovali spuštěný kód. Zejména pokud provedete změnu uvnitř funkce, zatímco bod provádění je uvnitř této funkce, musíte přejít z funkce, pak se k ní znovu vrátit, aby se aktualizovaný kód získal. Pokud to nepomůže a zobrazí se chybová zpráva, můžete ladění zastavit kliknutím na červený čtverec na panelu nástrojů pod nabídkami v horní části integrovaného vývojového prostředí a opětovným spuštěním ladění zadáním klávesy F5 nebo výběrem zelené šipky "přehrát" vedle tlačítka zarážky na panelu nástrojů.

    Dalším důvodem, proč upravit a pokračovat, může selhat, pokud se zobrazí zpráva "Vyžadovat zdrojové soubory, aby přesně odpovídaly původnímu nastavení verze v části Možnosti ladění> –> Obecné je potřeba povolit..." Pokud chcete tento problém vyřešit, v hlavní nabídce vyberte Nástroje>Možnosti>ladění>Obecné a ujistěte se, že je zaškrtnuté políčko Vyžadovat zdrojové soubory, aby přesně odpovídaly původní verzi.

    Vysvětlení klávesových zkratek Spustit a Ladění

    • F5 (nebo Spustit ladění spustit ladění) spustí ladicí>relaci, pokud ještě není aktivní, a spustí program, dokud se nenarazí zarážka nebo program potřebuje uživatelský vstup. Pokud není potřeba žádný uživatelský vstup a není k dispozici žádná zarážka, program se ukončí a okno konzoly se zavře, jakmile program dokončí spuštění. Pokud chcete spustit něco jako "Hello World", použijte Ctrl+F5 nebo nastavte zarážku, než stisknete klávesu F5 , aby bylo okno otevřené.
    • Ctrl+F5 (nebo >Spustit bez ladění) spustí aplikaci bez přechodu do režimu ladění. Je to o něco rychlejší než ladění a okno konzoly zůstane otevřené po dokončení provádění programu.
    • F10 (označovaný jako Krok přes) umožňuje iterovat kód, řádek po řádku a vizualizovat, jak se kód spouští a jaké hodnoty proměnných jsou v každém kroku provádění.
    • F11 (označované jako Krok do) funguje podobně jako Step Over, s výjimkou kroků do všech funkcí volaných na řádku provádění. Pokud například řádek spuštěný volá funkci, stisknutím klávesy F11 přesunete ukazatel do těla funkce, abyste mohli sledovat spuštění kódu funkce, než se vrátíte na řádek, na který jste začali. Stisknutím klávesy F10 přes volání funkce se přesunete na další řádek. Volání funkce se pořád děje, ale program se nepřestaví, aby vám ukázal, co dělá.

Uzavření aplikace

  • Pokud je aplikace kalkulačky pořád spuštěná, zavřete okno konzoly.

Přidání správy zdrojového kódu Gitu

Teď, když jste vytvořili aplikaci, můžete ji přidat do úložiště Git. Máme pro vás řešení. Visual Studio usnadňuje tento proces pomocí nástrojů Gitu, které můžete použít přímo z integrovaného vývojového prostředí (IDE).

Tip

Git je nejčastěji používaný moderní systém správy verzí, takže ať už jste profesionální vývojář nebo se učíte kódovat, Git může být velmi užitečný. Pokud s Gitem začínáte, https://git-scm.com/ je web dobrým místem, kde začít. Tam můžete najít taháky, oblíbenou online knihu a videa základy Gitu.

Pokud chcete kód přidružit k Gitu, začněte vytvořením nového úložiště Git, ve kterém se váš kód nachází. Postupujte následovně:

  1. Na stavovém řádku v pravém dolním rohu sady Visual Studio vyberte Přidat do správy zdrojového kódu a pak vyberte Git.

    Snímek obrazovky s tlačítky správy zdrojového kódu Gitu pod podoknem Průzkumník řešení se zvýrazněným tlačítkem Přidat do správy zdrojového kódu

  2. V dialogovém okně Vytvořit úložiště Git se přihlaste k GitHubu.

    Snímek obrazovky s dialogovým oknem Vytvořit úložiště Git, kde vytvoříte nové úložiště GitHub

    Název úložiště se automaticky naplní na základě umístění vaší složky. Ve výchozím nastavení je vaše nové úložiště soukromé, což znamená, že jste jediný, kdo k němu má přístup.

    Tip

    Bez ohledu na to, jestli je vaše úložiště veřejné nebo soukromé, je nejlepší mít bezpečně uložené vzdálené zálohování kódu na GitHubu. I když nepracujete s týmem, vzdálené úložiště vám zpřístupní váš kód z libovolného počítače.

  3. Vyberte Vytvořit a nasdílení změn.

    Po vytvoření úložiště se na stavovém řádku zobrazí podrobnosti o stavu.

    Snímek obrazovky se stavovým řádkem úložiště umístěným pod podoknem Průzkumník řešení sady Visual Studio s názvem větve a počtem nevyřízených změn

    První ikona se šipkami ukazuje, kolik odchozích a příchozích potvrzení je ve vaší aktuální větvi. Pomocí této ikony můžete vyžádat příchozí potvrzení nebo odeslat odchozí potvrzení. Můžete se také rozhodnout, že se budou tyto potvrzení zobrazovat jako první. Uděláte to tak, že vyberete ikonu a pak vyberete Zobrazit odchozí/příchozí poštu.

    Druhá ikona s tužkou zobrazuje počet nepotvrzených změn kódu. Tuto ikonu můžete vybrat, pokud chcete tyto změny zobrazit v okně Změny Gitu.

Další informace o používání Gitu s vaší aplikací najdete v dokumentaci ke správě verzí sady Visual Studio.

Dokončená aplikace

Gratulujeme! Dokončili jste kód aplikace kalkulačky, vytvořili a ladili ho a přidali jste ho do úložiště, a to vše v sadě Visual Studio.

Další kroky

Další informace o sadě Visual Studio pro C++

Obvyklým výchozím bodem programátora jazyka C++ je aplikace "Hello, world!", která běží na příkazovém řádku. Začnete s tím v tomto článku a pak přejdeme k něčemu náročnějšímu: aplikaci kalkulačky.

Požadavky

Vytvoření projektu aplikace

Visual Studio používá projekty k uspořádání kódu pro aplikaci a řešení k uspořádání jednoho nebo více projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla použitá k sestavení aplikace. Spravuje také vztah mezi všemi soubory projektu a všemi externími soubory. Pokud chcete vytvořit aplikaci, nejprve vytvořte nový projekt a řešení.

  1. Na řádku nabídek v sadě Visual Studio vyberte Soubor>nový>projekt. Otevře se okno Nový projekt .

  2. Na levém bočním panelu se ujistěte, že je vybrán Visual C++ . V centru vyberte konzolovou aplikaci systému Windows.

  3. Do textového pole Název v dolní části pojmenujte nový projekt CalculatorTutorial a pak vyberte OK.

    Snímek obrazovky s dialogovým oknem Nový projekt Je vybrán typ projektu konzolové aplikace systému Windows. Textové pole Název nastavené na CalculatorTutorial.

    Vytvoří se prázdná konzolová aplikace C++ pro Windows Hello World. Konzolové aplikace používají okno konzoly systému Windows k zobrazení výstupu a přijetí uživatelského vstupu. V sadě Visual Studio se otevře okno editoru a zobrazí vygenerovaný kód:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

Ověřte, že se vaše nová aplikace sestaví a spustí.

Šablona pro novou konzolovou aplikaci windows vytvoří jednoduchou aplikaci "Hello World" V jazyce C++. V tomto okamžiku si můžete prohlédnout, jak Visual Studio sestaví a spustí aplikace, které vytvoříte přímo z integrovaného vývojového prostředí (IDE).

  1. Projekt sestavíte tak, že v nabídce Sestavení vyberete Sestavit řešení. V okně Výstup se zobrazí výsledky procesu sestavení.

    Snímek obrazovky s oknem Výstup sady Visual Studio, ve kterém je vidět, že sestavení proběhlo úspěšně

  2. Pokud chcete kód spustit, na řádku nabídek vyberte Ladit, Spustit bez ladění (Ctrl+F5).

    Snímek obrazovky konzoly ladění sady Visual Studio zobrazující výstup: Hello World!.

    Otevře se okno konzoly a pak spustí vaši aplikaci.

    Když spustíte konzolovou aplikaci v sadě Visual Studio, spustí se váš kód a vytiskne se "Stisknutím libovolné klávesy zavřete toto okno . . ", abyste získali šanci zobrazit výstup.

    Gratulujeme! V sadě Visual Studio jste vytvořili svou první konzolovou aplikaci Hello, world!.

  3. Stisknutím klávesy zavřete okno konzoly a vraťte se do sady Visual Studio.

Teď máte nástroje pro sestavení a spuštění aplikace po každé změně, abyste ověřili, že kód stále funguje podle očekávání. Později vám ukážeme, jak ho ladit, pokud ne.

Úprava kódu

Teď kód v této šabloně změníme na aplikaci kalkulačky.

  1. CalculatorTutorial.cpp Obsah souboru nahraďte následujícím kódem, aby odpovídal tomuto příkladu:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    Principy kódu:

    • Příkazy #include umožňují odkazovat na kód umístěný v jiných souborech. Někdy se může zobrazit název souboru obklopený úhlovými závorkami (<>); jindy je obklopen uvozovkami (" "). Obecně platí, že při odkazování na standardní knihovnu C++ se používají úhlové závorky, zatímco uvozovky se používají pro jiné soubory.
    • Řádek using namespace std; říká kompilátoru, aby očekával, že se budou v tomto souboru používat věci ze standardní knihovny jazyka C++. Bez tohoto řádku by každé klíčové slovo z knihovny muselo předcházet std:: , aby bylo možné označit jeho rozsah. Například bez toho řádku by každý odkaz cout musel být zapsán jako std::cout. Příkaz using se přidá, aby kód vypadal čistěji.
    • Klíčové cout slovo slouží k tisku do standardního výstupu v jazyce C++. Operátor *<< říká kompilátoru, aby odeslal cokoli, co je napravo od něj, do standardního výstupu.
    • Klíčové endl slovo je jako klávesa Enter; končí řádek a přesune kurzor na další řádek. Je lepší dát \n do řetězce (obsaženého "") stejný postup, protože endl vždy vyprázdní vyrovnávací paměť a může poškodit výkon programu. Vzhledem k tomu, že se jedná o velmi malou aplikaci, endl používá se místo toho pro lepší čitelnost.
    • Všechny příkazy jazyka C++ musí končit středníky a všechny aplikace jazyka main() C++ musí obsahovat funkci. Tato funkce je to, co program spouští na začátku. Aby bylo možné použít veškerý kód, musí být přístupný.main()
  2. Pokud chcete soubor uložit, stiskněte Ctrl+S nebo vyberte ikonu Uložit v horní části integrovaného vývojového prostředí (IDE), ikonu diskety na panelu nástrojů pod řádkem nabídek.

  3. Pokud chcete aplikaci spustit, stiskněte Ctrl+F5 nebo přejděte do nabídky Ladění a vyberte Spustit bez ladění. Pokud se zobrazí automaticky otevírané okno s informací, že tento projekt je zastaralý, můžete znovu vybrat Možnost Nezobrazovat toto dialogové okno a pak výběrem možnosti Ano sestavte aplikaci. Mělo by se zobrazit okno konzoly, které zobrazuje text zadaný v kódu.

    Video znázorňující proces spuštění aplikace kalkulačky v integrovaném vývojovém prostředí (IDE).

    Nejprve se zobrazí dialogové okno s dotazem, jestli se má sestavit, protože projekt je zastaralý. Je zaškrtnuto políčko "Nezobrazovat toto dialogové okno znovu". Pro sestavení projektu je vybrána možnost Ano, sestaví se projekt kalkulačky a pak se spustí v okně konzoly Windows.

  4. Až budete hotovi, zavřete okno konzoly.

Přidání kódu pro určitou matematiku

Třída je jako podrobný plán objektu, který něco dělá. V tomto případě definujeme třídu kalkulačky, která bude obsahovat matematickou logiku.

Přidání třídy Kalkulačka

  1. Přejděte do nabídky Projekt a vyberte Přidat třídu. Do textového pole Název třídy zadejte Kalkulačku. Vyberte OK.

    Video zobrazující uživatele, který otevře dialogové okno Přidat třídu, do pole Název třídy zadá

    Třída je jako podrobný plán objektu, který něco dělá. V tomto případě definujeme kalkulačku a způsob, jak by měla fungovat.

    Do projektu se přidají dva nové soubory. Pokud chcete uložit všechny změněné soubory najednou, stiskněte Kombinaci kláves Ctrl+Shift+S. Jedná se o klávesovou zkratku pro ukládání souborů>. Vedle tlačítka Uložit je také tlačítko panelu nástrojů pro uložit vše, ikona dvou disket. Obecně platí, že je vhodné provést možnost Uložit vše často, takže při ukládání nezmeškáte žádné soubory.

    Průvodce přidáním třídy vytvoří .h a .cpp soubory, které mají stejný název jako třída. Úplný seznam souborů projektu můžete zobrazit v okně Průzkumník řešení, který je viditelný na straně integrovaného vývojového prostředí (IDE). Pokud okno není viditelné, můžete ho otevřít z řádku nabídek: vyberte Zobrazit> Průzkumník řešení.

    Snímek obrazovky s oknem Průzkumník řešení sady Visual Studio

    Projekt kurzu kalkulačky obsahuje uzel souborů hlaviček obsahující Calculator.h, stdafx.h a targetver.h. Uzel Zdrojové soubory obsahuje Calculator.cpp, CalculatorTutorial.cpp a stdafx.cpp. Uzly pro odkazy, externí závislosti a soubory prostředků jsou viditelné, ale zavřené.

    Soubor můžete otevřít poklikáním v okně Průzkumník řešení. Poklikáním Calculator.h ho otevřete.

  2. Nahraďte obsah Calculator.h následujícím kódem, aby soubor teď vypadal takto:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    Vysvětlení kódu

    • Tento kód deklaruje novou funkci s názvem Calculate, kterou používáme ke spouštění matematických operací pro sčítání, odčítání, násobení a dělení.
    • Kód C++ je uspořádaný do souborů hlaviček (.h) a zdrojových (.cpp) souborů. Různé kompilátory podporují několik dalších přípon souborů, ale jsou to hlavní, o kterých je potřeba vědět. Funkce a proměnné jsou obvykle deklarovány, to znamená, že mají název a typ, v souborech hlaviček a implementují se nebo mají definici ve zdrojových souborech. Pro přístup k kódu definovanému v jiném souboru můžete použít #include "filename.h", kde filename.h je název souboru, který deklaruje proměnné nebo funkce, které chcete použít.
    • Je vhodné kód uspořádat do různých souborů na základě toho, co dělá, takže kód, který budete potřebovat, snadno najdete později. V našem případě definujeme Calculator třídu odděleně od souboru obsahujícího main() funkci, ale plánujeme odkazovat na Calculator třídu v main().
  3. Pod zelenou vlnovkou se zobrazí Calculate zelená vlnovka, protože i když Calculate je funkce deklarována, není definována. Najeďte Calculatemyší , klikněte na šipku dolů na šroubováku, který se zobrazí, a vyberte Vytvořit definici "Calculate" in Calculator.cpp. Zobrazí se automaticky otevírané okno s náhledem změny kódu provedené v jiném souboru. Kód byl přidán do Calculator.cppsouboru .

    Video znázorňující použití rozevíracího seznamu žárovky k výběru možnosti Vytvořit definici funkce Calculate v Calculator.cpp

    V současné době vrátí pouze hodnotu 0,0. Pojďme to změnit. Stisknutím klávesy Esc zavřete automaticky otevírané okno.

  4. Přepněte do Calculator.cpp souboru v okně editoru. Obsah souboru nahraďte tímto kódem:

    #include "Calculator.h"
    
    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    Vysvětlení kódu

    • Funkce Calculate využívá číslo, operátor a druhé číslo a potom provede požadovanou operaci s čísly.
    • Příkaz switch zkontroluje, který operátor byl poskytnut, a provede pouze případ odpovídající dané operaci. Výchozí hodnota: Případ je náhradní v případě, že uživatel zadá operátor, který není přijat, takže program se neruší. Obecně je nejlepší zpracovat neplatný uživatelský vstup elegantnějším způsobem, ale to je nad rámec tohoto kurzu.
    • Klíčové double slovo označuje typ čísla, který podporuje desetinná místa. Kalkulačka tak dokáže zpracovat desetinnou matematiku i celočíselnou matematiku. Funkce Calculate je povinná vždy vrátit takové číslo, protože double na začátku kódu (označuje návratový typ funkce), což je důvod, proč vrátíme hodnotu 0,0 i ve výchozím případě.
    • Soubor .h deklaruje prototyp funkce, který kompilátoru předem řekne, jaké parametry vyžaduje, a jaký návratový typ má od něj očekávat. Soubor .cpp obsahuje všechny podrobnosti implementace funkce.

Pokud kód sestavíte a spustíte znovu v tomto okamžiku, zůstane po dotazu, která operace se má provést, ukončit. V dalším kroku upravte main funkci tak, aby dělala nějaké výpočty.

Volání členské funkce třídy Kalkulačka

  1. Teď funkci aktualizujeme v main CalculatorTutorial.cpp:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    

    Vysvětlení kódu

    • Vzhledem k tomu, že programy C++ vždy začínají na main() funkci, musíme odtamtud volat náš další kód, takže je potřeba příkaz #include .
    • Některé počáteční proměnné x, , yopera result jsou deklarovány pro uložení prvního čísla, druhého čísla, operátoru a konečného výsledku. Vždy je vhodné jim dát nějaké počáteční hodnoty, aby se zabránilo nedefinované chování, což se tady dělá.
    • Řádek Calculator c; deklaruje objekt s názvem c jako instanci Calculator třídy. Samotná třída je pouze podrobný plán, jak kalkulačky fungují; objekt je konkrétní kalkulačka, která provádí matematiku.
    • Příkaz while (true) je smyčka. Kód uvnitř smyčky se bude i nadále spouštět znovu, dokud podmínka uvnitř blokování () true. Vzhledem k tomu, že podmínka je jednoduše uvedena jako true, je vždy true, takže smyčka běží navždy. Chcete-li program zavřít, musí uživatel ručně zavřít okno konzoly. Jinak program vždy čeká na nový vstup.
    • Klíčové cin slovo se používá k přijetí vstupu od uživatele. Tento vstupní datový proud je dostatečně inteligentní pro zpracování řádku textu zadaného v okně konzoly a jeho umístění do každé z uvedených proměnných v uvedeném pořadí za předpokladu, že vstup uživatele odpovídá požadované specifikaci. Tento řádek můžete upravit tak, aby přijímal různé typy vstupu, například více než dvě čísla, i když Calculate() by funkce také potřebovala aktualizovat, aby to zvládla.
    • Výraz c.Calculate(x, oper, y); volá funkci definovanou Calculate dříve a poskytuje zadané vstupní hodnoty. Funkce pak vrátí číslo, které se uloží do result.
    • Nakonec se vytiskne do konzoly, result takže uživatel uvidí výsledek výpočtu.

Opětovné sestavení a otestování kódu

Otestujte program znovu, abyste měli jistotu, že všechno funguje správně.

  1. Stisknutím kombinace kláves Ctrl+F5 aplikaci znovu sestavíte a spustíte.

  2. Zadejte 5+5a stiskněte Enter. Ověřte, že výsledek je 10.

    Snímek obrazovky s příkazovým oknem se spuštěnou aplikací Kalkulačka Ukazuje, že výsledek 5 + 5 je 10.

Ladění aplikace

Vzhledem k tomu, že uživatel může do okna konzoly zadat cokoli, pojďme se ujistit, že kalkulačka zpracovává neočekávaný vstup. Místo spuštění programu ji pojďme ladit, abychom mohli zkontrolovat, co dělá krok za krokem.

Spuštění aplikace v ladicím programu

  1. Nastavte CalcuatorTutorial.cppzarážku na result = c.Calculate(x, oper, y); řádku. Pokud chcete nastavit zarážku, klikněte vedle čáry na šedém svislém pruhu podél levého okraje okna editoru. Zobrazí se červená tečka.

    Video zobrazující uživatele, který nastavuje zarážku na řádku 25: výsledek = c.Calculate(x, oper, y);.

    Když teď program ladíme, vždy pozastaví provádění na daném řádku. Už máme hrubý nápad, že program funguje pro jednoduché případy. Vzhledem k tomu, že nechceme pozastavit provádění pokaždé, pojďme nastavit podmíněnou zarážku.

  2. Klikněte pravým tlačítkem myši na červenou tečku, která představuje zarážku, a vyberte Podmínky. Do textového pole podmínky zadejte (y == 0) && (oper == '/'). Až budete hotovi, vyberte tlačítko Zavřít a uložte podmínku zarážky.

    Video demonstrující proces nastavení podmíněné zarážky

    Zarážka je na řádku: výsledek = c tečka Calculate ( x, oper, y). Podmínky... je vybrána v rozevíracím seznamu zarážky, která otevře okno nastavení zarážky. Je zaškrtnutá možnost Podmínka, pod kterou jsou rozevírací seznamy nastaveny jako: Podmíněný výraz a Je true. Uživatel zadá do textového pole podmínky y == 0 &&& oper == '/' a pak vybere blízko k nastavení podmíněné zarážky.

    Teď pozastavíme provádění na zarážce konkrétně v případě, že dojde k pokusu o dělení o 0.

  3. Pokud chcete program ladit, stiskněte klávesu F5 nebo vyberte tlačítko panelu nástrojů Místní ladicí program systému Windows s ikonou zelené šipky. Pokud do konzolové aplikace zadáte něco jako "5 –0", program se chová normálně a pořád běží. Pokud ale zadáte "10 / 0", pozastaví se na zarážce. Můžete dokonce vložit libovolný počet mezer mezi operátorem a čísly; cin je dostatečně inteligentní, aby správně parsovat vstup.

    Video znázorňující spuštění programu pozastavené na podmíněné zarážce

    Uživatel zadá 5 až 0. Výstup aplikace: Výsledek je 5. Uživatel pak zadá hodnotu 10/0 a protože je splněna podmínka podmíněné zarážky, zastaví se provádění na řádku: výsledek = c.Calculate(x, oper, y);

Užitečná okna v ladicím programu

Při ladění kódu si můžete všimnout, že se zobrazí některá nová okna. Tato okna vám můžou pomoct s laděním. Podívejte se do okna Automatické položky . V okně Automatické položky se zobrazí aktuální hodnoty proměnných, které se používají alespoň tři řádky před a až do aktuálního řádku.

Snímek obrazovky s oknem automatického ladicího programu sady Visual Studio

Hodnota opery je 47 '/', výsledek je 5, x je 10 a y je 0.

Pokud chcete zobrazit všechny proměnné z této funkce, přepněte do okna Místní hodnoty. Hodnoty těchto proměnných můžete upravit při ladění, abyste viděli, jaký vliv mají na program. V tomto případě je necháme samotné.

Snímek obrazovky s oknem Místní hodnoty v sadě Visual Studio zobrazující aktuální hodnoty místních proměnných při ladění

Hodnota operu je 47 '/', výsledek je 0, x je 10 a y je 0.

Můžete také najet myší na proměnné v samotném kódu, abyste viděli jejich aktuální hodnoty, kde je provádění aktuálně pozastaveno. Kliknutím na okno editoru se nejprve ujistěte, že je na něm fokus.

Video znázorňující popis, který se zobrazí při najetí myší na proměnnou y Zobrazí aktuální hodnotu y, což je 0.

Pokračovat v ladění

  1. Žlutá šipka vlevo zobrazuje aktuální bod provádění. Aktuální řádek volá Calculate, takže stisknutím klávesy F11 přejděte do funkce, která vás přenese do těla Calculate funkce. Krok do buďte opatrní, protože postupují do všech funkcí na řádku, ve kterém jste, včetně standardních funkcí knihovny. Je v pořádku přejít ke standardní knihovně, ale možná vás bude zajímat, že se místo kódu knihovny zaměříte na svůj kód.

  2. Teď, když je bod provádění na začátku Calculate funkce, stisknutím klávesy F10 přejděte na další řádek provádění programu. F10 se také označuje jako Step Over. Krok přes můžete použít k přechodu z řádku na čáru, aniž byste se museli zabývat podrobnostmi o tom, co se v každé části řádku vyskytuje. Obecně byste měli použít krok přes místo kroku do, pokud se nechcete hlouběji ponořit do kódu, který je volána odjinud (stejně jako jste dosáhli Calculatetěla ).

  3. Pokračujte v používání klávesy F10 k kroku přes každý řádek, dokud se nedostanete zpět na main() funkci v druhém souboru, a zastavte na cout řádku.

    Video znázorňující krokování přes každý řádek kódu ve funkci Calculate

    Každý řádek kódu ve funkci Calculate je stupňovaný, dokud se ovládací prvek nevrátí do hlavní funkce. Uživatel pak najede myší na pojmenovaný výsledek proměnné a zobrazí jeho hodnotu, což je: inf."

    Program dělá to, co se očekává: vezme první číslo a vydělí ho druhým číslem. cout Na řádku najeďte myší na result proměnnou nebo se podívejte result do okna Automatické. Její hodnota je inf, která nevypadá správně, takže ji opravíme. Řádek cout jenom vypíše libovolnou hodnotu uloženou result, takže když krokujete jeden řádek vpřed pomocí klávesy F10, zobrazí se okno konzoly:

    Snímek obrazovky konzoly ladění sady Visual Studio zobrazující výsledek operace dělení nulou

    Výstup aplikace: Zadejte operaci, kterou chcete provést. Formát: a+b | a-b | a*b | a/b. Uživatel zadal 5-0. Výstup aplikace: Výsledek je: 5. Uživatel THe zadal 10/0. Výstup aplikace: Výsledek je: inf

    Výsledkem je, že dělení nulou není definováno, takže program nemá číselnou odpověď na požadovanou operaci.

Oprava chyby "dělit nulou"

Pracujme s dělením nulou elegantněji, aby uživatel snadněji pochopil problém.

  1. Proveďte následující změny v souboru CalculatorTutorial.cpp. (Program můžete nechat spuštěný při úpravách, a to díky funkci ladicího programu, která se nazývá Upravit a pokračovat). Změnou je přidat if následující cin >> x >> oper >> y; příkaz, který zkontroluje dělení nulou a vypíše uživateli zprávu, pokud k tomu dojde. V opačném případě se výsledek vytiskne:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Division by 0 exception" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    
  2. Stiskněte jednou klávesu F5 . Provádění programu pokračuje celou dobu, dokud se nebude muset pozastavit a požádat o uživatelský vstup. Znovu zadejte 10 / 0 . Teď se vytiskne užitečnější zpráva. Uživateli se zobrazí výzva k zadání dalšího vstupu a program se bude normálně spouštějí.

    Video konzoly ladění zobrazující konečný výsledek po změně kódu Je zadáno 10 / 0 a program zobrazí

    Poznámka:

    Když upravujete kód v režimu ladění, hrozí, že kód přestane být zastaralý. K tomu dochází, když ladicí program stále spouští váš starý kód a ještě ho neaktualizoval o provedené změny. Ladicí program zobrazí dialogové okno s informacemi o tom, kdy k tomu dojde. Někdy možná budete muset stisknout klávesu F5 , abyste aktualizovali spuštěný kód. Konkrétně pokud provedete změnu uvnitř funkce, zatímco bod provádění je uvnitř této funkce, odkročte z funkce, vraťte se k ní znovu, abyste získali aktualizovaný kód. Pokud to z nějakého důvodu nefunguje a zobrazí se chybová zpráva, můžete ladění zastavit kliknutím na červený čtverec na panelu nástrojů pod nabídkami v horní části integrovaného vývojového prostředí a pak znovu spustit ladění zadáním klávesy F5 nebo výběrem zelené šipky "přehrát" vedle tlačítka stop na panelu nástrojů.

    Dalším důvodem, proč upravit a pokračovat, může selhat, je, že musíte přejít do hlavní nabídky a vybrat Možnosti>>nástroje>Ladění Obecné a zajistit, aby se zdrojové soubory přesně shodovaly s původní verzí.

    Vysvětlení klávesových zkratek Spustit a Ladění

    • F5 (nebo Spustit ladění spustit ladění) spustí ladicí>relaci, pokud ještě není aktivní, a spustí program, dokud se nenarazí zarážka nebo program potřebuje uživatelský vstup. Pokud není potřeba žádný uživatelský vstup a není k dispozici žádná zarážka, program se ukončí a okno konzoly se zavře, jakmile program dokončí spuštění. Pokud chcete spustit něco jako "Hello World", použijte Ctrl+F5 nebo nastavte zarážku, než stisknete klávesu F5 , aby bylo okno otevřené.
    • Ctrl+F5 (nebo >Spustit bez ladění) spustí aplikaci bez přechodu do režimu ladění. Je to o něco rychlejší než ladění a okno konzoly zůstane otevřené po dokončení provádění programu.
    • F10 (označovaný jako Krok přes) umožňuje iterovat kód, řádek po řádku a vizualizovat, jak se kód spouští a jaké hodnoty proměnných jsou v každém kroku provádění.
    • F11 (označované jako Krok do) funguje podobně jako Step Over, s výjimkou kroků do všech funkcí volaných na řádku provádění. Pokud například řádek spuštěný volá funkci, stisknutím klávesy F11 přesunete ukazatel do těla funkce, abyste mohli sledovat spuštění kódu funkce, než se vrátíte na řádek, na který jste začali. Stisknutím klávesy F10 přes volání funkce se přesunete na další řádek. Volání funkce se pořád děje, ale program se nepřestaví, aby vám ukázal, co dělá.

Uzavření aplikace

  • Pokud je aplikace kalkulačky pořád spuštěná, zavřete okno konzoly.

Gratulujeme! Dokončili jste kód pro aplikaci kalkulačky a vytvořili a ladili ho v sadě Visual Studio.

Další kroky

Další informace o sadě Visual Studio pro C++