C++ içinde konsol hesaplayıcı oluşturma

C++ programcısı için normal başlangıç noktası, komut satırında çalışan bir "Hello, world!" uygulamasıdır. Bu makalede bu uygulamayla başlarsınız ve daha zorlu bir şeye geçersiniz: hesap makinesi uygulaması.

Önkoşullar

  • C++ ile Masaüstü geliştirme iş yükü yüklü Visual Studio. Daha fazla bilgi için bkz. Visual Studio'da C++ desteğini yükleme.
  • Bu öğreticide, uygulama çalışırken kodunuzda değişiklik yapmanızı sağlayan düzenle ve devam et adlı bir özellik gösterilmektedir. Düzenlemeyi etkinleştirmek ve devam etmek için ana menüden Araçlar>Seçenekler>Hata Ayıklama>Genel'i seçin ve Kaynak dosyaların özgün sürümle tam olarak eşleşmesini iste'yi seçin.

Uygulama projenizi oluşturma

Visual Studio, bir uygulamanın kodunu düzenlemek için projeleri ve bir veya daha fazla proje düzenlemeye yönelik çözümleri kullanır. Proje, uygulama oluşturmak için kullanılan seçenekleri, yapılandırmaları ve kuralları içerir. Ayrıca projenin dosyalarıyla dış dosyalar arasındaki ilişkiyi de yönetir. Uygulamanızı oluşturmak için önce yeni bir proje ve çözüm oluşturun.

  1. Visual Studio'yu başlatın. Visual Studio Başlangıç iletişim kutusu görüntülenir. Yeni proje oluştur'u seçin.

    yeni proje oluştur seçeneği vurgulanmış Visual Studio başlatıldığında görüntülenen iletişim kutusunun ekran görüntüsü.

    İletişim kutusunda depoyu kopyalama, proje veya çözüm açma, yerel klasör açma ve yeni proje oluşturma seçenekleri vardır."

  2. Yeni proje oluştur iletişim kutusunda dili C++ olarak ayarlayın, platformu Windows olarak ayarlayın, proje türleri listesinden Konsol Uygulaması'nı ve ardından İleri'yi seçin.

    Konsol Uygulaması seçeneğinin vurgulandığı Visual Studio Yeni proje oluşturma iletişim kutusunun ekran görüntüsü.

    Dil C++ olarak ayarlanmıştır, platform Windows olarak ayarlanmıştır ve Boş Proje, Konsol Uygulaması, CMake Projesi ve Windows Masaüstü Sihirbazı gibi proje türleri, proje türleri listesinde görünür.

    Önemli

    Konsol Uygulaması şablonunun C++ sürümünü seçtiğinizden emin olun. C++, Windows ve Konsol etiketleri vardır ve simgenin köşesinde "++" bulunur.

  3. Yeni project yapılandırın bölümünde Project adı metin kutusunu seçin, yeni project CalculatorTutorial olarak adlandırın ve oluştur'u seçin.

    Proje adı, proje konumu ve Çözüm adı alanlarını içeren, Visual Studio’daki Yeni projenizi yapılandır iletişim kutusunun ekran görüntüsü.

    Boş bir C++ Windows konsol uygulaması "Merhaba Dünya" uygulaması oluşturulur. Konsol uygulamaları, çıkışı görüntülemek ve kullanıcı girişini kabul etmek için bir Windows konsol penceresi kullanır. Visual Studio'da bir düzenleyici penceresi açılır ve oluşturulan kodu gösterir:

    // 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
    

Yeni uygulamanızın derlendiğini ve çalıştığını doğrulayın

Yeni bir Windows konsol uygulaması şablonu basit bir C++ "Merhaba Dünya" uygulaması oluşturur. Bu noktada, Visual Studio'nın oluşturduğunuz uygulamaları doğrudan IDE'den nasıl derleyip çalıştıracağını görebilirsiniz.

  1. Projenizi oluşturmak için , Derlememenüsünden Çözüm Derle'yi seçin. Çıktı penceresi derleme işleminin sonuçlarını gösterir.

    Derlemenin başarılı olduğunu belirten bir ileti görüntüleyen Visual Studio Çıktı penceresinin ekran görüntüsü.

  2. Kodu çalıştırmak için, menü çubuğunda Hata Ayıklama>Hata Ayıklama Olmadan Başlat (Ctrl+F5) öğesini seçin.

    Uygulamanın çıkışını görüntüleyen Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü: Merhaba Dünya!

    Bir konsol penceresi açılır ve uygulamanız bu pencere içinde çalışır.

    Visual Studio'da bir konsol uygulamasını başlattığınızda, bu uygulama kodunuzu çalıştırır ve "Bu pencereyi kapatmak için herhangi bir tuşa basın. . ." komutuyla çıktıyı görme şansı verir.

    Tebrikler! Visual Studio'da ilk "Hello, world!" konsol uygulamanızı oluşturdunuz!

  3. Konsol penceresini kapatmak ve Visual Studio'ya dönmek için bir tuşa basın.

Artık kodun beklediğiniz gibi çalıştığını doğrulamak için her değişiklik sonrasında uygulamanızı derleyip çalıştırabileceğiniz araçlara sahipsiniz. Daha sonra, çalışmazsa kodda nasıl hata ayıklayacağınızı öğreneceksiniz.

Kodu düzenleme

Şimdi bu şablondaki kodu hesap makinesi uygulaması olacak şekilde değiştirin.

  1. Dosyanın içeriğini CalculatorTutorial.cpp aşağıdaki kodla değiştirerek bu örnekle eşleşmesini sağlayın:

    // 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
    

    Kodu anlama:

    • deyimi #include diğer dosyalara kod getirir. Bazen, <iostream> gibi açılı ayraçlarla çevrili bir dosya adı görebilirsiniz. Köşeli parantezler, derleyiciye ilk olarak standart sistem dizinlerindeki iostream üst bilgi dosyasını araması ve eğer bulunamazsa projeye özgü dizinlerde araması talimatını verir. Bazen, "someHeader.h" gibi tırnak işaretleriyle çevrili bir dosya adı görebilirsiniz. Tırnak işaretleri, derleyiciye standart sistem dizinlerine bakmayı atlayıp yalnızca projeye özgü dizinlere bakmasını sağlar.
    • derleyiciye using namespace std; C++ Standart Kitaplığı'ndaki kodun bu dosyada kullanılmasını beklemesini söyler. Bu satır olmadan, kitaplıktaki her anahtar sözcüğün önüne, kapsamını belirtmek için std:: eklenmelidir. Örneğin, bu satır olmadan cout her bir referans std::cout olarak yazılırdı. deyimi using , başka bir ad alanındaki koda erişmeyi daha kolay hale getirmek için eklenir.
    • cout anahtar sözcüğü, C++ dilinde standart çıktıya yazdırmak için kullanılır. << işleci derleyiciye sağındaki her şeyi standart çıkışa göndermesini söyler.
    • Anahtar endl sözcüğü Enter tuşuna benzer. Satırı sonlandırır ve imleci bir sonraki satıra taşır. Aynı işlemi gerçekleştirmek için \n tarafından kapsanan dizenin içine bir "" koymak daha iyi bir yöntemdir, çünkü endl her zaman arabelleği temizler ve bu, programın performansını olumsuz etkileyebilir. Bu çok küçük bir uygulama olduğundan, endl bunun yerine kullanılır.
    • Tüm C++ deyimlerinin noktalı virgülle bitmesi ve tüm C++ uygulamalarının bir main() işlev içermesi gerekir. Bu işlev, programın başlangıçta çalıştığı işlevdir. Tüm kodun kullanılabilmesi için 'den main() erişilebilir olması gerekir.
  2. Dosyayı kaydetmek için CtrlS+ basın veya menü çubuğunun altındaki araç çubuğunda disket simgesini seçin.

  3. Uygulamayı çalıştırmak için CtrlF5+ basın veya Hata Ayıkla menüsüne gidin ve Hata Ayıklama Olmadan Başlat'ı seçin. Bir konsol penceresi görmeniz gerekir.

  4. İşiniz bittiğinde konsol penceresini kapatın.

Matematik işlemi yapmak için kod ekleme

Sınıf, bir şey çalıştıran bir nesnenin şeması gibidir. Bu durumda, matematik mantığını içerecek bir hesap makinesi sınıfı tanımlayın.

Hesap Makinesi sınıfı ekleme

  1. Proje menüsüne gidin ve Sınıf Ekle'yi seçin. Sınıf Adı için Hesap Makinesi girin. Tamam'ı seçin.

    Visual Studio Sınıf Ekle iletişim kutusunun ekran görüntüsü.

    Sınıf adı alanı metin hesaplayıcısını içerir. .h dosya alanı Calculator.h dosyasını içerir. .cpp dosya alanı Calculator.cpp içerir. Temel sınıf alanı boş. Satır içi ve Yönetilen seçenekleri işaretlenmemiş.

    Projenize iki yeni dosya eklenir. Değiştirilen tüm dosyalarınızı aynı anda kaydetmek için Ctrl+ ShiftS+ basın. Bu, Dosya>Tümünü Kaydet için bir klavye kısayoludur. Kaydet düğmesinin yanında iki disketin simgesi olan Tümünü Kaydet için bir araç çubuğu düğmesi de bulunur. Genel olarak, değişiklikleri kaydetmeyi kaçırmamak için Tümünü Kaydet'i sık sık yapmak iyi bir uygulamadır.

    Sınıf Ekle iletişim kutusu, sınıfla aynı adı taşıyan .h ve .cpp dosyaları oluşturur. Çözüm Gezgini penceresinde, IDE'nin yanında görünen proje dosyalarınızın tam listesini görebilirsiniz. Pencere görünmüyorsa Görünüm>Çözüm Gezgini'ü seçerek menü çubuğundan açın.

    Visual Studio Çözüm Gezgini penceresinin ekran görüntüsü.

    Hesap makinesi öğretici projesi, Calculator.h dosyasını içeren bir üst bilgi dosyaları düğümüne sahiptir. Kaynak Dosyalar düğümü Calculator.cpp ve CalculatorTutorial.cpp içerir. Başvurular, dış bağımlılıklar ve kaynak dosyaları için düğümler görünür ancak kapalıdır.

    Çözüm Gezgini penceresinde dosyaya çift tıklayarak dosyayı açabilirsiniz. Calculator.h öğesini açmak için üzerine çift tıklayın.

  2. dosyasının şu şekilde görünmesi için içeriğini Calculator.h aşağıdaki kodla değiştirin:

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

    Kodu anlama

    • Bu kod, toplama, çıkarma, çarpma ve bölme için matematik işlemlerini işleyen adlı Calculateyeni bir işlev bildirir.
    • C++ kodu üst bilgi (.h) dosyaları ve kaynak (.cpp) dosyalar halinde düzenlenir. Diğer bazı dosya uzantıları çeşitli derleyiciler tarafından desteklenir, ancak bunlar hakkında bilinmesi gereken ana uzantılardır. İşlevler ve değişkenler genellikle üst bilgi dosyalarında bir ad ve tür ile tanımlanır ve kaynak dosyalarda tanımlanır veya gerçekleştirilir. Başka bir dosyada tanımlanan koda erişmek için kullanabilirsiniz #include "filename.h". Burada filename.h , kullanmak istediğiniz değişkenleri veya işlevleri bildiren dosyanın adıdır.
    • Kodunuzu ne yaptığına göre farklı dosyalar halinde düzenlemek iyi bir uygulamadır, böylece daha sonra ihtiyacınız olan kodu kolayca bulabilirsiniz. Bu durumda, Calculator işlevini içeren dosyadan ayrı olarak main() sınıfını tanımlarsınız, ancak Calculator içinde main() sınıfına başvurmayı planlıyorsunuz.
  3. Calculate altında yeşil bir dalgalı çizgi görünür çünkü Calculate işlevi bildirilmiş, ancak tanımlanmamıştır. Calculate öğesinin üzerine gelin, tornavida simgesindeki aşağı oku seçin ve 'Calculate' için Calculator.cpp içinde tanım oluştur seçeneğini belirleyin.

    Visual Studio düzenleyici penceresinde, 'Calculator.cpp içinde Calculate tanımını oluştur' seçeneğinin vurgulandığı tornavida simgeli açılır menünün ekran görüntüsü.

    Bu kod Calculator.cpp öğesine eklenir:

    'Calculate' işlevinin tanımını gösteren Visual Studio düzenleyicisinin ekran görüntüsü.

    İşlevin tanımı şöyledir: double Calculator::Calculate( double x, char oper, double y) { return 0.0; }

    Şu anda yalnızca 0,0 döndürür. Şimdi bunu değiştirelim.

  4. Düzenleyici penceresinde Calculator.cpp dosyasına geçin. Calculator::Calculate(double x, char oper, double y) öğesinin içeriğini şu şekilde değiştirin:

    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;
        }
    }
    

    Kodu anlama

    • işlevi Calculate bir sayı, bir işleç ve ikinci bir sayı alır. Ardından, istenen işlemi iki sayı üzerinde gerçekleştirir.
    • switch deyimi hangi işlecin sağlandığını kontrol eder ve bu işleme karşılık gelen durumu yürütür. Bu default: durum, kullanıcının önceki case deyimlerden herhangi biri tarafından işlenmeyen bir işleç yazması durumunda bir geri dönüş durumu olarak hizmet verir. Geçersiz kullanıcı girişini daha zarif bir şekilde işlemek en iyisidir, ancak bu, bu öğreticinin kapsamının dışındadır.
    • anahtar double sözcüğü, ondalıkları destekleyen bir sayı türünü belirtir. Bu sayı türü kayan noktalı sayı olarak adlandırılır ve double ek duyarlığı olan kayan nokta sayısı anlamına gelir. Bu şekilde, hesap makinesi hem ondalık matematik hem de tamsayı matematiği işleyebilir. Calculate işlevi, kodun başındaki double nedeniyle her zaman çift duyarlıklı kayan noktalı bir sayı döndürmelidir (bu, işlevin dönüş türünü belirtir); bu yüzden program varsayılan durumda 0.0 döndürür.
    • Dosya .h , derleyiciye hangi parametreleri gerektirdiğini ve ondan hangi dönüş türünün bekleyebileceğinizi önceden bildiren işlev prototipini bildirir. dosyasında .cpp işlevin tüm uygulama ayrıntıları bulunur.

Bu noktada kodu yeniden derleyip çalıştırırsanız, hangi işlemin yapılacağını sorduktan sonra hemen sonlanır. Bu nedenle işlevi birden çok hesaplama yapacak şekilde değiştirin main .

Calculator Sınıf üyesi işlevlerini çağırma

  1. main içindeki CalculatorTutorial.cpp işlevini aşağıdaki gibi güncelleştirin:

    // 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;
    }
    

    Kodu anlama

    • C++ programları her zaman main() işlevinde başladığından, diğer kodu oradan çağırmanız gerekir; bu nedenle, bu kodu #include işlevimize görünür kılmak için bir main() deyimine ihtiyaç vardır.
    • x, y, oper ve result değişkenleri sırasıyla ilk sayıyı, ikinci sayıyı, işleci ve nihai sonucu depolamak için bildirilir. Tanımsız davranışlardan kaçınmak için onlara bazı başlangıç değerleri vermek her zaman iyi bir uygulamadır. Burada yapılan budur.
    • Satırı Calculator c; , adlı c bir nesneyi sınıfın Calculator örneği olarak bildirir. Sınıfın kendisi yalnızca hesap makinelerinin nasıl çalıştığına yönelik bir şemadır. Nesne, matematik işleminin belirli bir hesap makinesidir.
    • while (true) deyimi bir döngüdür. Döngü içindeki kod, içindeki koşul () true olduğu sürece tekrar tekrar çalışır. Koşul basitçe olarak truelistelendiğinden her zaman doğrudur, bu nedenle döngü sonsuza kadar çalışır. Programı kapatmak için kullanıcının konsol penceresini el ile kapatması gerekir. Aksi takdirde, program her zaman yeni girişi bekler.
    • cin anahtar sözcüğü, kullanıcıdan gelen girişi kabul eder. Giriş akışı, konsol penceresine girilen bir metin satırını işleyip sırasıyla listelenen değişkenlerin her birinin içine yerleştirecek kadar akıllıdır.
    • ifadesi c.Calculate(x, oper, y); daha önce tanımlanan işlevi çağırır Calculate ve girilen giriş değerlerini ve istenen işlemi sağlar. İşlev daha sonra içinde resultdepolanan bir sayı döndürür.
    • Son olarak konsola result yazdırılır ve kullanıcı hesaplamanın sonucunu görür.

Kodu yeniden derleme ve test etme

Şimdi her şeyin düzgün çalıştığından emin olmak için programı yeniden test edin.

  1. Uygulamayı yeniden derlemekve başlatmak için Ctrl +F5 tuşlarına basın.

  2. yazın 5+5ve Enter tuşuna basın. Sonucun 10 olduğunu doğrulayın.

    Programı çalıştırma sonuçlarını gösteren komut penceresinin ekran görüntüsü.

    Uygulama şu iletiyi alır: Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. Kullanıcı 5+5'i girdi. Uygulama çıktısı: 5+5 sonucunun sonucu: 10

  3. Konsol penceresini kapatarak programı durdurun.

Uygulamada hata ayıklama

Kullanıcı konsol penceresine herhangi bir şey yazabildiğinden hesap makinesinin beklenmeyen girişleri işlediğinden emin olun. Programı çalıştırmak yerine, ne yaptığını adım adım görebilmek için programda hata ayıklayın.

Uygulamayı hata ayıklayıcıda çalıştırma

  1. CalcuatorTutorial.cpp içinde, şu satırda bir kesme noktası oluşturun: result = c.Calculate(x, oper, y);. Kesme noktasını ayarlamak için, düzenleyici penceresinin sol kenarı boyunca dikey çubukta çizginin yanındaki simgesini seçerek kırmızı bir noktanın görünmesini sağlayın.

    Visual Studio düzenleyicisinin ekran görüntüsü. Satırda kesme noktasını temsil eden kırmızı bir nokta görüntülenir: result = c.Calculate(x, oper, y).

    Şimdi programda hata ayıkladığınızda yürütme bu satırda duraklatılır. Programın basit vakalar için çalıştığına dair zaten kaba bir fikriniz var. Calculate() öğesini her çağırdığınızda çalıştırmayı duraklatmak istemediğiniz için kesme noktasını koşullu hale getirin.

  2. Kesme noktasını temsil eden kırmızı noktaya sağ tıklayın ve Koşullar'ı seçin. Koşulun düzenleme kutusuna yazın (y == 0) && (oper == '/'). Kesme noktası koşulunu kaydetmek için Kapat'ı seçin.

    Belirli bir kesme noktasının ekran görüntüsü.

    Kesme noktası şu satırdadır: sonuç = c nokta Hesapla ( x, oper, y). 'Koşullar...' Koşul seçeneği işaretlidir. Koşullar açılan listesi "Koşullu İfade" olarak ayarlandı. Koşul açılır listesi "Doğru" olarak ayarlanmıştır. Koşul y == 0 & oper == '/' olarak ayarlanır.

    Artık uygulama 0'a bölmeye çalıştığında yürütme kesme noktasında duraklatılır.

  3. Programda hata ayıklamak için F5 tuşuna basın veya yeşil ok simgesine sahip Yerel Windows Hata Ayıklayıcısı hata ayıklayıcısı araç çubuğu düğmesini seçin. Konsol uygulamanızda 5 - 0 gibi bir değer girerseniz, program normal şekilde davranır ve çalışmaya devam eder. Ancak , 10 / 0 yazarsanız kesme noktasında duraklatılır. İşleç ve sayılar arasına istediğiniz sayıda boşluk koyabilirsiniz: cin girişi uygun şekilde ayrıştıracak kadar akıllıdır.

    Satırdaki koşullu kesme noktasında program yürütmesinin durdurulduğu Visual Studio düzenleyicisinin ekran görüntüsü: sonuç = c.Calculate(x, oper, y);.

Hata ayıklayıcıda yararlı pencereler

Kodunuzun hatalarını ayıkladığınızda bazı yeni pencerelerin göründüğünü fark edebilirsiniz. Bu pencereler hata ayıklama deneyiminize yardımcı olabilir. Otomatikler penceresine bakın. Otomatikler penceresi, en az üç satır önce ve geçerli satıra kadar kullanılan değişkenlerin geçerli değerlerini gösterir. Otomatikler penceresini görmüyorsanız, ana menüden Hata Ayıklama>Windows>Otomatikler'i seçin.

Visual Studio hata ayıklayıcısı OtomatikLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 5, x 10 ve y 0'dır.

Bu işlevdeki tüm değişkenleri görmek için Yerel ayarlar penceresine geçin. Bu işlev küçük olduğundan, Otomatikler ve Yereller pencereleri aynı değişkenleri gösterir. Bu değişkenlerin program üzerindeki etkisini görmek için hata ayıklarken Yereller penceresinde bu değişkenlerin değerlerini değiştirebilirsiniz. Bu durumda, onları rahat bırakın. Otomatik Ayarlar penceresinin alt kısmındaki Yerel Ayarlar'ı seçerek veya Ana menüdenWindows>Hatalarını Ayıkla'yı> seçerek YerelLer penceresini açın.

Hata ayıklama sırasında yerel değişkenlerin geçerli değerlerini görüntüleyen Visual Studio'daki YerelLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 0, x 10 ve y 0'dır.

Yürütmenin şu anda duraklatıldığı noktada geçerli değerlerini görmek için koddaki değişkenlerin üzerine de gelebilirsiniz. Önce düzenleyici penceresini seçerek odakta olduğundan emin olun.

47 veya '/' olan 'oper' değişkeninin değerini gösteren araç ipucunun ekran görüntüsü.

Hata ayıklamaya devam et

  1. Sol taraftaki sarı ok, geçerli yürütme noktasını gösterir. Geçerli satır Calculate'yi çağırır, bu yüzden F11 tuşuna basarak İşlevin içine girin. Şimdi Calculate işlevinin gövdesinde kod yürütüyorsunuz. Standart kitaplıklar dahil olmak üzere, bulunduğunuz satırdaki tüm işlevlere adım attığından, Step Into kullanırken dikkatli olun. Standart kitaplığa geçmek normaldir, ancak kitaplık kodu yerine kodunuz üzerinde odaklanmak daha ilginizi çekebilir.

  2. Yürütme noktası işlevin başında Calculate olduğuna göre, programın yürütmesinde bir sonraki satıra geçmek için F10 tuşuna basın. F10 , Adım At olarak da bilinir. Satırın her bir bölümünde gerçekleşen işlemlerin ayrıntılarını gözden geçirmeden satırdan satıra gitmek için Üzerine Adımla'yı kullanabilirsiniz. Genel olarak, gövdesine ulaşmak için yaptığınız gibi, başka bir yerden çağrılan kodu daha derinlemesine incelemek istemiyorsanız Step Into yerine Calculate kullanmalısınız.

  3. Diğer dosyadaki işleve geri dönene kadar F10 kullanarak her satırı Üzerine Adımlayın ve diğer dosyadaki main() işlevine geri dönerek cout satırında durun.

    Program beklediğiniz şeyi yapıyor: ilk sayıyı alır ve ikinciye böler. cout satırında result değişkeninin üzerine gelin veya resultOtomatikler penceresinde göz atın. Değeri inf ve doğru görünmüyor.

    Hesap makinesinde hata ayıklama işleminin ekran görüntüsü.

    Hata ayıklayıcıdaki geçerli deyim cout << "Result is: " << result << endl; Otomatikler penceresinde sonuç inf'dir.

    Bunu düzeltebilirsiniz. cout satırı, result içinde depolanan değeri çıktı olarak verir. F10 kullanarak bir satır daha ileriye doğru adımladığınızda konsol penceresi görüntülenir:

    Sıfıra bölme işleminin sonucunu görüntüleyen Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü.

    Uygulama çıkışları: Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. Kullanıcı 5-0 girdi. Uygulamanın çıktısı: Sonuç: 5. Kullanıcı 10/0 değerini girdi. Uygulama çıkışı: Sonuç: inf

    Bu sonucun nedeni sıfıra bölme işleminin tanımlanmamış olmasıdır, dolayısıyla programın istenen işlem için sayısal bir yanıtı yoktur.

"Sıfıra böl" hatasını düzeltme

Kullanıcının sorunu daha kolay anlaması için bölme işlemini sıfıra kadar daha zarif bir şekilde işleyebilirsiniz.

  1. içinde CalculatorTutorial.cppaşağıdaki değişiklikleri yapın. Düzenle ve Devam Et adlı hata ayıklayıcı özelliği sayesinde, programı düzenlerken çalışır durumda bırakabilirsiniz. if Sıfıra bölmeyi denetlemek ve olursa kullanıcıya bir ileti göndermek için aşağıdaki cin >> x >> oper >> y; deyimini ekleyin. Aksi takdirde sonuç yazdırılır.

    // 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 << "Math error: 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. F5 tuşuna bir kez basın. Program çalışması, kullanıcı girişi istemek için durmak zorunda kalana kadar devam eder. 10 / 0 yeniden girin. Şimdi daha yararlı bir ileti yazdırılır. Kullanıcıdan daha fazla giriş istenir ve program normal şekilde yürütülür.

    Sıfıra bölmeyi işlemek için yapılan değişiklikler uygulandıktan sonra son çıkışı gösteren konsol penceresinin ekran görüntüsü.

    Konsol penceresinde iki satır görüntülenir: 10 / 0 Sonuç: inf, ardından 10 / 0 Matematik hatası: Sıfıra bölme girişimi.

    Uyarı

    Hata ayıklama modundayken kodu düzenlerken kodun eskime riski vardır. Hata ayıklayıcı eski kodunuzu çalıştırmaya devam ettiğinde ve henüz değişikliklerinizle güncelleştirmediğinde bu durum ortaya çıkar. Hata ayıklayıcı, bu durum oluştuğunda sizi bilgilendirmek için bir iletişim kutusu görüntüler. Bazen yürütülmekte olan kodu yenilemek için F5 tuşuna basmanız gerekir.

    Özellikle, yürütme noktası bu işlevin içindeyken bir işlevin içinde bir değişiklik yaparsanız, güncelleştirilmiş kodu almak için işlevden çıkmanız ve yeniden içine dönmeniz gerekir. Bu işe yaramazsa ve bir hata iletisi görürseniz, hata ayıklamayı durdurmak için kırmızı kareyi seçin, ardından F5 tuşuna basarak veya araç çubuğundaki durdur düğmesinin yanındaki yeşil yürütme okunu seçerek hata ayıklamayı yeniden başlatın.

    Düzenleme ve devam etme işleminin başarısız olmasının bir diğer nedeni de"Debug-Options-General>> altındaki Kaynak dosyaların özgün sürümle tam olarak eşleşmesini iste ayarının etkinleştirilmesi gerekiyor..." iletisini görmenizdir. Bunu düzeltmek için ana menüden Araçlar>Seçenekler>Hata Ayıklama>Genel'i seçin ve Kaynak dosyaların özgün sürümle tam olarak eşleşmesini iste seçeneğinin işaretli olduğundan emin olun.

    Çalıştırma ve Hata Ayıklama kısayollarını anlama

    • F5 veya Hata Ayıklamayı>Başlat Hata Ayıklama, zaten etkin değilse bir hata ayıklama oturumu başlatır ve bir kesme noktasına isabet edene veya programın kullanıcı girişi yapması gerekene kadar programı çalıştırır. Kullanıcı girişi gerekmiyorsa ve isabet edecek bir kesme noktası yoksa, program sona erer ve program çalışmasını tamamladığında konsol penceresi kapanır. Programınız konsola çıktıysa, pencereyi açık tutmak içinF5 tuşuna basmadan önce +F5 kullanın veya bir kesme noktası ayarlayın.
    • Ctrl+F5 veya Hata Ayıkla>Hata Ayıklamadan Başlat, uygulamayı hata ayıklama moduna girmeden çalıştırır. Bu hata ayıklamadan biraz daha hızlıdır ve program yürütmeyi tamamladıktan sonra konsol penceresi açık kalır.
    • Adım Adım olarak bilinen F10, kodda yineleme yapmanıza, satır satır çalıştırmanıza ve kodun nasıl çalıştırıldığından ve yürütmenin her adımında hangi değişken değerlerinin olduğunu görselleştirmenize olanak tanır.
    • F11, olarak bilinen İçine Gir, Üzerinden Geç'e benzer şekilde çalışır, ancak yürütme satırında çağrılan işlevlerin içine adım atar. Örneğin, yürütülen satır bir işlevi çağırırsa, F11 tuşuna basıldığında işaretçi işlevin gövdesine taşınır, böylece başladığınız satıra dönmeden önce işlevin çalıştırılan kodunu izleyebilirsiniz. İşlev çağrısını atlamak için F10'a basmak, sadece bir sonraki satıra geçer; işlev çağrısı yine de gerçekleşir ancak program ne yaptığını göstermek amacıyla durmuyor.

Uygulamayı kapatma

  • Hala çalışıyorsa hesap makinesi uygulamasını durdurmak için konsol penceresini kapatın.

Git kaynak denetimi ekleme

Bir uygulama oluşturduktan sonra bir Git deposuna eklemek isteyebilirsiniz. Size bu konuda destek sağlayabiliriz. Visual Studio, doğrudan IDE'den kullanabileceğiniz Git araçlarıyla bu işlemi kolaylaştırır.

Tavsiye

Git, en yaygın kullanılan modern sürüm denetim sistemidir. İster profesyonel bir geliştirici olun, ister kod oluşturmayı öğrenin, Git yararlı olabilir. Git'i kullanmaya yeni başladıysanız Git web sitesi başlamak için iyi bir yerdir. Burada, hile sayfaları, popüler bir çevrimiçi kitap ve Git Basics videolarını bulabilirsiniz.

Kodunuzu Git ile ilişkilendirmek için, kodunuzun bulunduğu yeni bir Git deposu oluşturarak işe başlarsınız.

  1. Visual Studio'nun sağ alt köşesindeki durum çubuğunda Kaynak Denetimine Ekle'yi ve ardından Git'i seçin.

    Çözüm Gezgini bölmesinin altındaki Git kaynak denetimi düğmelerinin ekran görüntüsü; Kaynak Denetimine Ekle düğmesi vurgulanmış.

  2. Git deposu oluştur iletişim kutusunda GitHub oturum açın.

    Yeni bir GitHub deposu oluşturduğunuz Git Deposu Oluştur iletişim penceresinin ekran görüntüsü.

    Depo adı, klasör konumunuza göre otomatik olarak doldurulur. Varsayılan olarak, yeni deponuz özeldir ve bu da depoya erişebilecek tek kişinin siz olduğunuz anlamına gelir.

    Tavsiye

    Deponuzun genel veya özel olması fark etmeksizin kodunuzun uzaktan yedeğinin GitHub'da güvenli bir şekilde depolanması en iyisidir. Bir ekiple çalışmasanız bile, uzak bir depo kodunuzu herhangi bir bilgisayardan kullanımınıza sağlar.

  3. 'ı seçin ve'i oluşturup gönderin.

    Deponuzu oluşturduktan sonra durum çubuğunda durum ayrıntıları görüntülenir.

    Visual Studio Çözüm Gezgini bölmesinin altında yer alan ve dal adını ve bekleyen değişikliklerin sayısını gösteren depo durum çubuğunun ekran görüntüsü.

    Okları içeren ilk simge, geçerli dalınızda kaç adet giden/gelen commit olduğunu gösterir. Gelen commitleri çekmek veya giden commitleri göndermek için bu simgeyi kullanabilirsiniz. Ayrıca, önce bu işlemeleri görüntülemeyi de seçebilirsiniz. Bunu yapmak için simgeyi seçin ve ardından Giden/Gelenleri Görüntüle'yi seçin.

    Kalem içeren ikinci simge, kodunuzdaki kaydedilmemiş değişikliklerin sayısını gösterir. Bu değişiklikleri Git Değişiklikleri penceresinde görüntülemek için bu simgeyi seçebilirsiniz.

Git'i uygulamanızla kullanma hakkında daha fazla bilgi edinmek için Visual Studio sürüm denetimi belgelerine bakın.

Tamamlanmış uygulama

Tebrikler! Hesap makinesi uygulamasının kodunu tamamladınız, derleyip hata ayıkladınız ve hepsini Visual Studio'da depoya eklediniz.

Sonraki adım

C++ için Visual Studio hakkında daha fazla bilgi edinin

C++ programcısı için normal başlangıç noktası, komut satırında çalışan bir "Hello, world!" uygulamasıdır. Bu makalede bu uygulamayla başlarsınız ve daha zorlu bir şeye geçersiniz: hesap makinesi uygulaması.

Önkoşullar

Uygulama projenizi oluşturma

Visual Studio, bir uygulamanın kodunu düzenlemek için projeleri ve bir veya daha fazla proje düzenlemeye yönelik çözümleri kullanır. Proje, uygulama oluşturmak için kullanılan seçenekleri, yapılandırmaları ve kuralları içerir. Ayrıca projenin dosyalarıyla dış dosyalar arasındaki ilişkiyi de yönetir. Uygulamanızı oluşturmak için önce yeni bir proje ve çözüm oluşturun.

  1. Visual Studio menüsünde Dosya>Yeni>Project'yi seçin. Yeni Proje penceresi açılır.

  2. Sol kenar çubuğunda Visual C++ öğesinin seçili olduğundan emin olun. Ortada Konsol Uygulaması'nı seçin.

  3. Alttaki Ad kutusunda yeni projeyi CalculatorTutorial olarak adlandırın ve tamam'ı seçin.

    Yeni Proje iletişim kutusunun ekran görüntüsü.

    Sol tarafta Visual C++ > Diğer Diller seçilidir. Ortada Konsol Uygulaması proje türü seçilidir. Ad metin kutusu CalculatorTutorial içerir.

    Boş bir C++ Windows konsol uygulaması "Merhaba Dünya" uygulaması oluşturulur. Konsol uygulamaları, çıkışı görüntülemek ve kullanıcı girişini kabul etmek için bir Windows konsol penceresi kullanır. Visual Studio'da bir düzenleyici penceresi açılır ve oluşturulan kodu gösterir:

    // 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
    

Yeni uygulamanızın derlendiğini ve çalıştığını doğrulayın

Yeni bir Windows konsol uygulaması için şablon, basit bir C++ "Merhaba Dünya" uygulaması oluşturur. Bu noktada, Visual Studio'nın oluşturduğunuz uygulamaları doğrudan IDE'den nasıl derleyip çalıştıracağını görebilirsiniz.

  1. Projenizi oluşturmak için , Derlememenüsünden Çözüm Derle'yi seçin. Çıktı penceresi derleme işleminin sonuçlarını gösterir.

    Derlemenin başarılı olduğunu gösteren Visual Studio Çıktı penceresinin ekran görüntüsü.

  2. Kodu çalıştırmak için menü çubuğunda Hata Ayıkla, Hata ayıklama olmadan başla (Ctrl+F5) öğesini seçin.

    Çıktıyı gösteren Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü: Merhaba Dünya!

    Bir konsol penceresi açılır ve uygulamanız bu pencere içinde çalışır.

    Visual Studio'da bir konsol uygulaması başlattığınızda, uygulama kodunuzu çalıştırır ve çıktıyı görmenizi sağlamak için Press any key to close this window . . . yazdırır.

    Tebrikler! Visual Studio'da ilk "Hello, world!" konsol uygulamanızı oluşturdunuz!

  3. Konsol penceresini kapatmak ve Visual Studio'ya dönmek için bir tuşa basın.

Artık kodun beklediğiniz gibi çalıştığını doğrulamak için her değişiklik sonrasında uygulamanızı derleyip çalıştırabileceğiniz araçlara sahipsiniz. Daha sonra, çalışmazsa onda nasıl hata ayıklayacağınızı öğrenirsiniz.

Kodu düzenleme

Şimdi bu şablondaki kodu hesap makinesi uygulaması olacak şekilde değiştirin.

  1. Dosyanın içeriğini CalculatorTutorial.cpp aşağıdaki kodla değiştirerek bu örnekle eşleşmesini sağlayın:

    // 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
    

    Kodu anlama:

    • deyimi #include diğer dosyalara kod getirir. Bazen, <iostream> gibi açılı ayraçlarla çevrili bir dosya adı görebilirsiniz. Köşeli parantezler, derleyiciye ilk olarak standart sistem dizinlerindeki iostream üst bilgi dosyasını araması ve eğer bulunamazsa projeye özgü dizinlerde araması talimatını verir. Bazen, "someHeader.h" gibi tırnak işaretleriyle çevrili bir dosya adı görebilirsiniz. Tırnak işaretleri, derleyiciye standart sistem dizinlerine bakmayı atlayıp yalnızca projeye özgü dizinlere bakmasını sağlar.
    • derleyiciye using namespace std; C++ Standart Kitaplığı'ndaki kodun bu dosyada kullanılmasını beklemesini söyler. Bu satır olmadan, kitaplıktaki her anahtar sözcüğün önüne, kapsamını belirtmek için std:: eklenmelidir. Örneğin, bu satır olmadan cout her bir referans std::cout olarak yazılırdı. deyimi using , başka bir ad alanındaki koda erişmeyi daha kolay hale getirmek için eklenir.
    • cout anahtar sözcüğü, C++ dilinde standart çıktıya yazdırılır. << işleci derleyiciye sağındaki her şeyi standart çıkışa göndermesini söyler.
    • Anahtar endl sözcüğü Enter tuşuna benzer. Satırı sonlandırır ve imleci bir sonraki satıra taşır. \n tarafından kapsanan dizenin içine bir "" koymak, aynı şeyi yapmak için daha iyi bir uygulamadır, çünkü endl her zaman arabelleği temizler ve programın performansına zarar verebilir. Ancak bu çok küçük bir uygulama olduğundan, endl bunun yerine kullanılır.
    • Tüm C++ deyimlerinin noktalı virgülle bitmesi ve tüm C++ uygulamalarının bir main() işlev içermesi gerekir. Bu işlev, programın başlangıçta çalıştığı işlevdir. Tüm kodun kullanılabilmesi için 'den main() erişilebilir olması gerekir.
  2. Dosyayı kaydetmek için CtrlS+ basın veya menü çubuğunun altındaki araç çubuğunda disket simgesini seçin.

  3. Uygulamayı çalıştırmak için CtrlF5+ basın veya Hata Ayıkla menüsüne gidin ve Hata Ayıklama Olmadan Başlat'ı seçin. Bu proje güncel değil yazan bir iletişim kutusu görürseniz, Bu iletişim kutusunu bir daha gösterme seçeneğini ve ardından uygulamanızı derlemek için Evet seçeneğini belirleyebilirsiniz. Şuna benzer bir konsol penceresi görmeniz gerekir:

    Konsol penceresinde çalışan hesap makinesi uygulamasının ekran görüntüsü.

    Konsol uygulaması çıktıyı gösterir, yani Hesap Makinesi Konsol Uygulaması. Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. İşlem kod 0 ile sonlandı ve hata ayıklama durduğunda konsolun otomatik olarak kapatılması için, Araçlar > Seçenekler > Hata Ayıklama > Hata ayıklama durduğunda konsolu otomatik olarak kapat seçeneğini etkinleştirin şeklinde bir mesaj var. Son olarak, bu pencereyi kapatmak için herhangi bir tuşa basmanız gerektiğine dair bir mesaj var.

  4. İşiniz bittiğinde konsol penceresini kapatın.

Matematik işlemi yapmak için kod ekleme

Sınıf, bir şey çalıştıran bir nesnenin şeması gibidir. Bu durumda, matematik mantığını içerecek bir hesap makinesi sınıfı tanımlayın.

Hesap Makinesi sınıfı ekleme

  1. Proje menüsüne gidin ve Sınıf Ekle'yi seçin. Sınıf Adı düzenleme kutusuna Hesap Makinesi yazın. Tamam'ı seçin.

    Visual Studio Sınıf Ekle iletişim kutusunun ekran görüntüsü.

    Sınıf adı alanı metin hesaplayıcısını içerir. .h dosya alanı Calculator.h dosyasını içerir. .cpp dosya alanı Calculator.cpp içerir. Temel sınıf alanı boş. Satır içi ve Yönetilen seçenekleri işaretlenmemiş.

    Sınıf, bir şey çalıştıran bir nesnenin şeması gibidir. Bu durumda, bir hesap makinesi ve nasıl çalışması gerektiğini tanımlar.

    Projenize iki yeni dosya eklenir. Değiştirilen tüm dosyalarınızı aynı anda kaydetmek için Ctrl+ ShiftS+ basın. Bu, Dosya>Tümünü Kaydet için bir klavye kısayoludur. Kaydet düğmesinin yanında iki disketin simgesi olan Tümünü Kaydet için bir araç çubuğu düğmesi de bulunur. Genel olarak, Tümünü Kaydet'i sık sık yapmak iyi bir uygulamadır, böylece kaydederken hiçbir dosyayı kaçırmazsınız.

    Sınıf Ekle iletişim kutusu, sınıfla aynı adı taşıyan .h ve .cpp dosyaları oluşturur. Çözüm Gezgini penceresinde, IDE'nin yanında görünen proje dosyalarınızın tam listesini görebilirsiniz. Çözüm Gezgini görünmüyorsa menü çubuğundan açın:Çözüm Gezginini> seçin.

    Visual Studio Çözüm Gezgini penceresinin ekran görüntüsü.

    Hesap makinesi öğretici projesi calculator.h, stdafx.h ve targetver.h içeren bir üst bilgi dosyaları düğümüne sahiptir. Kaynak Dosyalar düğümü Calculator.cpp, CalculatorTutorial.cpp ve stdafx.cpp içerir. Başvurular, dış bağımlılıklar ve kaynak dosyaları için düğümler görünür ancak kapalıdır.

    Çözüm Gezgini penceresinde dosyaya çift tıklayarak dosyayı açabilirsiniz. Calculator.h öğesini açmak için üzerine çift tıklayın.

  2. Dosyanın artık aşağıdaki gibi görünmesi için aşağıdaki kodun içeriğini Calculator.h değiştirin:

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

    Kodu anlama

    • Bu kod, toplama, çıkarma, çarpma ve bölme için matematik işlemlerini işleyen adlı Calculateyeni bir işlev bildirir.
    • C++ kodu üst bilgi (.h) dosyaları ve kaynak (.cpp) dosyalar halinde düzenlenir. Diğer bazı dosya uzantıları çeşitli derleyiciler tarafından desteklenir, ancak bunlar hakkında bilinmesi gereken ana uzantılardır. İşlevler ve değişkenler genellikle üst bilgi dosyalarında bir ad ve tür ile tanımlanır ve kaynak dosyalarda tanımlanır veya gerçekleştirilir. Başka bir dosyada tanımlanan koda erişmek için kullanabilirsiniz #include "filename.h". Burada filename.h , kullanmak istediğiniz değişkenleri veya işlevleri bildiren dosyanın adıdır.
    • Kodunuzu ne yaptığına göre farklı dosyalar halinde düzenlemek iyi bir uygulamadır, böylece daha sonra ihtiyacınız olan kodu kolayca bulabilirsiniz. Bu durumda, Calculator sınıfını main() fonksiyonunu içeren dosyadan ayrı olarak tanımlarsınız, ancak Calculator içinde main() sınıfına başvurursunuz.
  3. Calculate altında yeşil bir dalgalı çizgi görünür çünkü Calculate işlevi bildirilmiş, ancak tanımlanmamıştır. Calculate üzerine gelin, ampul simgesindeki aşağı oka tıklayın ve Calculator.cpp içinde 'Calculate' tanımını oluştur seçeneğini belirleyin. Diğer dosyada yapılan kod değişikliğine göz atmanızı sağlayan bir açılır pencere görüntülenir. Kod Calculator.cpp öğesine eklendi.

    Ampul simgesi açılır menüsünü kullanarak Calculator.cpp'da Hesapla tanımını oluştur'u seçmeyi gösteren video.

    Şu anda yalnızca 0,0 döndürür. Şimdi bunu değiştirelim. Açılır öğeyi kapatmak için Esc tuşuna basın ve değişiklikleri kaydetmek için Evet'i seçin.

  4. Düzenleyici penceresinde Calculator.cpp dosyasına geçin. Dosyanın içeriğini aşağıdaki kodla değiştirin:

    #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;
        }
    }
    

    Kodu anlama

    • işlevi Calculate bir sayı, bir işleç ve ikinci bir sayı alır. Ardından, istenen işlemi iki sayı üzerinde gerçekleştirir.
    • switch deyimi hangi işlecin sağlandığını kontrol eder ve bu işleme karşılık gelen durumu yürütür. Bu default: durum, kullanıcının önceki case deyimlerden herhangi biri tarafından işlenmeyen bir işleç yazması durumunda bir geri dönüş durumu olarak hizmet verir. Geçersiz kullanıcı girişini daha zarif bir şekilde işlemek en iyisidir, ancak bu, bu öğreticinin kapsamının dışındadır.
    • anahtar double sözcüğü, ondalıkları destekleyen bir sayı türünü belirtir. Bu sayı türü kayan noktalı sayı olarak adlandırılır ve double ek duyarlığı olan kayan nokta sayısı anlamına gelir. Bu şekilde, hesap makinesi hem ondalık matematik hem de tamsayı matematiği işleyebilir. Calculate işlevi, kodun başındaki double nedeniyle her zaman çift duyarlıklı kayan noktalı bir sayı döndürmelidir (bu, işlevin dönüş türünü belirtir); bu yüzden program varsayılan durumda 0.0 döndürür.
    • Dosya .h , derleyiciye hangi parametreleri gerektirdiğini ve ondan hangi dönüş türünün bekleyebileceğinizi önceden bildiren işlev prototipini bildirir. dosyasında .cpp işlevin tüm uygulama ayrıntıları bulunur.

Bu noktada kodu derleyip yeniden çalıştırırsanız, yine de hangi işlemin gerçekleştirildiğini sorduktan sonra çıkış yapar. Ardından, işlevi bazı hesaplamalar yapacak şekilde değiştirin main .

Hesap Makinesi sınıfının üye işlevlerini çağırın

  1. main içindeki CalculatorTutorial.cpp işlevini aşağıdaki gibi güncelleştirin:

    // 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;
    }
    

    Kodu anlama

    • C++ programları her zaman main() işlevinde başladığından, diğer kodumuzu buradan çağırmanız gerekir; bu nedenle, bu kodu #include işlevimiz için görünür kılmak amacıyla bir main() deyimine ihtiyaç vardır.
    • x, y, oper ve result değişkenleri sırasıyla ilk sayıyı, ikinci sayıyı, işleci ve nihai sonucu depolamak için bildirilir. Tanımsız davranışlardan kaçınmak için onlara bazı başlangıç değerleri vermek her zaman iyi bir uygulamadır. Burada yapılan budur.
    • Satırı Calculator c; , adlı c bir nesneyi sınıfın Calculator örneği olarak bildirir. Sınıfın kendisi yalnızca hesap makinelerinin nasıl çalıştığına yönelik bir şemadır; nesnesi, matematik işleminin belirli bir hesap makinesidir.
    • while (true) deyimi bir döngüdür. Döngü içindeki kod, içindeki koşul () true olduğu sürece tekrar tekrar yürütülür. Koşul basitçe olarak truelistelendiğinden her zaman doğrudur, bu nedenle döngü sonsuza kadar çalışır. Programı kapatmak için kullanıcının konsol penceresini el ile kapatması gerekir. Aksi takdirde, program her zaman yeni girişi bekler.
    • cin anahtar sözcüğü, kullanıcıdan gelen girişi kabul eder. Giriş akışı, konsol penceresine girilen bir metin satırını işleyip sırasıyla listelenen değişkenlerin her birinin içine yerleştirecek kadar akıllıdır.
    • ifadesi c.Calculate(x, oper, y); daha önce tanımlanan işlevi çağırır Calculate ve girilen giriş değerlerini ve istenen işlemi sağlar. İşlev daha sonra içinde resultdepolanan bir sayı döndürür.
    • Son olarak konsola result yazdırılır ve kullanıcı hesaplamanın sonucunu görür.

Kodu yeniden derleme ve test etme

Her şeyin düzgün çalıştığından emin olmak için programı yeniden test edin.

  1. Uygulamayı yeniden derlemekve başlatmak için Ctrl +F5 tuşlarına basın.

  2. yazın 5+5ve Enter tuşuna basın. Sonucun 10 olduğunu doğrulayın.

    Hesap Makinesi uygulamasını çalıştıran ve 5 + 5 sonucunun 10 olduğunu gösteren komut penceresinin ekran görüntüsü.

  3. Konsol penceresini kapatarak programı durdurun.

Uygulamada hata ayıklama

Kullanıcı konsol penceresine herhangi bir şey yazabildiğinden hesap makinesinin beklenmeyen girişleri işlediğinden emin olun. Programı çalıştırmak yerine, adım adım ne yaptığını görebilmek için programda hata ayıklayın.

Uygulamayı hata ayıklayıcıda çalıştırma

  1. CalcuatorTutorial.cpp içinde, result = c.Calculate(x, oper, y); satırına bir kesme noktası ayarlayın. Kesme noktasını ayarlamak için, düzenleyici penceresinin sol kenarı boyunca uzanan gri dikey çubukta satırın yanındaki yeri, kırmızı bir nokta görünene kadar seçin.

    23. satırda bir kesme noktası ayarlayan kullanıcının ekran görüntüsü: result = c.Calculate(x, oper, y);.

    Şimdi programda hata ayıkladığınızda, yürütmeyi her zaman bu satırda duraklatır. Programın basit vakalar için çalıştığına dair zaten kaba bir fikriniz var. Yürütmeyi her seferinde duraklatmak istemediğinizden kesme noktasını koşullu hale getirin.

  2. Kesme noktasını temsil eden kırmızı noktaya sağ tıklayın ve Koşullar'ı seçin. Koşulun düzenleme kutusuna yazın (y == 0) && (oper == '/'). Kesme noktası koşulunu kaydetmek için bitirdiğinizde Kapat düğmesini seçin.

    Koşullu kesme noktası penceresini gösteren ekran görüntüsü.

    Kesme noktası şu satırdadır: sonuç = c nokta Hesapla ( x, oper, y). 'Koşullar...' Koşul seçeneği işaretlidir. Koşullar açılan listesi "Koşullu İfade" olarak ayarlandı. Koşul açılır listesi "Doğru" olarak ayarlanmıştır. Koşul y == 0 & oper == '/' olarak ayarlanır.

    0’a bölme girişiminde bulunulursa yürütme kesme noktasında duraklatılır.

  3. Programda hata ayıklamak için F5 tuşuna basın veya yeşil ok simgesine sahip Yerel Windows Hata Ayıklayıcısı araç çubuğu düğmesini seçin. Konsol uygulamanızda 5 - 0 gibi bir değer girerseniz, program normal şekilde davranır ve çalışmaya devam eder. Ancak , 10 / 0 yazarsanız kesme noktasında duraklatılır. Hatta işleç ve sayılar arasına istediğiniz sayıda boşluk koyabilirsiniz; cin girişi uygun şekilde ayrıştıracak kadar akıllıdır.

    Program yürütmesinin koşullu kesme noktasında duraklatıldığını gösteren ekran görüntüsü.

    Kullanıcı 5 - 0 girer. Uygulamanın çıktısı: Sonuç 5'tir. Kullanıcı daha sonra 10/0 girer ve koşullu kesme noktası koşulu karşılandığından yürütme satırda durur: sonuç = c.Calculate(x, oper, y);

Hata ayıklayıcıda yararlı pencereler

Kodunuzun hatalarını ayıkladığınızda bazı yeni pencerelerin göründüğünü fark edebilirsiniz. Bu pencereler hata ayıklama deneyiminize yardımcı olabilir. Otomatikler penceresine göz atın. Otomatikler penceresi, en az üç satır önce ve geçerli satıra kadar kullanılan değişkenlerin geçerli değerlerini gösterir. Otomatikler penceresini görmüyorsanız, ana menüden Hata Ayıkla>Windows>Autos'ı seçin.

Visual Studio hata ayıklayıcısı OtomatikLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 5, x 10 ve y 0'dır.

Bu işlevdeki tüm değişkenleri görmek için Yerel ayarlar penceresine geçin. Bu işlev küçük olduğundan, Otomatikler ve Yereller penceresi aynı değişkenleri gösterir. Ancak hata ayıklarken bu değişkenlerin değerlerini değiştirerek bunların program üzerindeki etkisini görebilirsiniz. Bu durumda, onları rahat bırakın. Otomatik Ayarlar penceresinin alt kısmındaki Yerel Ayarlar'ı seçerek veya Ana menüdenWindows>Hatalarını Ayıkla'yı> seçerek YerelLer penceresini açın.

Hata ayıklama sırasında yerel değişkenlerin geçerli değerlerini görüntüleyen Visual Studio'daki YerelLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 0, x 10 ve y 0'dır.

Kodun içinde değişkenlerin üzerine de gelip yürütmenin şu anda duraklatıldığı noktada geçerli değerlerini görebilirsiniz. Odakta olduğundan emin olmak için önce düzenleyici penceresini seçin.

y değişkeninin üzerine gelindiğinde görünen ve y'nin geçerli değerini (0) görüntüleyen araç ipucunun gösterildiği ekran görüntüsü.

Hata ayıklamaya devam et

  1. Sol taraftaki sarı ok, geçerli yürütme noktasını gösterir. Geçerli satır öğesini çağırır Calculate, bu nedenle F11 tuşuna basarak işlevin içine adımlayın ve bu da sizi işlevin Calculate gövdesine götürür. Standart kitaplıklar dahil olmak üzere, bulunduğunuz satırdaki tüm işlevlere adım attığından, Step Into kullanırken dikkatli olun. Standart kitaplığa geçmek normaldir, ancak kitaplık kodu yerine kodunuz üzerinde odaklanmak daha ilginizi çekebilir.

  2. Yürütme noktası işlevin başında Calculate olduğuna göre, programın yürütmesinde bir sonraki satıra geçmek için F10 tuşuna basın. F10 , Adım At olarak da bilinir. Satırın her bir bölümünde gerçekleşen işlemlerin ayrıntılarını gözden geçirmeden satırdan satıra gitmek için Üzerine Adımla'yı kullanabilirsiniz. Genel olarak, Step Into yerine Step Over kullanmalısınız; ancak başka bir yerden çağrılan kodun içine daha derinlemesine inmek istiyorsanız (Calculate gövdesine ulaşmak için yaptığınız gibi) Step Into kullanın.

  3. Diğer dosyadaki işleve geri dönene kadar F10 kullanarak her satırı Üzerine Adımlayın ve diğer dosyadaki main() işlevine geri dönerek cout satırında durun.

    Program beklediğiniz şeyi yapıyor: ilk sayıyı alır ve ikinciye böler. cout satırında result değişkeninin üzerine gelin veya resultOtomatikler penceresinde göz atın. Değeri inf ve doğru görünmüyor.

    Hesap makinesinde hata ayıklama işleminin ekran görüntüsü.

    Hata ayıklayıcıdaki geçerli deyim cout << "Result is: " << result << endl; Otomatikler penceresinde sonuç inf'dir.

    Bunu düzeltebilirsiniz. Satır, cout içinde resultdepolanan değeri verir, bu nedenle F10 kullanarak bir satır ileriye doğru bir adım daha attığınızda konsol penceresi görüntülenir:

    Sıfıra bölme işleminin sonucunu görüntüleyen Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü.

    Uygulama çıkışları: Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. Kullanıcı 5-0 girdi. Uygulamanın çıktısı: Sonuç: 5. Kullanıcı 10/0 değerini girdi. Uygulama çıkışı: Sonuç: inf

    Bu sonucun nedeni sıfıra bölme işleminin tanımlanmamış olmasıdır, dolayısıyla programın istenen işlem için sayısal bir yanıtı yoktur.

"Sıfıra böl" hatasını düzeltme

Kullanıcının sorunu anlamasını kolaylaştırmak için bölme işlemini sıfıra kadar daha zarif bir şekilde işleyebilir.

  1. içinde CalculatorTutorial.cppaşağıdaki değişiklikleri yapın. Düzenle ve Devam Et adlı hata ayıklayıcı özelliği sayesinde, programı düzenlerken çalışır durumda bırakabilirsiniz. Değişiklik, sıfıra bölme olup olmadığını denetlemek ve gerçekleşirse kullanıcıya bir ileti göndermek için if'den sonra bir cin >> x >> oper >> y; deyimi eklemektir. Aksi takdirde, sonuç yazdırılır:

    // 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. F5 tuşuna bir kez basın. Program çalışması, kullanıcı girişi istemek için durmak zorunda kalana kadar devam eder. 10 / 0 yeniden girin. Şimdi daha yararlı bir ileti yazdırılır. Kullanıcıdan daha fazla giriş istenir ve program normal şekilde yürütülür.

    Kod değiştikten sonra nihai sonucu gösteren Hata Ayıklama Konsolu videosu. 10/ 0 girilir ve program '0 özel duruma göre bölme' görüntüler.

    Uyarı

    Hata ayıklama modundayken kodu düzenlerken kodun eskime riski vardır. Hata ayıklayıcı eski kodunuzu çalıştırmaya devam ettiğinde ve henüz değişikliklerinizle güncelleştirmediğinde bu durum ortaya çıkar. Hata ayıklayıcı, bu durum oluştuğunda sizi bilgilendirmek için bir iletişim kutusu sağlar. Bazen yürütülmekte olan kodu yenilemek için F5 tuşuna basmanız gerekir.

    Özellikle, yürütme noktası bu işlevin içindeyken işlevin içinde bir değişiklik yaparsanız, işlevden çıkın ve ardından güncelleştirilmiş kodu almak için yeniden işleve geri dönün. Bu herhangi bir nedenle işe yaramazsa ve bir hata iletisi görürseniz, hata ayıklamayı durdurmak için kırmızı kareyi seçin, ardından F5 girerek veya araç çubuğundaki durdur düğmesinin yanındaki yeşil "oynat" okunu seçerek yeniden başlayın.

    Düzenleme ve devam etme işleminin başarısız olmasının bir diğer nedeni de ana menüye gidip Araçlar>Seçenekler>Hata Ayıklama>Genel'i seçmeniz ve Kaynak dosyaların özgün sürümle tam olarak eşleşmesini gerektir seçeneğinin işaretli olduğundan emin olmanızdır.

    Çalıştırma ve Hata Ayıklama kısayollarını anlama

    • F5 veya Hata Ayıklamayı>Başlat Hata Ayıklama, zaten etkin değilse bir hata ayıklama oturumu başlatır ve bir kesme noktasına isabet edene veya programın kullanıcı girişi yapması gerekene kadar programı çalıştırır. Kullanıcı girişi gerekmiyorsa ve isabet edecek bir kesme noktası yoksa, program sona erer ve program çalışmasını tamamladığında konsol penceresi kapanır. Programınız konsola çıktıysa, pencereyi açık tutmak için F5 tuşuna basmadan önce Ctrl+F5 tuşlarını kullanın veya bir kesme noktası ayarlayın.
    • Ctrl+F5 veya Hata Ayıklama>Olmadan Başlat, uygulamayı hata ayıklama moduna geçmeden çalıştırır. Bu hata ayıklamadan biraz daha hızlıdır ve program yürütmeyi tamamladıktan sonra konsol penceresi açık kalır.
    • Adım Adım olarak bilinen F10, kodda yineleme yapmanıza, satır satır çalıştırmanıza ve kodun nasıl çalıştırıldığından ve yürütmenin her adımında hangi değişken değerlerinin olduğunu görselleştirmenize olanak tanır.
    • F11, olarak bilinen İçine Gir, Üzerinden Geç'e benzer şekilde çalışır, ancak yürütme satırında çağrılan işlevlerin içine adım atar. Örneğin, yürütülen satır bir işlevi çağırırsa, F11 tuşuna basıldığında işaretçi işlevin gövdesine taşınır, böylece başladığınız satıra dönmeden önce işlevin çalıştırılan kodunu izleyebilirsiniz. İşlev çağrısını atlamak için F10'a basmak, sadece bir sonraki satıra geçer; işlev çağrısı yine de gerçekleşir ancak program ne yaptığını göstermek amacıyla durmuyor.

Uygulamayı kapatma

  • Hala çalışıyorsa hesap makinesi uygulamasını durdurmak için konsol penceresini kapatın.

Tamamlanmış uygulama

Tebrikler! Hesap makinesi uygulamasının kodunu tamamladınız ve Visual Studio'da derleyip hata ayıklamıştınız.

Sonraki adım

C++ için Visual Studio hakkında daha fazla bilgi edinin