
TBN.ru
|
Следующий
простой пример, но вполне законченной программы
поможет понять многие из расмотренных ранее
принципов построения программ на языке Си. Наша
первая программа вводит два числа, вычисляет их
сумму и печатает результат с поясняющим текстом
"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.Обратите
внимание, что программа начинается со строки
коминтарием : /* .. */ , транслятор
пропускает любые символы между /* и */ и их
можно использовать для пояснений. |