Программа на языке С состоит
из одной или большего числа функций Си. Каждая программа на Си должна содержать
функцию по имени main(), поскольку именно эта функция всегда вызывается при
запуске программы. (Думаю это связано с тем, что вся информация в компьютере
храниться в виде чисел - int main() тип данных функции - целые числа.)
Каждый ОПЕРАТОР языка Си
является ИНСТРУКЦИЕЙ компьютеру и обязательно заканчивается точкой с запятой.
ОПЕРАТОР ОБЪЯВЛЕНИЯ - назначает переменной имя и определяет тип данных, которые будут храниться в этой переменной.
Имя переменной может служить
идентификатором.
ОПЕРАТОР ПРИСВАИВАНИЯ - устанавливает значение переменной или область
хранения.
ОПЕРАТОР ВЫЗОВА ФУНКЦИИ - запускает на выполнение функцию с указанным именем.
ПЕРЕМЕННАЯ
ЭТО ВСЕГО ЛИШЬ ИМЯ ВЫДЕЛЕННОЙ ЯЧЕЙКИ ПАМЯТИ КОМПЬЮТЕРА, КОТОРОЕ МОЖНО ИЗМЕНИТЬ,
ПОЭТОМУ НАЗЫВАЕТСЯ ПЕРЕМЕННОЙ КОНСТАНТА - ДАННЫЕ КОТОРЫЕ ХРАНЯТЬСЯ В ЯЧЕЙКЕ.
КАК ПЕРЕМЕННЫЕ ПОЛУЧАЮТ ЗНАЧЕНИЯ?
1) ОПЕРАТОР ПРИСВАИВАНИЯ cows
= 112;
2) ПОЛУЧЕНИЕ ПЕРЕМЕННОЙ
ЗНАЧЕНИЯ ИЗ ФУНКЦИИ
АРГУМЕНТ -
ЭЛЕМЕНТЫ ИНФОРМАЦИИ, ПЕРЕДАВАЕМОЙ ФУНКЦИИ.
ФУНКЦИИ printf() и scanf() не ограничены конкретным
количеством аргументов.
Аргументы отделяются друг от
друга запятыми.
Способов обработки данных. Для этих
целей язык Си предлагает множество различных операций. Вы можете выполнять арифметические операции, сравнивать
значения, обновлять значения переменных,
логически комбинировать отношения и делать многое другое. Начнем с арифметических
операций - сложения, вычитания, умножения и деления.
Другим
аспектом обработки данных является организация ваших программ с тем, чтобы о ни
выполняли правильные действия в нужном порядке.
КОНСТАНТЫ
Константы
- данные значения которых устанавливаются до начала выполнения программы и
сохраняются неизменными в течение всего времени работы программы.
ПЕРЕМЕННЫЕ
Переменные
- данные которые могут изменяться (в частности, путем присваивания новых
значений) в ходе выполнения программы.
ОПЕРАТОР - обозначает действие.
Операторы проделывают работу над переменными.
Используется:
-
оператор объявления, определяющий имя и тип переменной
-
оператора присваивания устанавливающий значение переменной
-
оператор вывода
-
оператор вызова функции
-
оператор возврата
ДАННЫЕ
Основные
типы данных:
-
числа
-
буквы
-
символы
ОПЕРАНД (англ. operand) в языках
программирования ― аргумент операции; данные, которые обрабатываются командой;
грамматическая конструкция, обозначающая выражение, задающее значение аргумента
операции. Иногда операндом называют место, позицию в тексте, где должен стоять
аргумент операции. Отсюда понятие местности операции, то есть числа аргументов
операции.
пример
sin
x -> x -операнд
a+b
-> a и b -> операнды
Операнд над чем производится действие.
ОПЕРАНД
может быть
-
объект данных как имя переменной
-
либо как тип
ОБЪЕКТ
ДАННЫХ - это ОБЛАСТЬ ХРАНЕНИЯ ДАННЫХ,
КОТОРАЯ МОЖЕТ ПРИМЕНЯТЬСЯ ДЛЯ УДЕРЖАНИЯ ЗНАЧЕНИЙ.
ОБЪЕКТ - это ОБЛАСТЬ ХРАНЕНИЯ ДАННЫХ.
Для ИДЕНТИФИКАЦИЯ ОБЪЕКТА (ОБЛАСТИ ХРАНЕНИЯ ДАННЫХ)
используются ИМЯ ПЕРЕМЕННОЙ также
- УКАЗАТЬ ЭЛЕМЕНТ МАССИВА - включает адрес
объекта
const - позволяет создавать объект,
значение которого не может изменяться.
ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ
Инициализация
переменных - значит присвоить ей начальное значение.
Операция
присваивания (=)
int
hogs = 21;
int
cows = 32; goats = 14;
МЕТОДЫ
ОБРАБОТКИ ДАННЫХ
-
арифметические операции
-
сравнения
-
обновление переменных
-
логические операции
Введение в
циклы
Язык
Си предлагает несколько методов выполнения повторных вычислений, и здесь мы
рассмотрим один из них. Этот метод, получивший название цикла while
/*СПЕЦИФИКАТОР ПРЕОБРАЗОВАНИЯ
определяет каким образом данные преобразуется в отображаемую форму*/
%d
//СПЕЦИФИКАТОР ПРЕОБРАЗОВАНИЯ десятичное число со знаком
%f //число с плавающей запятой, десятичное
представление
%c //одиночный символ
%s //интерпретирует введенные данные как
строку
%e //Экспонициальная форма
%a //Двоично-экспонициальное представление
& //спецификатор где можно найти
переменную
//ПРИМЕР 1
/*Программа преобразует часы в минуты*/
#include
<stdio.h> //КОМАНДА ПРЕПРОЦЕССОРА - подключение
файла стандартной библиотеки С stdio.h содержит
библиотеку функций ввода-вывода
#define
MIN 60
int
main(void) //ОБЪЯВЛЕНИЕ ФУНКЦИИ с именем main() - главная
функция, каркас программы на С
//int - ф-ция возвращает целое число, void
- ф-ция не принимает аргументов
{
int hours, minutes; //ОПЕРАТОР
ОБЪЯВЛЕНИЯ. Инициализация переменной. Тип данных целые числа.
printf("Перевод часов в минуты
\n");
printf("Введите часы\n"); //ОПЕРАТОР
ВЫЗОВА ФУНКЦИИ с именем printf() - функция ВЫВОД ДАННЫХ
НА ЭКРАН.
/*получить входные данные от пользователя*/
scanf("%d", &hours); //ОПЕРАТОР ВЫЗОВА ФУНКЦИИ с именем scanf() - ВВОД ДАННЫХ с клавиатуры
//&hours -> что введенное число
будет присвоено переменной по имени hours
//(&
амперсанд) для указания на то, где можно найти переменную hours
/*цикл с условием*/
//Спецификатор %d показывает, что
переменная вводится как десятичное число
while (hours > 0) //ЦИКЛ - while обеспечивает возможность
повторного ввода значения и для ПРЕКРАЩЕНИЯ
ЦИКЛА
{ //ЕСЛИ ВВОДИТСЯ ЗНАЧЕНИЕ ВРЕМЕНИ МЕНЬШЕЕ
ИЛИ РАВНОЕ НУЛЮ
minutes = hours * MIN;
printf("%d часа это %d минут \n", hours, minutes);
printf("Введите
следующее значение\n");
/*получить
входные данные от пользователя*/
scanf("%d", &hours);
}
printf("End \n");
getchar();
getchar();
return 0;
}
ВЫВОД НА ЭКРАНЕ
Перевод часов в минуты
Введите часы
2
2 часа это 120 минут
Введите следующее значение
3
3 часа это 180 минут
Введите следующее значение
Перевод часов в минуты
Введите часы
3
3 часа это 180 минут
Введите следующее значение
4
4 часа это 240 минут
Введите следующее значение
0
End
Фундаментальные
операции
Операция присваивания: =
В
языке Си знак равенства не означает "равно". Это операция присваивания
значения. Например, оператор
cat = 25;
Присваивает
значение 25 переменной с именем cat.
Операция сложения: +
Операция
сложения приводит к тому, что два значения с обеих сторон знака + образуют
сумму.
Например , оператор
printf ( " % d " , 4 + 2 0 ) ;
выводит
число 24, но не выражение 4 + 2 0
Складываемые
значения (операнды) могут быть как переменными, так и константами.
Пример
income
= salary + bribes;
заставляет
извлечь значения двух переменных в правой части оператора, выполнить их
сложение, а результат сложения присвоить переменной income.
Операция вычитания: -
Операция
вычитания состоит в том, что число, стоящее в операторе после знака - ,
вычитается из числа, стоящего перед этим знаком. Оператор
takehome = 224.00 - 24.00 ;
присваивает
переменной takehome
значение 200.0 .
Операции знака + и -
Например
, следующая последовательность:
rocky = - 12;
smokey = - rocky ;
завершается
тем, что переменная smokey
получает значение 12.
Операция умножения: *
Умножение
обозначается символом * . Оператор
cm = 2 . 5 4 * inch ;
умножает
переменную inch на 2.54
и присваивает результат умножения переменной cm.
Операция деления: /
В
языке Си символ / используется для обозначения деления. Значение слева от
символа
/
делится на значение, указанное с права . Например, следующее выражение дает в
результате 4.0 :
four
= 12.0/ 3.0;
В Си
любая дробная часть, полученная при делении двух целых чисел, отбрасывается.
Этот процесс называется усечением.
Операция деления по модулю: %
Операция
деления по модулю применяется в целочисленной арифметике . Ее результатом
является
остаток от деления целого числа, стоящего слева от знака операции, на число,
расположенное справа от него. Например, 13 % 5 ( читается как "13 по модулю
5" ) дает в результате 3 , поскольку 5 содержится в 13 дважды с остатком,
равным 3 . Не пытайтесь выполнять эту операцию над числами с плавающей запятой.
Она просто не работает.
Операции инкремента и декремента: ++ и - -
Операция
инкремента решает простую задачу; она увеличивает (икрементирует) значение своего операнда на 1. Существует две
разновидности этой операции. В первом случае символы ++ идут непосредственно перед переменной, это
так называемая префиксная форма. Во втором случае символы + + следуют сразу за
переменной; это постфиксная форма . Эти две формы отличаются друг от друга по
моменту выполнения
инкремента
.
Декремент: - -
Для
каждой формы операции инкремента существует соответствующая операция
декремента. При этом вместо + + применяется обозначение - - .
- -
count ; / * префиксная форма операции декремента * /
count-
- ; / * постфиксная форма операции декремента * /
Выражения и
операторы
Операторы
образуют основные элементы программы на Си, а большая часть операторов состоит из
выражений.
Выражения
Выражение
представляет собой некоторую комбинацию операций
и операндов.
Операнд есть то, над чем выполняется
операция.
Операторы
Операторы
служат основными строительными блоками программы. Программа - это последовательность операторов с необходимыми
знаками пунктуации. Оператор есть законченная команда компьютеру. В языке Си
операторы распознаются по точке с запятой в конце.
legs
= 4
это
всего лишь выражение ( которое может быть частью другого выражения ), в тоже
время
legs
= 4;
является
оператором.
//ПРИМЕР
ОПЕРАТОРОВ
/*addemup.c - четыре вида операторов*/
#include
<stdio.h>
int
main (void) //находит сумму первых 20 натуральных чисел
{
int
count, sum ; //оператор объявления
count
= 0; // оператор присваивания
sum
= 0; // оператор присваивания
while
(count++ < 20) // оператор цикла while
sum
= sum + count; // операторы
printf
(" sum = %d\n" , sum);
//оператор вызова функции
return
0;
}
ОПЕРАТОР
ОБЪЯВЛЕНИЯ - вводит в употребление имена и типы переменных, а также
выделяет под них память.
ОПЕРАТОР
ПРИСВАИВАНИЯ - это "рабочая лошадка" многих программ; он
присваивает значения переменной.
Этот
оператор состоит из имени переменной, за которым следует операция присваивания
( = ), далее идет выражение, сопровождаемое точкой с запятой.
ОПЕРАТОР
ВЫЗОВА ФУНКЦИИ - заставляет функцию делать то, для чего она
предназначена. Функция printf()
вызывается для того, чтобы распечатать некоторые результаты.
ПРИСВАИВАНИЕ
ЗНАЧЕНИЙ - ПЕРЕМЕННАЯ МОЖЕТ ПОЛУЧИТЬ
ЗНАЧЕНИЯ
- с помощью оператора присваивания
cows
= 112;
- переменная может получить значение ИЗ
функции
scanf()
letters
= strlen(name);
- инициализация переменной
int hogs = 21;
float digs = 3.213;
double abet = 2.14e9;
long double dip = 5.32e-5;
char grade = 'A';
Сначала
рассмотрим заголовок функции:
void pound (int n)
Если
для выполнения функции аргументы не
требуются, в круглых скобках заголовка функции будет присутствовать
ключевое слово void. Поскольку
рассматриваемая функция принимает один
аргумент типа int, в круглых скобках содержится объявление переменной типа
int с именем n.
Функция
принимает один аргумент, но ничего не возвращает.
Операция
объявления аргумента приводит к созданию переменной, называемой формальным аргументом или формальным
параметром.
Теперь
рассмотрим вызовы функций.
Первым
вызовом является
pound (times)
данный
вызов приводит к тому, что значение переменной times, равное 5, присваивается
переменной n . В результате эта функция выводит на печать пять знаков фунта и
знак новой строки.
Второй
вызов этой функции выглядит как
pound (ch)
В
данном случае переменная ch имеет тип char . Она инициализируется символом ! ,
который в системах с кодировкой ASCII означает, что ch получила числовое
значение 33.
Последний
вызов,
pound ((int)f) ,
использует
преобразование типов для приведения типа переменной f типа float к типу,
соответствующему назначению этого аргумента.
void pound (int n) ; / /прототип ANSII
Прототип - это объявление функции, в
котором дается описание возвращаемого значения функции и всех ее аргументов. Прототипом
функции в языке Си или C++ называется объявление функции, не содержащее тела
функции, но указывающее имя функции, арность, типы аргументов и возвращаемый
тип данных. В то время как определение функции описывает, что именно делает
функция, прототип функции может восприниматься как описание её интерфейса.
Рассматриваемый
прототип сообщает следующие сведения о функции pound () :
- у
рассматриваемой функции возвращаемое значение отсутствует
- эта
функция принимает один аргумент, каковым является значение типа int
//ПРИМЕР 4
#include "stdio.h" //КОМАНДА ПРЕПРОЦЕССОРА - подключение
файла стандартной библиотеки С stdio.h содержит библиотеку функций
ввода-вывода
void jolly(void); //Объявления ПРОТОТИП ФУНКЦИИ с именем jolly()
void deny(void); //Объявления ПРОТОТИП ФУНКЦИИ с именем deny()
int main(void) //ИМЯ ФУНКЦИИ С АРГУМЕНТАМИ. Имя функции -
main(). Функция
которой всегда присутствует
в программе на С.
//int - ф-ция возвращает целое число, void - ф-ция не принимает аргументов
{
printf("He is funny good guy.
\n");
jolly(); //ОПЕРАТОР ВЫЗОВА ФУНКЦИИ с именем jolly() - это ПРОТОТИП
ФУНКЦИИ
printf("He is funny good guy. \n");
deny(); //ОПЕРАТОР ВЫЗОВА ФУНКЦИИ с именем
deny() - это ПРОТОТИП
ФУНКЦИИ
return 0; //ОПЕРАТОР ВОЗВРАТА
}
void jolly(void) //начало определения функции с именем jolly, функция не принимает
аргументов и нечего не возвращает
{
printf("He is funny good guy. \n");
}
void deny(void) //начало определения функции с именем deny
{
printf("Nobody say another
\n"); //\n код указывающий начать новую строку
}
void jolly(void)
//начало определения функции с именем jolly, функция не принимает аргументов и нечего не возвращает
printf("He is funny good guy. \n");
//ОПЕРАТОР ВЫЗОВА ФУНКЦИИ с именем printf() - функция ВЫВОД ДАННЫХ НА ЭКРАН. Имеет один аргумент. АРГУМЕНТ - ЭЛЕМЕНТЫ ИНФОРМАЦИИ ПЕРЕДАВАЕМОЙ ФУНКЦИИ.