Membuat kalkulator konsol di C++
Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda akan mulai dengan itu dalam artikel ini, dan kemudian kita beralih ke sesuatu yang lebih menantang: aplikasi kalkulator.
Prasyarat
- Visual Studio dengan pengembangan Desktop dengan beban kerja C++ terinstal dan berjalan di komputer Anda. Untuk menginstalnya, lihat Menginstal dukungan C++ di Visual Studio.
- Tutorial ini menunjukkan fitur yang disebut edit dan lanjutkan yang memungkinkan Anda membuat perubahan pada kode Anda saat aplikasi sedang berjalan. Untuk mengaktifkan edit dan lanjutkan, dari menu utama pilih Opsi>Alat>Penelusuran Kesalahan>Umum dan pastikan bahwa Memerlukan file sumber agar sama persis dengan versi asli dicentang.
Membuat proyek aplikasi Anda
Visual Studio menggunakan proyek untuk mengatur kode untuk aplikasi, dan solusi untuk mengatur satu atau beberapa proyek. Proyek berisi semua opsi, konfigurasi, dan aturan yang digunakan untuk membuat aplikasi. Ini juga mengelola hubungan antara semua file proyek dan file eksternal apa pun. Untuk membuat aplikasi Anda, pertama-tama, buat proyek dan solusi baru.
Mulai Visual Studio--kotak dialog Visual Studio Start muncul. Pilih Buat proyek baru untuk memulai.
Dialog memiliki opsi untuk mengkloning repositori, membuka proyek atau solusi, membuka folder lokal, dan membuat proyek baru."
Dalam daftar templat proyek, pilih Aplikasi Konsol, lalu pilih Berikutnya.
Penting
Pastikan Anda memilih versi C++ templat Aplikasi Konsol. Ini memiliki tag C++, Windows, dan Konsol, dan ikon memiliki "++" di sudut.
Dalam kotak dialog Konfigurasikan proyek baru Anda, pilih kotak teks Nama proyek, beri nama proyek baru Anda CalculatorTutorial, lalu pilih Buat.
Aplikasi konsol C++ Windows kosong 'Halo Dunia' dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor terbuka dan menampilkan kode yang dihasilkan:
// 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
Verifikasi bahwa aplikasi baru Anda dibuat dan dijalankan
Templat untuk aplikasi konsol Windows baru membuat aplikasi "Halo Dunia" C++ sederhana. Pada titik ini, Anda dapat melihat bagaimana Visual Studio membangun dan menjalankan aplikasi yang Anda buat langsung dari IDE.
Untuk membangun proyek Anda, pilih Bangun Solusi dari menu Build . Jendela Output menunjukkan hasil proses build.
Untuk menjalankan kode, pada bilah menu, pilih Debug, Mulai tanpa penelusuran kesalahan (Ctrl+F5).
Jendela konsol terbuka lalu menjalankan aplikasi Anda.
Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi ini menjalankan kode Anda, lalu mencetak "Tekan tombol apa pun untuk menutup jendela ini. . ." untuk memberi Anda kesempatan melihat hasilnya.
Selamat! Anda membuat aplikasi konsol "Halo, dunia!" pertama Anda di Visual Studio!
Tekan tombol untuk menutup jendela konsol dan kembali ke Visual Studio.
Anda sekarang memiliki alat untuk membuat dan menjalankan aplikasi setelah setiap perubahan, untuk memverifikasi bahwa kode masih berfungsi seperti yang Anda harapkan. Kemudian, kami menunjukkan kepada Anda cara men-debugnya jika tidak.
Mengedit kode
Sekarang mari kita ubah kode dalam templat ini menjadi aplikasi kalkulator.
Ganti konten
CalculatorTutorial.cpp
file dengan kode berikut sehingga cocok dengan contoh ini:// 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
Memahami kode:
- Pernyataan
#include
memungkinkan Anda mereferensikan kode yang terletak di file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut (<>); di lain waktu, nama file dikelilingi oleh tanda kutip (" "). Secara umum, kurung sudut digunakan saat mereferensikan Pustaka Standar C++, sementara tanda kutip digunakan untuk file lain. - Baris
using namespace std;
memberi tahu pengkompilasi untuk mengharapkan hal-hal dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului untukstd::
menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensicout
harus ditulis sebagaistd::cout
. Pernyataanusing
ditambahkan untuk membuat kode terlihat lebih bersih. - Kata kunci
cout
digunakan untuk mencetak ke output standar di C++. Operator << memberi tahu pengompilasi untuk mengirim apa pun yang ada di sebelah kanannya ke output standar. - Kata
endl
kunci seperti tombol Enter; itu mengakhiri baris dan memindahkan kursor ke baris berikutnya. Ini adalah praktik yang lebih baik untuk menempatkan\n
di dalam string (dikandung oleh""
) untuk melakukan hal yang sama karenaendl
selalu menyiram buffer yang dapat melukai kinerja program. Tetapi karena ini adalah aplikasi yang sangat kecil,endl
digunakan sebagai gantinya untuk keterbacaan yang lebih baik. - Semua pernyataan C++ harus berakhir dengan titik koma dan semua aplikasi C++ harus berisi fungsi
main()
. Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses agarmain()
dapat digunakan.
- Pernyataan
Untuk menyimpan file, tekan Ctrl+S, atau pilih ikon Simpan di dekat bagian atas IDE, ikon disket di toolbar di bawah bilah menu.
Untuk menjalankan aplikasi, tekan Ctrl+F5 atau buka menu Debug dan pilih Mulai Tanpa Penelusuran Kesalahan. Anda akan melihat jendela konsol muncul yang menampilkan teks yang ditentukan dalam kode.
Tutup jendela konsol setelah selesai.
Menambahkan kode untuk melakukan beberapa matematika
Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kami mendefinisikan kelas kalkulator untuk berisi logika matematika.
Menambahkan kelas Kalkulator
Buka menu Proyek dan pilih Tambahkan Kelas. Dalam kotak edit Nama Kelas, masukkan Kalkulator. Pilih OK.
Bidang nama kelas diatur ke kalkulator. Bidang file .h berisi Calculator.h. Bidang file .cpp berisi Calculator.cpp. Bidang kelas dasar kosong. Opsi lain untuk destruktor virtual, sebaris, dan tidak terkelola tidak dicentang.
Dua file baru ditambahkan ke proyek Anda. Untuk menyimpan semua file yang diubah sekaligus, tekan Ctrl+Shift+S. Ini adalah pintasan keyboard untuk File>Simpan Semua. Ada juga tombol bilah alat untuk Simpan Semua, ikon dua disket, ada di samping tombol Simpan. Secara umum, ada baiknya untuk sering melakukan Simpan Semua, sehingga Anda tidak melewatkan file apa pun saat menyimpan.
Wizard Tambahkan Kelas membuat
.h
dan.cpp
file yang memiliki nama yang sama dengan kelas . Anda dapat melihat daftar lengkap file proyek Anda di jendela Penjelajah Solusi, terlihat di sisi IDE. Jika jendela tidak terlihat, Anda dapat membukanya dari bilah menu: pilih Tampilkan> Penjelajah Solusi.Proyek tutorial kalkulator memiliki simpul file header yang berisi Calculator.h. Simpul File Sumber berisi Calculator.cpp dan CalculatorTutorial.cpp. Simpul untuk referensi, dependensi eksternal, dan file sumber daya terlihat tetapi ditutup.
Anda dapat membuka file dengan mengklik dua kali di jendela Penjelajah Solusi.
Calculator.h
Klik dua kali untuk membukanya.Ganti konten
Calculator.h
dengan kode berikut sehingga file sekarang terlihat seperti ini:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Memahami kode
- Kode ini mendeklarasikan fungsi baru yang disebut
Calculate
, yang kami gunakan untuk menjalankan operasi matematika untuk penambahan, pengurangan, perkalian, dan pembagian. - Kode C++ diatur ke dalam file header (
.h
) dan file sumber (.cpp
). Beberapa ekstensi file lainnya didukung oleh berbagai pengompilasi, tetapi ini adalah yang utama untuk diketahui. Fungsi dan variabel biasanya dideklarasikan, yaitu, diberi nama dan jenis, dalam file header, dan diimplementasikan, atau diberi definisi, dalam file sumber. Untuk mengakses kode yang ditentukan dalam file lain, Anda dapat menggunakan#include "filename.h"
, di manafilename.h
adalah nama file yang mendeklarasikan variabel atau fungsi yang ingin Anda gunakan. - Ini adalah praktik yang baik untuk mengatur kode Anda ke dalam file yang berbeda berdasarkan apa yang dilakukannya, sehingga mudah untuk menemukan kode yang Anda perlukan nanti. Dalam kasus kami, kami mendefinisikan kelas
Calculator
secara terpisah dari file yang berisi fungsimain()
, tetapi kami berencana untuk mereferensikan kelasCalculator
dimain()
.
- Kode ini mendeklarasikan fungsi baru yang disebut
Squiggle hijau muncul di bawah
Calculate
karena meskipunCalculate
fungsi dideklarasikan, itu tidak ditentukan. Arahkan mouse ke atasCalculate
, klik panah bawah pada obeng yang muncul, dan pilih Buat definisi 'Hitung' diCalculator.cpp
.Kode ini ditambahkan ke
Calculator.cpp
:Definisi konstruktor adalah: double Calculator::Calculate( double x, char oper, double y) { return 0.0; }
Saat ini, hanya menghasilkan 0,0. Mari kita ubah hal itu.
Beralih ke
Calculator.cpp
file di jendela editor. Ganti isiCalculator::Calculate(double x, char oper, double y)
dengan: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; } }
Memahami kode
- Fungsi
Calculate
ini mengonsumsi angka, operator, dan angka kedua, lalu melakukan operasi yang diminta pada angka. - Pernyataan pengalih memeriksa operator mana yang disediakan, dan hanya mengeksekusi kasus yang sesuai dengan operasi tersebut. Default: kasus adalah fallback jika pengguna mengetikkan operator yang tidak diterima, sehingga program tidak rusak. Secara umum, yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini.
- Kata kunci
double
menunjukkan jenis angka yang mendukung desimal. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. FungsiCalculate
diperlukan untuk selalu menghasilkan angka seperti itu karenadouble
pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya 0,0 dihasilkan bahkan dalam kasus default. - File
.h
mendeklarasikan prototipe fungsi, yang memberi tahu kompilator di muka parameter apa yang diperlukannya, dan jenis pengembalian apa yang diharapkan darinya. File.cpp
memiliki semua detail implementasi fungsi.
- Fungsi
Jika Anda membangun dan menjalankan kode lagi pada saat ini, kode akan segera keluar setelah meminta operasi mana yang akan dilakukan. Jadi, ubah main
fungsi untuk melakukan beberapa perhitungan.
Calculator
Memanggil fungsi anggota kelas
main
Perbarui fungsi sebagaiCalculatorTutorial.cpp
berikut:// 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; }
Memahami kode
- Karena program C++ selalu dimulai pada fungsi
main()
, kita perlu memanggil kode kita yang lain, sehingga pernyataan#include
diperlukan. - Beberapa variabel awal
x
,y
,oper
, danresult
masing-masing dideklarasikan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir. Ini selalu merupakan praktik yang baik untuk memberi mereka beberapa nilai awal untuk menghindari perilaku yang tidak terdefinisi, yaitu apa yang dilakukan di sini. - Baris
Calculator c;
mendeklarasikan objek bernama 'c' sebagai instans kelasCalculator
. Kelas itu sendiri hanyalah cetak biru cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika. - Pernyataan
while (true)
adalah perulangan. Kode di dalam perulangan terus dieksekusi berulang-ulang selama kondisi di dalam hold()
benar. Karena kondisinya hanya terdaftar sebagaitrue
, maka ini selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru. - Kata kunci
cin
digunakan untuk menerima input dari pengguna. Aliran input ini cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan, dengan asumsi input pengguna cocok dengan spesifikasi yang diperlukan. Anda dapat memodifikasi baris ini untuk menerima berbagai jenis input seperti lebih dari dua angka--meskipunCalculate()
fungsi juga perlu diperbarui untuk menangani ini. - Ekspresi
c.Calculate(x, oper, y);
memanggil fungsiCalculate
yang ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan. Fungsi kemudian menghasilkan angka yang disimpan diresult
. - Terakhir,
result
dicetak ke konsol, sehingga pengguna melihat hasil perhitungan.
- Karena program C++ selalu dimulai pada fungsi
Membangun dan menguji kode lagi
Sekarang uji program lagi untuk memastikan semuanya berfungsi dengan baik.
Tekan Ctrl+F5 untuk membangun kembali dan memulai aplikasi.
Ketik
5+5
dan tekan Enter. Verifikasi bahwa hasilnya adalah 10.Aplikasi mengeluarkan pesan: Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Pengguna memasukkan 5+5. Output aplikasi: Hasil 5+5 adalah: 10
Men-debug aplikasi
Karena pengguna bebas mengetik apa pun ke jendela konsol, mari kita pastikan kalkulator menangani input yang tidak terduga. Alih-alih menjalankan program, mari kita debug sehingga kita dapat memeriksa apa yang dilakukannya langkah demi langkah.
Menjalankan aplikasi di debugger
Di
CalcuatorTutorial.cpp
, atur titik henti pada baris:result = c.Calculate(x, oper, y);
. Untuk mengatur titik henti, klik berikutnya di samping garis di bilah vertikal abu-abu sepanjang tepi kiri jendela editor. Sebuah titik merah muncul.Sekarang ketika kita men-debug program, eksekusi berhenti sejenak pada baris itu. Kita sudah memiliki ide kasar bahwa program bekerja untuk kasus-kasus sederhana. Karena kita tidak ingin menjeda eksekusi setiap kali kita memanggil
Calculate()
, mari kita buat titik henti kondisional.Klik kanan titik merah yang mewakili titik henti, dan pilih Kondisi. Dalam kotak edit untuk kondisi tersebut, masukkan
(y == 0) && (oper == '/')
. Pilih tombol Tutup untuk menyimpan kondisi titik henti.Kondisi untuk titik henti adalah: y==0 && oper == '/' Adalah true.
Sekarang, eksekusi akan dijeda pada titik henti ketika aplikasi mencoba membagi dengan 0.
Untuk men-debug program, tekan F5, atau pilih tombol bilah alat Windows Debugger Lokal yang memiliki ikon panah hijau. Di aplikasi konsol Anda, jika Anda memasukkan sesuatu seperti "5 - 0", program bereaksi normal dan terus berjalan. Namun, jika mengetik "10 / 0", program akan dijeda pada titik henti. Anda dapat meletakkan sejumlah spasi antara operator dan angka:
cin
cukup pintar untuk mengurai input dengan tepat.
Jendela yang berguna di debugger
Saat men-debug kode, Anda mungkin melihat bahwa beberapa jendela baru muncul. Jendela ini dapat membantu pengalaman debugging Anda. Lihat jendela Otomatis. Jendela Otomatis memperlihatkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini.
Nilai oper adalah 47 '/', hasilnya adalah 5, x adalah 10, dan y adalah 0.
Untuk melihat semua variabel dari fungsi tersebut, beralihlah ke jendela Lokal. Anda dapat memodifikasi nilai variabel ini saat menelusuri kesalahan untuk melihat efek apa yang akan mereka miliki pada program. Dalam hal ini, kami meninggalkan mereka sendirian.
Nilai oper adalah 47 '/', hasilnya adalah 0, x adalah 10, dan y adalah 0.
Anda juga dapat mengarahkan mouse ke atas variabel dalam kode untuk melihat nilainya saat ini pada titik di mana eksekusi saat ini dijeda. Pastikan jendela editor berada dalam fokus dengan mengekliknya terlebih dahulu.
Lanjutkan penelusuran kesalahan
Panah kuning di sebelah kiri menunjukkan titik eksekusi saat ini. Baris saat ini memanggil
Calculate
, jadi tekan F11 untuk Step Into fungsi. Sekarang Anda menjalankan kode dalam isiCalculate
fungsi. Berhati-hatilah dengan Step Into karena melangkah ke fungsi apa pun di baris tempat Anda berada, termasuk fungsi pustaka standar. Tidak masalah untuk masuk ke pustaka standar, tetapi Anda mungkin lebih tertarik untuk berfokus pada kode Anda alih-alih kode pustaka.Sekarang setelah titik eksekusi berada di awal fungsi
Calculate
, tekan F10 untuk pindah ke baris berikutnya dalam eksekusi program. F10 juga dikenal sebagai Step Over. Anda dapat menggunakan Step Over untuk berpindah dari baris ke baris, tanpa mempelajari detail apa yang terjadi di setiap bagian baris. Secara umum, Anda harus menggunakan Step Over alih-alih Step Into kecuali Anda ingin menyelam lebih dalam ke dalam kode yang sedang dipanggil dari tempat lain (seperti yang Anda lakukan untuk mencapai isiCalculate
).Lanjut menggunakan F10 untuk Step Over setiap baris hingga Anda kembali ke fungsi
main()
di file lain, dan berhenti di bariscout
.Program ini melakukan apa yang diharapkan: dibutuhkan angka pertama, dan membaginya dengan yang kedua. Pada baris
cout
, arahkan mouse ke variabelresult
atau lihatresult
di jendela Otomatis. Nilainyainf
, yang tidak terlihat benar, jadi mari kita perbaiki. Bariscout
hanya menghasilkan nilai apa pun yang disimpan diresult
, jadi ketika Anda melangkah satu baris lagi ke depan menggunakan F10, jendela konsol menampilkan:Output aplikasi: Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Pengguna memasukkan 5-0. Output aplikasi: Hasilnya adalah: 5. Pengguna THe memasuki 10/0. Output aplikasi: Hasilnya adalah: inf
Hasil ini karena pembagian dengan nol tidak terdefinisi, sehingga program tidak memiliki jawaban numerik untuk operasi yang diminta.
Perbaiki kesalahan "bagi dengan nol"
Mari kita tangani pembagian dengan nol lebih anggun sehingga lebih mudah bagi pengguna untuk memahami masalah.
Buat perubahan berikut dalam
CalculatorTutorial.cpp
. (Anda dapat membiarkan program berjalan saat Anda mengedit, berkat fitur debugger yang disebut Edit dan Lanjutkan). Tambahkan pernyataan berikutif
cin >> x >> oper >> y;
untuk memeriksa pembagian dengan nol dan keluarkan pesan kepada pengguna jika itu terjadi. Jika tidak, hasilnya dicetak.// 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; }
Tekan F5 sekali. Eksekusi program berlanjut sampai harus berhenti sejenak untuk meminta input pengguna. Masukkan
10 / 0
lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna dimintai masukan lebih lanjut, dan program terus dieksekusi secara normal.Jendela konsol menampilkan dua baris: 10 / 0 Hasilnya adalah: inf, diikuti oleh, kesalahan Matematika 10 / 0: Mencoba membagi dengan nol.
Catatan
Ketika mengedit kode saat dalam mode debugging, ada risiko kode menjadi usang. Ini terjadi ketika debugger masih menjalankan kode lama Anda, dan belum memperbaruinya dengan perubahan Anda. Debugger menampilkan dialog untuk memberi tahu Anda kapan hal ini terjadi. Terkadang, Anda mungkin perlu menekan F5 untuk menyegarkan kode yang sedang dieksekusi. Secara khusus, jika Anda membuat perubahan di dalam fungsi saat titik eksekusi berada di dalam fungsi itu, Anda perlu keluar dari fungsi, lalu kembali ke dalamnya lagi untuk mendapatkan kode yang diperbarui. Jika itu tidak berhasil dan Anda melihat pesan kesalahan, Anda dapat berhenti men-debug dengan mengklik kotak merah di toolbar di bawah menu di bagian atas IDE, lalu mulai debugging lagi dengan memasukkan F5 atau dengan memilih panah hijau "putar" di samping tombol berhenti pada toolbar.
Alasan lain mengedit dan melanjutkan mungkin gagal adalah jika Anda melihat pesan yang mengatakan "Memerlukan file sumber agar sama persis dengan pengaturan versi asli di bawah Debug-Opsi-Umum>> perlu diaktifkan..." Untuk memperbaikinya, dari menu utama pilih Opsi>Alat>Debugging>Umum dan pastikan bahwa Memerlukan file sumber agar sama persis dengan versi asli yang dicentang.
Memahami pintasan Jalankan dan Debug
- F5 (atau Debug>Mulai Debugging) memulai sesi debugging jika belum aktif, dan menjalankan program hingga mencapai titik henti atau program memerlukan input pengguna. Jika input pengguna tidak diperlukan dan tidak ada titik henti yang dapat dicapai, program akan berakhir dan jendela konsol akan menutup sendiri ketika program selesai berjalan. Jika Anda memiliki sesuatu seperti program "Halo Dunia" untuk dijalankan, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
- Ctrl+F5 (atau Debug>Mulai Tanpa Debugging) menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol akan tetap terbuka setelah program selesai dieksekusi.
- F10 (dikenal sebagai Step Over) memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, serta memvisualisasikan cara kode dijalankan dan nilai variabel yang ada di setiap langkah eksekusi.
- F11 (dikenal sebagai Step Into) berfungsi sama dengan Step Over, kecuali langkah-langkahnya ke fungsi apa pun yang dipanggil pada baris eksekusi. Misalnya, jika baris yang dieksekusi memanggil fungsi, dengan menekan F11 akan memindahkan pointer ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 akan melangkahi panggilan fungsi dan hanya berpindah ke baris berikutnya; panggilan fungsi masih terjadi, tetapi program tidak dijeda untuk menunjukkan apa yang dilakukannya.
Tutup aplikasi
- Jika masih berjalan, tutup jendela konsol untuk aplikasi kalkulator.
Menambahkan kontrol sumber Git
Setelah membuat aplikasi, Anda mungkin ingin menambahkannya ke repositori Git. Kami siap membantu Anda. Visual Studio memudahkan proses tersebut dengan alat Git yang dapat Anda gunakan langsung dari IDE.
Tip
Git adalah sistem kontrol versi modern yang paling banyak digunakan, jadi apakah Anda seorang pengembang profesional atau Anda belajar cara membuat kode, Git bisa sangat berguna. Jika Anda baru menggunakan Git, situs web https://git-scm.com/ adalah tempat yang baik untuk memulai. Di sana, Anda dapat menemukan contekan, buku online populer, dan video Git Basics.
Untuk mengaitkan kode Anda dengan Git, Anda mulai dengan membuat repositori Git baru tempat kode Anda berada. Berikut caranya:
Di bilah status di sudut kanan bawah Visual Studio, pilih Tambahkan ke Kontrol Sumber, lalu pilih Git.
Dalam kotak dialog Buat repositori Git, masuk ke GitHub.
Nama repositori terisi otomatis berdasarkan lokasi folder Anda. Secara default, repositori baru Anda bersifat pribadi, yang berarti Anda satu-satunya yang dapat mengaksesnya.
Tip
Baik repositori Anda bersifat publik atau privat, yang terbaik adalah memiliki cadangan jarak jauh kode Anda yang disimpan dengan aman di GitHub. Bahkan jika Anda tidak bekerja dengan tim, repositori jarak jauh membuat kode Anda tersedia untuk Anda dari komputer mana pun.
Pilih Buat dan Dorong.
Setelah Anda membuat repositori, detail status muncul di bilah status.
Ikon pertama dengan panah menunjukkan berapa banyak penerapan keluar/masuk di cabang Anda saat ini. Anda dapat menggunakan ikon ini untuk menarik penerapan masuk atau mendorong penerapan keluar apa pun. Anda juga dapat memilih untuk melihat penerapan ini terlebih dahulu. Untuk melakukannya, pilih ikon, lalu pilih Tampilkan Keluar/Masuk.
Ikon kedua dengan pensil menunjukkan jumlah perubahan yang tidak dilakukan pada kode Anda. Anda dapat memilih ikon ini untuk melihat perubahan tersebut di jendela Perubahan Git.
Untuk mempelajari selengkapnya tentang cara menggunakan Git dengan aplikasi Anda, lihat dokumentasi kontrol versi Visual Studio.
Aplikasi yang sudah selesai
Selamat! Anda menyelesaikan kode untuk aplikasi kalkulator, membangun dan men-debugnya, dan menambahkannya ke repositori, semuanya di Visual Studio.
Langkah berikutnya
Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda mulai dengan itu dalam artikel ini, dan kemudian kita beralih ke sesuatu yang lebih menantang: aplikasi kalkulator.
Prasyarat
- Visual Studio dengan pengembangan Desktop dengan beban kerja C++ terinstal dan berjalan di komputer Anda. Untuk menginstalnya, lihat Menginstal dukungan C++ di Visual Studio.
Membuat proyek aplikasi Anda
Visual Studio menggunakan proyek untuk mengatur kode untuk aplikasi, dan solusi untuk mengatur satu atau beberapa proyek. Proyek berisi semua opsi, konfigurasi, dan aturan yang digunakan untuk membuat aplikasi. Ini juga mengelola hubungan antara semua file proyek dan file eksternal apa pun. Untuk membuat aplikasi Anda, pertama-tama, buat proyek dan solusi baru.
Pada bilah menu di Visual Studio, pilih File>Proyek Baru.> Jendela Proyek Baru terbuka.
Di bilah sisi kiri, pastikan Visual C++ dipilih. Di tengah, pilih Aplikasi Konsol Windows.
Di kotak teks Nama di bagian bawah, beri nama proyek baru CalculatorTutorial, lalu pilih OK.
Aplikasi konsol C++ Windows kosong 'Halo Dunia' dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor terbuka dan menampilkan kode yang dihasilkan:
// 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
Verifikasi bahwa aplikasi baru Anda dibuat dan dijalankan
Templat untuk aplikasi konsol Windows baru membuat aplikasi "Halo Dunia" C++ sederhana. Pada titik ini, Anda dapat melihat bagaimana Visual Studio membangun dan menjalankan aplikasi yang Anda buat langsung dari IDE.
Untuk membangun proyek Anda, pilih Bangun Solusi dari menu Build . Jendela Output menunjukkan hasil proses build.
Untuk menjalankan kode, pada bilah menu, pilih Debug, Mulai tanpa penelusuran kesalahan (Ctrl+F5).
Jendela konsol terbuka lalu menjalankan aplikasi Anda.
Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi ini menjalankan kode Anda, lalu mencetak "Tekan tombol apa pun untuk menutup jendela ini. . ." untuk memberi Anda kesempatan melihat hasilnya.
Selamat! Anda membuat aplikasi konsol "Halo, dunia!" pertama Anda di Visual Studio!
Tekan tombol untuk menutup jendela konsol dan kembali ke Visual Studio.
Anda sekarang memiliki alat untuk membuat dan menjalankan aplikasi setelah setiap perubahan, untuk memverifikasi bahwa kode masih berfungsi seperti yang Anda harapkan. Kemudian, kami menunjukkan kepada Anda cara men-debugnya jika tidak.
Mengedit kode
Sekarang mari kita ubah kode dalam templat ini menjadi aplikasi kalkulator.
Ganti konten
CalculatorTutorial.cpp
file dengan kode berikut sehingga cocok dengan contoh ini:// 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
Memahami kode:
- Pernyataan
#include
memungkinkan Anda mereferensikan kode yang terletak di file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut (<>); di lain waktu, nama file dikelilingi oleh tanda kutip (" "). Secara umum, kurung sudut digunakan saat mereferensikan Pustaka Standar C++, sementara tanda kutip digunakan untuk file lain. - Baris
using namespace std;
memberi tahu pengkompilasi untuk mengharapkan hal-hal dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului untukstd::
menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensicout
harus ditulis sebagaistd::cout
. Pernyataanusing
ditambahkan untuk membuat kode terlihat lebih bersih. - Kata kunci
cout
digunakan untuk mencetak ke output standar di C++. Operator *<<
memberi tahu pengkompilasi untuk mengirim apa pun yang ada di sebelah kanannya ke output standar. - Kata
endl
kunci seperti tombol Enter; itu mengakhiri baris dan memindahkan kursor ke baris berikutnya. Ini adalah praktik yang lebih baik untuk menempatkan\n
di dalam string (terkandung oleh""
) untuk melakukan hal yang sama karenaendl
selalu membersihkan buffer dan dapat menyakiti performa program. Tetapi karena ini adalah aplikasi yang sangat kecil,endl
digunakan sebagai gantinya untuk keterbacaan yang lebih baik. - Semua pernyataan C++ harus berakhir dengan titik koma dan semua aplikasi C++ harus berisi fungsi
main()
. Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses agarmain()
dapat digunakan.
- Pernyataan
Untuk menyimpan file, tekan Ctrl+S, atau pilih ikon Simpan di dekat bagian atas IDE, ikon disket di toolbar di bawah bilah menu.
Untuk menjalankan aplikasi, tekan Ctrl+F5 atau buka menu Debug dan pilih Mulai Tanpa Penelusuran Kesalahan. Jika Anda mendapatkan pop-up yang mengatakan Proyek ini sudah kedaluarsa, Anda dapat memilih Jangan tampilkan dialog ini lagi, lalu pilih Ya untuk membangun aplikasi Anda. Anda akan melihat jendela konsol muncul yang menampilkan teks yang ditentukan dalam kode.
Pertama,kotak dialog muncul yang menanyakan apakah akan membangun karena proyek sudah kedaluarsa. Kotak centang untuk 'Jangan perlihatkan dialog ini lagi' dipilih. 'Ya' dipilih untuk membangun proyek, proyek kalkulator dibangun, lalu diluncurkan di jendela konsol Windows.
Tutup jendela konsol setelah selesai.
Menambahkan kode untuk melakukan beberapa matematika
Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kami mendefinisikan kelas kalkulator untuk berisi logika matematika.
Menambahkan kelas Kalkulator
Buka menu Proyek dan pilih Tambahkan Kelas. Dalam kotak edit Nama Kelas, masukkan Kalkulator. Pilih OK.
Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kita mendefinisikan kalkulator dan cara kerjanya.
Dua file baru ditambahkan ke proyek Anda. Untuk menyimpan semua file yang diubah sekaligus, tekan Ctrl+Shift+S. Ini adalah pintasan keyboard untuk File>Simpan Semua. Ada juga tombol bilah alat untuk Simpan Semua, ikon dua disket, ada di samping tombol Simpan. Secara umum, ada baiknya untuk sering melakukan Simpan Semua, sehingga Anda tidak melewatkan file apa pun saat menyimpan.
Wizard Tambahkan Kelas membuat
.h
dan.cpp
file yang memiliki nama yang sama dengan kelas . Anda dapat melihat daftar lengkap file proyek Anda di jendela Penjelajah Solusi, terlihat di sisi IDE. Jika jendela tidak terlihat, Anda dapat membukanya dari bilah menu: pilih Tampilkan> Penjelajah Solusi.Proyek tutorial kalkulator memiliki simpul file header yang berisi Calculator.h, stdafx.h, dan targetver.h. Simpul File Sumber berisi Calculator.cpp, CalculatorTutorial.cpp, dan stdafx.cpp. Simpul untuk referensi, dependensi eksternal, dan file sumber daya terlihat tetapi ditutup.
Anda dapat membuka file dengan mengklik dua kali di jendela Penjelajah Solusi.
Calculator.h
Klik dua kali untuk membukanya.Ganti konten
Calculator.h
dengan kode berikut sehingga file sekarang terlihat seperti ini:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Memahami kode
- Kode ini mendeklarasikan fungsi baru yang disebut
Calculate
, yang kami gunakan untuk menjalankan operasi matematika untuk penambahan, pengurangan, perkalian, dan pembagian. - Kode C++ diatur ke dalam file header (
.h
) dan file sumber (.cpp
). Beberapa ekstensi file lainnya didukung oleh berbagai pengompilasi, tetapi ini adalah yang utama untuk diketahui. Fungsi dan variabel biasanya dideklarasikan, yaitu, diberi nama dan jenis, dalam file header, dan diimplementasikan, atau diberi definisi, dalam file sumber. Untuk mengakses kode yang ditentukan dalam file lain, Anda dapat menggunakan#include "filename.h"
, di manafilename.h
adalah nama file yang mendeklarasikan variabel atau fungsi yang ingin Anda gunakan. - Ini adalah praktik yang baik untuk mengatur kode Anda ke dalam file yang berbeda berdasarkan apa yang dilakukannya, sehingga mudah untuk menemukan kode yang Anda perlukan nanti. Dalam kasus kami, kami mendefinisikan kelas
Calculator
secara terpisah dari file yang berisi fungsimain()
, tetapi kami berencana untuk mereferensikan kelasCalculator
dimain()
.
- Kode ini mendeklarasikan fungsi baru yang disebut
Squiggle hijau muncul di bawah
Calculate
karena meskipunCalculate
fungsi dideklarasikan, itu tidak ditentukan. Arahkan mouse ke atasCalculate
, klik panah bawah pada obeng yang muncul, dan pilih Buat definisi 'Hitung' diCalculator.cpp
. Muncul pop-up yang memberi Anda cuplikan perubahan kode yang dibuat di file lain. Kode ditambahkan keCalculator.cpp
.Saat ini, hanya menghasilkan 0,0. Mari kita ubah hal itu. Tekan Esc untuk menutup pop-up.
Beralih ke
Calculator.cpp
file di jendela editor. Ganti isi file dengan kode berikut:#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; } }
Memahami kode
- Fungsi
Calculate
ini mengonsumsi angka, operator, dan angka kedua, lalu melakukan operasi yang diminta pada angka. - Pernyataan pengalih memeriksa operator mana yang disediakan, dan hanya mengeksekusi kasus yang sesuai dengan operasi tersebut. Default: kasus adalah fallback jika pengguna mengetikkan operator yang tidak diterima, sehingga program tidak rusak. Secara umum, yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini.
- Kata kunci
double
menunjukkan jenis angka yang mendukung desimal. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. FungsiCalculate
diperlukan untuk selalu menghasilkan angka seperti itu karenadouble
pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya 0,0 dihasilkan bahkan dalam kasus default. - File
.h
mendeklarasikan prototipe fungsi, yang memberi tahu kompilator di muka parameter apa yang diperlukannya, dan jenis pengembalian apa yang diharapkan darinya. File.cpp
memiliki semua detail implementasi fungsi.
- Fungsi
Jika membangun dan menjalankan kode lagi pada saat ini, kode masih akan keluar setelah menanyakan operasi mana yang akan dilakukan. Selanjutnya, ubah main
fungsi untuk melakukan beberapa perhitungan.
Memanggil fungsi anggota kelas Kalkulator
Sekarang mari kita perbarui
main
fungsi diCalculatorTutorial.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; }
Memahami kode
- Karena program C++ selalu dimulai pada fungsi
main()
, kita perlu memanggil kode kita yang lain, sehingga pernyataan#include
diperlukan. - Beberapa variabel awal
x
,y
,oper
, danresult
masing-masing dideklarasikan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir. Ini selalu merupakan praktik yang baik untuk memberi mereka beberapa nilai awal untuk menghindari perilaku yang tidak terdefinisi, yaitu apa yang dilakukan di sini. - Baris
Calculator c;
mendeklarasikan objek bernama 'c' sebagai instans kelasCalculator
. Kelas itu sendiri hanyalah cetak biru cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika. - Pernyataan
while (true)
adalah perulangan. Kode di dalam perulangan terus dieksekusi berulang-ulang selama kondisi di dalam hold()
benar. Karena kondisinya hanya terdaftar sebagaitrue
, maka ini selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru. - Kata kunci
cin
digunakan untuk menerima input dari pengguna. Aliran input ini cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan, dengan asumsi input pengguna cocok dengan spesifikasi yang diperlukan. Anda dapat memodifikasi baris ini untuk menerima berbagai jenis input seperti lebih dari dua angka--meskipunCalculate()
fungsi juga perlu diperbarui untuk menangani ini. - Ekspresi
c.Calculate(x, oper, y);
memanggil fungsiCalculate
yang ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan. Fungsi kemudian menghasilkan angka yang disimpan diresult
. - Terakhir,
result
dicetak ke konsol, sehingga pengguna melihat hasil perhitungan.
- Karena program C++ selalu dimulai pada fungsi
Membangun dan menguji kode lagi
Uji program lagi untuk memastikan semuanya berfungsi dengan baik.
Tekan Ctrl+F5 untuk membangun kembali dan memulai aplikasi.
Ketik
5+5
dan tekan Enter. Verifikasi bahwa hasilnya adalah 10.
Men-debug aplikasi
Karena pengguna bebas mengetik apa pun ke jendela konsol, mari kita pastikan kalkulator menangani input yang tidak terduga. Alih-alih menjalankan program, mari kita debug sebagai gantinya, sehingga kita dapat memeriksa apa yang dilakukannya langkah demi langkah.
Menjalankan aplikasi di debugger
Di
CalcuatorTutorial.cpp
, atur titik hentiresult = c.Calculate(x, oper, y);
pada baris. Untuk mengatur titik henti, klik berikutnya di samping garis di bilah vertikal abu-abu sepanjang tepi kiri jendela editor. Sebuah titik merah muncul.Sekarang ketika kita men-debug program, eksekusi pada baris tersebut akan selalu dijeda. Kita sudah memiliki ide kasar bahwa program bekerja untuk kasus-kasus sederhana. Karena kita tidak ingin menjeda eksekusi setiap saat, mari kita buat titik henti kondisional.
Klik kanan titik merah yang mewakili titik henti, dan pilih Kondisi. Dalam kotak edit untuk kondisi tersebut, masukkan
(y == 0) && (oper == '/')
. Pilih tombol Tutup saat Anda selesai untuk menyimpan kondisi titik henti.Titik henti ada di baris: result = c dot Calculate ( x, oper, y). 'Kondisi...' dipilih di dropdown titik henti, yang membuka jendela pengaturan titik henti. Opsi Kondisi dicentang, di bawah dropdown diatur sebagai: 'Ekspresi Bersyar' dan 'Adalah benar'. Pengguna memasukkan y == 0 && oper == '/' ke dalam kotak teks kondisi lalu memilih dekat untuk mengatur titik henti kondisi.
Sekarang kita menjeda eksekusi di titik henti secara khusus jika pembagian oleh 0 dicoba.
Untuk men-debug program, tekan F5, atau pilih tombol bilah alat Windows Debugger Lokal yang memiliki ikon panah hijau. Di aplikasi konsol Anda, jika Anda memasukkan sesuatu seperti "5 - 0", program bereaksi normal dan terus berjalan. Namun, jika mengetik "10 / 0", program akan dijeda pada titik henti. Anda bahkan dapat menempatkan sejumlah spasi antara operator dan angka;
cin
cukup cerdas untuk mengurai input dengan benar.Pengguna memasukkan 5 - 0. Output aplikasi: Hasilnya adalah 5. Pengguna kemudian memasukkan 10/0 dan karena kondisi untuk titik henti kondisional terpenuhi, eksekusi berhenti pada baris: result = c.Calculate(x, oper, y);
Jendela yang berguna di debugger
Saat men-debug kode, Anda mungkin melihat bahwa beberapa jendela baru muncul. Jendela ini dapat membantu pengalaman debugging Anda. Lihat jendela Otomatis. Jendela Otomatis memperlihatkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini.
Nilai oper adalah 47 '/', hasilnya adalah 5, x adalah 10, dan y adalah 0.
Untuk melihat semua variabel dari fungsi tersebut, beralihlah ke jendela Lokal. Anda dapat memodifikasi nilai variabel ini saat men-debug, untuk melihat efek apa yang akan mereka miliki pada program. Dalam hal ini, kami meninggalkan mereka sendirian.
Nilai oper adalah 47 '/', hasilnya adalah 0, x adalah 10, dan y adalah 0.
Anda juga dapat mengarahkan mouse ke atas variabel dalam kode itu sendiri untuk melihat nilainya saat ini di mana eksekusi saat ini dijeda. Pastikan jendela editor berada dalam fokus dengan mengekliknya terlebih dahulu.
Lanjutkan penelusuran kesalahan
Panah kuning di sebelah kiri menunjukkan titik eksekusi saat ini. Baris saat ini memanggil
Calculate
, jadi tekan F11 untuk Melangkah Ke fungsi , yang membawa Anda ke dalam isiCalculate
fungsi. Berhati-hatilah dengan Step Into karena melangkah ke fungsi apa pun di baris tempat Anda berada, termasuk fungsi pustaka standar. Tidak masalah untuk masuk ke pustaka standar, tetapi Anda mungkin lebih tertarik untuk berfokus pada kode Anda alih-alih kode pustaka.Sekarang setelah titik eksekusi berada di awal fungsi
Calculate
, tekan F10 untuk pindah ke baris berikutnya dalam eksekusi program. F10 juga dikenal sebagai Step Over. Anda dapat menggunakan Step Over untuk berpindah dari baris ke baris, tanpa mempelajari detail apa yang terjadi di setiap bagian baris. Secara umum, Anda harus menggunakan Step Over alih-alih Step Into, kecuali jika ingin lebih mendalami kode yang sedang dipanggil dari tempat lain (seperti yang Anda lakukan untuk mencapai isiCalculate
).Lanjut menggunakan F10 untuk Step Over setiap baris hingga Anda kembali ke fungsi
main()
di file lain, dan berhenti di bariscout
.Setiap baris kode dalam fungsi Hitung dilangkahi hingga kontrol kembali ke fungsi utama. Pengguna kemudian mengarahkan mouse ke atas variabel bernama result untuk melihat nilainya, yaitu: inf."
Program ini melakukan apa yang diharapkan: dibutuhkan angka pertama, dan membaginya dengan yang kedua. Pada baris
cout
, arahkan mouse ke variabelresult
atau lihatresult
di jendela Otomatis. Nilainya adalahinf
, yang tidak terlihat benar, jadi mari kita perbaiki. Bariscout
hanya menghasilkan nilai apa pun yang disimpan diresult
, jadi ketika Anda melangkah satu baris lagi ke depan menggunakan F10, jendela konsol menampilkan:Output aplikasi: Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Pengguna memasukkan 5-0. Output aplikasi: Hasilnya adalah: 5. Pengguna THe memasuki 10/0. Output aplikasi: Hasilnya adalah: inf
Hasil ini karena pembagian dengan nol tidak terdefinisi, sehingga program tidak memiliki jawaban numerik untuk operasi yang diminta.
Perbaiki kesalahan "bagi dengan nol"
Mari kita tangani pembagian dengan nol lebih anggun sehingga lebih mudah bagi pengguna untuk memahami masalah.
Buat perubahan berikut dalam
CalculatorTutorial.cpp
. (Anda dapat membiarkan program berjalan saat Anda mengedit, berkat fitur debugger yang disebut Edit dan Lanjutkan). Perubahannya adalah menambahkan pernyataan berikutif
cin >> x >> oper >> y;
untuk memeriksa pembagian dengan nol dan menghasilkan pesan kepada pengguna jika itu terjadi. Jika tidak, hasilnya dicetak:// 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; }
Tekan F5 sekali. Eksekusi program berlanjut sampai harus berhenti sejenak untuk meminta input pengguna. Masukkan
10 / 0
lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna dimintai masukan lebih lanjut, dan program terus dieksekusi secara normal.Catatan
Ketika mengedit kode saat dalam mode debugging, ada risiko kode menjadi usang. Ini terjadi ketika debugger masih menjalankan kode lama Anda, dan belum memperbaruinya dengan perubahan Anda. Debugger memunculkan dialog untuk memberi tahu Anda ketika hal ini terjadi. Terkadang, Anda mungkin perlu menekan F5 untuk menyegarkan kode yang sedang dieksekusi. Secara khusus, jika Anda membuat perubahan di dalam fungsi saat titik eksekusi berada di dalam fungsi itu, keluar dari fungsi, lalu kembali ke dalamnya lagi untuk mendapatkan kode yang diperbarui. Jika tidak berhasil karena beberapa alasan dan Anda melihat pesan kesalahan, Anda dapat berhenti debugging dengan mengklik kotak merah di bilah alat pada menu di bagian atas IDE, lalu mulai debugging lagi dengan menekan F5 atau dengan memilih panah "putar" hijau di samping tombol berhenti pada bilah alat.
Alasan lain mengedit dan melanjutkan mungkin gagal adalah Anda perlu masuk ke menu utama dan memilih Opsi>Alat>Penelusuran Kesalahan>Umum dan memastikan bahwa Memerlukan file sumber agar sama persis dengan versi asli yang dicentang.
Memahami pintasan Jalankan dan Debug
- F5 (atau Debug>Mulai Debugging) memulai sesi debugging jika belum aktif, dan menjalankan program hingga mencapai titik henti atau program memerlukan input pengguna. Jika input pengguna tidak diperlukan dan tidak ada titik henti yang dapat dicapai, program akan berakhir dan jendela konsol akan menutup sendiri ketika program selesai berjalan. Jika Anda memiliki sesuatu seperti program "Halo Dunia" untuk dijalankan, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
- Ctrl+F5 (atau Debug>Mulai Tanpa Debugging) menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol akan tetap terbuka setelah program selesai dieksekusi.
- F10 (dikenal sebagai Step Over) memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, serta memvisualisasikan cara kode dijalankan dan nilai variabel yang ada di setiap langkah eksekusi.
- F11 (dikenal sebagai Step Into) berfungsi sama dengan Step Over, kecuali langkah-langkahnya ke fungsi apa pun yang dipanggil pada baris eksekusi. Misalnya, jika baris yang dieksekusi memanggil fungsi, dengan menekan F11 akan memindahkan pointer ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 akan melangkahi panggilan fungsi dan hanya berpindah ke baris berikutnya; panggilan fungsi masih terjadi, tetapi program tidak dijeda untuk menunjukkan apa yang dilakukannya.
Tutup aplikasi
- Jika masih berjalan, tutup jendela konsol untuk aplikasi kalkulator.
Selamat! Anda menyelesaikan kode untuk aplikasi kalkulator, dan membuat dan men-debugnya di Visual Studio.