Summa ravna 117
Комментарий /* Программа сложения */ объясняет назначение программы. Строка:
#include <stdio.h>
является директивой для препроцессора С. Строка, начинающаяся символом #, выполняется препроцессором до того, как программа начнет компилироваться. Эта специфическая строка сообщает препроцессору, что необходимо включить в программу содержание стандартного заголовочного файла ввода/вывода (stdio.h). Этот заголовочный файл содержит информацию и объявления, используемые компилятором во время компиляции вызовов стандартных функций ввода/вывода, таких, как printf. Кроме того, заголовочный файл содержит информацию, которая помогает компилятору определить, корректно ли написаны обращения к библиотечным функциям.
Как было отмечено выше, каждая программа начинает исполняться с функции main. Левая фигурная скобка отмечает начало тела main, а правая соответственно конец. Строка:
int integer1, integer2, sum;
является объявлением. Группы символов integer1, integer2 и sum — имена переменных. Переменная — это ячейка памяти, в которую можно записывать значение, предназначенное для использования программой. Приведенное выше объявление сообщает, что переменные integer1, integer2 и sum принадлежат к типу int и, следовательно, в этих переменных будут храниться целые величины. Все переменные, которые используются в программе, должны быть объявлены. При объявлении указывается имя и тип переменной. Именем переменной в С может служить любой допустимый идентификатор.
|
|
Объявления должны располагаться после левой фигурной скобки функции и перед первым исполняемым оператором.
Оператор:
printf ("Vvedite pervoe celoe chislo \n");
печатает на экране символы Vvedite pervoe celoe chislo и переводит курсор на начало следующей строки.
Оператор:
scanf ("%d", &integer1);
вызывает scanf, чтобы получить от пользователя некое значение. Функция scanf считывает данные со стандартного устройства ввода, которым обычно является клавиатура. В нашем случае функция scanf имеет два аргумента, % d и &integer1. Первый аргумент — управляющая строка, задает формат считывания, тем самым определяется тип данных, которые предстоит ввести пользователю. Так, в частности, %d — спецификация преобразования, означающая, что вводимые данные должны быть целым числом (буква d используется для «десятичных целых»). Знак % в данном контексте трактуется scanf (в дальнейшем мы увидим, что это в полной мере относится и к printf), как esc-код (подобно \), а комбинация %d является esc-кодом (подобно \n). Второй аргумент scanf начинается со знака амперсанда (&), которым в С задается операция взятия адреса следующей за ним переменной. Амперсанд, когда он используется совместно с именем переменной, сообщает scanf ячейку памяти, в которой хранится переменная integer1. В последующем компьютер будет хранить величину для integer1 в этой ячейке.
|
|
Когда компьютер выполняет вышеприведенный оператор scanf, он ждет, пока пользователь не введет значение для переменной integer1. Пользователь вводит целое число, после чего нажимает клавишу Enter, посылая, таким образом, число в компьютер. После этого компьютер присваивает данное число, или значение, переменной integer1. Любая последующая ссылка в программе на integer1 будет представлять именно это значение.
Оператор
printf("Vvedite vtoroe celoe chislo \n");
печатает на экране сообщение Enter second integer, после чего переводит курсор на начало следующей строки.
Оператор
scanf("%d", &integer2);
получает от пользователя значение для переменной integer2. В результате выполнения оператора присваивания
sum = integer1 + integer2;
вычисляется сумма переменных integer1 и integer2, и ее значение присваивается переменной sum посредством операции присваивания =. Оператор читается как «sum получает значение integer1 + integer2».
Оператор
printf("Summa ravna %d\n", sum);
вызывает функцию printf, чтобы напечатать на экране текст Summa ravna, после которого следует численное значение переменной sum. В данном случае printf имеет два аргумента, "Sum ravna %d\n" и sum. Первый аргумент — управляющая строка, определяет формат вывода. Он содержит несколько символов, которые будут отображены, и спецификатор преобразования %d, определяющий, что будет напечатано целое число. Второй аргумент задает значение, которое будет напечатано.
Вычисления могут выполняться и непосредственно внутри оператора printf. Мы могли бы скомбинировать два предыдущих оператора в один:
printf("Summa ravna %d\n", integerl + integer2);
Оператор:
return 0;
передает значение 0 среде операционной системы, в которой исполнялась программа.
Правая фигурная скобка означает, что функция main окончена.
Задание 4: Выполнить пример 4, приведенный в методических рекомендациях.
Задание 5: Написать программу, которая запрашивает у пользователя три целых числа и выводит на экран их сумму и произведение.
Кроме упомянутого выше типа данных int для объявления целочисленных чисел, в Си существуют и другие типы данных для объявления переменных и констант вещественного, символьного и других типов.
Имеются следующие базовые (фундаментальные) типы:
char | Символьный |
int | целый |
float | вещественный |
double | вещественный с двоичной точностью |
void | пустой тип |
С базовыми типами данных могут использоваться модификаторы типа. К модификаторам относятся:
unsigned | беззнаковый |
signed | знаковый |
short | короткий |
long | длинный |
В функциях printf и scanf необходимо использовать следующие спецификации преобразования для соответствующих типов:
%i — для ввода/вывода целых со знаком,
%d — для ввода/вывода беззнаковых целых,
%f — для ввода/вывода дробных, в виде числа с плавающей точкой,
%n.mf — для вывода дробных в формате с фиксированной точкой, где n — размер поля числа (т.е. длина числа), m — точность числа, т. е. количество цифр в его дробной части;
%c — для ввода/вывода символьных.
Количество спецификаций преобразования в функциях printf и scanf должно ОБЯЗАТОЛЬНО соответствовать количеству переменных, указанных после управляющей строки.
Кроме переменных в программе могут быть объявлены константы – данные, которые не могут быть изменены в процессе выполнения программы. Для объявления констант перед указанием типа константы и ее имени необходимо добавить ключевое слово const.
Пример 5:
# include <stdio.h> /*подсоединение раздела библиотеки
с функциями ввода/вывода */
void main() // определение головного модуля
{
int i1, i2, i3; // три переменные целого типа со знаком
int ix= 5, iy= -7; /* определение и инициализация
переменных целого типа */
|
|
long int l1, l2; // длинные целые знаковые переменные- четыре байта
long unsigned int lu1= 125, lu2= 1234567;
/* под длинные целые беззнаковые переменные выделяется по четыре байта и в них записываются соответствующие значения */
float f1= -1.575, f2= 3.14; /* переменные вещественного
типа по четыре байта */
char let, symb= 'z'; /* символьные переменные, выделяется по одному байту */
short int s1= 100, s2= 50; // два байта
const unsigned int u= 113; //целочисленная константа
const float pi= 3.14; // вещественная константа
printf ("Vvedite 3 celih chisla:\n");
scanf ("%d%d%d", &i1, &i2, &i3);
printf ("Vvedennoe pervoe chislo=%d\n Vvedennoe vtoroe chislo =%d\n Vvedennoe tret’e chislo =%d\n", i1, i2, i3);
printf ("Celoe bez znaka ix = %d\n Celoe so znakom iy = %i\n", ix, iy);
printf ("dlinnye celye lu1 = %i\n dlinnye celye lu2 = %i\n", lu1, lu2);
printf ("Veshestvenoe f1 = %.3f\n Veshestvenoe f2 = %.2f\n", f1, f2);
printf ("Simvol symbl = %c\n Kod simvola %c = %d \n", symb, symb, symb);
/* Данные типа char занимают в памяти 1 байт. Код от 0 до 255 в этом байте задает один из 256 возможных символов. Тип char является типом «целое». */
}
Задание 6: Выполнить пример 5, приведенный в методических рекомендациях.
Задание 7: Модифицируйте пример 4 так, чтобы он работал с вещественными числами.
Задание 8: Написать программу, которая запрашивает у пользователя три вещественных числа и выводит на экран их сумму, произведение и среднее арифметическое.
Математические функции. Для работы математических функций в Си необходимо подключить библиотеку math.h. Эта библиотека содержит ряд математических функций:
sqrt(x); | Возвращает корень квадратный переменной х |
abs(n); | Возвращает модуль числа n. n – целое число. |
sin(x); | Возвращает синус числа х |
cos(x); | Возвращает косинус числа х |