>  기사  >  백엔드 개발  >  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);
}
대답은 우리가 변수라고 부르는 특별한 사용자 입력 텍스트를 기억하기 위해 예약된 장소입니다. 답변은

문자열
유형입니다. 그 밖에도 int, bool, char 등 다양한 데이터 유형이 있습니다. %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 반복 연산자

"meow"

를 화면에 3번 출력해 보겠습니다.

우리가 작성한 코드는 올바르게 작동하지만 반복을 피함으로써 프로그램을 개선할 수 있습니다.
#include <stdio.h>

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


여기서 int 유형의 변수 i가 생성되고 값 3이 지정됩니다. 그러면 나는 < 3시간 동안 지속되는 while 루프가 생성됩니다. i++ 표현식을 사용할 때마다 i를 하나씩 증가시키고 i = 3일 때 루프가 중지됩니다.
#include <stdio.h>

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 < 3 - 상태를 확인했습니다.
마지막으로 i++ 인수는 숫자 i가 1씩 증가할 때마다 의미합니다.
우리는 또한 우리만의 함수를 만들 수도 있습니다:


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 예.다음 기사:Makefile - .h - .c 예.