Программирование на языке Си/§2
В этой лекции мы разберём несколько программ на языке Си и подробно разберём их.
Первая программа
правитьЭто программа даётся практически во всех учебниках программирования в самом начале, не будем же исключением:
#include <stdio.h> /*1*/
int main() //2
{
printf("Hello, World!\n"); //3
return 0; //4
}
Разберём программу построчно:
- -- директива препроцессора, при выполнении которой препроцессор включает в текст содержимое заголовочного файла stdio.h, где содержится сведения о библиотечных средствах ввода-вывода используемых в программе
#include <stdio.h>
- -- int - тип возвращаемого значения функции (int - целый, void - ничего не возвращает и т.д.). Функция main которая запускается на исполнение по командам операционной системы, возвращение функцией значение также передаётся операционной системе. В скобках указывается набор параметров, в отличие от обычных функций главная функция main() может использоваться как с параметрами так и без них.
int main()
- Вслед за заголовком функции идёт её тело. Тело функции - это блок, последовательность определений, описаний и исполняемых операторов, заключённая в фигурные скобки.
- printf("Hello, World!\n"); -- это библиотечная функция вывода на экран текста, в данном случае "Hello, World!". Прототип функции хранится в директиве stdio.h, поэтому прежде чем её использовать всегда необходимо объявить директивы процессора (#include <stdio.h>). \n - переход на новую строчку. После каждого определения объектов и исполнения объектов ставится ";".
- return 0; -- завершение исполнения программы и возвращение нулевого значения среде исполнения.
Вторая программа
правитьВ этой программе мы с вами изучим функции вывода сообщений на экран
#include <stdio.h>
int main()
{
/*объявим переменные*/
int k,r,s; // мы объявили три целочисленные переменные
/*присвоим им значения*/
k=5; r=4; s=12;
/*выведем их на экран*/
printf(" k=%d \n r=%d \n s=%d \n", k, r, s);
return 0;
}
Как мы видим программа несколько отличается от предыдущей, давайте по порядку рассмотрим эти изменения:
- int k,r,s; -- когда мы работаем с идентификаторами которых нет в самой программе нам необходимо их объявлять. Синтаксис объявления довольно прост: Тип идентификатор;. В конкретном случае мы объявили идентификаторы k,r,s целочисленного типа int.
- k=5; r=4; s=12; -- после объявления идентификаторов нам необходимо задать им некоторое начальное значение, иначе оно будет присвоено произвольно. Синтаксис присвоения следующий: Идентификатор=значение;. Это необходимо запомнить, присвоение всегда происходит справа налево.
- printf(" k=%d /n r=%d /n s=%d /n", k, r, s); -- мы производим вывод на экран значений идентификаторов функцией printf. Синтаксис: printf(" текст=%спецификатор",идентификатор);.
Спецификаторы:
- d - десятичный, целочисленный со знаком(int);
- i - десятичный, целочисленный со знаком;
- u - целочисленный, десятичный без знака(unsigned);
- o - целочисленный, восьмеричный без знака;
- x - целочисленный, шестнадцатеричный без знака;
- f - вещественный с фиксированной точкой (float, double);
- e - вещественный с плавающей точкой (float, double);
- c - отдельный символ (char);
- s - символьная строка (char).
Третья программа
правитьТретья программа поможет разобраться с параметрами сообщений выводимых на экран
#include <stdio.h>
int main()
{
/*объявим переменные и сразу же присвоим им значения*/
int k=51; // целочисленная
float z=12.123, l=14.1234; // вещественная
/*выведем их на экран*/
printf(" k=%d \t z=%e \t l=%f \n\n",k,z,l);
printf(" k=%4d \t z=%2.4e \t z=%5.2e \t l=%10.3e",k,z,z,l);
return 0;
}
рассмотрим различия между программами:
- printf(" k=%4d \t z=%2.4e \t z=%5,2e \t l=%10,3e",k,z,z,l); -- синтаксис остался тот же, изменился лишь формат выдаваемого значения. к спецификатору мы добавили ширину поля и точность. Синтаксис: текст=% ширина_поля.точность спецификатор. \t - напомню табуляция по горизонтали.
Практикум
правитьНапишите на компиляторе языка Си все выше приведённые примеры. Обратите внимание как меняется расположение выводимых сообщений в зависимости от изменения ширины поля и точности выводимых значений. Поэкспериментируйте с типами переменных (int,float,double и т.д.) и значениями присваиваемых идентификаторам. Проанализируете выдаваемые ошибки и результаты.
Домашнее задание
править- Напишите программу на языке Си выдающую число Пи до 4 знака после запятой. Идентификатору присвойте значение в 12 знаков после запятой (3,141592653589).
- Напишите на странице Обсуждение:Программирование на языке Си/§2 какие инструменты Вы используете для программирования на Си?
Смотри также
править- w:Си (язык программирования)
- w:Стандартная библиотека языка Си
- w:stdio.h
- w:printf
- Оператор return
- b:Язык Си в примерах/Простейшая программа «Hello World»
- getchar(); - не позволяет окну закрыться сразу после выполнения программы.
Курс "Программирование на языке Си" |
Предыдущий урок: Программирование на языке Си/§1 — Следующий урок: Программирование на языке Си/§3 |