Maison  >  Article  >  développement back-end  >  CS- Semaine 1

CS- Semaine 1

WBOY
WBOYoriginal
2024-07-17 10:07:20709parcourir

Les machines ne comprennent que le binaire. Lorsque nous écrivons une liste d'instructions lisibles par l'homme pour un ordinateur, les machines ne comprennent que ce que nous appelons désormais le code machine. Ce code machine se compose uniquement de 1 et de 0.
Avec un programme spécial appelé Compilateur
, nous pouvons transformer le code source en code machine. On peut juger un bon code selon 3 critères :

exactitude (
    le code produit-il le résultat souhaité ?
  • ), conception (
  • la conception ou la structure du code est-elle bien structurée ?
  • ), style (
  • Le code est-il bien écrit ?
  • ).
  • Bonjour le monde!

Si nous voulons afficher du texte à l'écran dans le langage de programmation C, nous utilisons la fonction printf :


La fonction

printf imprime le texte
#include <stdio.h>

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

. Le caractère spécial qu'il contient indique au compilateur que le caractère suivant est une instruction spéciale. Et le symbole n après signifie "nouvelle ligne" (nouvelle ligne). L'expression sur la première ligne de code est une commande très spéciale qui nous indique que nous souhaitons utiliser les capacités d'une bibliothèque nommée stdio.h. Cette bibliothèque nous permet d'utiliser la fonction printf.
Bibliothèques
est une collection de fonctions prêtes à l'emploi que nous pouvons utiliser dans notre code. Variables

Écrivons du code en C qui demande à l'utilisateur quel est son nom et le salue :


Les capacités de la bibliothèque cs50.h, spécialement développée pour le cours CS50, sont utilisées tout au long de ce cours. L'une d'elles est la fonction get_string. La fonction get_string permet de récupérer le texte saisi par l'utilisateur.
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    string answer = get_string("Ismingiz nima? ");
    printf("Assalomu alaykum, %s\n", answer);
}
La réponse est un endroit réservé pour mémoriser un texte spécial saisi par l'utilisateur, que nous appelons une variable. la réponse est de type

string
. Il existe également de nombreux autres types de données tels que int, bool, char, etc. %s est un espace réservé appelé code de format
qui indique à la fonction printf de se préparer à accepter une variable de chaîne. Il existe également des codes de format pour d'autres types de données, par exemple : %i - pour
int
(entiers). Opérateurs conditionnels

Demandons à l'utilisateur de saisir des variables x et y de type int et de comparer les nombres saisis les uns par rapport aux autres :


Ici, nous créons deux variables de type 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

), les variables x et y. Leurs valeurs sont renseignées à l'aide de la fonction get_int de la bibliothèque cs50.h. A l'aide de l'opérateur conditionnel, on compare les valeurs de x et y et on affiche un message à l'écran en fonction du résultat. Le

Schéma fonctionnel

est un moyen de vérifier le fonctionnement d'un programme informatique. Avec cette méthode, nous pouvons vérifier l'efficacité de notre code. Voyons le schéma fonctionnel de notre code ci-dessus :

Conditional 1Nous pouvons améliorer le programme en codant comme suit :


Tous les cas possibles sont désormais envisagés. Voyons son schéma fonctionnel :
#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 Opérateurs de répétition

Émettons

"miaou"

à l'écran 3 fois :

Le code que nous avons écrit fonctionne correctement, mais nous pouvons améliorer notre programme en évitant les répétitions :
#include <stdio.h>

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


En cela, la variable i de type int est créée et reçoit la valeur 3. Puis j'ai &Lt ; Une boucle while est créée et dure 3 heures. Chaque fois que nous utilisons l'expression i++, nous incrémentons i de un et la boucle s'arrête lorsque i = 3.
#include <stdio.h>

int main(void)
{
    int i = 0;
    while (i < 3)
    {
        printf("meow\n");
        i++;
    }
}
Nous pouvons encore améliorer la conception de notre programme en utilisant la boucle for :



La boucle

for prend trois arguments.
#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        printf("meow\n");
    }
}
Le premier argument : int i = 0 initialise notre compteur.

Deuxième argument : je &Lt ; 3 - état vérifié.
Enfin, l'argument i++ signifie qu'à chaque fois que notre nombre i augmente de un.
Nous pouvons également créer notre propre fonction :


void signifie que la fonction ne renvoie aucune valeur. Entre parenthèses (vide) - signifie que la fonction n'accepte aucun paramètre.
void meow(void)
{
    printf("meow\n");
}
Nous utiliserons cette fonction miaou créée dans la fonction principale :


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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Makefile - .h - .c exemple.Article suivant:Makefile - .h - .c exemple.