JavaRush /Java Blog /Random-ID /Materi Tambahan Perkuliahan CS50 : Minggu 1 (Perkuliahan ...
Masha
Level 41

Materi Tambahan Perkuliahan CS50 : Minggu 1 (Perkuliahan 3 dan 4)

Dipublikasikan di grup Random-ID
cs50 dalam materi tambahan Rusia Tugas minggu 1

Tujuan minggu pertama

  • Biasakan diri Anda dengan perintah dasar Linux
  • Pelajari sintaks C dasar dan selesaikan beberapa masalah
  • Mulailah berpikir lebih jernih =)
IDE CS50
Untuk menyelesaikan tugas, CS50 menawarkan IDE (Integrated Development Environment) di cloud. Untuk menggunakannya, buat akun di platform edX dan daftar kursus aslinya . Setelah itu:
1. Masuk ke cs50.io, pilih edX dari daftar, masukkan login dan kata sandi Anda, klik Kirim. 2. Masukkan informasi akun edX Anda, klik Kembali ke ID.CS50.NET . cs50.io 3. Kami menunggu: ruang virtual Anda sedang dibuat. ruang virtual cs50 4. Selesai! ide cs50
Baris perintah dan meluncurkan IDE CS50
Di bagian bawah jendela IDE CS50, di tab Terminal, terdapat jendela terminal atau panel baris perintah. Anda dapat memasukkan perintah string di sini: Anda dapat melakukan hal yang sama seperti antarmuka jendela, misalnya meluncurkan aplikasi, menghapus dan membuat file, menginstal perangkat lunak. Jika Anda belum pernah bekerja dengan baris perintah, metode ini mungkin tampak rumit: Anda harus mengingat perintah dan mengetikkannya alih-alih mengklik ikon dan tombol. Sampai batas tertentu hal ini benar, kemudian antarmuka jendela diciptakan. Namun, baris perintah tersedia di semua sistem operasi dan admin menyukainya. Dan semua itu karena terkadang Anda tidak bisa hidup tanpanya. Di jendela IDE di terminal, Anda akan melihat baris misterius: nama pengguna:~/workspace $ sebagai ganti "nama pengguna" akan ada nama yang dibuat secara otomatis (berdasarkan data pendaftaran Anda). Klik pada jendela terminal, ketik: update50 Tekan Enter. Perintah tersebut meminta sistem untuk memperbarui. Anda akan melihat garis muncul di terminal yang menjelaskan proses instalasi. Jangan tutup IDE CS50 sampai Anda melihat Pembaruan selesai! . Setelah ini, baris default akan muncul lagi, yang berisi nama Anda.
Bekerja di IDE
Mari buat folder tempat file Anda akan disimpan. Klik kanan ~/workspace (direktori root Anda) di sudut kiri atas IDE CS50 , pilih Folder Baru . Ganti nama folder pset1 (jika Anda salah mengeja namanya, klik kanan folder Anda dan pilih Ganti Nama ). cs50 ide ganti nama folder Kemudian klik kanan pada folder pset1 dan pilih File Baru . File Sampai muncul, kita ganti namanya hello.txt . ide cs50 Klik dua kali pada hello.txt. Di CS50 IDE Anda akan melihat tab baru dan kolom di sebelah kanan tempat Anda dapat mengetik. Jika sudah melakukannya, perhatikan simbol asterisk (*) yang muncul sebelum nama file pada tab - indikator bahwa perubahan telah dilakukan pada file, tetapi belum disimpan. Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 1 Simpan file dengan masuk ke *File > Save atau gunakan perintah + S (di mesin Apple) atau Ctrl + S (di PC). Tanda bintang akan hilang. Mari kita periksa apakah file tersebut berada di tempat yang seharusnya. Mari kita lakukan ini menggunakan baris perintah, saatnya membiasakan diri :). Seperti sebelumnya, baris aktif di terminal terlihat seperti ini: username:~/workspace $ Workspace - direktori kerja saat ini (yang terbuka di lingkungan kerja). Tanda gelombang (~) menunjukkan direktori root (ruang kerja terletak di dalamnya). Perhatikan bahwa ruang kerja di terminal sama dengan ikon ~/ruang kerja di sudut kiri atas IDE CS50. Ayo berlatih. Klik di mana saja di terminal dan ketik baris perintah ls dan tekan Enter. Kedua huruf kecil ini - kependekan dari "daftar" - akan menampilkan daftar file dan folder yang terletak di dalam direktori ruang kerja saat ini. Antara lain, Anda akan melihat pset1 yang Anda buat ! Sekarang mari kita buka folder kita menggunakan perintah. Kita ketik cd pset1 atau lebih verbose: cd ~/workspace/pset1 Perintah cd (ubah direktori) mengubah direktori aktif, dalam kasus kita menjadi ~/pset1 Baris aktif telah berubah menjadi username:~/workspace/pset1 $ Ini mengonfirmasi bahwa Anda sekarang berada di direktori ~/workspace/pset1 (baris tersebut berarti “Saya di pset1 di dalam ruang kerja folder, yang ada di folder root, dilambangkan dengan ~"). Sekarang ketik ls Anda akan melihat file hello.txt ! Jika Anda mengklik nama di terminal, tidak ada yang terjadi: itu adalah teks, dan tidak memberikan aktif tautan, tetapi menegaskan bahwa hello.txt berada di tempat yang seharusnya. Ketik cd Jika Anda hanya menulis perintah cd itu sendiri, tetapi tidak memberikan argumen (yaitu, nama folder yang harus dituju), itu akan mengembalikan Anda ke direktori root default, sehingga Anda akan melihat gambar berikut pada baris aktif: username:~ $ Untuk kembali ke folder pset1, tekan cd workspace dan tekan Enter. Lalu cd pset1 Masuk lagi. Anda juga dapat mengganti kedua perintah ini dengan satu perintah yang lebih otentik: cd workspace/pset1
Halo, C!
Akhirnya, momen ini telah tiba! Mari kita mulai pemrograman. Di dalam folder pset1 kami di IDE, buat file bernama hello.c (ekstensi diperlukan), buka di tab baru (kami rasa Anda ingat cara melakukan ini dari paragraf sebelumnya). PENTING! Huruf harus huruf kecil, Linux peka terhadap huruf besar-kecil. Hello.c dan hello.c adalah file yang berbeda. Di sisi kanan jendela IDE CS50, ketikkan teks yang sama persis seperti yang Anda lihat di bawah. Ya, Anda dapat menyalinnya, tetapi akan lebih berguna jika mengetiknya. Warna hurufnya berbeda karena IDE CS50 memiliki penyorotan sintaksis. Ini menyoroti blok teks dengan warna untuk keterbacaan yang lebih baik. Warna tidak disimpan dalam file itu sendiri; warnanya hanya terlihat di IDE. Jika ada, maka IDE memahami C, dan Anda menunjukkan bahwa itu adalah C dalam ekstensi file (*.c). Jika Anda memanggil file yang sama hello.txt, teksnya akan berwarna satu. Pastikan Anda mengetik semuanya persis seperti pada contoh, jika tidak, Anda akan terkena bug pertama =). Sekali lagi kami menarik perhatian Anda pada perbedaan antara huruf kecil dan huruf besar. Karakter \n memindahkan kursor ke baris berikutnya, dan teks yang dimasukkan berikutnya tidak akan menyatu dengan keluaran program. Oh iya, dan jangan lupa tanda titik koma (;). Ini adalah pemisah penting untuk pernyataan program; C tidak akan mau bekerja tanpanya. Klik File > Simpan (atau perintah- atau Ctrl-s). Perhatikan bahwa tanda bintang di depan nama file telah hilang? Jika ya, maka perubahan telah disimpan. Klik di mana saja pada jendela terminal di bawah kode Anda dan pastikan Anda berada di dalam ~/workspace/pset1 (jika tidak, klik cd dan tekan Enter, lalu cd workspace/pset1 dan Enter lagi). Baris aktif Anda akan terlihat seperti ini: Pastikan file hello.c berada tepat di tempat yang seharusnya. Ketik dan tekan Enter. Apakah Anda juga melihat hello.c? Jika tidak, kembali beberapa langkah dan buat lagi file di direktori yang diinginkan. ... Sekarang tibalah saat yang khusyuk: kita menyilangkan jari dan... kita mengetik: dan dengan menyilangkan jari kita menekan Enter. Tepatnya halo, bukan halo.c. Jika yang Anda lihat di depan Anda setelah tindakan ini hanyalah baris aktif kedua, yang terlihat persis seperti yang sebelumnya, maka semuanya berfungsi! Kode sumber Anda telah diterjemahkan ke dalam kode mesin atau objek (yaitu, dalam urutan 0 dan 1). Sekarang kode ini dapat dieksekusi (yaitu, program dapat dijalankan!). Untuk melakukannya, ketik: di baris perintah, tekan Enter. Jika Anda tidak mengubah teks yang diapit di antara "", Anda akan melihat di bawah ini: Jika sekarang Anda mengetikkan perintah dan menekan Enter, Anda akan melihat file hello baru, bersama dengan hello.c dan hello.txt. Halo pertama harus memiliki tanda bintang setelah namanya, yang menandakan bahwa ini adalah file yang dapat dieksekusi, yaitu file yang Anda gunakan untuk meluncurkan program. #include int main(void) { printf("hello, world\n"); } username:~/workspace/pset1 $lsmake hello./hellohello, worldls
Bug?
Jika setelah perintah make Anda melihat kesalahan, inilah waktunya untuk debugging pertama! Prasasti seperti "pernyataan yang diharapkan" berarti Anda salah ketik di suatu tempat. Periksa kembali kode di atas, berhati-hatilah dengan semua detailnya. Perhatian! Deskripsi kesalahan disediakan dalam bahasa Inggris. Jika kurang jelas, gunakan mesin pencari, Google Translate, atau ajukan pertanyaan di kolom komentar. Setelah Anda memperbaiki kesalahan, jangan lupa untuk menyimpan kode Anda menggunakan File > Simpan (atau perintah- atau Ctrl-s), klik lagi bagian dalam jendela terminal dan ketik make hello (Pastikan Anda berada di ~ /workspace/pset1 terlebih dahulu). Jika tidak ada kesalahan lagi, jalankan program dengan mengetikkan perintah.Secara ./hello teori, frasa berharga akan muncul di depan Anda, diapit tanda kutip dari operator printf, yang memerintahkan “cetak”. Jika jendela terminal tampak terlalu kecil, klik ikon yang dilingkari plus (+) di sebelah hello.c.
Memeriksa kebenarannya
Aplikasi check50 dibangun ke dalam IDE CS50. Ia bekerja dari baris perintah dan memeriksa kesalahan pada beberapa program. Jika Anda belum sampai di sana, buka direktori ~/workspace/pset1 dengan menjalankan perintah di terminal: cd ~/workspace/pset1 Sekarang jalankan ls , Anda akan melihat setidaknya file hello.c. Pastikan nama file terlihat seperti ini dan bukan, misalnya, Hello.c atau hello.C. Anda dapat mengganti nama file dengan menjalankan perintah mv source destination sumber - nama file saat ini, tujuan - nama file baru. mv (dari bahasa Inggris move) adalah utilitas penggantian nama. Jika Anda tidak sengaja memberi nama file Hello.c, ketikkan baris: mv Hello.c hello.c Setelah memastikan bahwa file tersebut bernama hello.c, panggil program pemeriksaan check50. Harap dicatat bahwa 2015.fall.pset1.hello adalah pengidentifikasi unik untuk masalah “hello world”. check50 2015.fall.pset1.hello hello.c Jika program dijalankan dengan benar, Anda akan melihat: Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 2 Wajah tersenyum hijau berarti ujian berhasil. Anda juga dapat melihat URL di bagian bawah keluaran check50, tetapi ini hanya untuk karyawan (namun, jika Anda tertarik, lihatlah!). check50 menjalankan 3 tes: apakah file hello.c ada, apakah hello.c dikompilasi, dan apakah aplikasi menghasilkan baris yang bertuliskan "hello, world\n". Jika Anda melihat emotikon merah sedih, berarti Anda memiliki bug. :( hello.c exists \ expected hello.c to exist :| hello.c compiles \ can't check until a frown turns upside down :| prints "hello, world\n" \ can't check until a frown turns upside down Di sini check50 tidak menemukan hello.c, dan smiley merah menunjukkan bahwa Anda membuat kesalahan dalam nama atau mengunggah file ke tempat yang salah. Emoticon “netral” berwarna kuning berarti pengujian tidak berjalan. Dan di mana mereka dapat memulai jika program tidak menemukan file yang perlu diperiksa? Berikut adalah opsi lain yang akan muncul jika Anda mengubah teks yang seharusnya dihasilkan oleh fungsi printf(): :) hello.c exists :) hello.c compiles :( prints "hello, world\n" \ expected output, but not "hello, world" check50 melaporkan bahwa baris hello, world\n diharapkan, namun sesuatu yang lain muncul. check50 tidak menghitung poin untuk menyelesaikan kursus, tetapi memeriksa apakah hasil tugas berbeda dari yang diharapkan. Dan ini memungkinkan Anda untuk memverifikasi ini sebelum mengonfirmasi kebenaran tugas dalam kursus (kami akan memberi tahu Anda cara melakukannya nanti).
Dasar-Dasar C: Perbandingan dengan Scratch
Halo dunia di Scratch dan C:
Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 3 #include int main(void) { printf("hello, world\n"); }
  • Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 4mewakili fungsi yang mencetak "kata-kata" dari sprite ke dalam gelembung komik di Scratch, ada fungsi printf di C yang melakukan hal yang sama, hanya saja tanpa kartun.
  • utama - dalam bahasa Inggris - "utama". Titik masuk ke program. Sama dengan Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 5.
Siklus tanpa akhir
Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 6 diterjemahkan ke dalam C: while (true) { printf("hello, world\n"); } while (true) melakukan hal yang sama: loop melanjutkan pekerjaannya sementara (sementara) nilainya benar (ekspresi Boolean “true” atau “one”). Perulangan ini akan berjalan tanpa henti.
Sebuah loop yang menampilkan frase di layar 10 kali
Scratch Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 7 C for (int i = 0; i < 10; i++) { printf("hello, world!\n"); } i adalah variabel counter; nilainya diubah oleh operator kenaikan i++, meningkatkannya sebesar 1 pada setiap iterasi loop. Awalnya, saya diberi nilai 0 menggunakan operator penugasan =. Perhatian! Seperti di Java, di C kesetaraan dilambangkan dengan ==, operator penugasan =. Artinya, a = 5 berarti variabel a diberi nilai 5, dan (a= =5) berarti ekspresi Boulogne (jika a sama dengan 5, maka ekspresi tersebut benar, jika tidak sama, maka salah) . Perulangan akan berhenti ketika i “berkembang” menjadi 9. Cara menghitungnya mudah, perulangan akan dieksekusi sebanyak 10 kali. Jadi, jika Anda perlu mengulang sesuatu beberapa kali, di C Anda mendefinisikan perulangan for (int i = 0; i < 10; i++). Contoh lain: Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 8 Dan hal yang sama diterjemahkan ke dalam C: int counter = 0; while (true) { printf("%i\n", counter); counter++; }
  • counter menyimpan nilai dalam C dan Scratch. Di C kita menetapkan int counter = 0 sebagai ganti Materi tambahan perkuliahan CS50 : Minggu 1 (perkuliahan 3 dan 4) - 9.
  • Kami menandai jenis variabel sebagai int untuk klarifikasi: i adalah bilangan bulat (dari bahasa Inggris integer, keseluruhan).
  • Tanda %i yang kita gunakan di printf pada baris empat adalah placeholder yang memberitahu kita untuk mencetak bilangan bulat desimal, sama seperti kita memberitahu printf untuk mengganti placeholder dengan nilai yang diambil oleh variabel counter.
Ekspresi Boolean
Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 10 Itu sama dengan (x < y) ((x < y) && (y < z))
Kondisi
Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 11 Dan padanan kata “sialan”: Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 12 Bagaimana dengan frasa pertama yang tidak dapat dipahami? Lebih lanjut tentang ini nanti, di bagian “Perpustakaan”. #include
Pernyataan bersyarat
Orang-orang ini memeriksa apakah suatu kondisi (ekspresi logis, pertanyaan yang hanya bisa dijawab dengan “ya” atau “tidak”) benar, dan jika demikian, maka mereka melakukan beberapa tindakan yang terkait dengan kondisi ini. Contoh dari kehidupan: jika hujan (dengan asumsi hujan) dan saya di luar (saya di luar saat hujan), saya membuka payung. if (condition) { //исполнить, если meaning истинно } Pilihan yang lebih rumit: jika kondisi terpenuhi, ambil tindakan; jika tidak, ambil tindakan lain. if (condition) { //выполнить действие } else { //выполнить другое действие, если condition ложно } Contoh: jika Anda berusia di atas 18 tahun, setujui akses. Jika kurang, jangan disetujui. Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 12
Operator seleksi
switch (n) { case const1: // если n equals const1, выполнить break; // condition совершилось — выйти из выбора case const2: // если n equals const2, выполнить break; ... default: // если n не equals ни одной из констант, выполнить break; } Contoh: jika n = 50, cetak "CS50 adalah Pengantar Ilmu Komputer I", jika n = 51, cetak "CS51 adalah Pengantar Ilmu Komputer II", jika tidak, cetak "Maaf, saya tidak paham dengan kelas itu!" switch (n) { case 50: printf("CS50 is Introduction to Computer Science I\n"); break; case 51: printf("CS51 is Introduction to Computer Science II\n"); break; default: printf("Sorry, I'm not familiar with that class!\n"); break; }
Siklus
while: memeriksa kondisi, lalu menjalankan tindakan saat kondisi benar while (condition) { // выполнять, пока истина } do/sementara berbeda dengan pertama kali ia melakukan tindakan tanpa memeriksa kondisi, dan kemudian hanya memeriksanya. Jika kondisinya benar, tindakan tersebut akan diulangi hingga kondisinya menjadi salah. do { ) // выполнять, пока истина } while (condition); Perulangan for mengulangi tindakan beberapa kali tertentu. Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 13 Perulangan dapat disarangkan satu sama lain. Dalam hal ini, pada setiap langkah perulangan luar, perulangan dalam akan dieksekusi sepenuhnya. Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 14
Tipe Data Dasar di C
tipe data dasar di C
PerpustakaanC
Anda mungkin bertanya-tanya apa arti baris pertama program C: Apa perannya dan apakah mungkin dilakukan tanpanya? Baris #include melakukan hal yang sangat penting: ia menyertakan pustaka kode yang sudah ditulis ke dalam program Anda. Nama perpustakaan yang terhubung diapit tanda kurung siku (<>) dan memiliki ekstensi (.h). Jika tidak ada perpustakaan, maka tindakan apa pun, bahkan tindakan yang paling mendasar sekalipun, harus dijelaskan berulang kali setiap saat. Perpustakaan kami terhubung#include berisi fungsi masukan/keluaran. Inilah yang memungkinkan kita menggunakan fungsi printf() untuk mencetak ke layar. Artinya, jika kita belum menulis baris #include , но оставor в теле программы функцию printf (), при попытке запуска мы бы получor ошибку! Потому что без этой библиотеки компилятор не знает, что такое printf (). Есть библиотеки стандартные, они составляют словарный запас языка. Функция printf() не встроена в компьютер, но входит в стандартную библиотеку языка C. То есть некий программист ранее написал её и включил в библиотеку. Теперь другие могут ею пользоваться, не изобретая велосипед. Whatбы компилятор её «понял», подключаем . Есть и другие стандартные библиотеки, используемые в процессе прохождения CS50. Например, библиотека строк, где описаны операции со строками (определение длины, сложение и прочее). По сравнению с другими популярными языками программирования, количество стандартных библиотек C очень невелико. Но есть самописные, чаще всего — более узкоспециализированные библиотеки. Так, библиотека была создана специально для студентов CS50. Самое время сделать важное замечание: помимо написания программ, решения задач с помощью собственного codeа, хороший разработчик обладает еще одним важным навыком: знанием инструментов, уже написанных и умением использовать их (чужие библиотеки), чтобы не тратить время на изобретение «колеса». Так, если вы находитесь в процессе решения нудной or сложной задачи, которая при этом кажется довольно распространенной, приучайтесь задавать себе вопрос: «а не написал ли её решение кто-нибудь другой?» Велики шансы, что так оно и есть, и вы можете найти эту функцию в существующей библиотеке. В технических терминах, библиотека — это двоичный файл, полученный путем объединения в коллекцию an objectных файлов, используя компоновщик. Объектные файлы — это те файлы с расширением (*.o), которые вы получаете при компиляции приложений.
Структура библиотек C
Когда программист пишет библиотеку, code распределяется по двум типам файлов — заголовочный файл (header, расширение *.h) и файл реализации (implementation, расширение *.c). Заголовочный файл содержит code, описывающий ресурсы библиотеки, которые вы можете использовать. То есть описания переменных, функций, структур, типов и прочее. Если вам интересно, что содержит та or иная библиотека, нужно заглянуть именно в заголовочный файл. В терминале CS50 IDE (и других средах Linux) вы можете вызвать приложение less для просмотра файлов и открыть с его помощью интересующую вас библиотеку: less /usr/include/stdio.h Файл откроется прямо в терминале. Правда, для новичков он будет очень трудночитаемым. Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 15 Whatбы выйти из less, нажмите q на клавиатуре. Заголовочный файл не содержит code функций, что служит примером очень важного понятия — сокрытия данных or инкапсуляции. Пользователю системы незачем знать «внутренности» библиотек, ему достаточно, чтобы она работала. Если вы прошерстите stdio.h, то не найдете там реализации printf(), хотя How её использовать, вы уже знаете. Это сделано для того, чтобы защитить данные от вмешательства, которое порой может плохо отразиться на системе. Так, если кто-то изменит реализацию функции printf() в библиотеке, это отразится на всех тех программах, которые её используют. Любознательным будет интересно, где спрятана реализация. Согласно конвенции (соглашения, принятые в мире программирования) такой code хранят в файле с расширением (*.c). После компиляции библиотеки на основе двух файлов с одинаковым именем, но разным расширением создается an objectный файл, который собран так, чтобы создать файл с двоичным codeом библиотеки. Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 16 Author библиотеки передает программисту, который хочет её использовать, два file — с двоичным codeом, а также заголовочный файл. Таким образом, файл с исходным codeом программисту не нужен. Точнее, он может быть нужен, если программист хочет что-то поменять в самой библиотеке и перекомпorровать её под собственные нужды. Whatбы воспользоваться функциями библиотеки в своей программе нужно проделать следующее: 1. Включить заголовочный файл в программу с помощью строки #include В случае стандартных библиотек достаточно указать Name библиотеки в угловых скобках: #include <Name_библиотеки.h> Если библиотека, которую вы хотите подключить, лежит в той же папке, что и ваша программа, подключайте её следующим образом: #include “Name_библиотеки.h” 2.Присоединить бинарный файл для компиляции. Это очень важный шаг, поскольку, How мы говорor выше, заголовочный файл не содержит реализации элементов библиотеки. Whatбы это сделать, нужно вызвать компилятор clang с флагом –l и идущим непосредственно за ним названием библиотеки. Например, компонуем библиотеку cs50: clang hello –lcs50 Clang — один из компиляторов. Для компиляции можно также использовать уже знакомую вам программу make. По сути, она вызывает clang с определенными аргументами командной строки.
И снова Hello C: разбор синтаксиса простейших программ
Директива #include подключает библиотеку ввода/вывода . Программы в C состоят из функций, а те — из операторов и переменных. Функция — это кусок codeа, в котором уже есть or подаются Howие-то данные, а Howие-то данные получают в результате её исполнения. Фигурные скобки { } ограничивают тело функции — описание того, что она должна делать. printf() из стандартной библиотеки stdio выводит любую строку на экран. Строки заключаются в двойные кавычки, а символ “\n” означает перевод курсора на новую строку. Пример: функция «посчитать квадрат целого числа». Передаем функции данные, в нашем случае — число, которое нужно возвести в квадрат. Затем в ней прописывается алгоритм умножения числа на самое себя, и результат этого умножения она выдает на выходе. int sqr(int a) { return a*a; } int sqr(int a) — название функции. В скобках — её аргумент a, это то, что подается на вход функции. Это How переменная в уравнении. То есть, если мы хотим узнать квадрат числа 5, то мы вызовем нашу функцию в виде sqr(5) и получим результат 25. int — тип данных (от англ. integer — целые числа). Наша функция написана так, что мы не можем вызвать её с аргументом a = 5.5. Такая попытка выдаст ошибку, поскольку 5.5 — число дробное, а наше число должно быть целым. int перед именем функции означает тип, который должна эта функция возвращать. Он не обязательно совпадает с типом аргумента. Пример: функция, которая отнимает от целого числа 0.5: double bit_less(int a) { double b; b = a – 0.5; return b; } int main (void) — название главной функции. В одной программе может быть много функций, но, чтобы начать её выполнять, нужна функция под названием main. Слово void в скобках означает, что у этой функции нет аргументов. Внимание! main всегда возвращает int, но return для неё не обязателен. Пример функции не возвращающей значения: void sayhello(void) { printf(“hello everyone!\n”); } При вызове функции в главной программе, она выведет приветствие. Давайте напишем одну программу, в которой будет несколько функций. Тех, что мы уже создали выше. Две созданные нами функции вызовем через главную функцию main(). В C, How и любом языке, есть такой элемент, How комментарий or примечание в коле программы, предназначенное не для компьютера, а для понимания людей. Например, описание, что именно делает code. Компилятор комментариев не видит. Комментирование программ — очень важный момент, поскольку порой разобраться в чужом (и даже своем) codeе очень сложно. //пример однострочного комментария /** а это – многострочного **/ #include //функция возведения в квадрат числа a int sqr(int a) { return a*a; } //выводит приветствие void test(void) { printf ("hello everyone!\n"); } //главная функция int main(void) { test(); printf("%d\n", sqr(5)); } Почти всё, что есть в этой программе вы уже видели. Две функции — возведения в квадрат и приветствия и главная функция main, где мы последовательно вызываем эти две функции. В результате выполнения программы у нас сначала выведется приветствие, на следующей строке — квадрат 5. Обратите внимание, функция test() вызывается с пустыми скобками, потому что её аргументы определены How void.
Еще немного о вводе/выводе в C
Вы, наверное, уже успели заметить странные символы %d и %f в скобках оператора printf. Дело в том, что функция printf выводит данные в следующем обобщенном виде: рrintf ("управляющая строка", аргумент1, аргумент2,...); Управляющая строка содержит компоненты трех типов:
  • символы, которые выводятся на экран дисплея;
  • спецификаторы преобразования, которые вызывают вывод на экран очередного аргумента из последующего списка;
  • управляющие символьные константы.
Спецификатор преобразования начинается со знака % и заканчивается символом, задающим преобразование. Некоторые из таких символов:
  • с: meaningм аргумента является символ;
  • d or i: десятичное целое число;
  • f: десятичное число с плавающей точкой;
  • s: строка символов.
То есть, %d означает, что на экране появится целое десятичное, а %f — десятичное с плавающей запятой. What если нам нужно, чтобы пользователь ввёл данные с клавиатуры? Для этого можно использовать функцию scanf( ), прототип которой также лежит в библиотеке stdio. Whatбы считать с экрана вещественное число, в программе нужно написать строку scanf("%d", &a); Давайте перепишем нашу программу так, чтобы пользователь сам вводил число, которое нужно возвести в квадрат. Materi tambahan perkuliahan CS50: Minggu 1 (perkuliahan 3 dan 4) - 17
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION