Наконец-то эта минута наступила! Начинаем программировать. Внутри нашей папки pset1 создаем файл под названием hello.c (расширение обязательно), открываем в новой вкладке (думаем, вы помните, как это делать из предыдущего параграфа).
ВАЖНО! Буквы должны быть строчными, Linux чувствителен к регистру. Hello.c и hello.c — разные файлы.
Виртуальная лаборатория CS50 | CS50 IDE |
---|---|
Кликаем по файлу дважды. Открывается редактор кода gedit (также gedit можно вызвать из командной строки терминала просто набрав слово gedit). В поле справа набираем текст. | В правой части окна CS50 IDE набираем точь-в-точь такой текст, как вы видите ниже. Да, его можно скопировать, но полезнее — набрать. |
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
}
Буквы разного цвета потому, что в Gedit и CS50 IDE работает подсветка синтаксиса. Она выделяет цветом блоки текста для лучшей читаемости. В самом файле цвета не сохраняются, они видны только в IDE или специальном редакторе кода. То есть, если текст разноцветный, то, скорее всего, IDE и редактор понимают язык Cи, а о том, что это именно Cи, вы сообщили в расширении файла (*.c). Если бы вы назвали этот же файл hello.txt, текст был бы одноцветный.
Убедитесь, что вы напечатали всё ровно так, как в примере, иначе поймаете первый баг=). Снова обращаем ваше внимание на разницу между строчными и прописными буквами. Символ \n переводит курсор на следующую строку, и введенный следом текст не слипнется с выведенным программой. Ах да, и о точке с запятой (;) не забывайте. Это важный разделитель операторов программы, Cи без них работать не захочет.
Нажмите File > Save (или комбинацию command- или Ctrl-s). Заметили, что звездочка (или красный круг в CS50 IDE) перед названием файла исчезли? Если да, значит изменения сохранились. Кликните в любом месте по терминальному окну под вашим кодом и убедитесь, что вы внутри ~/Dropbox/pset1 (или ~/workspace/pset1).
Убедимся, что файл hello.c находится ровно там, где должен. Набираем
ls
и жмем Enter. Вы видите hello.c? Если нет, вернитесь на пару шагов назад и создайте файл в нужной директории еще раз. … Теперь наступает торжественный момент: скрещиваем пальцы и… печатаем в терминальной строке gedit или в CS50 IDE:
make hello
и скрещенными же пальцами жмем Enter. Именно hello, не hello.c. Если всё, что вы после этого действа перед собой увидели — вторая активная строка, которая выглядит точь-в-точь, как предыдущая, значит, получилось! Ваш исходный код был переведен в машинный или объектный код (то есть, в последовательности 0 и 1). Теперь этот код можно выполнить (то есть запустить программу!). Для этого печатаем:
./hello
в командной строке, жмем Enter. Если вы не меняли текст заключенный в кавычки, ниже вы увидите:
hello, world
Если вы теперь наберете команду
ls
и нажмете Enter, вы увидите новый файл hello, наряду с hello.c и hello.txt. У первого hello, должна быть звездочка после имени, которая сигнализирует о том, что это исполняемый файл, то есть такой, с помощью которого вы запускаете программу.
Баги?
Если после попытки выполнить команду make, вы увидели ошибки, пришло время первой отладки! Надписи вроде «expected declaration» означают, что вы где-то допустили опечатку. Сверьте код с приведенным выше еще раз, только будьте очень внимательны ко всем деталям.
Внимание! Описания ошибок выдаются на английском. Если непонятно, воспользуйтесь поисковиком, Google Translate или задайте вопрос в комментарии.
Как только вы исправили ошибки, не забудьте сохранить ваш код с помощью File > Save (или command- или Ctrl-s), снова щелкнете по внутренней части терминального окна и наберите
make hello
(Только предварительно убедитесь, что вы находитесь в внутри директории pset1). Если больше ошибок нет, запускайте программу, набирая команду
./hello
По идее перед вами должна возникнуть заветная фраза, заключенная в кавычки оператора printf, который командует «напечатай».
Если окно терминала кажется вам слишком маленьким, кликните по иконке заключенного в окружности плюса (+), расположенной рядом с hello.c.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ