Пробуем программировать в Linux

Наконец-то мы напишем свою первую программу на «С» в Linux. Для этого нам понадобится:

  • дистрибутив Linux;
  • компилятор, то есть «gcc»;
  • умение работать с клавиатурой;

Если у вас еще нету Linux’a, можете воспользоваться этой статьей. Особенное внимание прошу обратить на то, что кроме «hello world» мы напишем пару программок из лабораторных работ 532а группы(ОГАХ, ФИТ, 2011 год).

Заинтересованных прошу под кат.

Проверим наличие установленных программ. Заодно и поставим консольный файловый менеджер. Для этого запустим терминал:

Или можно перейти в консольный режим нажатием «ctrl + alt + 1». Советую поискать в гугле и почитать про консольный режим и графический в linux.

Теперь мы будем работать только с консолью. Если вы зашли не под root’ом, то делаем так:

Вводим пароль root’a. Теперь попробуем установить gcc и mc:

У меня не оказалось mc:

Просто ввожу английскую «Y» и жму «enter». Программа apt-get установит все сама. Теперь у нас есть все что нужно. Запустим mc, для этого просто введите в терминал «mc». Создадим новый файл командой:

Выбираем файл в mc и жмем «F4», тем самым открывая его для редактирования. Напишем hello world:

Про аргументы функции main: argc — от «argument counter» — количество передаваемых программе аргументов, argv — массив аргументов в виде строк. Например вы пишите:

Программе с именем rm передаются три аргумента: rm, dir_name и -r. То есть argc будет равен 3, argv[1]«dir_name», argv[2]«-r», а argv[0]rm. Прошу заметить, argv[0] всегда равен названию программы, точнее той команде, с помощью которой она запустилась.

Теперь нужно откомпилировать файл. Про объектные файлы, модульную компиляцию и прочее премудрости gcc можете поискать в гугле, или попросить меня написать статью. А мы пойдем самым простым путем:

Если все прошло удачно, gcc не сообщит об ошибках, а в папке появиться откомпилированный файл с именем «hello». Что бы его запустить, необходимо выполнить:

Результат:

Теперь напишем немного посложнее. Нарисуем символами квадрат, причем пользователь программы сам задает величину стороны.

И так по этапам:

  1. Необходимо получить в переменную величину стороны;
  2. Необходимо в каждой строке нарисовать количестве символов равное величине стороны;
  3. После второго пункта необходимо перейти на следующую строку и сделать тоже самое;

Как видно, нам понадобятся два цикла. Для простоты я буду использовать цикл for. Его конструкция:

for (инициализация_переменной; условие_выполнения_цикла; действие_при_каждой_итерации)

Приведу пример:

Что делает данный цикл?

  1. Устанавливает значение переменной i равным 0;
  2. Проверяет условие i < 10, если оно верно — продолжает выполнение, если нет — выходит из цикла;
  3. Далее цикл выполнит итерационное действие, то есть операцию ++i;
  4. Выполниться функция printf, управление перейдет к пункту 2.

На экран выведется 10 раз надпись «Vasya Pupkinn». На 11 итерации i будет равно 10, но условие гласит что i < 10, а 10 == 10, но никак не меньше, поэтому цикл прекратит свое выполнение.

Теперь вернемся к нашему квадрату. Что бы считать значение из стандартного потока ввода(консоль) нам понадобиться функция scanf; Ее прототип:

Первый аргумент функции — формат. Задает тип данных для чтения. Например «%i» — integer, «%s» — string.

Примечание: В чистом С нету класса для строк. Точнее в нем вообще нет классов. Поэтому аналогом строки является массив символов(char str[5] — строка длинной 5 символов);

Вторым аргументом scanf является адрес переменной, в которую необходимо записать значение. Для получение адреса используется символ «&». Например:

Программа предложит ввести значение, после нажатия клавиши «enter» значение будет записано в переменную a.

Теперь приступим к написанию программы с квадратом. Аналогичным образом создайте для нее файл. Откройте на редактирование. Пишем код:

Как видим ничего сложного. Компилируем так же:

И запуск аналогично:

Жмем «enter» вводим например 7, получаем вот такую штуку:

Квадрат не вышел, потому что высота символа больше чем ширина. Ну а по количеству — все верно.

Теперь попробуем написать программу для рисования треугольника. Для этого стоит лишь немного поменять второй цикл:

Каждая итерация цикла будет уменьшать переменную j, из-за этого второй цикл будет выполнятся большое количество раз, и как результат — больше символов с каждой строкой.

Компилируем, запускаем. Если все верно, то при вводе 10 получим:

В следующий раз я расскажу вам про make файл, и как с ним работать. Не забываем писать отзывы, замечания, предложения.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *