rumah - Pemulihan
Bahasa pemrograman yang diketik. Bahasa pemrograman yang diketik Tipe, atau penentu format, atau karakter konversi, atau karakter kontrol

bahasa pemrograman C++

Pembaruan terakhir: 28/08/2017

Bahasa pemrograman C++ adalah bahasa pemrograman tingkat tinggi, terkompilasi, bertujuan umum, dan diketik secara statis yang cocok untuk membuat berbagai macam aplikasi. Saat ini, C++ adalah salah satu bahasa yang paling populer dan tersebar luas.

Ini berakar pada bahasa C, yang dikembangkan pada tahun 1969-1973 di Bell Labs oleh programmer Dennis Ritchie. Pada awal 1980-an, programmer Denmark Bjarne Stroustrup, yang saat itu bekerja di Bell Labs, mengembangkan C++ sebagai perpanjangan dari bahasa C. Faktanya, pada awalnya, C++ hanya melengkapi bahasa C dengan beberapa kemampuan pemrograman berorientasi objek. Dan itulah mengapa Stroustrup sendiri awalnya menyebutnya “C dengan kelas.”

Selanjutnya, bahasa baru mulai mendapatkan popularitas. Fitur-fitur baru ditambahkan ke dalamnya yang menjadikannya bukan hanya tambahan untuk C, tetapi bahasa pemrograman yang benar-benar baru. Akibatnya, “C dengan kelas” diubah namanya menjadi C++. Dan sejak saat itu, kedua bahasa tersebut mulai berkembang secara mandiri.

C++ adalah bahasa yang kuat, mewarisi kemampuan memori yang kaya dari C. Oleh karena itu, C++ sering digunakan dalam pemrograman sistem, khususnya saat membuat sistem operasi, driver, berbagai utilitas, antivirus, dll. Omong-omong, OS Windows sebagian besar ditulis dalam C++. Namun penggunaan bahasa ini tidak terbatas pada pemrograman sistem. C++ dapat digunakan dalam program di tingkat mana pun yang mengutamakan kecepatan dan kinerja. Hal ini sering digunakan untuk membuat aplikasi grafis dan berbagai program aplikasi. Ini juga sering digunakan untuk membuat game dengan visualisasi yang kaya dan kaya. Selain itu, baru-baru ini arah seluler mendapatkan momentumnya, di mana C++ juga telah menemukan penerapannya. Bahkan dalam pengembangan web, Anda juga dapat menggunakan C++ untuk membuat aplikasi web atau beberapa layanan pendukung yang melayani aplikasi web. Secara umum, C++ adalah bahasa yang banyak digunakan di mana Anda dapat membuat hampir semua jenis program.

C++ adalah bahasa yang dikompilasi, yang berarti kompiler menerjemahkan kode sumber C++ menjadi file yang dapat dieksekusi yang berisi sekumpulan instruksi mesin. Namun platform yang berbeda memiliki karakteristiknya masing-masing, sehingga program yang dikompilasi tidak dapat begitu saja ditransfer dari satu platform ke platform lainnya dan dijalankan di sana. Namun, pada tingkat kode sumber, program C++ sebagian besar bersifat portabel kecuali beberapa fungsi khusus OS digunakan. Dan ketersediaan kompiler, pustaka, dan alat pengembangan untuk hampir semua platform umum memungkinkan Anda mengkompilasi kode sumber C++ yang sama ke dalam aplikasi untuk platform ini.

Berbeda dengan C, bahasa C++ memungkinkan Anda menulis aplikasi dengan gaya berorientasi objek, merepresentasikan program sebagai kumpulan kelas dan objek yang berinteraksi satu sama lain. Yang menyederhanakan pembuatan aplikasi besar.

Tahapan utama perkembangan

Pada 1979-80, Bjarne Stroustrup mengembangkan ekstensi ke bahasa C - "C with Classes". Pada tahun 1983 bahasa ini berganti nama menjadi C++.

Pada tahun 1985, versi komersial pertama dari bahasa C++ dirilis, serta edisi pertama buku "Bahasa Pemrograman C++", yang mewakili deskripsi pertama bahasa ini tanpa adanya standar resmi.

Pada tahun 1989, versi baru bahasa C++ 2.0 dirilis, yang menyertakan sejumlah fitur baru. Setelah itu, bahasa tersebut berkembang relatif lambat hingga tahun 2011. Namun pada saat yang sama, pada tahun 1998, upaya pertama untuk membakukan bahasa dilakukan oleh organisasi ISO (Organisasi Internasional untuk Standardisasi). Standar pertama disebut ISO/IEC 14882:1998, atau disingkat C++98. Selanjutnya, pada tahun 2003, versi baru dari standar C++03 diterbitkan.

Pada tahun 2011, standar C++11 baru diterbitkan, yang berisi banyak tambahan dan memperkaya bahasa C++ dengan sejumlah besar fungsi baru. Setelah itu, tambahan kecil pada standar ini, yang juga dikenal sebagai C++14, dirilis pada tahun 2014. Dan rilis penting lainnya dari bahasa ini dijadwalkan pada tahun 2017.

Kompiler dan lingkungan pengembangan

Untuk mengembangkan program dalam C++, Anda memerlukan kompiler - kompiler yang menerjemahkan kode sumber dalam C++ menjadi file yang dapat dieksekusi, yang kemudian dapat Anda jalankan. Namun saat ini ada banyak kompiler yang berbeda. Mereka mungkin berbeda dalam berbagai aspek, khususnya dalam penerapan standar. Daftar dasar kompiler untuk C++ dapat ditemukan di Wikipedia. Disarankan bagi pengembangan untuk memilih kompiler yang mengembangkan dan menerapkan semua standar terbaru. Oleh karena itu, sepanjang tutorial ini kita terutama akan menggunakan kompiler g++ yang tersedia secara gratis dan dikembangkan oleh proyek GNU.

Anda juga dapat menggunakan IDE seperti Visual Studio, Netbeans, Eclipse, Qt, dll untuk membuat program.

Artikel ini membahas fungsi scanf() secara umum tanpa mengacu pada standar tertentu, sehingga data dari standar C99, C11, C++11, C++14 disertakan di sini. Ada kemungkinan bahwa dalam beberapa standar, fungsinya bekerja secara berbeda dari materi yang disajikan dalam artikel.

fungsi scanf C - deskripsi

scanf() adalah fungsi yang terletak di file header stdio.h(C) dan cstdio(C++), ini juga disebut input yang diformat ke program. scanf membaca karakter dari input standar (stdin) dan mengonversinya sesuai format, lalu menulisnya ke variabel yang ditentukan. Format berarti data yang diterima direduksi menjadi bentuk tertentu. Dengan demikian, fungsi scanf C dijelaskan:

scanf("%format", &variabel1[, &variabel2,[…]]),

di mana variabel diteruskan sebagai alamat. Alasan meneruskan variabel ke suatu fungsi dengan cara ini jelas: sebagai hasil operasinya, ia mengembalikan nilai yang menunjukkan adanya kesalahan, jadi satu-satunya cara untuk mengubah nilai variabel adalah dengan meneruskan alamat. Selain itu, berkat metode ini, fungsi tersebut dapat memproses data jenis apa pun.

Beberapa pemrogram memanggil fungsi seperti prosedur scanf() atau printf() karena analoginya dengan bahasa lain.

Scanf memungkinkan Anda memasukkan semua tipe bahasa dasar: char, int, float, string, dll. Dalam hal variabel bertipe string, tidak perlu menunjukkan tanda alamat - “&”, karena variabel bertipe string adalah array, dan namanya adalah alamat elemen pertama array di memori komputer.

Format input data atau string kontrol

Mari kita mulai dengan melihat contoh penggunaan fungsi scanf C dari deskripsi.

#termasuk int main() ( int x; while (scanf("%d", &x) == 1) printf("%d\n", x); return 0; //persyaratan untuk sistem linux )

Format input terdiri dari empat parameter berikut: tipe %[*][width][modifiers]. Dalam hal ini, tanda dan tipe “%” adalah parameter yang diperlukan. Artinya, format minimumnya terlihat seperti ini: “%s”, “%d” dan seterusnya.

Secara umum karakter-karakter pembentuk format string dibagi menjadi:

  • penentu format - segala sesuatu yang dimulai dengan simbol %;
  • karakter pemisah atau spasi - ini adalah spasi, tab (\t), baris baru (\n);
  • karakter selain spasi.

Fungsinya mungkin tidak aman.

Gunakan scanf_s() alih-alih scanf().

(diposting oleh Visual Studio)

Ketik, atau penentu format, atau karakter konversi, atau karakter kontrol

Deskripsi scanf C minimal harus berisi penentu format, yang ditunjukkan di akhir ekspresi yang diawali dengan tanda "%". Ini memberi tahu program jenis data yang diharapkan saat dimasukkan, biasanya dari keyboard. Daftar semua penentu format ada pada tabel di bawah.

Arti

Program menunggu karakter dimasukkan. Variabel yang akan ditulis harus bertipe karakter char.

Program mengharapkan bilangan desimal bilangan bulat untuk dimasukkan. Variabelnya harus bertipe int.

Program ini mengharapkan bilangan floating point dalam bentuk eksponensial. Variabelnya harus bertipe float.

Program mengharapkan nomor floating point dimasukkan. Variabelnya harus bertipe float.

7

Program mengharapkan nomor floating point dimasukkan. Variabelnya harus bertipe float.

Program mengharapkan bilangan oktal dimasukkan. Variabelnya harus bertipe int.

Program mengharapkan string dimasukkan. Sebuah string dianggap sebagai kumpulan karakter apa pun hingga karakter pembatas pertama yang ditemui. Variabelnya harus bertipe string.

Program mengharapkan angka heksadesimal dimasukkan. Variabelnya harus bertipe int.

Variabel mengharapkan input pointer. Variabelnya harus bertipe pointer.

Menulis nilai integer ke variabel sama dengan jumlah karakter yang dibaca sejauh ini oleh fungsi scanf.

Program membaca bilangan bulat yang tidak ditandatangani. Tipe variabel harus berupa bilangan bulat yang tidak ditandatangani.

Program mengharapkan bilangan biner dimasukkan. Variabelnya harus bertipe int.

Satu set karakter yang dapat dipindai. Program mengharapkan masukan karakter dari kumpulan terbatas yang ditentukan antara scanf dan akan berfungsi selama ada karakter dari kumpulan yang ditentukan pada aliran masukan.

Karakter dalam format string

Tanda bintang (*)

Tanda bintang (*) adalah tanda yang menunjukkan bahwa operasi penugasan harus dihentikan. Tanda bintang ditempatkan tepat setelah tanda “%”. Misalnya,

Scanf("%d%*c%d", &x, &y); //abaikan karakter di antara dua bilangan bulat. scanf("%s%*d%s",str,str2); //abaikan bilangan bulat di antara dua string.

Artinya, jika Anda memasukkan baris “45-20” ke konsol, program akan melakukan hal berikut:

  1. Variabel "x" akan diberi nilai 45.
  2. Variabel "y" akan diberi nilai 20.
  3. Dan tanda minus (tanda hubung) “-” akan diabaikan karena “%*c”.

Lebar (atau lebar bidang)

Ini adalah bilangan bulat antara tanda "%" dan penentu format yang menentukan jumlah maksimum karakter yang akan dibaca selama operasi pembacaan saat ini.

Ada beberapa poin penting yang perlu diingat:

  1. scanf akan berhenti berjalan jika menemukan karakter pembatas, meskipun belum menghitung 20 karakter.
  2. Jika input berisi lebih dari 20 karakter, hanya 20 karakter pertama yang akan ditulis ke variabel str.

Pengubah tipe (atau presisi)

Ini adalah tanda khusus yang mengubah jenis data yang diharapkan untuk masukan. Bendera ditentukan di sebelah kiri penentu tipe:

  • L atau l (L kecil) Saat menggunakan "l" dengan penentu d, i, o, u, x, flag memberitahu program untuk mengharapkan input bertipe long int. Saat menggunakan "l" dengan penentu e atau f, flag memberitahu program bahwa ia harus mengharapkan nilai ganda dimasukkan. Penggunaan "L" memberi tahu program bahwa nilai bertipe long double diharapkan. Menggunakan "l" dengan penentu "c" dan "s" memberi tahu program bahwa karakter byte ganda bertipe wchar_t diharapkan. Misalnya, "%lc", "%ls", "%l".
  • h adalah bendera yang menunjukkan tipe short.
  • hh - menunjukkan bahwa variabel adalah penunjuk ke nilai bertipe karakter yang ditandatangani atau karakter yang tidak ditandatangani. Bendera dapat digunakan dengan penentu d, i, o, u, x, n.
  • ll (dua L kecil) - menunjukkan bahwa variabel tersebut adalah penunjuk ke nilai bertipe sign int atau unsigned long long int. Bendera digunakan dengan penentu: d, i, o, u, x, n.
  • j - menunjukkan bahwa variabel adalah penunjuk untuk mengetik intmax_t atau uintmax_t dari file header stdint.h. Digunakan dengan penentu: d, i, o, u, x, n.
  • z - menunjukkan bahwa variabel adalah pointer ke tipe size_t, yang definisinya ada di stddef.h. Digunakan dengan penentu: d, i, o, u, x, n.
  • t - menunjukkan bahwa variabel tersebut adalah pointer untuk mengetik ptrdiff_t. Definisi tipe ini ada di stddef.h. Digunakan dengan penentu: d, i, o, u, x, n.

Gambar dengan modifier dapat disajikan lebih jelas dalam bentuk tabel. Deskripsi scanf C ini akan lebih jelas bagi programmer.

Karakter lainnya

Karakter apa pun yang ditemui dalam format akan dibuang. Perlu dicatat bahwa kehadiran spasi atau karakter pembatas (baris baru, spasi, tab) di string kontrol dapat menyebabkan perilaku fungsi yang berbeda. Dalam satu versi, scanf() akan membaca tanpa menyimpan sejumlah pembatas hingga menemukan karakter selain pembatas, dan di versi lain, spasi (hanya spasi) tidak menjadi masalah dan ekspresi "%d + %d" setara ke "%d+%d".

Contoh

Mari kita lihat sejumlah contoh untuk membantu Anda memikirkan dan memahami cara kerja fungsi tersebut dengan lebih akurat.

Scanf("%3s",str); //jika Anda memasukkan baris “1d2s3d1;3” di konsol, hanya “1d2” yang akan ditulis ke str scanf("%dminus%d", &x, &y); //karakter minus di antara dua angka akan dibuang scanf("%5", str); //karakter akan dimasukkan ke dalam str hingga berjumlah 5 karakter dan karakter tersebut berupa angka 0 sampai 9. scanf("%lf", &d); //input yang diharapkan bertipe double scanf("%hd", &x); //mengharapkan sejumlah tipe short scanf("%hu", &y); //mengharapkan sejumlah tipe unsigned short scanf("lx", &z); //jumlah yang diharapkan dari tipe long int

Dari contoh di atas Anda dapat melihat bagaimana angka yang diharapkan berubah menggunakan simbol yang berbeda.

scanf C - deskripsi untuk pemula

Bagian ini akan berguna untuk pemula. Seringkali Anda tidak perlu memiliki banyak deskripsi lengkap tentang scanf C, melainkan detail tentang cara kerja fungsinya.

  • Fungsinya agak ketinggalan jaman. Ada beberapa implementasi berbeda di perpustakaan dengan versi berbeda. Misalnya, fungsi scanf SC yang ditingkatkan, penjelasannya dapat ditemukan di situs web Microsoft.
  • Jumlah penentu dalam format harus sesuai dengan jumlah argumen yang diteruskan ke fungsi.
  • Elemen aliran input harus dipisahkan hanya dengan membatasi karakter: spasi, tab, baris baru. Koma, titik koma, titik, dll. - karakter ini bukan pembatas untuk fungsi scanf().
  • Jika scanf menemukan karakter pembatas, input akan dihentikan. Jika ada lebih dari satu variabel yang dibaca, scanf akan melanjutkan membaca variabel berikutnya.
  • Perbedaan sekecil apa pun dalam format data masukan menyebabkan hasil program yang tidak dapat diprediksi. Ada baiknya jika program berakhir dengan error saja. Namun seringkali program terus bekerja dan tidak berfungsi dengan benar.
  • scanf("%20s...", ...); Jika aliran input melebihi 20 karakter, scanf akan membaca 20 karakter pertama dan mengakhiri atau melanjutkan membaca variabel berikutnya, jika ditentukan. Panggilan scanf berikutnya akan melanjutkan membaca aliran input dari mana panggilan scanf sebelumnya berhenti. Jika karakter pembatas ditemukan saat membaca 20 karakter pertama, scanf akan berhenti bekerja atau melanjutkan membaca variabel berikutnya, meskipun 20 karakter untuk variabel pertama tidak terbaca. Dalam hal ini, semua karakter yang tidak terhitung akan dilampirkan ke variabel berikutnya.
  • Jika kumpulan karakter yang akan dipindai diawali dengan tanda "^", maka scanf akan membaca data hingga menemukan karakter pembatas atau karakter dari kumpulan tersebut. Misalnya, "%[^A-E1-5]" akan membaca data dari aliran hingga salah satu karakter bahasa Inggris huruf besar A hingga E atau salah satu angka 1 hingga 5 ditemukan.
  • Fungsi scanf C, seperti dijelaskan, mengembalikan angka yang sama dengan jumlah entri yang berhasil ke dalam variabel. Jika scanf menulis 3 variabel, maka hasil pengoperasian fungsi yang berhasil adalah kembalinya angka 3. Jika scanf tidak dapat menulis variabel apa pun, maka hasilnya adalah 0. Dan terakhir, jika scanf tidak dapat mulai bekerja di semua entah kenapa, hasilnya EOF .
  • Jika fungsi scanf() tidak menyelesaikan tugasnya dengan benar. Misalnya, scanf("%d", &x) - angka diharapkan, tetapi simbol diterima sebagai input. Pemanggilan scanf() berikutnya akan dimulai dari titik dalam aliran input di mana pemanggilan fungsi sebelumnya berakhir. Untuk mengatasi masalah ini, Anda perlu menyingkirkan karakter yang bermasalah. Hal ini dapat dilakukan, misalnya dengan memanggil scanf("%*s"). Artinya, fungsi tersebut akan membaca serangkaian karakter dan membuangnya. Dengan cara cerdas ini, Anda bisa terus memasukkan data yang diperlukan.
  • Beberapa implementasi scanf() tidak mengizinkan penggunaan "-" pada kumpulan karakter yang akan dipindai.
  • Penentu “%c” membaca setiap karakter dari aliran. Artinya, ia juga membaca karakter pembatas. Untuk melewati karakter pembatas dan melanjutkan membaca karakter yang diinginkan, Anda dapat menggunakan “%1s”.
  • Saat menggunakan penentu “c”, diperbolehkan menggunakan lebar “%10c”, tetapi Anda harus meneruskan array elemen bertipe char sebagai variabel ke fungsi scanf.
  • “%” berarti “semua huruf kecil dalam alfabet Inggris”, dan “%” berarti 3 karakter: 'z', 'a', '-'. Dengan kata lain, karakter "-" hanya berarti suatu rentang jika muncul di antara dua karakter yang urutannya benar. Jika "-" berada di akhir ekspresi, di awal, atau dalam urutan karakter yang salah di salah satu sisinya, maka itu hanya mewakili karakter tanda hubung, bukan rentang.

Kesimpulan

Ini menyimpulkan deskripsi scanf C. Ini adalah fungsi kenyamanan yang baik untuk bekerja dalam program kecil dan ketika menggunakan metode pemrograman prosedural. Namun, kelemahan utamanya adalah banyaknya kesalahan tak terduga yang dapat terjadi saat menggunakan scanf. Oleh karena itu, yang terbaik adalah menyimpan deskripsi scanf C di depan mata Anda saat memprogram. Dalam proyek profesional besar, iostream digunakan karena fakta bahwa mereka memiliki kemampuan tingkat yang lebih tinggi, lebih mampu menangkap dan memproses kesalahan, dan juga bekerja dengan sejumlah besar informasi. Perlu juga dicatat bahwa deskripsi scanf C dalam bahasa Rusia tersedia di banyak sumber online, serta contoh penggunaannya, karena usia fungsinya. Oleh karena itu, jika perlu, Anda selalu dapat menemukan jawabannya di forum tematik.

Tutorial ini ditujukan untuk semua orang, baik Anda baru mengenal pemrograman atau memiliki pengalaman pemrograman luas dalam bahasa lain! Materi ini diperuntukkan bagi mereka yang ingin mempelajari bahasa C/C++ dari dasar hingga struktur yang paling kompleks.

C++ adalah bahasa pemrograman, pengetahuan tentang bahasa pemrograman ini akan memungkinkan Anda mengontrol komputer Anda pada level tertinggi. Idealnya, Anda dapat membuat komputer melakukan apa pun yang Anda inginkan. Situs kami akan membantu Anda menguasai bahasa pemrograman C++.

Instalasi / IDE

Hal pertama yang harus Anda lakukan sebelum mulai belajar C++ adalah memastikan bahwa Anda memiliki IDE - lingkungan pengembangan terintegrasi (program yang akan Anda programkan). Jika Anda tidak memiliki IDE, ini dia. Setelah Anda memutuskan pilihan IDE, instal dan berlatih membuat proyek sederhana.

Pengantar C++

Bahasa C++ adalah sekumpulan perintah yang memberi tahu komputer apa yang harus dilakukan. Kumpulan perintah ini biasanya disebut kode sumber atau hanya kode. Perintah dapat berupa “fungsi” atau “kata kunci”. Kata kunci (kata-kata khusus C/C++) adalah elemen dasar bahasa ini. Fungsi adalah blok penyusun yang kompleks karena ditulis dalam bentuk fungsi yang lebih sederhana - Anda akan melihatnya di program pertama kami, yang ditunjukkan di bawah. Struktur fungsinya menyerupai isi buku. Isinya dapat menunjukkan bab-bab buku, setiap bab dalam buku dapat mempunyai isi tersendiri yang terdiri dari paragraf-paragraf, setiap paragraf dapat mempunyai sub-subparagrafnya sendiri. Meskipun C++ menyediakan banyak fungsi umum dan kata-kata khusus yang dapat Anda gunakan, tetap ada kebutuhan untuk menulis fungsi Anda sendiri.

Bagian mana dari program yang memulainya? Setiap program pada C++ mempunyai satu fungsi yang disebut fungsi utama atau main, eksekusi program diawali dengan fungsi tersebut. Dari fungsi utama, Anda juga dapat memanggil fungsi lainnya, baik fungsi yang kami tulis atau, seperti yang disebutkan sebelumnya, disediakan oleh kompiler.

Lalu bagaimana cara mengakses Fitur Standar ini? Untuk mengakses fungsi standar yang disertakan dengan kompiler, Anda perlu menyertakan file header menggunakan direktif praprosesor - #include . Mengapa ini efektif? Mari kita lihat contoh program kerja:

#termasuk << "Моя первая программа на С++\n"; cin.get(); }

Mari kita pertimbangkan secara rinci elemen-elemen program ini. #include adalah arahan "praprosesor" yang memberitahu kompiler untuk memasukkan kode dari file header iostream ke dalam program kita sebelum membuat file yang dapat dieksekusi. Dengan menghubungkan file header ke program Anda, Anda mendapatkan akses ke berbagai fungsi berbeda yang dapat Anda gunakan dalam program Anda. Misalnya, operator cout memerlukan iostream . Baris menggunakan namespace std; memberitahu kompiler untuk menggunakan sekelompok fungsi yang merupakan bagian dari perpustakaan standar std. Baris ini juga mengizinkan program untuk menggunakan operator seperti cout. Titik koma adalah bagian dari sintaks C++. Ini memberitahu kompiler bahwa ini adalah akhir dari perintah. Anda akan segera melihat bahwa titik koma digunakan untuk mengakhiri sebagian besar perintah di C++.

Baris penting berikutnya dari program ini adalah int main(). Baris ini memberi tahu kompiler bahwa ada fungsi bernama main dan fungsi tersebut mengembalikan bilangan bulat. Tanda kurung kurawal ( dan ) menandai awal (dan akhir) suatu fungsi. Kurung kurawal juga digunakan di blok kode lain, tetapi kurung kurawal selalu menunjukkan satu hal - masing-masing awal dan akhir blok.

Di C++, objek cout digunakan untuk menampilkan teks (diucapkan "C out"). Dia menggunakan simbol-simbol<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

Perintah selanjutnya adalah cin.get() . Ini adalah pemanggilan fungsi lain yang membaca data dari aliran data masukan dan menunggu tombol ENTER ditekan. Perintah ini menjaga jendela konsol agar tidak tertutup hingga tombol ENTER ditekan. Ini memberi Anda waktu untuk melihat keluaran program.

Setelah mencapai akhir fungsi utama (penutup kurung kurawal), program kami akan mengembalikan nilai 0 ke sistem operasi. Nilai kembalian ini penting karena dengan menganalisisnya, OS dapat menilai apakah program kita berhasil diselesaikan atau tidak. Nilai pengembalian 0 berarti sukses dan dikembalikan secara otomatis (tetapi hanya untuk tipe data int; fungsi lain mengharuskan Anda mengembalikan nilai secara manual), tetapi jika kita ingin mengembalikan sesuatu yang lain, seperti 1, kita harus melakukannya secara manual.

#termasuk menggunakan namespace std; int utama() ( cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Untuk mengkonsolidasikan materi, ketikkan kode program ke dalam IDE Anda dan jalankan. Setelah program berjalan dan Anda melihat hasilnya, bereksperimenlah sedikit dengan pernyataan cout. Ini akan membantu Anda terbiasa dengan bahasa tersebut.

Pastikan untuk mengomentari program Anda!

Tambahkan komentar ke kode Anda agar lebih jelas tidak hanya bagi Anda sendiri tetapi juga bagi orang lain. Kompiler mengabaikan komentar saat mengeksekusi kode, sehingga Anda dapat menggunakan sejumlah komentar untuk mendeskripsikan kode sebenarnya. Untuk membuat komentar, gunakan atau // , yang memberi tahu kompiler bahwa sisa barisnya adalah komentar, atau /* lalu */ . Saat Anda belajar memprogram, ada gunanya memberi komentar pada bagian kode untuk melihat bagaimana keluaran program berubah. Anda dapat membaca secara detail tentang teknik berkomentar.

Apa yang harus dilakukan dengan semua jenis variabel ini?

Terkadang membingungkan untuk memiliki beberapa tipe variabel ketika beberapa tipe variabel tampak mubazir. Sangat penting untuk menggunakan jenis variabel yang benar, karena beberapa variabel memerlukan lebih banyak memori dibandingkan yang lain. Selain itu, karena cara mereka disimpan dalam memori, angka floating point, tipe data float dan double adalah "tidak tepat" dan tidak boleh digunakan ketika nilai integer yang tepat perlu disimpan.

Mendeklarasikan Variabel di C++

Untuk mendeklarasikan variabel, gunakan tipe sintaksis<имя>; . Berikut beberapa contoh deklarasi variabel:

Nomor masuk; karakter karakter; float jumlah_float;

Dibolehkan mendeklarasikan beberapa variabel dengan tipe yang sama dalam satu baris; untuk melakukan ini, masing-masing variabel harus dipisahkan dengan koma.

Ke dalam x, y, z, d;

Jika Anda perhatikan lebih dekat, Anda mungkin pernah melihat bahwa deklarasi variabel selalu diikuti oleh titik koma. Anda dapat mempelajari lebih lanjut tentang konvensi “penamaan variabel”.

Kesalahan umum saat mendeklarasikan variabel di C++

Jika Anda mencoba menggunakan variabel yang tidak dideklarasikan, program Anda tidak akan dapat dikompilasi dan Anda akan menerima pesan kesalahan. Di C++, semua kata kunci bahasa, semua fungsi, dan semua variabel peka huruf besar-kecil.

Menggunakan Variabel

Jadi sekarang Anda sudah tahu cara mendeklarasikan variabel. Berikut adalah contoh program yang mendemonstrasikan penggunaan variabel:

#termasuk menggunakan namespace std; int main() ( int angka; cout<< "Введите число: "; cin >> nomor; cin.abaikan(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Mari kita lihat program ini dan periksa kodenya, baris demi baris. Kata kunci int menunjukkan bahwa bilangan tersebut adalah bilangan bulat. Fungsi cin >> membaca nilai menjadi angka, pengguna harus menekan enter setelah angka yang dimasukkan. cin.ignore() adalah fungsi yang membaca karakter dan mengabaikannya. Kami telah mengatur masukan kami ke dalam program; setelah memasukkan nomor, kami menekan tombol ENTER, simbol yang juga dikirimkan ke aliran masukan. Kami tidak membutuhkannya, jadi kami membuangnya. Perlu diingat bahwa variabel dideklarasikan sebagai tipe integer, jika pengguna mencoba memasukkan angka desimal, maka akan terpotong (yaitu, bagian desimal dari angka tersebut akan diabaikan). Coba masukkan angka desimal atau rangkaian karakter, saat menjalankan program contoh, jawabannya akan tergantung pada nilai yang dimasukkan.

Perhatikan bahwa saat mencetak dari suatu variabel, tanda kutip tidak digunakan. Tidak adanya tanda kutip memberitahu kompiler bahwa ada sebuah variabel, dan oleh karena itu program harus memeriksa nilai variabel tersebut untuk mengganti nama variabel dengan nilainya pada saat eksekusi. Beberapa pernyataan shift pada baris yang sama dapat diterima dan keluarannya akan dilakukan dalam urutan yang sama. Anda harus memisahkan literal string (string yang diapit tanda kutip) dan variabel, dengan memberikan masing-masing operator shiftnya sendiri<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Mengubah dan membandingkan nilai

Tentu saja, apa pun jenis data yang Anda gunakan, variabel tidak akan menarik tanpa kemampuan untuk mengubah nilainya. Berikut ini adalah beberapa operator yang digunakan bersama dengan variabel:

  • * perkalian,
  • - pengurangan,
  • + tambahan,
  • / divisi,
  • = tugas,
  • == kesetaraan,
  • >lebih lanjut
  • < меньше.
  • != tidak setara
  • >= lebih besar atau sama dengan
  • <= меньше или равно

Operator yang menjalankan fungsi matematika harus digunakan di sebelah kanan tanda penugasan untuk menetapkan hasil ke variabel di sebelah kiri.

Berikut beberapa contohnya:

SEBUAH = 4*6; // gunakan komentar baris dan titik koma, a sama dengan 24 a = a + 5; // sama dengan jumlah nilai asli dan lima a == 5 // tidak menetapkan lima, periksa apakah sama dengan 5 atau tidak

Anda akan sering menggunakan == dalam konstruksi seperti pernyataan kondisional dan loop.

A< 5 // Проверка, a менее пяти? a >5 // Periksa, apakah lebih dari lima? a == 5 // Memeriksa, apakah a sama dengan lima? a != 5 // Periksa, apakah tidak sama dengan lima? a >= 5 // Periksa apakah a lebih besar atau sama dengan lima? A<= 5 // Проверка, a меньше или равно пяти?

Contoh-contoh ini tidak menunjukkan penggunaan tanda perbandingan dengan jelas, namun saat kita mulai mempelajari operator seleksi, Anda akan memahami mengapa hal ini perlu.

C++ (baca c-plus-plus) adalah bahasa pemrograman tujuan umum yang dikompilasi dan diketik secara statis di mana Anda dapat membuat program dengan tingkat kompleksitas apa pun.
Selama lebih dari 20 tahun, bahasa ini termasuk di antara tiga bahasa pemrograman terpopuler dan paling banyak diminati. (Anda dapat memverifikasi ini dengan mengunjungi situs web TIOBE).
Bahasa ini berasal dari awal tahun 1980-an, ketika karyawan Bell Labs, Björn Stroustrup, membuat sejumlah perbaikan pada bahasa C untuk kebutuhannya sendiri.

Bjarne Stroustrup – pencipta bahasa C++

Stroustrup memutuskan untuk memperluas bahasa C dengan kemampuan yang terdapat pada bahasa Simula. C, sebagai bahasa dasar sistem UNIX yang menjalankan komputer Bell, cepat, kaya fitur, dan portabel. Stroustrup menambahkan kemampuan untuk bekerja dengan kelas dan objek. Hasilnya, masalah pemodelan praktis menjadi mudah diselesaikan baik dari segi waktu pengembangan (berkat penggunaan kelas mirip Simula) dan dalam hal waktu komputasi (berkat kecepatan C).
Begini cara pengembang bahasa sendiri membicarakannya:



Pada tahun 1998, standar bahasa pertama, yang dikenal sebagai C++98, diterbitkan oleh komite standar. C++ terus berkembang untuk memenuhi tuntutan saat ini. Salah satu kelompok yang mengembangkan bahasa C++ dan mengajukan proposal perbaikannya ke Komite Standar C++ adalah Mendorong, yang antara lain terlibat dalam meningkatkan kemampuan bahasa dengan menambahkan fitur metaprogramming ke dalamnya. Standar terbaru dirilis pada tahun 2017 dan disebut C++17. Standar berikutnya tidak akan lama lagi dan diharapkan muncul pada tahun 2020.
Tidak ada yang memiliki hak atas bahasa C++; ini gratis. Pada bulan Maret 2016, kelompok kerja WP21 C++ dibuat di Rusia. Kelompok ini dibentuk untuk mengumpulkan proposal standar C++, menyerahkannya ke komite, dan mempertahankannya pada rapat umum Organisasi Internasional untuk Standardisasi.
C++ adalah bahasa multi-paradigma (dari kata paradigma - gaya penulisan program komputer), termasuk berbagai gaya dan teknologi pemrograman yang berbeda. Ini sering diklasifikasikan sebagai bahasa berorientasi objek, tetapi sebenarnya tidak demikian. Selama proses kerja, pengembang mendapat kebebasan mutlak dalam memilih alat sehingga masalah yang diselesaikan dengan menggunakan pendekatan tertentu diselesaikan seefisien mungkin. Dengan kata lain, C++ tidak memaksa programmer untuk hanya mengikuti satu gaya pengembangan program (misalnya berorientasi objek).
C++ memiliki perpustakaan standar yang kaya yang mencakup wadah dan algoritma umum, I/O, ekspresi reguler, dukungan multithreading, dan fitur lainnya. C++ telah mempengaruhi banyak bahasa pemrograman, termasuk: Java, C#, D. Karena C++ termasuk dalam keluarga bahasa berdasarkan sintaks bahasa C, Anda dapat dengan mudah menguasai bahasa pemrograman lain dari keluarga ini: JavaScript, PHP , Perl, Objective-C dan banyak lainnya. dll., termasuk bahasa induknya sendiri - C. ()
Selama keberadaannya, bahasa C++ telah memperoleh mitos-mitos yang mudah dibantah (lihat di sini: Bagian 1 dan Bagian 2)

Sejarah rilis bahasa dan standar

1983

Pencipta bahasa ini adalah Björn Stroustrup, seorang karyawan Bell Labs, memperkenalkan versi awal bahasa C++ (“C dengan kelas”)

1985

Rilis komersial pertama C++, bahasa ini mengambil nama modernnya

1986

Rilis edisi pertama Bahasa Pemrograman C++ - sebuah buku yang didedikasikan untuk C++ yang ditulis oleh Björn Stroustrup

1998

Standar internasional untuk bahasa C++ telah diratifikasi: ISO/IEC 14882:1998 “Standar untuk Bahasa Pemrograman C++”

2003
2005

Laporan Teknis Perpustakaan 1 (TR1) telah dirilis. Meskipun tidak secara resmi menjadi bagian dari standar, laporan tersebut menjelaskan ekstensi pada pustaka standar yang harus disertakan dalam versi bahasa C++ berikutnya.

2011

Peluncuran standar baru – C++11 atau ISO/IEC 14882:2011; standar baru mencakup penambahan inti bahasa dan perluasan perpustakaan standar, termasuk sebagian besar TR1

2014

Pelepasan standar C++14 (“Standar Internasional ISO/IEC 14882:2014(E) Bahasa Pemrograman C++”); C++14 dapat dilihat sebagai ekstensi kecil dari C++11, yang sebagian besar berisi perbaikan bug dan perbaikan kecil

2017

Rilis standar baru – C++1z (C++17). Standar ini memperkenalkan banyak perubahan dan penambahan. Misalnya, STD menyertakan pustaka standar C11, sistem file berdasarkan boost::filesystem, dan sebagian besar pustaka TS I eksperimental.

2020

C++20 adalah nama tidak resmi dari standar ISO/IEC untuk bahasa pemrograman C++, yang diperkirakan akan mengikuti C++17. Draf standar N4800.

Filsafat C++

Dalam bukunya The Design and Evolution of C++ (2007), Björn Stroustrup menjelaskan prinsip-prinsip yang diikutinya saat mendesain C++ (disingkat):

  • Dapatkan bahasa tujuan umum dengan tipe data statis, efisiensi dan portabilitas bahasa C.
  • Mendukung berbagai gaya pemrograman secara langsung dan komprehensif.
  • Berikan kebebasan memilih kepada programmer, meskipun hal itu memberinya kesempatan untuk salah memilih.
  • Pertahankan kompatibilitas dengan C semaksimal mungkin, sehingga memudahkan transisi dari pemrograman C.
  • Hindari perbedaan antara C dan C++: konstruksi apa pun yang valid di kedua bahasa harus memiliki arti yang sama di masing-masing bahasa dan mengarah ke perilaku program yang sama.
  • Hindari fitur yang bergantung pada platform atau tidak universal.
  • “Jangan membayar untuk apa yang tidak Anda gunakan” - tidak ada fitur bahasa yang akan menyebabkan penurunan kinerja program yang tidak menggunakannya.
  • Tidak memerlukan lingkungan pemrograman yang terlalu rumit.

C dan C++

Sintaks C++ diwarisi dari bahasa C. Meskipun secara formal salah satu prinsip C++ tetap menjaga kompatibilitas dengan bahasa C, pada kenyataannya kelompok standardisasi untuk bahasa-bahasa tersebut tidak berinteraksi, dan perubahan yang dilakukannya tidak. hanya saja tidak berkorelasi, tetapi seringkali secara mendasar saling bertentangan secara ideologis. Jadi, elemen yang ditambahkan standar C baru ke kernel ada di elemen standar C++ dari pustaka standar dan tidak ada di kernel sama sekali, misalnya array dinamis, array dengan batas tetap, fasilitas pemrosesan paralel. Menurut Stroustrup, menggabungkan pengembangan kedua bahasa ini akan memberikan manfaat yang besar, namun kecil kemungkinannya karena alasan politik. Jadi kompatibilitas praktis antara C dan C++ secara bertahap akan hilang.
Dalam contoh ini, bergantung pada kompiler yang digunakan, “C++” atau “C” akan menjadi output:

Program 9.1

#termasuk int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); kembali 0; )

Hal ini disebabkan oleh fakta bahwa konstanta karakter dalam C bertipe int , dan dalam C++ bertipe char , tetapi ukuran tipe ini berbeda.

Model Siklus Hidup Aplikasi

Lingkaran kehidupan perangkat lunak adalah periode waktu yang dimulai dari saat keputusan dibuat tentang perlunya membuat produk perangkat lunak dan berakhir pada saat produk tersebut benar-benar dihapus dari layanan. Siklus ini merupakan proses membangun dan mengembangkan perangkat lunak. Ada beberapa model siklus hidup.
Model kaskade siklus hidup (model air terjun Inggris) diusulkan pada tahun 1970 oleh Winston Royce. Ini menyediakan implementasi berurutan dari semua tahapan proyek dalam urutan yang tetap. Peralihan ke tahap berikutnya berarti selesainya pekerjaan pada tahap sebelumnya. Persyaratan yang ditentukan pada tahap pembentukan persyaratan didokumentasikan secara ketat dalam bentuk spesifikasi teknis dan dicatat untuk keseluruhan pengembangan proyek. Setiap tahap berpuncak pada pelepasan satu set dokumentasi lengkap yang cukup untuk memungkinkan pengembangan dilanjutkan oleh tim pengembangan lainnya.
Tahapan proyek menurut model air terjun:

  1. Pembentukan persyaratan;
  2. Desain;
  3. Penerapan;
  4. Pengujian;
  5. Penerapan;
  6. Operasi dan pemeliharaan.

Dalam model kaskade, transisi dari satu fase proyek ke fase proyek lainnya mengasumsikan bahwa hasil dari fase sebelumnya sepenuhnya benar. Dalam proyek besar hal ini hampir mustahil dicapai. Oleh karena itu, model ini hanya cocok untuk pengembangan proyek kecil. (W. Royce sendiri tidak menganut model ini dan menggunakan model iteratif).
Model berulang
Alternatif model kaskade adalah model pengembangan berulang dan bertahap (IID), yang diterima dari T. Gilb pada tahun 70an. nama model evolusi. Model IID melibatkan pemecahan siklus hidup proyek menjadi serangkaian iterasi, yang masing-masing menyerupai “proyek mini”, termasuk semua proses pengembangan yang diterapkan pada pembuatan bagian-bagian fungsionalitas yang lebih kecil dibandingkan dengan proyek secara keseluruhan. Tujuan dari setiap iterasi adalah untuk mendapatkan versi sistem perangkat lunak yang berfungsi, termasuk fungsionalitas yang ditentukan oleh konten terintegrasi dari semua iterasi sebelumnya dan saat ini. Hasil iterasi akhir berisi semua fungsionalitas produk yang diperlukan. Jadi, dengan selesainya setiap iterasi, produk menerima peningkatan - peningkatan - pada kemampuannya, yang karenanya, berkembang secara evolusioner.


Berbagai varian pendekatan berulang diterapkan di sebagian besar metodologi pembangunan modern:

Proses Pembangunan - Proses Terpadu Rasional (RUP)

Proses Terpadu Rasional (RUP)(proses terpadu rasional) adalah metodologi pengembangan perangkat lunak yang dikelola oleh Rational Software (IBM). Metodologi ini memberikan rekomendasi untuk semua tahap pengembangan: mulai dari pemodelan bisnis hingga pengujian dan commissioning program yang telah selesai. Unified Modeling Language (UML) digunakan sebagai bahasa pemodelan.
Siklus hidup pengembangan produk yang lengkap terdiri dari empat fase, yang masing-masing mencakup satu atau lebih iterasi.

  • Tahap awal (Inception)
  • Menentukan ruang lingkup proyek dan jumlah sumber daya yang dibutuhkan. Persyaratan dasar, batasan, dan fungsionalitas utama produk ditentukan. Risiko dinilai. Perencanaan tindakan. Di akhir fase awal, pencapaian Milestone Tujuan Siklus Hidup dinilai, yang mensyaratkan kesepakatan antar pemangku kepentingan untuk melanjutkan proyek.

  • Klarifikasi
  • Persyaratan dokumentasi. Desain, implementasi, dan pengujian arsitektur yang dapat dieksekusi. Klarifikasi syarat dan biaya. Mengurangi risiko utama. Berhasil menyelesaikan fase pengembangan berarti mencapai Milestone Arsitektur Siklus Hidup.

  • Konstruksi
  • Pada fase “Build”, sebagian besar fungsi produk diimplementasikan: desain aplikasi selesai, kode sumber ditulis. Fase Pembangunan diakhiri dengan rilis eksternal pertama dari sistem dan pencapaian Kemampuan Operasional Awal.

  • Perkenalan
  • Pada fase “Implementasi”, versi final produk dibuat dan ditransfer dari pengembang ke pelanggan. Ini termasuk program pengujian beta, pelatihan pengguna, dan penentuan kualitas produk. Jika kualitas tidak memenuhi harapan pengguna atau kriteria yang ditetapkan pada fase Mulai, fase Implementasi diulangi lagi. Menyelesaikan semua sasaran berarti mencapai pencapaian Rilis Produk dan menyelesaikan siklus pengembangan penuh.



"Teknologi Informasi. Rekayasa sistem dan perangkat lunak. Proses siklus hidup perangkat lunak". Standar ini diadopsi oleh Badan Federal untuk Regulasi Teknis dan Metrologi Federasi Rusia dan serupa dengan standar internasional ISO/IEC 12207:2008. Standar ini menetapkan struktur umum proses siklus hidup perangkat lunak yang dapat diikuti dalam industri perangkat lunak. Standar ini tidak mengusulkan model siklus hidup tertentu. Ketentuannya bersifat umum untuk semua model siklus hidup, metode dan teknologi pembuatan perangkat lunak. Ini menggambarkan struktur proses siklus hidup tanpa menentukan bagaimana menerapkan atau menyelesaikan aktivitas dan tugas yang termasuk dalam proses tersebut.

Presentasi untuk pelajaran
Topik pesan
  • Yayasan Perangkat Lunak Bebas (FSF)
  • Lisensi perangkat lunak bebas
  • Perangkat Lunak Bebas dan Sumber Terbuka
  • Sejarah perkembangan bahasa pemrograman
  • Sejarah bahasa C dan C++
  • Cerita
  • Kritik terhadap C++
  • Sejarah UNIX
  • Model siklus hidup perangkat lunak spiral
  • UML (Bahasa Pemodelan Terpadu)
  • Kerangka Solusi Microsoft
  • IDE untuk pemrograman C/C++ di Windows
  • Kompiler C/C++
  • Membuat Aplikasi Konsol di Windows
Pertanyaan
  1. Mengapa model pengembangan perangkat lunak air terjun tidak digunakan dalam proyek besar?
  2. Apa perbedaan antara model pengembangan air terjun dan berulang?
  3. Sebutkan tahapan-tahapan pengembangan perangkat lunak dalam metodologi Rational Unified Process (RUP).

Pustaka Standar C/C++ mencakup sejumlah fungsi untuk membaca dan menulis ke konsol (keyboard dan monitor). Fungsi-fungsi ini membaca dan menulis data sebagai aliran karakter sederhana.

Konsep aliran, yang digunakan dalam pemrograman, berkaitan erat dengan pengertian kata ini sehari-hari. Aliran masukan dapat dibandingkan dengan pipa yang dilalui air (informasi) memasuki kolam (memori komputer), dan aliran keluaran dapat dibandingkan dengan pipa yang dilalui air keluar dari kolam. Fitur penting dari pipa ini adalah data hanya dapat bergerak dalam satu arah dalam satu waktu. Sekalipun pipa yang sama digunakan untuk saluran masuk dan saluran keluar, hal ini tidak dapat terjadi secara bersamaan: untuk mengubah arah aliran, aliran tersebut harus dihentikan, beberapa tindakan harus dilakukan, dan baru kemudian aliran dapat diarahkan ke arah yang berlawanan. . Keistimewaan lain dari aliran ini adalah alirannya hampir tidak pernah habis. Kadang-kadang mengering, tetapi jangka waktu ini tidak akan lama jika sistem berfungsi normal.

Fungsi keluaran standar printf()

Fungsi printf() adalah fungsi keluaran standar. Dengan menggunakan fungsi ini, Anda dapat menampilkan di layar monitor serangkaian karakter, angka, nilai variabel...

Fungsi printf() memiliki prototipe di stdio.h
int printf(char *string kontrol, ...);

Jika berhasil, printf() mengembalikan jumlah karakter yang dicetak.

Garis kontrol berisi dua jenis informasi: karakter yang langsung dicetak ke layar, dan penentu format yang menentukan cara argumen dicetak.

Fungsi printf() adalah fungsi keluaran yang diformat. Artinya pada parameter fungsi perlu ditentukan format data yang akan dikeluarkan. Format data ditentukan oleh penentu format. Penentu format dimulai dengan karakter % diikuti dengan kode format.

Penentu format:

%Dengan simbol
%D bilangan desimal bilangan bulat
%Saya bilangan desimal bilangan bulat
%e bilangan desimal dalam bentuk x.xx e+xx
%E bilangan desimal dalam bentuk x.xx E+xx
%F
%F angka desimal floating point xx.xxxx
%G %f atau %e, mana yang lebih pendek
%G %F atau %E, mana yang lebih pendek
%Hai bilangan oktal
%S string karakter
%u angka desimal yang tidak ditandatangani
%X angka heksadesimal
%X angka heksadesimal
%% simbol %
%P penunjuk
%N penunjuk

Selain itu, pengubah l dan h dapat diterapkan pada perintah format.

%ld cetak int panjang
%hu stempel pendek tanpa tanda tangan
%Jika stempel ganda panjang

Dalam penentu format, setelah simbol %, presisi (jumlah digit setelah koma desimal) dapat ditentukan. Presisinya diatur sebagai berikut: %.n<код формата>. Dimana n adalah banyaknya digit setelah koma, dan<код формата>- salah satu kode yang diberikan di atas.

Misalnya, jika kita mempunyai variabel x=10,3563 bertipe float dan ingin menampilkan nilainya akurat hingga 3 desimal, maka kita harus menulis:

printf("Variabel x = %.3f",x);

Hasil:
Variabel x = 10,356

Anda juga dapat menentukan lebar minimum bidang yang dialokasikan untuk pencetakan. Jika garis atau angka lebih besar dari lebar bidang yang ditentukan, maka garis atau angka tersebut dicetak penuh.

Misalnya, jika Anda menulis:

printf("%5d",20);

maka hasilnya adalah sebagai berikut:
20

Harap dicatat bahwa angka 20 tidak dicetak dari awal baris. Jika Anda ingin ruang-ruang yang tidak terpakai pada bidang tersebut diisi dengan angka nol, maka Anda perlu memberi simbol 0 di depan lebar bidang.

Misalnya:

printf("%05d",20);

Hasil:
00020

Selain penentu format data, baris kontrol mungkin berisi karakter kontrol:

\B BS, bawah
\F Halaman baru, halaman berganti
\N Baris baru, umpan baris
\R Kereta kembali
\T Tabulasi horizontal
\v Tab vertikal
\" Kutipan ganda
\" Apostrof
\\ Garis miring terbalik
\0 Karakter nol, byte nol
\A Sinyal
\N Konstanta oktal
\xN Konstanta heksadesimal
\? Tanda tanya

Paling sering Anda akan menggunakan karakter \n. Dengan karakter kontrol ini Anda dapat menuju ke baris baru. Lihatlah contoh program dan Anda akan memahami segalanya.

Contoh program.

/* Contoh 1 */
#termasuk

batal utama (batal)
{
ke dalam a,b,c; // Deklarasi variabel a,b,c
sebuah=5;
b=6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Hasil dari program ini:
a=5, b=6, c=9

/* Contoh 2 */
#termasuk

batal utama (batal)
{
mengambang x,y,z;

X=10,5;
kamu=130,67;
z=54;

Printf("Koordinat benda: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Hasil dari program ini:
Koordinat objek: x:10.50, y:130.67, z:54.00

/* Contoh 3 */
#termasuk

batalkan utama()
{
ke dalam x;

X=5;
printf("x=%d",x*2);
}

Hasil dari program ini:
x=10

/* Contoh 4 */
#termasuk

batal utama (batal)
{
printf("\"Teks dalam tanda petik\"");
printf("\nKandungan oksigen : 100%%");
}

Hasil dari program ini:
"Teks dalam tanda kutip"
Kandungan oksigen: 100%

/* Contoh 5 */
#termasuk

batal utama (batal)
{
ke dalam;

SEBUAH=11; // 11 dalam desimal sama dengan b dalam heksadesimal
printf("a-des=%d, a-hex=%X",a,a);
}

Hasil dari program ini:
a-des=11, a-hex=b

/* Contoh 6 */
#termasuk

batal utama (batal)
{
karakter ch1,ch2,ch3;

Bab1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

Hasil dari program ini:
ABC

/* Contoh 7 */
#termasuk

batal utama (batal)
{
char *str="String saya.";

Printf("Ini %s",str);
}

Hasil dari program ini:
Ini adalah kalimatku.

/* Contoh 8 */
#termasuk

batal utama (batal)
{
printf("Halo!\n"); // Setelah dicetak akan ada transisi ke baris baru - \n
printf("Nama saya Paulus."); // Ini akan dicetak pada baris baru
}

Hasil dari program ini:
Halo!
Nama saya Pavel.

Fungsi masukan standar scanf()

Fungsi scanf() adalah fungsi masukan yang diformat. Dengan bantuannya, Anda dapat memasukkan data dari perangkat input standar (keyboard). Data masukan dapat berupa bilangan bulat, angka floating point, karakter, string, dan pointer.

Fungsi scanf() memiliki prototipe berikut di stdio.h:
int scanf(char *string kontrol);

Fungsi ini mengembalikan jumlah variabel yang telah diberi nilai.

String kontrol berisi tiga jenis karakter: penentu format, spasi, dan karakter lainnya. Penentu format dimulai dengan karakter %.

Penentu format:

Saat memasukkan string menggunakan fungsi scanf() (penentu format %s), string dimasukkan sebelum spasi pertama!! itu. jika Anda memasukkan string "Halo dunia!" menggunakan fungsi scanf()


scanf("%s",str);

kemudian setelah memasukkan string yang dihasilkan, yang akan disimpan dalam array str, akan terdiri dari satu kata “Halo”. FUNGSI MEMASUKI STRING SEBELUM RUANG PERTAMA! Jika Anda ingin memasukkan string dengan spasi, gunakan fungsinya

char *mendapat(char *buf);

Dengan fungsi get() Anda dapat memasukkan string lengkap. Fungsi get() membaca karakter dari keyboard hingga karakter baris baru (\n) muncul. Karakter baris baru sendiri muncul ketika Anda menekan enter. Fungsi ini mengembalikan pointer ke buf. buf - buffer (memori) untuk string input.

Meskipun get() bukan topik artikel ini, mari kita tulis sebuah contoh program yang memungkinkan Anda memasukkan seluruh baris dari keyboard dan menampilkannya di layar.

#termasuk

batal utama (batal)
{
penyangga arang; // array (buffer) untuk string masukan

Mendapat (penyangga); // masukkan satu baris dan tekan enter
printf("%s",buffer); // menampilkan string yang dimasukkan ke layar
}

Satu lagi catatan penting! Untuk memasukkan data menggunakan fungsi scanf(), ia perlu meneruskan alamat variabel sebagai parameter, bukan variabel itu sendiri. Untuk mendapatkan alamat suatu variabel, Anda harus mengawali nama variabel dengan tanda & (ampersand). Tanda & berarti mengambil alamat.

Apa yang dimaksud dengan alamat? Saya akan mencoba menjelaskannya. Dalam program ini kita memiliki variabel. Variabel menyimpan nilainya di memori komputer. Jadi ini adalah alamat yang kita peroleh dengan menggunakan & merupakan alamat di memori komputer tempat nilai variabel disimpan.

Mari kita lihat contoh program yang menunjukkan kepada kita cara menggunakan &

#termasuk

batal utama (batal)
{
ke dalam x;

Printf("Masukkan variabel x : ");
scanf("%d",&x);
printf("Variabel x=%d",x);
}

Sekarang mari kita kembali ke garis kontrol fungsi scanf(). Lagi:

int scanf(char *string kontrol);

Karakter spasi pada string kontrol memerintahkan satu atau lebih spasi untuk dilewati dalam aliran input. Selain spasi, karakter tab atau baris baru dapat dilihat. Karakter bukan nol menunjukkan bahwa karakter tersebut dibaca dan dibuang.

Pemisah antara dua angka yang Anda masukkan adalah spasi, tab, atau baris baru. Tanda * setelah % dan sebelum kode format (format specifier) ​​memerintahkan tipe data untuk dibaca, tetapi tidak ditetapkan ke nilai itu.

Misalnya:

scanf("%d%*c%d",&i,&j);

memasukkan 50+20 akan mengatur variabel i menjadi 50, variabel j menjadi 20, dan karakter + akan dibaca dan diabaikan.

Perintah format dapat menentukan lebar bidang terbesar yang akan dibaca.

Misalnya:

scanf("%5s",str);

menunjukkan kebutuhan untuk membaca 5 karakter pertama dari aliran input. Jika Anda memasukkan 1234567890ABC, array str hanya akan berisi 12345, karakter sisanya akan diabaikan. Pemisah: spasi, tab, dan baris baru - saat memasukkan simbol, simbol tersebut diperlakukan seperti semua karakter lainnya.

Jika ada karakter lain yang muncul di string kontrol, karakter tersebut dimaksudkan untuk mengidentifikasi dan melewatkan karakter terkait. Aliran karakter operator 10plus20

scanf("%dplus%d",&x,&y);

akan menetapkan nilai 10 ke variabel x, nilai 20 ke variabel y, dan akan melewatkan karakter plus karena muncul di string kontrol.

Salah satu fitur canggih dari fungsi scanf() adalah kemampuannya untuk menentukan scanset. Kumpulan pencarian mendefinisikan kumpulan karakter yang akan dibandingkan dengan karakter yang dibaca oleh fungsi scanf(). Fungsi scanf() membaca karakter selama karakter tersebut muncul di set pencarian. Segera setelah karakter yang dimasukkan tidak ditemukan dalam kumpulan pencarian, fungsi scanf() berpindah ke penentu format berikutnya. Kumpulan pencarian ditentukan oleh daftar karakter yang diapit tanda kurung siku. Tanda % diletakkan sebelum tanda kurung buka. Mari kita lihat ini dengan sebuah contoh.

#termasuk

batal utama (batal)
{
karakter str1, str2;
scanf("%%s",str1,str2);
printf("\n%s\n%s",str1,str2);
}
Mari masukkan satu set karakter:
12345abcdefg456

Program akan ditampilkan di layar:
12345
abcdefg456

Saat menentukan kumpulan pencarian, Anda juga dapat menggunakan karakter tanda hubung untuk menentukan spasi, serta lebar maksimum kolom masukan.

scanf("%10",str1);

Anda juga dapat menentukan karakter yang tidak termasuk dalam kumpulan pencarian. Karakter pertama diawali dengan ^. Banyak karakter yang membedakan huruf kecil dan huruf besar.

Izinkan saya mengingatkan Anda bahwa saat menggunakan fungsi scanf(), Anda harus meneruskan alamat variabel ke fungsi tersebut sebagai parameter. Kode di atas ditulis:

karakter str; // larik 80 karakter
scanf("%s",str);

Perhatikan bahwa str tidak diawali dengan &. Hal ini dilakukan karena str adalah array dan nama array - str adalah penunjuk ke elemen pertama array. Oleh karena itu, tanda & tidak boleh digunakan. Kami sudah meneruskan alamat ke fungsi scanf(). Sederhananya, str adalah alamat di memori komputer tempat nilai elemen pertama array akan disimpan.

Contoh program.

Contoh 1.
Program ini menampilkan permintaan "Berapa umurmu?:" dan menunggu input data. Jika misalnya Anda memasukkan angka 20, program akan menampilkan baris “Anda berumur 20 tahun.”. Saat memanggil fungsi scanf(), kita meletakkan tanda & di depan variabel umur, karena fungsi scanf() memerlukan alamat variabel. Fungsi scanf() akan menulis nilai yang dimasukkan ke alamat yang ditentukan. Dalam kasus kami, nilai yang dimasukkan 20 akan ditulis ke alamat variabel umur.

/* Contoh 1 */

#termasuk

batal utama (batal)
{
ke dalam usia;

Printf("\nBerapa umur anda?:");
scanf("%d",&umur);
printf("Umur anda %d tahun.",umur);
}

Contoh 2.
Program kalkulator. Kalkulator ini hanya dapat menjumlahkan angka. Ketika Anda memasukkan 100+34, program akan menghasilkan hasil: 100+34=134.

/* Contoh 2 */

#termasuk

batal utama (batal)
{
ke dalam x, y;

Printf("\nKalkulator:");
scanf("%d+%d", &x, &y);
printf("\n%d+%d=%d",x,y,x+y);
}

Contoh 3.
Contoh ini menunjukkan cara mengatur lebar bidang bacaan. Dalam contoh kita, lebar bidang adalah lima karakter. Jika Anda memasukkan string dengan jumlah karakter yang banyak, maka semua karakter setelah tanggal 5 akan dibuang. Perhatikan pemanggilan fungsi scanf(). Tanda & tidak mendahului nama nama array karena nama nama array adalah alamat elemen pertama array.

/* Contoh 3 */

#termasuk

batal utama (batal)
{
nama karakter;

Printf("\nMasukkan nama pengguna Anda (maksimal 5 karakter):");
scanf("%5s", nama);
printf("\nAnda memasukkan %s", nama);
}

Contoh 4.
Contoh terakhir dalam artikel ini menunjukkan bagaimana kumpulan pencarian dapat digunakan. Setelah memulai program, masukkan angka dari 2 hingga 5.

/* Contoh 4 */

#termasuk

batal utama (batal)
{
arang bal;

Printf("Nilai Anda adalah 2,3,4,5:");
scanf("%", &bal);
printf("\nNilai %c",bal);
}



 


Membaca:



Apa itu pembayaran perwalian MTS?

Apa itu pembayaran perwalian MTS?

Layanan peminjaman uang kepada pelanggan saat ini disediakan oleh hampir semua perusahaan seluler. Kebutuhan untuk...

Program Bonus Aeroflot: bagaimana cara mengumpulkan miles dan untuk apa Anda membelanjakannya?

Program Bonus Aeroflot: bagaimana cara mengumpulkan miles dan untuk apa Anda membelanjakannya?

Aeroflot adalah pemimpin penerbangan sipil Rusia. Hal ini disamakan dengan maskapai penerbangan nasional. Perusahaan ini didirikan pada tahun 1923 dan...

Cara mengetahui drive mana yang ada di komputer Anda: SSD atau HDD Cara mengetahui SSD mana yang ada di komputer Anda

Cara mengetahui drive mana yang ada di komputer Anda: SSD atau HDD Cara mengetahui SSD mana yang ada di komputer Anda

Pada artikel ini Anda akan mempelajari cara mengetahui karakteristik utama solid-state drive, serta cara mengujinya. Untuk operasi ini...

Menguji Desain Fraktal Tentukan R5 Desain Fraktal Tentukan R5 - Tenang, luas

Menguji Desain Fraktal Tentukan R5 Desain Fraktal Tentukan R5 - Tenang, luas

Pada saat komputer pribadi pertama mulai bermunculan, produsen hampir tidak memperhatikan penampilannya. Maka itu diperlukan...

gambar umpan RSS