Поиск по сайту:

Учебник по программированию на C. Часть 3. Основы работы с переменными


До сих пор мы обсуждали, что такое препроцессоры. Если вы уже ознакомились с этими руководствами, пришло время обсудить следующую тему — переменные.

Переменные являются одним из основных элементов программирования на C, поскольку они хранят значения, которые программисты могут использовать в соответствии со своими требованиями. Давайте разберемся в их основах на примере. Ниже приведена базовая программа на C:

#include <stdio.h>

int main (void)
{
int a = 10;
char b = 'z';
float c = 1.5;
printf("\n a=%d, b=%c, c=%f \n", a,b,c);
return 0;
}

В предыдущих руководствах по программированию на C мы уже объясняли такие вещи, как stdio.h, что означает #include и что такое функция (особенно main). Итак, сразу перейдем к части переменных.

Строка int a =10 означает, что существует переменная с именем a, которая может содержать значения целочисленного типа (int), и текущее значение, которое она содержит, равно 10. Точно так же b может содержать символы, а c может содержать числа с плавающей запятой с их текущими значениями. равно z и 1,5 соответственно.

Пример программы, показанный выше, печатает эти значения на выходе с помощью функции Printf. Обратите внимание, что %d, %c и %f используются, чтобы сообщить функции printf, что переменные a, b, c должны обрабатываться как целое число, символ и число с плавающей запятой соответственно.

Конечно, вы можете сделать гораздо больше, чем просто вывести эти значения на вывод. Например, следующая программа вычисляет факториал числа 5.

#include <stdio.h>

int main (void)
{
int num = 5;
int result = 1;
while (num > 0)
{
result = result * num;
num = num -1;
}

printf("\n Factorial of 5 is %d\n", result);

return 0;
}

Для тех, кто не знает, факториал числа, скажем, n, является результатом следующего умножения:

nx(n-1)x(n-2)x.....1

Итак, если число равно 5, то факториал 5 (или 5!) будет 5x4x3x2x1, что равно 120.

Возвращаясь к программе, мы определили две целочисленные переменные с именами num и result. В то время как num содержит число, факториал которого нужно вычислить (в данном случае 5), result просто содержит фиктивное значение 1 для начала. Затем идет цикл while.

Как следует из названия, циклы используются в функциях C для многократного выполнения набора инструкций. В случае while цикл начинается с проверки условия (в этом случае число должно быть больше нуля), а затем инструкции внутри цикла выполняются многократно, пока условие while не станет ложным.

В нашем случае значение num изначально равно 5. Таким образом, выполнение войдет внутрь цикла, и первое значение результата будет 5 (1x5). После этого num становится num -1, что означает, что новое значение num теперь равно 4.

Затем цикл выполняется снова, потому что 4 все еще больше нуля. На этот раз результат будет 5x4, что равно 20. Затем число станет (4-1), что равно 3. Таким образом, цикл будет продолжать выполняться до тех пор, пока число не станет равным 0, и к тому времени результат будет равен 120, что равно факториал 5.

Итак, вот результат, полученный этой программой:

Factorial of 5 is 120

Теперь, вместо конкретного значения (например, 5 в данном случае), что, если вы хотите, чтобы пользователь программы указал число, факториал которого нужно вычислить? Ну, это можно сделать следующим образом:

#include <stdio.h>

int main (void)
{
int num = 0, temp=0;
printf("\n Enter a positive integer: ");
scanf("%d", &num);
temp = num;
int result = 1;
while (temp > 0)
{
result = result * temp;
temp = temp -1;
}

printf("\n Factorial of %d is %d\n", num, result);

return 0;
}

Итак, здесь мы использовали новую функцию под названием scanf, которая делает прямо противоположное printf — она принимает ввод от пользователя.

Теперь с каждой переменной связан определенный объем памяти в байтах. Функция scanf требует, чтобы вы передали начальный адрес памяти переменных, к которому вы можете получить доступ, поместив & перед именем переменной.

Здесь мы ввели новую переменную temp, так как нам нужно фактическое число, переданное пользователем (здесь оно хранится в num) в последнем операторе printf.

В этом уроке мы коснулись основ переменных. Этот учебник должен был дать вам общее представление о том, что такое переменные и как их можно использовать в языке программирования C. Есть несколько других аспектов, связанных с переменными, которые необходимо обсудить — мы сделаем это в следующем уроке.