CS - 第 1 週

WBOY
リリース: 2024-07-17 10:07:20
オリジナル
784 人が閲覧しました

機械はバイナリのみを理解します。私たちが人間が判読できる命令のリストをコンピューターに作成すると、機械は現在マシンコードと呼ばれるものだけを理解します。この機械語コードは 1 と 0 のみで構成されます。
コンパイラ
と呼ばれる特別なプログラムを使用すると、ソース コードをマシン コードに変換できます。 良いコードは 3 つの基準に従って判断できます:

正確さ (
    コードは望ましい結果を生成しますか?
  • )、 設計 (
  • コード設計または構造は適切に構造化されていますか?
  • )、 スタイル (
  • コードはどの程度うまく書かれていますか?
  • )。
  • 「こんにちは世界」

C プログラミング言語で画面にテキストを出力したい場合は、printf 関数を使用します。


printf 関数は、テキスト
#include <stdio.h>

int main(void)
{
    printf("salom, dunyo\n")
}
ログイン後にコピー
hello, world

を出力します。その中の特殊文字は、次の文字が特殊な命令であることをコンパイラに伝えます。そして、その後の記号 n は、「改行」 (改行) を意味します。 コードの最初の行の式は、stdio.h というライブラリの機能を使用することを示す非常に特殊なコマンドです。このライブラリを使用すると、関数 printf を使用できるようになります。
ライブラリ
は、コードで使用できる既製の関数のコレクションです。 変数

ユーザーに名前を尋ねて挨拶するコードを C で書いてみましょう。


CS50 コース用に特別に開発された cs50.h ライブラリの機能は、このコース全体で使用されます。その 1 つは get_string 関数です。 get_string 関数は、ユーザーが入力したテキストを取得するために使用されます。
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    string answer = get_string("Ismingiz nima? ");
    printf("Assalomu alaykum, %s\n", answer);
}
ログイン後にコピー
答えは、ユーザーが入力した特別なテキスト (変数と呼ばれます) を記憶するために予約された場所です。答えのタイプは

string
です。また、intboolchar など、他にも多くのデータ型があります。 %s は フォーマット コード
と呼ばれるプレースホルダーで、printf 関数に文字列変数を受け入れる準備をするように指示します。 他のデータ型の形式コードもあります。例: %i -
int
(整数). の場合 条件演算子

ユーザーに int 型の x 変数と y 変数を入力してもらい、入力した数値を相互に比較してもらいます。


ここでは、int 型 (
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int x = get_int("x ni kiriting: ");
    int y = get_int("y ni kiriting: ");

    if (x < y)
    {
        printf("x soni y sonidan kichik\n");
    }
}
ログイン後にコピー
integer

) の 2 つの変数、変数 x と y を作成しています。それらの値は、cs50.h ライブラリの get_int 関数を使用して設定されます。条件演算子を使用して、x と y の値を比較し、結果に応じて画面にメッセージを表示します。

ブロック図

は、コンピューター プログラムがどのように動作するかを確認する方法です。このメソッドを使用すると、コードの効率をチェックできます。 上記のコードのブロック図を見てみましょう:

Conditional 1次のようにコーディングすることでプログラムを改善できます:


現在、考えられるすべてのケースが検討されています。そのブロック図を見てみましょう:
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int x = get_int("x ni kiriting: ");
    int y = get_int("y ni kiriting: ");

    if (x < y)
    {
        printf("x soni y sonidan kichik\n");
    }
    else if (x > y)
    {
        printf("x soni y sonidan katta\n");
    }
    else
    {
        printf("x soni y soniga teng\n");
    }
}
ログイン後にコピー


Conditional 2 繰り返し演算子

画面に

「にゃー」

を3回出力しましょう:

私たちが書いたコードは正しく動作しますが、プログラム内の繰り返しを避けることでプログラムを改善できます。
#include <stdio.h>

int main(void)
{
    printf("meow\n");
    printf("meow\n");
    printf("meow\n");
}
ログイン後にコピー


ここでは、int 型の変数 i が作成され、値 3 が与えられます。それから私は#include int main(void) { int i = 0; while (i < 3) { printf("meow\n"); i++; } } for ループを使用すると、プログラムの設計をさらに改善できます。



for ループは 3 つの引数を取ります。
#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        printf("meow\n");
    }
}
ログイン後にコピー
最初の引数: int i = 0 はカウンターを初期化します。

2 番目の引数: i 最後に、i++ 引数は、数値 i が 1 増加するたびに意味します。
独自の関数を作成することもできます:


void は、関数が値を返さないことを意味します。括弧内 (空白) - 関数がパラメーターを受け入れないことを意味します。
void meow(void)
{
    printf("meow\n");
}
ログイン後にコピー
この作成したニャー関数をメイン関数内で使用します:


#include 

void 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.

Arifmetik operatorlar va akstraksiya

Keling, C tilida kalkulyator yasaymiz:

#include <cs50.h>
#include <stdio.h>

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 operatorlar kompilyator tomonidan qo'llab-quvvatlanadigan matematik operatsiyalardir. C tilida arifmetik operatorlarga quyidagilar kiradi:

  • + - qo'shish uchun;
  • - - ayirish uchun;
  • * - ko'paytirish uchun;
  • / - bo'linish uchun;
  • % - bir sonni ikkinchi songa bo'lgandagi qoldiqni hisoblash uchun.

Abstraksiya - bu muammoni kichik-kichik bo'laklarga bo'lib hal qilish orqali kodimizni soddalashtirish san'ati.
Biz yuqoridagi kodimizni quyidagicha abstraktlashimiz mumkin:

#include <cs50.h>
#include <stdio.h>

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 (izohlar)

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 <cs50.h>
#include <stdio.h>

int main(void)
{
    // Musbat butun son kiritilsin
    int n;
    do
    {
        n = get_int("Musbat butun son kiriting: ");
    }
    while (n < 1);
}
ログイン後にコピー

Ma'lumot turlari

Ma'lumotlar turlari o'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:

  • bool: rost (true) yoki yolg'on (false) kabi mantiqiy qiymatlarni saqlashi mumkin.
  • char: faqat bitta belgini saqlashi mumkin.
  • float: o'nlik qiymatlari bo'lgan haqiqiy son.
  • int: kasrsiz butun son.
  • long: int dan kattaroq butun sonni saqlashi mumkin, chunki u ko'proq bit ishlatadi.
  • string: belgilar ketma-ketligini saqlashi mumkin (masalan, so'z).

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート