Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda mulai dengan itu dalam artikel ini, lalu 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 pilihOpsi>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 dialog Buat proyek baru , atur menu dropdown bahasa ke C++, atur menu dropdown platform ke Windows, pilih Aplikasi Konsol dari daftar jenis proyek, lalu pilih Berikutnya.
Menu tarik-turun bahasa diatur ke C++, menu tarik-turun platform diatur ke Windows, dan jenis proyek seperti Proyek Kosong, Aplikasi Konsol, Proyek CMake, Wizard Desktop Windows, dan sebagainya, muncul dalam daftar pilihan jenis proyek.
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.
Sebuah aplikasi konsol Windows untuk C++ yang kosong, 'Halo Dunia', telah dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor membuka 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 dibangun dan dijalankan
Templat untuk aplikasi konsol Windows baru membuat aplikasi C++ sederhana "Halo Dunia". 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 dan aplikasi Anda berjalan di dalamnya.
Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi tersebut menjalankan kode Anda, lalu mencetak "Tekan tombol apa pun untuk menutup jendela ini . . ." untuk memberi Anda kesempatan untuk melihat output.
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 memecahkan masalahnya 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
ini mengimpor kode dari file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut seperti<iostream>
. Kurung sudut menginstruksikan pengompilasi untuk mencari file headeriostream
terlebih dahulu di direktori sistem standar, dan jika tidak ditemukan, mencari di direktori khusus proyek. Di lain waktu, Anda mungkin melihat nama file yang dikelilingi oleh tanda kutip seperti"someHeader.h"
. Kutipan menginstruksikan pengkompilasi untuk melewatkan pencarian di direktori sistem standar dan sebaliknya hanya mencari di direktori yang spesifik untuk proyek. -
using namespace std;
memberi tahu pengkompilasi untuk mengharapkan kode dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului denganstd::
untuk menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensicout
akan ditulis sebagaistd::cout
. Pernyataanusing
ditambahkan untuk membuatnya lebih nyaman untuk mengakses kode di namespace lain. - Kata kunci
cout
digunakan untuk mencetak ke output standar pada 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 (dikandung oleh""
) untuk melakukan hal yang sama karenaendl
selalu mengosongkan buffer yang dapat mengganggu kinerja program. Tetapi karena ini adalah aplikasi yang sangat kecil,endl
digunakan sebagai gantinya. - Semua pernyataan C++ harus diakhir dengan titik koma dan semua aplikasi C++ harus berisi
main()
fungsi. Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses darimain()
agar dapat digunakan.
- Pernyataan
Untuk menyimpan file, tekan Ctrl+S, atau pilih 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 terlihat seperti ini.
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 berisi kalkulator teks. Bidang file .h berisi Calculator.h. Bidang file .cpp berisi Calculator.cpp. Kolom kelas dasar kosong. Opsi untuk dalam garis, dan Terkelola belum 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 toolbar untuk Simpan Semua, ikon dua disket, ditemukan di samping tombol Simpan . Secara umum, adalah praktik yang baik untuk sering melakukan Simpan Semua , sehingga Anda tidak ketinggalan menyimpan perubahan apa pun.
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, buka dari bilah menu melalui Lihat>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 berkas 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 menangani 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 kompilator, tetapi ini adalah ekstensi utama yang perlu 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 butuhkan nanti. Dalam kasus kami, kami mendefinisikan
Calculator
kelas secara terpisah dari file yang berisimain()
fungsi, tetapi kami berencana untuk mereferensikanCalculator
kelas dimain()
.
- Kode ini mendeklarasikan fungsi baru yang disebut
Squiggle hijau muncul di bawah
Calculate
karena meskipun fungsiCalculate
dideklarasikan, itu tidak didefinisikan. Arahkan mouse ke atasCalculate
, klik panah bawah pada ikon obeng, dan pilih Buat definisi 'Hitung' diCalculator.cpp
.Kode ini ditambahkan ke
Calculator.cpp
:Definisi fungsi adalah: Kalkulator ganda::Hitung( double x, char oper, double y) { return 0.0; }
Saat ini, itu hanya mengembalikan 0,0. Mari kita ubah hal itu.
Beralih ke
Calculator.cpp
file di jendela editor. Ganti kontenCalculator::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 mengambil angka, operator, dan angka kedua. Kemudian melakukan operasi yang diminta pada dua angka. - Pernyataan
switch
memeriksa operator mana yang disediakan, dan menjalankan kasus yang sesuai dengan operasi tersebut. Kasusdefault:
ini adalah cadangan jika pengguna mengetik operator yang tidak ditangani oleh pernyataan-pernyataan sebelumnyacase
. Yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini. - Kata
double
kunci menunjukkan jenis angka yang mendukung desimal. Jenis angka ini disebut angka floating-point, dandouble
berarti angka titik mengambang yang memiliki presisi ekstra. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. FungsiCalculate
ini diperlukan untuk selalu mengembalikan angka titik mengambang presisi ganda karenadouble
pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya kami mengembalikan 0,0 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 tersebut segera keluar setelah meminta operasi mana yang akan dilakukan. Jadi, ubah main
fungsi untuk melakukan beberapa perhitungan.
Panggil fungsi anggota kelas Calculator
Perbarui fungsi
main
dalamCalculatorTutorial.cpp
sebagai 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 dari#include
sana, sehingga diperlukan pernyataan untuk membuat kode itu terlihat olehmain()
fungsi kita. - Variabel
x
, ,y
oper
, danresult
dinyatakan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir, masing-masing. 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 bernamac
sebagai instansCalculator
kelas. Kelas itu sendiri hanyalah cetak biru tentang cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika. - Pernyataan
while (true)
adalah sebuah loop. Kode di dalam perulangan dijalankan berulang kali selama kondisi di dalam()
terpenuhi. Karena kondisinya hanya dijelaskan sebagaitrue
, itu selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru. - Kata
cin
kunci menerima masukan dari pengguna. Aliran input cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan. - Ekspresi
c.Calculate(x, oper, y);
memanggil fungsi yangCalculate
ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan dan operasi yang diminta. Fungsi kemudian mengembalikan angka yang disimpan diresult
. - Terakhir,
result
dicetak ke konsol dan 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.
Masukkan
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
Hentikan program dengan menutup jendela konsol.
Melakukan 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 di samping garis di bilah vertikal abu-abu di sepanjang tepi kiri jendela editor sehingga titik merah muncul.Sekarang ketika kita men-debug program, eksekusi berhenti sejenak pada baris itu. Kami sudah memiliki ide kasar bahwa program ini berfungsi untuk 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.Titik henti ada di baris: result = c dot Calculate ( x, oper, y). 'Kondisi...' Opsi Kondisi dicentang. Dropdown Kondisi diatur ke "Ekspresi Bersyarah". Dropdown kondisi diatur ke "Is true". Kondisi diatur ke y == 0 && oper == '/'.
Sekarang, eksekusi berhenti sejenak di titik henti ketika aplikasi mencoba membagi dengan 0.
Untuk men-debug program, tekan F5, atau pilih tombol bilah alat debugger 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 Anda mengetik "10 / 0", itu menjeda di 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 debug Anda. Lihat jendela Otomatis . Jendela Otomatis menunjukkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini. Jika Anda tidak melihat jendela Otomatis , dari menu utama pilih Debug>Windows>Autos.
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 . Karena ini adalah fungsi kecil, jendela Otomatis dan Lokal menunjukkan variabel yang sama. Tetapi Anda dapat memodifikasi nilai variabel ini di jendela Lokal saat melakukan debugging untuk melihat efek yang akan terjadi pada program. Dalam hal ini, kami meninggalkan mereka sendirian. Buka jendela Lokal dengan memilih Lokal di bagian bawah jendela Otomatis , atau dengan memilih dari menu utama Debug>Windows>Locals.
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 mengkliknya terlebih dahulu.
Lanjutkan debugging
Panah kuning di sebelah kiri menunjukkan titik eksekusi saat ini. Baris
Calculate
saat ini memanggil, jadi tekan F11 untuk memasuki 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
Calculate
fungsi, 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
).Lanjutkan menggunakan F10 untuk Melangkahi setiap baris hingga Anda kembali ke
main()
fungsi yang ada di file lain, dan berhenti dicout
baris.Program ini melakukan apa yang diharapkan: mengambil angka pertama, lalu membaginya dengan angka yang kedua. Pada garis
cout
, arahkan mouse ke variabelresult
atau lihatresult
di jendela Autos. Nilainya adalahinf
, yang tidak tampak benar.Pernyataan saat ini dalam debugger adalah cout << "Hasilnya adalah: " << hasil << endl; Di jendela otomatis, hasilnya adalah inf.
Mari kita perbaiki. Baris
cout
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 memasukkan 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.
Memperbaiki kesalahan "bagi dengan nol"
Mari kita tangani pembagian dengan nol dengan cara yang lebih baik sehingga lebih mudah bagi pengguna untuk memahami masalah.
Buat perubahan berikut di
CalculatorTutorial.cpp
. Anda dapat membiarkan program berjalan saat 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 << "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; }
Tekan F5 sekali. Eksekusi program berlanjut hingga harus jeda untuk meminta input pengguna. Masukkan
10 / 0
lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna diminta untuk lebih banyak input, dan program terus dijalankan secara normal.Jendela konsol menampilkan dua baris: 10 / 0 Hasilnya adalah: inf, diikuti oleh, kesalahan Matematika 10 / 0: Mencoba membagi dengan nol.
Nota
Saat Anda mengedit kode 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 dijalankan. 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 pilihOpsi>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 Penelusuran Kesalahan, memulai sesi debugging jika sesi tersebut belum aktif, dan menjalankan program hingga titik henti tercapai atau program memerlukan masukan pengguna. Jika tidak ada input pengguna yang diperlukan dan tidak ada titik henti yang tersedia untuk ditemui, program berakhir dan jendela konsol menutup dirinya sendiri ketika program selesai berjalan. Jika program Anda keluaran ke konsol, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
- Ctrl+F5, atau Debug>Mulai Tanpa Debug, menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol tetap terbuka setelah program selesai dijalankan.
- F10, yang dikenal sebagai Step Over, memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, dan memvisualisasikan bagaimana kode dijalankan dan nilai variabel apa yang ada di setiap langkah eksekusi.
- F11, yang dikenal sebagai Step Into, berfungsi mirip dengan Step Over, kecuali ia masuk ke dalam fungsi apa pun yang dipanggil pada baris yang dieksekusi. Misalnya, jika baris yang dijalankan memanggil fungsi, menekan F11 memindahkan penunjuk ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 melewati panggilan fungsi dan langsung berpindah ke baris berikutnya; panggilan fungsi tetap terjadi, tetapi program tidak berhenti untuk memperlihatkan apa yang sedang dilakukannya.
Tutup aplikasi
- Jika masih berjalan, tutup jendela konsol untuk menghentikan aplikasi kalkulator.
Menambahkan kontrol sumber Git
Setelah membuat aplikasi, Anda mungkin ingin menambahkannya ke repositori Git. Kami akan membantu Anda. Visual Studio memudahkan proses tersebut dengan alat Git yang dapat Anda gunakan langsung dari IDE.
Petunjuk / Saran
Git adalah sistem kontrol versi modern yang paling banyak digunakan, jadi apakah Anda seorang pengembang profesional atau Anda mempelajari cara membuat kode, Git bisa sangat berguna. Jika Anda baru menggunakan Git, situs web https://git-scm.com/ adalah tempat yang baik untuk memulai. Anda dapat menemukan panduan ringkas, buku online populer, dan video Git Basics di sana.
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.
Petunjuk / Saran
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 Unggah.
Setelah Anda membuat repositori, detail status muncul di bilah status.
Ikon pertama dengan panah menunjukkan berapa banyak komit keluar/masuk yang ada di cabang Anda saat ini. Anda dapat menggunakan ikon ini untuk mengambil komit masuk atau mengirim komit keluar apa pun. Anda juga dapat memilih untuk melihat commit ini terlebih dahulu. Untuk melakukannya, pilih ikon, lalu pilih Lihat 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 selanjutnya
Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda mulai dengan itu dalam artikel ini, lalu 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>. Jendela Proyek Baru terbuka.
Di bilah sisi kiri, pastikan Visual C++ dipilih. Di tengah, pilih Aplikasi Konsol.
Di kotak teks Nama di bagian bawah, beri nama proyek baru CalculatorTutorial, lalu pilih OK.
Di sebelah kiri, Bahasa Lain > Visual C++ dipilih. Di tengah, jenis proyek Aplikasi Konsol dipilih. Kotak teks Nama berisi KalkulatorTutorial.
Sebuah aplikasi konsol Windows untuk C++ yang kosong, 'Halo Dunia', telah dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor membuka 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 dibangun dan dijalankan
Templat untuk aplikasi konsol windows baru membuat aplikasi C++ sederhana "Halo Dunia". 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 dan aplikasi Anda berjalan di dalamnya.
Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi tersebut menjalankan kode Anda, lalu mencetak
Press any key to close this window . . .
untuk memberi Anda kesempatan untuk melihat outputnya.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 memecahkan masalahnya 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
ini mengimpor kode dari file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut seperti<iostream>
. Kurung sudut menginstruksikan pengompilasi untuk mencari file headeriostream
terlebih dahulu di direktori sistem standar, dan jika tidak ditemukan, mencari di direktori khusus proyek. Di lain waktu, Anda mungkin melihat nama file yang dikelilingi oleh tanda kutip seperti"someHeader.h"
. Kutipan menginstruksikan pengkompilasi untuk melewatkan pencarian di direktori sistem standar dan sebaliknya hanya mencari di direktori yang spesifik untuk proyek. -
using namespace std;
memberi tahu pengkompilasi untuk mengharapkan kode dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului denganstd::
untuk menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensicout
akan ditulis sebagaistd::cout
. Pernyataanusing
ditambahkan untuk membuatnya lebih nyaman untuk mengakses kode di namespace lain. - Kata kunci
cout
mencetak ke keluaran standar dalam 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. - Semua pernyataan C++ harus diakhir dengan titik koma dan semua aplikasi C++ harus berisi
main()
fungsi. Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses darimain()
agar dapat digunakan.
- Pernyataan
Untuk menyimpan file, tekan Ctrl+S, atau pilih 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 terlihat seperti ini:
Aplikasi konsol menunjukkan output yaitu: Aplikasi Konsol Kalkulator. Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Proses keluar dengan kode 0 dan ada pesan bahwa untuk menutup konsol secara otomatis saat penelusuran kesalahan berhenti, aktifkan Alat > Opsi > Penelusuran Kesalahan > Tutup konsol secara otomatis saat penelusuran kesalahan berhenti. Terakhir, ada pesan untuk menekan tombol apa pun untuk menutup jendela ini.
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 berisi kalkulator teks. Bidang file .h berisi Calculator.h. Bidang file .cpp berisi Calculator.cpp. Kolom kelas dasar kosong. Opsi untuk dalam garis, dan Terkelola belum dicentang.
Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kami 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 toolbar untuk Simpan Semua, ikon dua disket, ditemukan 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 Penjelajah Solusi tidak terlihat, buka dari bilah menu: pilih Lihat>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 berkas 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 menangani 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 kompilator, tetapi ini adalah ekstensi utama yang perlu 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 butuhkan nanti. Dalam kasus kami, kami mendefinisikan
Calculator
kelas secara terpisah dari file yang berisimain()
fungsi, tetapi kami berencana untuk mereferensikanCalculator
kelas dimain()
.
- Kode ini mendeklarasikan fungsi baru yang disebut
Squiggle hijau muncul di bawah
Calculate
karena meskipun fungsiCalculate
dideklarasikan, itu tidak didefinisikan. Arahkan mouse ke atasCalculate
, klik panah bawah pada bola lampu, dan pilih Buat definisi 'Hitung' diCalculator.cpp
. Pop-up muncul yang memberi Anda intip perubahan kode yang dibuat di file lain. Kode ditambahkan keCalculator.cpp
.Saat ini, itu hanya mengembalikan 0,0. Mari kita ubah hal itu. Tekan Esc untuk menutup pop-up dan pilih Ya untuk menyimpan perubahan.
Beralih ke
Calculator.cpp
file di jendela editor. Ganti konten 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 mengambil angka, operator, dan angka kedua. Kemudian melakukan operasi yang diminta pada dua angka. - Pernyataan
switch
memeriksa operator mana yang disediakan, dan menjalankan kasus yang sesuai dengan operasi tersebut. Kasusdefault:
ini adalah cadangan jika pengguna mengetik operator yang tidak ditangani oleh pernyataan-pernyataan sebelumnyacase
. Yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini. - Kata
double
kunci menunjukkan jenis angka yang mendukung desimal. Jenis angka ini disebut angka floating-point, dandouble
berarti angka titik mengambang yang memiliki presisi ekstra. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. FungsiCalculate
ini diperlukan untuk selalu mengembalikan angka titik mengambang presisi ganda karenadouble
pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya kami mengembalikan 0,0 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 tahap ini, kode masih berhenti setelah menanyakan operasi mana yang akan dilakukan. Selanjutnya, ubah main
fungsi untuk melakukan beberapa perhitungan.
Memanggil fungsi anggota dari kelas Kalkulator
Perbarui fungsi
main
dalamCalculatorTutorial.cpp
sebagai 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 is: " << result << endl; } return 0; }
Memahami kode
- Karena program C++ selalu dimulai pada fungsi
main()
, kita perlu memanggil kode kita yang lain dari#include
sana, sehingga diperlukan pernyataan untuk membuat kode itu terlihat olehmain()
fungsi kita. - Variabel
x
, ,y
oper
, danresult
dinyatakan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir, masing-masing. 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 bernamac
sebagai instansCalculator
kelas. Kelas itu sendiri hanyalah cetak biru tentang cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika. - Pernyataan
while (true)
adalah sebuah loop. Kode di dalam perulangan dieksekusi berulang kali selama kondisi di dalam()
memenuhi syarat. Karena kondisinya hanya dijelaskan sebagaitrue
, itu selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru. - Kata
cin
kunci menerima masukan dari pengguna. Aliran input cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan. - Ekspresi
c.Calculate(x, oper, y);
memanggil fungsi yangCalculate
ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan dan operasi yang diminta. Fungsi kemudian mengembalikan angka yang disimpan diresult
. - Terakhir,
result
dicetak ke konsol dan 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.
Masukkan
5+5
, dan tekan Enter. Verifikasi bahwa hasilnya adalah 10.Hentikan program dengan menutup jendela konsol.
Melakukan 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 di samping garis di bilah vertikal abu-abu di sepanjang tepi kiri jendela editor sehingga titik merah muncul.Sekarang ketika Anda men-debug program, program selalu menjeda eksekusi pada baris tersebut. Kami sudah memiliki ide kasar bahwa program ini berfungsi untuk kasus sederhana. Karena kita tidak ingin menjeda eksekusi setiap kali, 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...' Opsi Kondisi dicentang. Dropdown Kondisi diatur ke "Ekspresi Bersyarah". Dropdown kondisi diatur ke "Is true". Kondisi diatur ke y == 0 && oper == '/'.
Eksekusi akan berhenti sejenak pada titik henti jika terjadi usaha 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 Anda mengetik "10 / 0", itu menjeda di titik henti. Anda bahkan dapat meletakkan sejumlah spasi antara operator dan angka;
cin
cukup cerdas untuk mengurai input dengan tepat.Pengguna memasukkan 5 - 0. Aplikasi menghasilkan: 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 debug Anda. Lihat jendela Otomatis . Jendela Otomatis menunjukkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini. Jika Anda tidak melihat jendela Otomatis , dari menu utama pilih Debug>Windows>Autos.
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 . Karena ini adalah fungsi kecil, jendela Otomatis dan Lokal menunjukkan variabel yang sama. Tetapi Anda dapat memodifikasi nilai variabel ini saat debugging, untuk melihat efek apa yang akan terjadi pada program. Dalam hal ini, kami meninggalkan mereka sendirian. Buka jendela Lokal dengan memilih Lokal di bagian bawah jendela Otomatis , atau dengan memilih dari menu utama Debug>Windows>Locals.
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 mengkliknya terlebih dahulu.
Lanjutkan debugging
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
Calculate
fungsi, 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 Anda ingin menyelam lebih dalam ke dalam kode yang sedang dipanggil dari tempat lain (seperti yang Anda lakukan untuk mencapai isiCalculate
).Lanjutkan menggunakan F10 untuk Melangkahi setiap baris hingga Anda kembali ke
main()
fungsi yang ada di file lain, dan berhenti dicout
baris.Program ini melakukan apa yang diharapkan: mengambil angka pertama, lalu membaginya dengan angka yang kedua. Pada garis
cout
, arahkan mouse ke variabelresult
atau lihatresult
di jendela Autos. Nilainya adalahinf
, yang tidak tampak benar.Pernyataan saat ini dalam debugger adalah cout << "Hasilnya adalah: " << hasil << endl; Di jendela otomatis, hasilnya adalah inf.
Mari kita perbaiki. Baris
cout
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 memasukkan 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.
Memperbaiki kesalahan "bagi dengan nol"
Mari kita tangani pembagian dengan nol dengan cara yang lebih baik sehingga lebih mudah bagi pengguna untuk memahami masalah.
Buat perubahan berikut di
CalculatorTutorial.cpp
. (Anda dapat membiarkan program berjalan saat 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 hingga harus jeda untuk meminta input pengguna. Masukkan
10 / 0
lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna diminta untuk lebih banyak input, dan program terus dijalankan secara normal.Nota
Saat Anda mengedit kode 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 kapan hal ini terjadi. Terkadang, Anda mungkin perlu menekan F5 untuk menyegarkan kode yang sedang dijalankan. 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 itu tidak berfungsi karena beberapa alasan 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 "putar" hijau di samping tombol berhenti pada toolbar.
Alasan lain mengedit dan melanjutkan mungkin gagal adalah Anda perlu masuk ke menu utama dan memilihOpsi>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 Penelusuran Kesalahan, memulai sesi debugging jika sesi tersebut belum aktif, dan menjalankan program hingga titik henti tercapai atau program memerlukan masukan pengguna. Jika tidak ada input pengguna yang diperlukan dan tidak ada titik henti yang tersedia untuk ditemui, program berakhir dan jendela konsol menutup dirinya sendiri ketika program selesai berjalan. Jika program Anda keluaran ke konsol, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
- Ctrl+F5, atau Debug>Mulai Tanpa Debug, menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol tetap terbuka setelah program selesai dijalankan.
- F10, yang dikenal sebagai Step Over, memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, dan memvisualisasikan bagaimana kode dijalankan dan nilai variabel apa yang ada di setiap langkah eksekusi.
- F11, yang dikenal sebagai Step Into, berfungsi mirip dengan Step Over, kecuali ia masuk ke dalam fungsi apa pun yang dipanggil pada baris yang dieksekusi. Misalnya, jika baris yang dijalankan memanggil fungsi, menekan F11 memindahkan penunjuk ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 melewati panggilan fungsi dan langsung berpindah ke baris berikutnya; panggilan fungsi tetap terjadi, tetapi program tidak berhenti untuk memperlihatkan apa yang sedang dilakukannya.
Tutup aplikasi
- Jika masih berjalan, tutup jendela konsol untuk menghentikan aplikasi kalkulator.
Aplikasi yang sudah selesai
Selamat! Anda menyelesaikan kode untuk aplikasi kalkulator, dan membuat dan men-debugnya di Visual Studio.