Добро пожаловать в раздел "Основы программирования на Си"

сайта "Try Objective-c - программирование для начинающих"!

  В продолжение изучения основ программирования мы переходим к основам программирования на языке Си.

  Приступать к изучению материала расположенного в данном разделе необходимо после полного изучения материала из разделов "Основы программирования" и "Практикум основ программирования".

  Язык программирования Си лежит в основе языка Objective-с, на которомпишутся приложения для iphone и iPad. По этому необходимо очень тщательно изучать материал из данного раздела и практиковаться в решении задач из "Практикума".

» » cpr_2.2 Первая программа на языке программирования Си

Категория:

Информация к новости
  • Просмотров: 46643
  • Автор: Midav
  • Дата: 19-11-2012, 09:03
19-11-2012, 09:03

cpr_2.2 Первая программа на языке программирования Си



Быстрая навигация:
Сегодня мы напишем нашу первую программу на языке программирования Си.
Мы выведем на печать фразу на английском языке - Hi everybody! - Привет всем!
Также мы:
- рассмотрим некоторые различия в средах разработки, которые мы рассматривали ранее,
- посмотрим как выполняется программа в этих средах разработки...

Любая программа в языке Си начинается с основной функции (процедуры) именованной main
Уже само название говорит нам о том, что это главная функция в программе.
С этой функции начинается выполнение любой программы, когда вы запускаете исполняемый файл в операционной системе (в Windows это файлы ***.exe).
main - это как первая страница книги с которой начинается чтение...


Как вы знаете, любая функция возвращает значение.
В данном случае функция main должна вернуть операционной системе число, показывающее, что программа завершилась корректно.
Таким числом является ноль - 0

Ноль является целым числом и имеет тип int - (intager).
По этой причине наша функция main также должна иметь тип int - int main
Этим мы сразу же говорим о том, что мы используем функцию по имени main которая должна вернуть целочисленное значение.

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

Как и любая функция, функция main может иметь некие параметры, которые должны быть заключены в круглые скобки сразу же после имени функции - int main()

Наличие круглых скобок является отличительным знаком того, что это ФУНКЦИЯ, а не переменная!
Конечно же не стоит использовать одинаковые имена для переменных и для функций... чтобы не запутаться.

После круглых скобок нашей функции необходимо поставить еще пару фигурных скобок, которые указывают компилятору начало и конец функции.
По ним он определяет когда функция закончилась:
int main(){

}

Внутри этих скобок мы будем писать нашу программу.

Запоминайте данный синтаксис, поскольку все функции, которые мы будем писать оформляются именно таким образом.
Стиль оформления программного кода может быть абсолютно разным. Вы можете увидеть это в разных книгах по программированию...
Какой стиль программирования вы выберите - решать вам. Этого вопроса мы касались ранее.

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

В языке Си, как в том же Питоне, также имеются внутренние библиотеки и стандартные функции которые мы можем использовать для своих нужд.
Для этого эти библиотеки необходимо только подключить, чтобы компилятор в процессе создания программы понимал что мы будем использовать в нашей программе.

Для вывода на печать в языке Си используется библиотечная функция printf() - по имени очень похожа на подобную функцию в Питоне, если вы помните...
И, конечно же, поскольку это функция, то она заканчивается круглыми скобками.

В нашем случае функция printf() является командой компилятору произвести вывод на печать определенных данных, которые будут находиться внутри круглых скобок. А каждая команда должна быть конечной - то есть она как в обычном предложении должна иметь указание на то, что она закончилась. В обычном предложении указанием на это является ТОЧКА.
В функции такой командой является точка с запятой - ";"

В этом есть отличие от Питона - там точки с запятой не требовалось ставить...
Итак полный синтаксис команды вывода на печать в языке Си будет:
printf();


Не хватает только данных которые необходимо вывести на печать...
Текстовая информация для вывода на печать должна быть заключена в кавычки и находиться внутри круглых скобок:
printf("Hi everybody!");

На данный момент наша программа имеет вид:
int main (){
	
	printf("Hi everybody!");

}

Но в данном виде программа не будет работать, поскольку компилятор не знает что такое - printf(); несмотря на то, что это стандартная функция языка Си.

Чтобы компилятор это понимал, ему необходимо указать название той библиотеки, в которой описана эта функция, которая позволит нам ее использовать для своих целей.

В данном случае такой библиотекой является библиотек а ввода-вывода - stdio.h (Standart input output)
***.h - это HEADER - заголовочный файл.

Все библиотеки, необходимые для работы той или иной программы должны быть обозначены в самом начале программного кода.
Для подключения стандартных библиотек используется специальный синтаксис:
#include 

Все стандартные библиотеки подключаются используя треугольные кавычки.
В результате код нашей программы выглядит так:
#include <stdio.h>
int main (){
	
	printf("Hi everybody!");

}



Различия в работе разных компиляторов

Уровни предупреждений


В разных компиляторах - той среды разработки которые вы используете для написания программного кода, имеются свои дефолтные настройки по реагированию на валидность программного кода.
Компилятор может не обращать внимание на какие-то вещи, но в то же время (при изменении настроек) он может выдавать предупреждения или выводить сообщения об ошибках.

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

Если вы используете Visual Studio, то вы можете включить максимальный уровень для вывода предупреждений и ошибок.

Делается это так (для версии 6, которую мы рассматривали ранее):

Открываем меню: Project - Setings (горячие клавиши - Ait + F7)

cpr_2.2 Первая программа на языке программирования Си


Далее в открывшемся окне выбираем вкладку С/С++ и в поле Warnings Level выставляем уровень Leveel 4

cpr_2.2 Первая программа на языке программирования Си


В этом случае нам будут показываться все предупреждения компилятора.
Помните, что с предупреждениями компилятор свою работу выполнит и программа скорее всего запустится на выполнение.
А вот с ошибками - этого не произойдет.
Вы можете поставить галочку в чебоксе - "Воспринимать предупреждения как ошибки" - "Warnings as errors" - и тогда компилятор будет работать только после устранения всех проблемных мест в вашем коде.


Отображение работы нашего кода в разных компиляторах

Xcode

Напишем наш код на Mac'e в среде разработке Xcode

Для этого создадим проект как это рассматривалось ранее.
Напишем код программы в окне редактирования.
КОДЫ ВСЕХ ПРОГРАММ НЕОБХОДИМО ПИСАТЬ САМОСТОЯТЕЛЬНО!!!

Не копируйте коды копи-пастом - обязательно пишите все примеры в ручную - только так вы достигните успехов.

Запускаем программу и наслаждаемся результатом!

cpr_2.2 Первая программа на языке программирования Си



Visual Studio 6.0


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

cpr_2.2 Первая программа на языке программирования Си


Чтобы выполнить программу необходимо нажать F7 (после произведенной ранее компиляции) или же можно сразу нажать Ctrl + F5 - тогда будет произведена компиляция и, если ошибок не обнаружится, программа будет запущена.

cpr_2.2 Первая программа на языке программирования Си


Не забывайте периодически сохранять ваш код в процессе написания программы!!!



Dev-C++


В данной среде разработки будут показаны все дальнейшие примеры по работе с языком СИ
Почему спросите вы?
Просто потому, что для отработки тех примеров, которые мы будем рассматривать нет необходимости создавать новые проекты...
В Dev-C++ довольно просто добавить новый файл для его выполнения.
К сожалению в этом случае необходимо использовать Windows...

Запускаем Dev-C++ и создаем новый файл - Файл - Создать - Исходный файл
Проще пользоваться горячими клавишами - Ctrl + N

cpr_2.2 Первая программа на языке программирования Си


Пишем код нашей программы и сохраняем файл в том месте, где нам это удобно.
В процессе сохранения не забудьте поставить расширение сохраняемого файла для языка СИ - ***.c

cpr_2.2 Первая программа на языке программирования Си


Вот тут начинается самое интересное!
Если вы используете версию Dev-C++ 4.9.9.2, то при запуске программы вы ничего не увидите!
Окно на мгновение откроется и сразу же закроется...
В версии Dev-C++ 5.3.0.2 - окно при выполнении программы будет находиться для ознакомления и не будет закрыто пока вы сами этого не сделаете.

Вот здесь и видны различия в работе разных компиляторов...
Как решить эту проблему если вы хотите использовать версию Dev-C++ 4.9.9.2 ?

Во первых введем в самый конец нашего кода строку - return(0);
Как вы помните, каждая функция (а уж тем более главная) должна возвращать значение.
В данном случае - мы возвращаем ноль, говоря о том, что программа выполнена корректно.

А что надо сделать чтобы программа не закрывалась сама?
Для этого есть несколько вариантов.

Рассмотрим один вариант:
Выше строки возвращающей значение 0 пишем следующую строку:
system("pause");

Это служебная команда, которая требует не закрывать консольное окно после выполнения программного кода.
Итак, с учетом внесенных изменений код программы выводящий необходимую информацию будет выглядеть так:

#include <stdio.h>
int main (){
	
	printf("Hi everybody!");

system("pause");
return(0);
}


Задание:
1
Потренируйтесь в создании проектов используя разные среды разработки...

2
Потренируйтесь в написании программного кода главной функции main с разными вариантами вывода текстовой информации на экран монитора используя служебные символы для форматирования текста (табуляция, перевод строки)...

3
Посмотрите как работают используемые вами компиляторы с кириллицей - напишите несколько строк на русском языке для вывода на экран монитора и посмотрите что получится.

О выводе русского языка мы поговорим в следующий раз.
Особенно это касается Dev-C++

Метки к статье: main, printf

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищенной ссылки Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *