
CC++ / СС++ - сборник литературы / Книга по Си / Bookc / book002
.htmДокументация по Cи, C++ и Visual C++
Пример простой программы на языке Си
Стр. 2 < оглавление >
Следующий простой пример, но вполне законченной программы поможет понять многие из расмотренных ранее принципов построения программ на языке Си. Наша первая программа вводит два числа, вычисляет их сумму и печатает результат с поясняющим текстом "Cумма"
(пример 1.1)
#include
<stdio.h>
{
int a,b,c;
a=5; b=7;
c=a+b;
printf("Cумма = %d \n",c)
}
Дадим некоторые пояснения. В языке Си любая пограмма, состоит из нескольких программных едениц и каждая из них - функция. Функции в Си подобны функциям или подпрограммам в Фортране или процедурам в Паскале, Имена функций выбираются произвольно (только латинскими буквами), но одно из них main, именно с нее начинается выполнение программы. Такая главная функция обычно обращается к другим функциям, которые находятся в одном файле с головной программой или извлекают из библиотеки предварительно подготовленных функций.Функция main не имеет аргументов, поэтому список ее выглядит так: ( ) . Скобки { } обрамляют операоры, которые реализуют собственно алгоритм. Эти скобки аналогичны BEGIN - END в Паскале.
Строка int a,b,c; объявляет a,b,c переменными целого типа. Все используемые в программе переменные должны быть объявлены. Далее идут опрераторы присваивания к a значение 5, а к b - 7, с - значение их суммы. Значения переменных типа int лежат в диапазоне [-32768; 32767]. Функция printf выводит на экран: СУММА = 12.
Рассмотрим теперь функцию scanf предназначенную для форматного ввода данных. Функция scanf в качестве фактических параметров использует адреса переменных, а не их значения. Для этого перед соответствующим параметром ставят знак & - символ взятия адресса. Например, &XL означает "адрес перменной XL", а не значение, которое переменная имеет в данный момент.
Строка форматов функции scanf указывает, какие данные ожидаются на входе. Если функция встречает в форматной строке знак % , за которым следует символ преобразования, то она будет пропускать на входе символы до тех пор, пока не встретит какой-нибудь не пустой символ.
Предыдущяя программа страдает одним недостатком: программа вычисления суммы годится только для одного конкретного случая, когда a=5, b=7. Улучшим ее, заменив соответствующие операторы присваивания вызовом функции scanf (пример 1.2) :
/* Ввод двух чисел, вычисление суммы и печать результата*/#include
<stdio.h>
{
int a,b,c;
scanf(" %d %d",&a,&b);
c=a+b;
printf("Cумма = %d \n",c)
} Форматная строка предписывает функции scanf ввести десятичное число, которое надо поместить в переменную a, затем через пробел ввести второе десятичное число, которое надо присвоить переменной b.Обратите внимание, что программа начинается со строки коминтарием : /* .. */ , транслятор пропускает любые символы между /* и */ и их можно использовать для пояснений.
< Назад > < Дальше >