Rumah  >  Artikel  >  pembangunan bahagian belakang  >  CS- Minggu 1

CS- Minggu 1

WBOY
WBOYasal
2024-07-17 10:07:20709semak imbas

Mesin hanya memahami binari. Apabila kita menulis senarai arahan yang boleh dibaca manusia untuk komputer, mesin hanya memahami apa yang kini kita panggil kod mesin. Kod mesin ini hanya terdiri daripada 1s dan 0s.
Dengan program khas yang dipanggil Pengkompil
, kita boleh menukar kod sumber kepada kod mesin. Kita boleh menilai kod yang baik mengikut 3 kriteria:

ketepatan (
    adakah kod menghasilkan hasil yang diingini?
  • ), reka bentuk (
  • adakah reka bentuk atau struktur kod berstruktur dengan baik?
  • ), gaya (
  • Seberapa baik kod ditulis?
  • ).
  • Hello Dunia!

Jika kami ingin mengeluarkan beberapa teks ke skrin dalam bahasa pengaturcaraan C, kami menggunakan fungsi printf:


Fungsi

printf mencetak teks
#include <stdio.h>

int main(void)
{
    printf("salom, dunyo\n")
}
hello, dunia

. Watak istimewa di dalamnya memberitahu pengkompil bahawa watak seterusnya adalah arahan khas. Dan simbol n selepasnya bermaksud "baris baharu" (baris baharu). Ungkapan pada baris pertama kod ialah perintah yang sangat istimewa yang mengatakan kami ingin menggunakan keupayaan perpustakaan yang dipanggil stdio.h. Pustaka ini membenarkan kami menggunakan fungsi printf.
Perpustakaan
ialah satu set fungsi siap pakai yang boleh kami gunakan dalam kod kami. Pembolehubah

Mari kita tulis beberapa kod dalam C yang menanyakan pengguna apa namanya dan memberi salam kepadanya:


Keupayaan perpustakaan cs50.h, yang dibangunkan khas untuk kursus CS50, digunakan sepanjang kursus ini. Salah satunya ialah fungsi get_string. Fungsi get_string digunakan untuk mendapatkan semula teks yang dimasukkan oleh pengguna.
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    string answer = get_string("Ismingiz nima? ");
    printf("Assalomu alaykum, %s\n", answer);
}
jawapan ialah tempat yang dikhaskan untuk mengingati teks khas yang dimasukkan pengguna, yang kami panggil pembolehubah. jawapan adalah daripada jenis

rentetan
. Selain itu, terdapat banyak jenis data lain seperti int, bool, char, dsb. %s ialah pemegang tempat yang dipanggil kod format
yang memberitahu fungsi printf untuk bersedia menerima beberapa pembolehubah rentetan. Terdapat juga kod format untuk jenis data lain, contohnya: %i - untuk
int
(integer). Pengendali bersyarat

Mari minta pengguna memasukkan pembolehubah x dan y jenis int dan bandingkan nombor input antara satu sama lain:


Di sini kita mencipta dua pembolehubah jenis 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

), pembolehubah x dan y. Nilai mereka diisi menggunakan fungsi get_int pustaka cs50.h. Menggunakan pengendali bersyarat, kami membandingkan nilai x dan y dan memaparkan mesej pada skrin bergantung pada hasilnya.

Gambar rajah sekat

ialah cara kita boleh menyemak cara atur cara komputer berfungsi. Dengan kaedah ini kami boleh menyemak kecekapan kod kami. Mari lihat gambarajah blok kod kami di atas:

Conditional 1Kami boleh menambah baik program dengan pengekodan seperti berikut:


Semua kemungkinan kes kini dipertimbangkan. Jom lihat gambarajah bloknya:
#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 Pengendali ulangan

Mari keluarkan

"meow"

ke skrin 3 kali:

Kod yang kami tulis berfungsi dengan betul, tetapi kami boleh menambah baik program kami dengan mengelakkan pengulangan di dalamnya:
#include <stdio.h>

int main(void)
{
    printf("meow\n");
    printf("meow\n");
    printf("meow\n");
}


Dalam hal ini, pembolehubah i jenis int dicipta dan diberi nilai 3. Kemudian saya < Gelung sementara dibuat yang berlangsung selama 3 masa. Setiap kali menggunakan ungkapan i++, kami menambah i dengan satu, dan gelung berhenti apabila i = 3.
#include <stdio.h>

int main(void)
{
    int i = 0;
    while (i < 3)
    {
        printf("meow\n");
        i++;
    }
}
Kami boleh menambah baik lagi reka bentuk program kami dengan menggunakan gelung for:



Gelung

untuk mengambil tiga argumen.
#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        printf("meow\n");
    }
}
Argumen pertama: int i = 0 memulakan pembilang kami.

Hujah kedua: i < 3 - keadaan diperiksa.
Akhir sekali, hujah i++ bermaksud setiap kali bilangan i kita bertambah satu.
Kami juga boleh mencipta fungsi kami sendiri:


kosong bermakna fungsi itu tidak mengembalikan sebarang nilai. Dalam kurungan (kosong) - bermakna fungsi itu tidak menerima sebarang parameter.
void meow(void)
{
    printf("meow\n");
}
Kami akan menggunakan fungsi meow yang dicipta ini di dalam fungsi utama:


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

Atas ialah kandungan terperinci CS- Minggu 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Makefile - .h - .c contoh.Artikel seterusnya:Makefile - .h - .c contoh.