首页  >  文章  >  后端开发  >  CS-第 1 周

CS-第 1 周

WBOY
WBOY原创
2024-07-17 10:07:20709浏览

机器只理解二进制。当我们为计算机编写人类可读的指令列表时,机器只能理解我们现在所说的机器代码。该机器码仅由 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 库的功能将在本课程中使用。其中之一是 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);
}
答案是一个保留的地方,用于记住用户输入的特殊文本,我们称之为变量。答案的类型为

字符串
。此外,还有许多其他数据类型,例如 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

),变量 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 循环需要三个参数。
#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        printf("meow\n");
    }
}
第一个参数:int i = 0 初始化我们的计数器。

第二个参数: i 最后,i++ 参数意味着每次我们的数字 i 增加一。
我们还可以创建自己的函数:


void 表示该函数不返回任何值。括号中 (void) - 表示该函数不接受任何参数。
void meow(void)
{
    printf("meow\n");
}
我们将在主函数中使用这个创建的 meow 函数:


#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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:Makefile - .h - .c exemple.下一篇:C Basics