реклама
Бургер менюБургер меню

Зара Горенко – Мыслим на Си (страница 6)

18

Плюсы: ничего не нужно устанавливать, работает даже на планшете.

Минусы: нет доступа к системным вызовам, ограниченное время выполнения.

Часть 7: Первый эксперимент – проверяем, что всё работает

Давайте убедимся, что компилятор работает.

Шаг 1: Создайте файл

Откройте любой текстовый редактор:

Linux: nano, gedit, vim

Windows (WSL): nano (в терминале WSL)

macOS: TextEdit, nano, vim

Онлайн: встроенный редактор Replit или OnlineGDB

Создайте файл test.c:

bashnano test.c

Шаг 2: Напишите код

c#include <stdio.h> int main() { printf("Компилятор работает!\n"); printf("Я готов учить Си.\n"); return 0; }

Сохраните:

В nano: Ctrl + O (сохранить), Enter, Ctrl + X (выход)

В vim: нажмите Esc, введите :wq, Enter

В графических редакторах: Ctrl + S или Cmd + S

Шаг 3: Скомпилируйте

bashgcc test.c -o test

Что это значит?

gcc – запуск компилятора

test.c – ваш исходный файл

–o test – опция "output" (выход): назвать программу test

Если всё правильно, ничего не выведется – это хорошо! Компилятор молчит, если нет ошибок.

Если есть ошибки – компилятор скажет:

texttest.c:3:5: error: expected ';' before 'return'

Читайте сообщения. Они говорят, где ошибка (строка 3, символ 5) и что не так (пропущена точка с запятой).

Шаг 4: Запустите

bash./test

Выведет:

textКомпилятор работает! Я готов учить Си.

Поздравляю! Вы только что написали, скомпилировали и запустили программу на Си.

Часть 8: Философия экспериментов – ломайте без страха

Папа сказал мне когда-то: "Ты можешь сломать этот компьютер. Можешь удалить всю систему. Это нормально. Так учатся".

Самое важное в изучении Си – не бояться ошибок.

Segmentation fault? Хорошо. Вы узнали, что обратиться к памяти, которой нет, нельзя.

Программа зависла? Отлично. Вы узнали, что бесконечный цикл – это плохо.

Компилятор ругается? Прекрасно. Вы узнали правила синтаксиса.

Каждая ошибка – урок. Каждый краш – опыт.

Если вы используете Live USB:

При перезагрузке всё вернётся к началу. Можно экспериментировать, удалять системные файлы, выполнять rm -rf / (не делайте это на установленной системе!). Ничего страшного не случится – перезагрузились, и система снова чистая.

Если вы используете WSL или установленный Linux:

Худшее, что может случиться – вы сломаете свой домашний каталог. Системные файлы защищены (нужен sudo). А домашний каталог – это просто ваши файлы. Удалили программу? Переустановите. Сломали настройки? Удалите конфигурационные файлы.

Если вы используете онлайн-компилятор:

Сломать вообще ничего нельзя – это просто сервер где-то в интернете. Пишите что угодно, экспериментируйте сколько хотите.

Заключение части

Теперь у вас есть:

Компилятор GCC – переводчик с Си на язык машины

Текстовый редактор – где писать код

Терминал – где компилировать и запускать программы

Среда для экспериментов – Linux, WSL, Live USB или онлайн-компилятор

Вы проверили, что всё работает. Написали первую программу. Скомпилировали. Запустили.

Вы готовы учить Си.

В следующей части мы разберём программу "Hello, World" построчно – что означает каждый символ, каждое слово, каждая скобка. Вы поймёте, как устроена программа изнутри.

Но прежде – практика. Измените программу test.c. Пусть она выводит ваше имя, возраст, любимое число. Пять разных строк. Скомпилируйте снова. Запустите.

Привыкайте к циклу: написал → скомпилировал → запустил → изменил → повторил. Это и есть программирование.

Компьютер ждёт ваших команд.

Зара

Глава 2. Переменные и типы данных – Как я вышла на Reddit

Пролог: Первый пост на английском

Мне было почти одиннадцать лет. Пять лет я изучала Си, пять лет писала код, компилировала, ломала, чинила. Я понимала указатели лучше, чем английскую грамматику. Я знала, как работает память, но не знала времён глаголов.

Но у меня была идея. Мысль, которая не давала мне спать: можно ли написать программу, которая думает?

Я хотела обсудить это с кем-то. Папа был занят. Тётя Люда не понимала программирования. Соседская Настя давно уехала учиться в другой город. Мне нужны были люди, которые пишут код. Программисты. Инженеры.

Я зашла на Reddit. Раздел r/programming. Тысячи людей, которые обсуждают алгоритмы, языки, архитектуру. Но все говорили по-английски.