Belajar C++ - Panduan Serta Tutorial Dasar Untuk Pemula Bab I Versi 1

Belajar C++ - Panduan Serta Tutorial Dasar Untuk Pemula Bab I Versi 1

Bab 1

The Context of Software Development -- Konteks pengembangan perangkat lunak

Suatu program komputer jika dilihat dari sudut pandang perspektif merupakan penunjuk jalan bagi implus listrik kemana dan lewat mana implus tadi akan mengalir pada suatu sistem komputer.

Dorongan ini mempengaruhi memori komputer dan berinteraksi dengan layar tampilan, keyboard, mouse, dan mungkin bahkan komputer lain di jaringan sedemikian rupa untuk menghasilkan "magic" yang memungkinkan manusia untuk melakukan tugas-tugas yang berguna, memecahkan masalah tingkat tinggi, dan bermain game.

Salah satu program memungkinkan komputer untuk menganggap peran Kalkulator keuangan, sementara lain mengubah mesin menjadi layak catur lawan. Catatan dua ekstrem di sini:

• di impuls listrik tingkat rendah, lebih konkret mengubah keadaan internal komputer, sementara

• pada pengguna komputer tingkat yang lebih tinggi, lebih abstrak menyelesaikan pekerjaan nyata atau mendapatkan kesenangan yang sebenarnya.

Begitu baik ilusi tingkat yang lebih tinggi dicapai sebagian besar pengguna komputer tidak menyadari kegiatan tingkat rendah (mesin-mesin di bawah tenda, sehingga untuk berbicara).

Anehnya, mungkin, kebanyakan programmer hari ini menulis perangkat lunak pada tingkat yang lebih tinggi, lebih abstrak ini juga.

Programmer komputer yang dapat mengembangkan perangkat lunak yang canggih dengan sedikit atau tanpa bunga atau pengetahuan tentang sistem komputer sebenarnya yang membentang.

Alat konstruksi kuat perangkat lunak menyembunyikan rincian tingkat lebih rendah dari programmer, memungkinkan mereka untuk memecahkan masalah dalam hal tingkat yang lebih tinggi.

Konsep-konsep pemrograman komputer logis dan matematika di alam. Dalam teori, program komputer dapat dikembangkan tanpa menggunakan komputer.

Programmer dapat mendiskusikan kelangsungan hidup program dan alasan tentang kebenaran dan efisiensi dengan memeriksa simbol-simbol abstrak yang sesuai dengan fitur dari bahasa pemrograman dunia nyata tetapi muncul dalam bahasa pemrograman yang nyata.

Sementara latihan semacam itu dapat menjadi sangat berharga, dalam praktek pemrogram komputer tidak terisolasi dari mesin mereka.

Perangkat lunak ditulis untuk digunakan pada sistem komputer yang nyata.

Profesional komputasi yang dikenal sebagai insinyur perangkat lunak yang mengembangkan perangkat lunak untuk sistem penggerak khusus.

Sistem ini didefinisikan oleh perangkat keras dan sistem operasi yang mendasari mereka.

Pengembang menggunakan beton alat seperti compiler, debugger dan Profiler.

Bab ini mengkaji konteks pengembangan perangkat lunak, termasuk sistem komputer dan alat-alat.

1.1 piranti lunak

Sebuah program komputer adalah contoh perangkat lunak komputer.
Perangkat lunak yang membuat komputer mesin benar-benar universal yang mengubahnya menjadi alat yang tepat untuk tugas di tangan.

Satu dapat merujuk kepada program sebagai bagian dari perangkat lunak seolah-olah itu adalah sebuah objek yang nyata, tetapi perangkat lunak sebenarnya cukup tidak berwujud. Disimpan pada media.

Hard drive, CD, DVD dan USB pen drive merupakan contoh media atas perangkat lunak yang dapat berada.

CD bukanlah perangkat lunak; perangkat lunak adalah pola pada CD. Agar dapat digunakan, perangkat lunak harus disimpan dalam memori komputer.

Biasanya program komputer di-load ke memori dari media seperti komputer hard disk.

Pola elektromagnetik yang mewakili program disimpan pada hard drive komputer.

Pola ini simbol-simbol elektronik harus ditransfer ke memori komputer sebelum program dapat dijalankan.

Program dapat diinstal pada hard disk dari CD atau dari Internet. Dalam setiap kasus, esensi yang dipindahkan dari satu media ke media adalah pola simbol-simbol elektronik yang langsung kerja sistem komputer.

Pola-pola ini simbol-simbol elektronik terbaik diwakili sebagai urutan angka nol dan yang, angka dari sistem Bilangan Biner (basis 2). Contoh dari urutan biner program adalah:

10001011011000010001000001001110

Untuk perangkat keras komputer yang mendasari, khusus prosesor, nol di sini, dan tiga yang ada mungkin berarti bahwa sinyal-sinyal listrik tertentu harus dikirim ke perangkat grafis sehingga membuat bagian tertentu dari layar tampilan merah. Sayangnya, hanya sejumlah kecil orang di dunia akan mampu menghasilkan, dengan tangan, urutan lengkap angka nol dan orang-orang yang mewakili program Microsoft Word untuk komputer berbasis Intel yang menjalankan sistem operasi Windows 8. Lebih lanjut, hampir tidak ada orang yang bisa menghasilkan urutan biner akan mengklaim untuk menikmati tugas.

Kata program untuk Mac OS X komputer lama yang menggunakan prosesor PowerPC bekerja mirip dengan versi Windows dan memang diproduksi oleh perusahaan yang sama, tetapi program dinyatakan dalam urutan yang sama sekali berbeda dari angka nol dan lebih! Prosesor Intel Core i7 dalam mesin theWindows menerima bahasa biner yang benar-benar berbeda dari prosesor PowerPC di Mac. Kita mengatakan prosesor memiliki bahasa mesin mereka sendiri.

1.2 alat-alat pengembangan

Jika sedikit manusia dapat (atau mau) untuk berbicara bahasa mesin prosesor komputer dan perangkat lunak dinyatakan dalam bahasa ini, bagaimana begitu banyak perangkat lunak telah dikembangkan selama bertahun-tahun?

Perangkat lunak dapat diwakili oleh kata-kata yang dicetak dan simbol-simbol yang lebih mudah bagi manusia untuk mengelola dari urutan biner.

Alat-alat yang ada secara otomatis mengkonversi Deskripsi tingkat yang lebih tinggi dari apa yang harus dilakukan ke kode tingkat rendah diperlukan.

Bahasa pemrograman tingkat yang lebih tinggi seperti C++ memungkinkan programmer untuk Check solusi untuk masalah pemrograman dalam istilah yang lebih alam bahasa seperti bahasa Inggris.

Beberapa contoh yang lebih populer dari ratusan bahasa pemrograman tingkat yang lebih tinggi yang telah disusun selama 60 tahun termasuk FORTRAN, COBOL, Lisp, Haskell, C, Perl, Python, Java dan C#.

Kebanyakan programmer hari ini, terutama mereka yang prihatin dengan tingkat tinggi aplikasi, biasanya tidak khawatir tentang rincian mendasarinya platform perangkat keras dan bahasa mesin.

Satu mungkin berpikir bahwa idealnya seperti alat konversi akan menerima sebuah deskripsi dalam bahasa alam, seperti bahasa Inggris, dan menghasilkan kode eksekusi yang diinginkan. Hal ini tidak mungkin hari ini karena bahasa alam cukup kompleks dibandingkan dengan bahasa pemrograman komputer.

Program yang disebut compiler yang menerjemahkan satu bahasa komputer ke lain telah sekitar selama lebih dari 60 tahun, tetapi pemrosesan bahasa alami masih area penelitian kecerdasan buatan yang aktif. Bahasa alam, seperti yang mereka digunakan oleh kebanyakan manusia, secara inheren ambigu.

Untuk memahami benar semua tetapi sangat terbatas subset dari bahasa alam, manusia (atau sistem komputer artifisial cerdas) memerlukan sejumlah besar pengetahuan latar belakang yang berada di luar kemampuan perangkat lunak hari ini.

Untungnya, bahasa pemrograman menyediakan sebuah struktur yang relatif sederhana dengan aturan-aturan yang sangat ketat untuk membentuk pernyataan yang dapat mengekspresikan solusi untuk masalah yang dapat diselesaikan oleh komputer.

Pertimbangkan fragmen program berikut yang ditulis dalam bahasa pemrograman C++:

subtotal = 25;
Pajak = 3;
Total = subtotal + pajak;

Ketiga baris tidak membuat program C++ lengkap; mereka adalah hanya bagian dari sebuah program.

Pernyataan dalam fragmen program ini terlihat mirip dengan ekspresi dalam aljabar. Kita melihat ada urutan dari digit-Digit biner.

Tiga kata, subtotal, pajak, dan total, yang disebut variabel, digunakan untuk menyimpan informasi.

Matematikawan telah menggunakan variabel selama ratusan tahun sebelum komputer digital pertama dibangun.

Dalam pemrograman, variabel mewakili nilai yang disimpan dalam memori komputer. Akrab operator (= dan +) digunakan sebagai beberapa urutan samar digit biner yang memerintahkan prosesor untuk melakukan operasi.

Karena program ini dinyatakan dalam bahasa c + +, bukan bahasa mesin, itu tidak dapat dijalankan langsung pada prosesor apapun. Compiler C++ yang digunakan untuk menerjemahkan kode C++ ke kode mesin.

Kode bahasa tingkat yang lebih tinggi disebut kode sumber. Kode dikompilasi bahasa mesin disebut kode target.

Kompilator menerjemahkan kode sumber ke bahasa mesin target.

Keindahan bahasa tingkat yang lebih tinggi adalah ini: C++ sumber kode yang sama juga dapat dikompilasi menjadi target berbagai platform.

Target platform harus compiler C++ yang tersedia. Perubahan kecil dalam kode sumber mungkin diperlukan karena arsitektur perbedaan dalam platform, tapi pekerjaan untuk memindahkan program dari satu platform ke yang lain jauh kurang dari akan diperlukan jika program untuk platform baru harus ditulis ulang dengan tangan dalam bahasa mesin baru. Sama seperti penting, ketika menulis program programmer manusia gratis untuk berpikir tentang menulis solusi untuk masalah dalam c + +, tidak dalam bahasa mesin tertentu.

Programer memiliki berbagai alat yang tersedia untuk meningkatkan proses pengembangan perangkat lunak.

Beberapa peralatan yang meliputi:

• Editor. Editor memungkinkan pengguna untuk memasukkan kode sumber program dan menyimpannya ke file.

Kebanyakan pemrograman editor meningkatkan produktivitas programmer dengan menggunakan warna untuk menyorot fitur bahasa.

Sintaks bahasa merujuk pada cara potongan-potongan bahasa disusun untuk membuat well-formed kalimat.

Untuk mengilustrasikan, kalimat tinggi anak laki-laki berjalan cepat ke pintu.

menggunakan sintaks bahasa Inggris yang tepat. Sebagai perbandingan, kalimat anak laki-laki berjalan tinggi pintu untuk dengan cepat.

ini tidak benar sintaksis. Menggunakan kata-kata yang sama sebagai kalimat asli, tetapi pengaturan mereka tidak mengikuti aturan bahasa Inggris.

Demikian pula, programmer harus mengikuti aturan-aturan ketat sintaks untuk membuat program komputer well-formed.

Hanya well-formed program dapat diterima dan dapat dikompilasi dan dijalankan. Beberapa editor sintaks-sadar dapat menggunakan warna atau penjelasan lain khusus alert programmer kesalahan sintaks sebelum program ini dikompilasi.

Kode sumber gambar 1.1 urutan kode target

Kode sumber gambar 1.1 urutan kode target c++

Compiler. Kompiler menerjemahkan kode sumber untuk target kode. Kode target mungkin bahasa mesin untuk platform tertentu atau perangkat tertanam.

Kode target bisa bahasa sumber lain; sebagai contoh, compiler C++ awal diterjemahkan C++ ke C, bahasa lain tingkat yang lebih tinggi.

C kode yang dihasilkan kemudian diproses oleh kompiler C untuk menghasilkan sebuah program yang dapat dieksekusi. Pemrograman hari menerjemahkan C++ langsung ke bahasa mesin.

Set lengkap alat untuk C++ termasuk preprocessor, kompiler dan linker:

-Preprocessor — menambah atau memodifikasi isi dari file sumber sebelum kompilator mulai memproses kode. Kami menggunakan layanan dari preprocessor terutama untuk #include informasi mengenai Perpustakaan rutin menggunakan program kami.

-Kompiler — menerjemahkan kode sumber C++ untuk kode mesin.

-Linker — menggabungkan kode mesin compiler yang dihasilkan dengan Installation Perpustakaan kode atau menyusun kode dari sumber-sumber lain untuk membuat executable program lengkap. Paling kompilasi kode C++ code tidak mampu berjalan sendiri dan membutuhkan beberapa kode mesin tambahan untuk membuat executable program lengkap. Kode mesin hilang telah dikompilasi dan disimpan dalam repositori kode yang disebut Perpustakaan. Sebuah program yang disebut linker menggabungkan programmer's kode dikompilasi dan Perpustakaan kode untuk membuat program lengkap.

Kita umumnya tidak berpikir tentang preprocessor, kompiler, dan bekerja sebagai tiga terpisah linker program (meskipun mereka lakukan); alat yang kita gunakan membuatnya tampak seperti hanya satu proses yang sedang terjadi: menerjemahkan kode sumber kami untuk sebuah program yang dapat dieksekusi.

Debugger.

Debugger memungkinkan pemrogram untuk lebih mudah jejak pelaksanaan program untuk menemukan dan memperbaiki kesalahan dalam pelaksanaan program. Dengan debugger, pengembang dapat menjalankan program secara bersamaan dan melihat baris mana dalam kode sumber bertanggung jawab atas tindakan saat ini program.

Programmer dapat menonton nilai-nilai variabel dan unsur-unsur program lain untuk melihat jika nilai-nilai mereka berubah seperti yang diharapkan. Debugger berharga untuk menemukan kesalahan (juga disebut bug) dan memperbaiki program yang mengandung kesalahan. (Lihat bagian 4.6 untuk informasi lebih lanjut tentang pemrograman kesalahan.)

• Profiler.

Profiler mengumpulkan statistik tentang pelaksanaan program yang memungkinkan pengembang untuk tune bagian-bagian yang sesuai dari program untuk meningkatkan kinerja secara keseluruhan.

Profiler menunjukkan berapa kali sebagian dari sebuah program dijalankan selama run tertentu, dan berapa lama yang diperlukan untuk melaksanakan porsi.

Profiler juga dapat digunakan untuk tujuan pengujian untuk memastikan semua kode dalam program benar-benar sedang digunakan di tempat selama pengujian. Hal ini dikenal sebagai cakupan.

Hal ini umum untuk perangkat lunak gagal setelah rilis karena pengguna latihan beberapa bagian dari program yang tidak dieksekusi Kapan saja selama pengujian.

Tujuan utama dari profil adalah untuk menemukan bagian-bagian dari sebuah program yang dapat ditingkatkan untuk menjadikan program ini berjalan lebih cepat.

Komponen pemrograman proses pembangunan diilustrasikan pada gambar 1.1.

Banyak pengembang menggunakan lingkungan pengembangan terpadu (ide). IDE termasuk editor, debugger, dan aids pemrograman lain dalam satu program yang komprehensif. Contoh ide untuk C++ termasuk Microsoft Visual Studio 2013, Yayasan gerhana gerhana CDT dan Apple XCode.

Meskipun kebanyakan Alat (dan alat vendor klaim), proses pemrograman untuk semua tapi sepele program ini tidak otomatis. Alat yang baik berharga dan tentu saja meningkatkan produktivitas pengembang, tetapi mereka tidak bisa menulis perangkat lunak. Ada tidak ada pengganti untuk suara yang logis berpikir, kreativitas, akal sehat, dan, tentu saja, pengalaman pemrograman.

1.3 belajar pemrograman dengan C ++

Dengan AT&T Bell Labs menciptakan C++ di pertengahan 1980an. C++ merupakan perpanjangan dari bahasa pemrograman C, produk AT&T Bell Labs dari awal tahun 1970. C dikembangkan untuk menulis sistem operasi Unix, dan C yang secara luas digunakan untuk tingkat sistem perangkat lunak dan tertanam pengembangan sistem.

C ++ awalnya disediakan fitur pemrograman berorientasi objek (Lihat Bab 13 dan bab 14) dan kemudian menambahkan kemampuan pemrograman generik. C ++ 's hubungan c memungkinkan program C++ menggunakan koleksi besar kode yang dikembangkan di C.

C++ banyak digunakan dalam industri pengembangan perangkat lunak komersial. Ini adalah kekuatan industri pemrograman bahasa yang digunakan untuk mengembangkan sistem yang kompleks dalam bisnis, ilmu pengetahuan dan teknik. Contoh perangkat lunak yang ditulis dalam C ++ termasuk MicrosoftWindows 8, Microsoft Office, Mac OS X, dan Adobe Creative Suite.

Untuk memenuhi kebutuhan pengembangan perangkat lunak komersial dan mencapai semua yang melakukan, C++ itu sendiri kompleks.

Sementara programer yang berpengalaman dapat mencapai hal-hal besar dengan C++, pemula kadang-kadang memiliki waktu yang sulit dengan itu.

Pengembang perangkat lunak profesional menikmati pilihan desain yang fleksibel yang memungkinkan C++, tapi pemula membutuhkan struktur yang lebih dan opsi lebih sedikit sehingga mereka dapat menguasai konsep-konsep sederhana sebelum pindah ke yang lebih kompleks.

Buku ini tidak berusaha untuk menutupi semua aspek dari bahasa pemrograman C++.

Berpengalaman programmer harus mencari di tempat lain untuk buku yang mencakup C++ dalam banyak lebih detail.

Fokus di sini adalah dalam memperkenalkan teknik pemrograman dan mengembangkan kebiasaan yang baik. Untuk itu, pendekatan kami menghindari beberapa fitur lebih esoteris C++ dan berkonsentrasi pada dasar-dasar pemrograman yang mentransfer langsung ke bahasa pemrograman lain penting seperti Java, C# dan Python.

Kami tetap dengan dasar-dasar dan menjelajahi fitur yang lebih canggih dari C++ hanya bila diperlukan untuk menangani masalah yang dihadapi.

1.4 ringkasan

• Komputer membutuhkan hardware dan software untuk beroperasi. Perangkat lunak terdiri dari petunjuk yang mengontrol perangkat keras.

• Di tingkat terendah, petunjuk untuk program komputer dapat diwakili sebagai urutan angka nol dan orang-orang. Pola angka nol dan yang menentukan petunjuk dilakukan oleh prosesor.

• Dua jenis prosesor dapat memiliki bahasa mesin yang berbeda.

• Aplikasi perangkat lunak dapat ditulis sebagian besar tanpa hardware yang mendasari. Sebuah alat yang disebut kompilator menerjemahkan bahasa tingkat yang lebih tinggi, abstrak menjadi bahasa mesin yang diperlukan oleh perangkat keras.

• Programmer mengembangkan perangkat lunak yang menggunakan alat seperti editor, compiler, debugger, dan Profiler.

• C++ adalah sebuah bahasa pemrograman tingkat yang lebih tinggi.

• IDE adalah sebuah lingkungan pengembangan terintegrasi — salah satu program yang menyediakan semua alat yang pengembang perlu menulis perangkat lunak.

1.5 latihan

1. apa adalah sebuah kompiler?

2. Bagaimana adalah menyusun kode berbeda dari kode sumber?

3. apa alat melakukan programmer digunakan untuk menghasilkan kode sumber C++?

4. alat-(s) apa Apakah penggunaan programmer untuk mengkonversi kode sumber C++ ke kode executable mesin?

5. apa yang dilakukan dengan linker?

6. Apakah linker kesepakatan dengan file yang berisi kode sumber atau atau kode bahasa mesin?

7. apa yang dilakukan preprocessor kode?

8. daftar beberapa keuntungan yang mengembangkan perangkat lunak bahasa tingkat yang lebih tinggi yang memiliki lebih dari pengembangan perangkat lunak dalam bahasa mesin.

9. Bagaimana IDE dapat meningkatkan produktivitas programmer?

10. nama populer C++ IDE digunakan oleh programmer mengembangkan untuk Microsoft Windows.

11. nama populer C++ IDE digunakan oleh programmer mengembangkan untuk Apple Mac OS X.

Postingan terkait: