Heim  >  Artikel  >  Backend-Entwicklung  >  CS – Woche 1

CS – Woche 1

WBOY
WBOYOriginal
2024-07-17 10:07:20709Durchsuche

Maschinen verstehen nur Binär. Wenn wir eine Liste menschenlesbarer Anweisungen für einen Computer schreiben, verstehen Maschinen nur das, was wir heute Maschinencode nennen. Dieser Maschinencode besteht nur aus Einsen und Nullen.
Mit einem speziellen Programm namens Compiler
können wir den Quellcode in Maschinencode umwandeln. Wir können guten Code anhand von drei Kriterien beurteilen:

Korrektheit (
    Erzeugt der Code das gewünschte Ergebnis?
  • ), Design (
  • Ist das Codedesign oder die Codestruktur gut strukturiert?
  • ), Stil (
  • Wie schön ist der Code geschrieben?
  • ).
  • Hallo Welt!

Wenn wir in der Programmiersprache C Text auf dem Bildschirm ausgeben möchten, verwenden wir die printf-Funktion:


Die

printf-Funktion druckt den Text
#include <stdio.h>

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

. Das darin enthaltene Sonderzeichen teilt dem Compiler mit, dass das nächste Zeichen eine spezielle Anweisung ist. Und das Symbol n dahinter bedeutet "neue Zeile" (neue Zeile). Der Ausdruck in der ersten Codezeile ist ein ganz besonderer Befehl, der besagt, dass wir die Funktionen einer Bibliothek namens stdio.h nutzen möchten. Diese Bibliothek ermöglicht uns die Verwendung der Funktion printf.
Bibliotheken
ist eine Reihe vorgefertigter Funktionen, die wir in unserem Code verwenden können. Variablen

Lassen Sie uns einen Code in C schreiben, der den Benutzer nach seinem Namen fragt und ihn begrüßt:


In diesem Kurs werden die Funktionen der speziell für den CS50-Kurs entwickelten Bibliothek cs50.h genutzt. Eine davon ist die Funktion get_string. Die Funktion get_string wird verwendet, um den vom Benutzer eingegebenen Text abzurufen.
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    string answer = get_string("Ismingiz nima? ");
    printf("Assalomu alaykum, %s\n", answer);
}
Antwort ist ein Platz, der für die Speicherung eines speziellen, vom Benutzer eingegebenen Textes reserviert ist, den wir Variable nennen. Die Antwort ist vom Typ

string
. Außerdem gibt es viele andere Datentypen wie int, bool, char usw. %s ist ein Platzhalter namens Formatcode
, der die printf-Funktion anweist, sich auf die Annahme einer Zeichenfolgenvariablen vorzubereiten. Es gibt auch Formatcodes für andere Datentypen, zum Beispiel: %i – für
int
(Ganzzahlen). Bedingte Operatoren

Bitten wir den Benutzer, x- und y-Variablen vom Typ int einzugeben und die eingegebenen Zahlen miteinander zu vergleichen:


Hier erstellen wir zwei Variablen vom Typ 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

), Variablen x und y. Ihre Werte werden mit der Funktion get_int der Bibliothek cs50.h gefüllt. Mit dem bedingten Operator vergleichen wir die Werte von x und y und zeigen je nach Ergebnis eine Meldung auf dem Bildschirm an. Mit dem

Blockdiagramm

können wir überprüfen, wie ein Computerprogramm funktioniert. Mit dieser Methode können wir die Effizienz unseres Codes überprüfen. Sehen wir uns das Blockdiagramm unseres Codes oben an:

Conditional 1Wir können das Programm verbessern, indem wir wie folgt programmieren:


Alle möglichen Fälle werden nun berücksichtigt. Sehen wir uns das Blockdiagramm an:
#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 Wiederholungsoperatoren

Lassen Sie uns dreimal

„Miau“

auf dem Bildschirm ausgeben:

Der von uns geschriebene Code funktioniert korrekt, aber wir können unser Programm verbessern, indem wir Wiederholungen darin vermeiden:
#include <stdio.h>

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


Dabei wird die Variable i vom Typ int erstellt und mit dem Wert 3 versehen. Dann habe ich < Es wird eine While-Schleife erstellt, die eine Zeitdauer von 3 hat. Jedes Mal, wenn wir den i++-Ausdruck verwenden, erhöhen wir i um eins und die Schleife stoppt, wenn i = 3.
#include <stdio.h>

int main(void)
{
    int i = 0;
    while (i < 3)
    {
        printf("meow\n");
        i++;
    }
}
Wir können das Design unseres Programms weiter verbessern, indem wir die for-Schleife verwenden:



Die

for-Schleife benötigt drei Argumente.
#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        printf("meow\n");
    }
}
Das erste Argument: int i = 0 initialisiert unseren Zähler.

Zweites Argument: i < 3 - geprüfter Zustand.
Schließlich bedeutet das i++-Argument, dass sich unsere Zahl jedes Mal um eins erhöht.
Wir können auch unsere eigene Funktion erstellen:


void bedeutet, dass die Funktion keinen Wert zurückgibt. In Klammern (ungültig) – bedeutet, dass die Funktion keine Parameter akzeptiert.
void meow(void)
{
    printf("meow\n");
}
Wir werden diese erstellte Meow-Funktion innerhalb der Hauptfunktion verwenden:


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

Das obige ist der detaillierte Inhalt vonCS – Woche 1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn