bismi allāhi alrāḥmani alrāḥīm
機器只理解二進制。當我們為電腦編寫人類可讀的指令清單時,機器只能理解我們現在所說的機器碼。此機器碼僅由 1 和 0 組成。
使用一個名為Compiler的特殊程序,我們可以將原始碼轉換為機器碼。
我們可以根據3個基礎來評價一個好的程式碼:
如果我們想用 C 程式語言在螢幕上列印一些文本,我們使用 printf 函數:
printf 函數列印文字hello, world。其中的特殊字元告訴編譯器下一個字元是特殊指令。後面的n符號表示「換行」(換行)。
程式碼第一行的表達式是一個非常特殊的指令,表示我們想要使用名為 stdio.h 的函式庫的功能。這個函式庫允許我們使用 printf 函數。
Libraries是一組我們可以在程式碼中使用的現成函數。
讓我們用 C 語言寫一些程式碼,詢問使用者他的名字是什麼並向他打招呼:
專門為 CS50 課程開發的 cs50.h 庫的功能將在整個課程中使用。其中之一是 get_string 函數。 get_string 函數用於檢索使用者輸入的文字。
答案是一個保留的地方,用於記住用戶輸入的特殊文本,我們稱之為變數。答案是string型。此外,還有許多其他資料類型,例如int、bool、char等。
%s 是一個名為格式代碼的佔位符,它告訴 printf 函數準備接受某些字串變數。
還有其他資料類型的格式代碼,例如:
%i 代表int(整數)。
讓我們要求使用者輸入 int 類型的 x 和 y 變量,並將輸入的數字相互比較:
這裡我們建立兩個 int 類型的變數(整數),x 和 y。它們的值是使用cs50.h庫的get_int函數填充的。使用條件運算符,我們將 x 和 y 的值相互比較,並根據結果在螢幕上顯示一則訊息。
框圖是我們檢查電腦程式如何運作的一種方式。使用這個方法,我們可以檢查程式碼的效率。
讓我們看看上面程式碼的框圖:
我們可以透過以下編碼來改進程序:
現在考慮所有可能的情況。我們來看看它的框圖:
讓我們向螢幕輸出訊息「喵」3 次:
我們寫的程式碼可以正確運行,但是我們可以透過避免重複來改進我們的程式:
在此,創建了 int 類型的變數 i 並賦予其值 3。那我 我們可以透過使用for循環進一步改進我們的程式設計:
for 迴圈包含三個參數。
第一個參數:int i = 0 從零開始計數器。
第二個參數: i 最後,i++ 參數意味著每次我們的數字 i 增加一。
我們也可以建立自己的函數:
void - 表示函數不傳回任何值。括號中 (void) - 表示函數不接受任何參數。
我們在 main 函數中使用這個建立的 meow 函數:
#includevoid meow(void); int main(void) { for (int i = 0; i < 3; i++) { meow(); } } void meow(void) { printf("meow\n"); }
meow funksiyasini asosiy funksiya ichida chaqira olishimiz uchun funksiya prototipi kodning yuqori qismida void meow(void) sifatida berilgan.
Keling, C tilida kalkulyator yasaymiz:
#include#include int main(void) { // x qiymati kiritilsin int x = get_int("x: "); // y qiymati kiritilsin int y = get_int("y: "); // Qo'shish amalini bajarish printf("%i\n", x + y); }
get_int funktsiyasi yordamida foydalanuvchidan butun son bo'lgan x va y o'zgaruvchilariga qiymat berishi so'ralyabdi. Keyin printf funksiyasi butun son uchun format kodi - %i belgisi yordamida x + y qiymatini chop etadi.
Arifmetik operatorlarkompilyator tomonidan qo'llab-quvvatlanadigan matematik operatsiyalardir. C tilida arifmetik operatorlarga quyidagilar kiradi:
Abstraksiya- bu muammoni kichik-kichik bo'laklarga bo'lib hal qilish orqali kodimizni soddalashtirish san'ati.
Biz yuqoridagi kodimizni quyidagicha abstraktlashimiz mumkin:
#include#include int add(int a, int b); int main(void) { // x qiymati kiritilsin int x = get_int("x: "); // y qiymati kiritilsin int y = get_int("y: "); // Qo'shish amalini bajarish printf("%i\n", add(x, y)); } int add(int a, int b) { return a + b; }
Bunda parametr sifatida a va b butun sonlarini qabul qilib oladigan va ularning yig'indisini qaytaradigan alohida add funksiyasi e'lon qilingan va asosiy funksiya ichida argument sifatida x va y butun sonlarini olib add(x, y) funksiyamiz chaqirilyabdi.
Kommentlar- kompyuter dasturining asosiy qismlari bo'lib, yozgan kodimiz nima vazifa bajarayotganini ifodalovchi, boshqa dasturchilarga, shuningdek o'zimizga tushunarli hamda qisqa qilib qoldirgan izohlarimizdir. Kommentni yozish uchun shunchaki ikkita // beligisidan foydalanamiz:
#include#include int main(void) { // Musbat butun son kiritilsin int n; do { n = get_int("Musbat butun son kiriting: "); } while (n < 1); }
Ma'lumotlar turlario'zgaruvchida saqlanishi mumkin bo'lgan ma'lumotlar turini belgilaydi. Misol uchun, o'zgaruvchilar raqamlar, belgilar yoki mantiqiy qiymatlarni saqlashi mumkin. O'zgaruvchining turi kompyuterga ushbu ma'lumotlarni qanday boshqarishni aytadi.
C tilidagi umumiy maʼlumotlar turlari:
Har bir turning o'ziga xos chegaralari bor. Misol uchun, xotiradagi cheklovlar tufayli int ning eng yuqori qiymati 4294967295 bo'lishi mumkin. Agar biz int ni uning eng yuqori qiymatidan o'tkazib sanashga harakat qilsak, bu o'zgaruvchida noto'g'ri qiymat saqlanishiga (integer overflow) olib keladi.
Xotirani noto'g'ri ishlatish kodimizdagi xatolar yoki muammolarga olib kelishi mumkin. Muammolarni oldini olish uchun biz to'g'ri ma'lumot turidan foydalanayotganimizga ishonch hosil qilishimiz kerak.
Ushbu maqolada CS50x 2024 manbasidan foydalanilgan.
以上是CS-第 1 週的詳細內容。更多資訊請關注PHP中文網其他相關文章!