бисами аллахи альрахмани альрахим
Машины понимают только двоичный код. Когда мы пишем список удобочитаемых инструкций для компьютера, машины понимают только то, что мы сейчас называем машинным кодом. Этот машинный код состоит только из 1 и 0.
Используя специальную программу, называемую компилятором, мы можем превратить исходный код в машинный код.
Хороший код можно оценить по трем критериям:
Если мы хотим напечатать на экране некоторый текст на языке программирования C, мы используем функцию printf:
#includeФункцияint main(void) { printf("salom, dunyo\n") }
printf печатает текст привет, мир. Специальный символ \ сообщает компилятору, что следующий символ является специальной инструкцией. А следующий символ n означает "новая строка" (новая строка).
Выражение в первой строке кода — это особая команда, которая сообщает, что мы хотим использовать возможности библиотеки под названием stdio.h. Эта библиотека позволяет нам использовать функцию printf.
Библиотеки — это набор готовых функций, которые мы можем использовать в нашем коде.
Давайте напишем код на C, который приветствует пользователя, спрашивая его имя:
#include#include int main(void) { string answer = get_string("Ismingiz nima? "); printf("Assalomu alaykum, %s\n", answer); }
На протяжении всего курса будут использоваться возможности библиотеки cs50.h, разработанной специально для курса CS50. Одна из них — функция get_string. Функция get_string используется для получения текста, введенного пользователем.
ответ — это место, зарезервированное для запоминания специального введенного пользователем текста, который мы называем переменной. ответ имеет тип строка. Также существует множество типов данных, помимо int, bool, char и т. д.
%s — это заполнитель, называемый кодом формата, который сообщает функции printf подготовиться к принятию некоторой строковой переменной.
Существуют также коды форматов для других типов данных, например:
%i предназначен для int (целые числа).
Давайте попросим пользователя ввести переменные x и y типа int и сравнить введенные числа друг с другом:
#include#include int main(void) { int x = get_int("x ni kiriting: "); int y = get_int("y ni kiriting: "); if (x Здесь мы создаем две переменные типа int (integer), x и y. Их значения заполняются с помощью функции get_int библиотеки cs50.h. С помощью условного оператора мы сравниваем значения x и y и в зависимости от результата выводим на экран сообщение.
Блок-диаграмма — это способ проверить, как работает компьютерная программа. С помощью этого метода мы можем проверить эффективность нашего кода.
Давайте посмотрим блок-схему нашего кода выше:Мы можем улучшить программу, написав следующий код:
#include#include 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 katta\n"); } else { printf("x soni y soniga teng\n"); } } Сейчас рассматриваются все возможные случаи. Давайте посмотрим его блок-схему:
Операторы повторения
Давайте напечатаем "мяу" 3 раза:
#includeint main(void) { printf("meow\n"); printf("meow\n"); printf("meow\n"); } Написанный нами код работает корректно, но мы можем улучшить нашу программу, избегая в ней повторов:
#includeint main(void) { int i = 0; while (i При этом создается переменная i типа int и ей присваивается значение 3. Затем создается цикл while, который продолжается до i Мы можем еще больше улучшить дизайн нашей программы, используя цикл for:
#includeint main(void) { for (int i = 0; i цикл for принимает три аргумента.
Первый аргумент: int i = 0 инициализирует наш счетчик.
Второй аргумент: i Наконец, аргумент i сообщает нам, что каждый раз i увеличивается на единицу.
Мы также можем создать собственную функцию:void meow(void) { printf("meow\n"); }void — означает, что функция не возвращает никакого значения. В скобках (void) — означает, что функция не принимает никаких параметров
Мы используем эту созданную функцию meow внутри основной функции:#includevoid meow(void); int main(void) { for (int i = 0; i Прототип функции указан как void meow(void) в верхней части кода, чтобы мы могли вызывать функцию meow внутри основной функции.
Арифметические операторы и абстракция
Давайте сделаем калькулятор на C:
#include#include 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 просит пользователя ввести значения целочисленных переменных x и y. Затем функция printf печатает значение x y, используя код формата целого числа — символ %i.
Арифметические операторы — это математические операции, поддерживаемые компилятором. К арифметическим операторам в C относятся:
- - добавить;
- - - вычесть;
- * - умножить;
- / - для деления;
- % — для вычисления остатка при делении одного числа на другое.
Абстракция – это искусство упрощения кода путем разбиения задачи на более мелкие части.
Мы можем абстрагировать приведенный выше код следующим образом:#include#include 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; } При этом объявляется отдельная функция add, которая принимает целые числа a и b в качестве параметров и возвращает их сумму, а наша функция add(x, y) вызывается, принимая целые числа x и y в качестве аргументов в основной функции.
Комментарии
Комментарии — это основные части компьютерной программы, комментарии, которые мы делаем ясными и краткими для других программистов, а также для самих себя, объясняя, что делает код, который мы пишем. Мы просто используем два тега // для написания комментария:
#include#include int main(void) { // Musbat butun son kiritilsin int n; do { n = get_int("Musbat butun son kiriting: "); } while (n Типы данных
Типы данных указывает тип данных, которые могут храниться в переменной. Например, переменные могут хранить числа, символы или логические значения. Тип переменной сообщает компьютеру, как обрабатывать эти данные.
Общие типы данных в C:
- bool: может содержать логические значения, такие как true (true) или false (false).
- char: может хранить только один символ.
- float: действительное число с десятичными значениями.
- int: целое число без десятичной точки.
- long: может хранить целое число больше, чем int, поскольку оно использует больше битов.
- строка: может хранить последовательность символов (например, слово).
Каждый вид имеет свои пределы. Например, из-за ограничений памяти максимальное значение int может составлять 4294967295. Если мы попытаемся посчитать целое число больше его максимального значения, это приведет к тому, что переменная сохранит недопустимое значение (целочисленное переполнение).
Неправильное использование памяти может вызвать ошибки или проблемы в нашем коде. Чтобы избежать проблем, нам необходимо убедиться, что мы используем правильный тип данных.В этой статье используется исходный код CS50x 2024 года.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3