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