- •Информатика основы
- •Предисловие
- •Введение
- •Программы
- •1.1. Элементы языка
- •Список основных ключевых слов
- •Типы числовых данных
- •Разделители
- •Основные бинарные операции
- •Математические функции
- •1.2. Структура программы
- •1.3. Выполнение программы
- •Контрольные вопросы
- •2.1. Загрузка и настройка системы программирования
- •2.2. Создание и работа с проектом
- •Условные графические обозначения основных блоков схем алгоритмов
- •Словесно-формульный алгоритм
- •Листинг 2.1. Lin_prog.Cpp
- •Результат выполнения программы
- •3.2. Логический тип данных и базовые логические операции
- •Операции сравнения
- •Логические операции
- •При решении задач с множеством логических условий программа существенно упрощается, если эти условия удается объединить с помощью операций и, или, не в более крупные выражения.
- •Словесно-формульный алгоритм
- •Результат выполнения программы
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Области определения функции z (X,y)
- •Контрольные вопросы
- •4. Организация циклов
- •4.1. Организация программ с циклами
- •For (инициализация; условие; модификация) операторы
- •4.2. Инкремент, декремент и составные операции
- •Составные операции присваивания
- •Результат выполнения программы
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •5.Составление программ с массивами
- •5.1. Организация программ с массивами
- •Тип имя_массива [n];
- •Имя_массива [индекс]
- •Тип имя_массива [размер_1] [размер_2]
- •5.2. Манипуляторы и форматирование ввода-вывода
- •Манипуляторы
- •Результат выполнения программы
- •Результат выполнения программы
- •Контрольные вопросы
- •Дайте определение массива.
- •6. Составление программ с использованием функций
- •6.1. Описание, объявление и вызов функций
- •Механизм возврата из функции реализуется оператором
- •Тип имя_функции (тип размерность, тип имя_массива[ ]) ,
- •6.2. Глобальные и локальные переменные
- •Результат выполнения программы
- •6.3. Перегруженные функции
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •7. Программирование с использованием указателей
- •7.1. Общие сведения об указателях
- •7.2. Динамические массивы
- •Результат выполнения программы
- •Результат выполнения программы
- •7.3. Указатели и функции
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •8. Программирование с использованием структур
- •8.1. Определение структур
- •8.2. Организация программ с использованием структур
- •Имя_структуры . Имя_элемента_структуры
- •Список товаров
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
- •Основные бинарные операции
- •Операции сравнения
- •Составные операции присваивания
- •Логические операции
- •Типы числовых данных
- •Константы, используемые в математических выражениях
- •Математические функции
- •Типовые сообщения об ошибках
- •Оглавление
6.2. Глобальные и локальные переменные
Глобальная переменная объявляется вне каких-либо функций, в том числеmain. Она может использоваться в любом месте программы, начиная от места объявления. Полной противоположностью глобальной переменной являетсялокальная переменная, которая описывается внутри функции. Областью ее действия является функция. Между вызовами одной и той же функции значение локальной переменной не сохраняется. Если этого требуется избежать, при объявлении локальных переменных используется модификаторstatic, например:
. . . . . . . . . . .
staticintn=0;n++;//при повторном вызове n=1, далее n=2 и т.д.
. . . . . . . . . . .
Если локальная и глобальная переменные имеют одно и то же имя, то локальная переменная "блокирует" в функции действие глобальной переменной, т.е. глобальная переменная в этом случае не видима.
Использование глобальных переменных в функциях не рекомендуется, так как это препятствует их помещению в библиотеку общего пользования. Необходимо всегда стремиться к тому, чтобы функции были максимально независимыми и обменивались информацией через свои заголовки.
Пример. Составить программу вычисления значения
,
при k=10,m=4,d=2,5;bi=1…4,6;ci=1…3,6.
Вычисление суммы и факториала оформить в виде функций.
Программа для решения данной задачи приведена в лист. 6.1.
Листинг 6.1. faktorial.сpp
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
float d=2.5; //Глобальная переменная
//Прототип функции summ с параметром по умолчанию
double summ(double,double,int,int=2);
//Описание основной функции main
void main() /*Функция main не имеет параметров
и не возвращает значение*/
{
int k,m; //Локальные переменные
double b1,bk,c1,ck,y,y1,y2; //функции main
//Ввод исходных данных
cout<<"k=";cin>>k;
cout<<"m=";cin>>m;
cout<<"b1=";cin>>b1; //Начальное значение bi
cout<<"bk=";cin>>bk; //Конечное значение bi
cout<<"c1=";cin>>c1; //Начальное значение ci
cout<<"ck=";cin>>ck; //Конечное значение ci
y1=tan(d)*summ(b1,bk,k); //Параметр по умолчанию опущен
y2=exp(d)*summ(c1,ck,m,3); //Параметр по умолчанию изменен
y=y1+y2;
cout<<"\nПолученный результат:";
cout<<"y="<<setw(8)<<y;
}
unsigned long fact(int); //Прототип функции fact
//Описание функции вычисления суммы summ
double summ(double x1,double xk,int p,int q) //Заголовок
{ double x=x1,s=0,h; //Локальные переменные
h=(xk-x1)/(p-1); //Вычисление шага
for(int i=1;i<=p;i++)
{
s+=(pow(x,q)+d)/fact(q*i); //Вызов функции fact
x+=h;
}
return s; //Возвращение результата
}
//Описание функции вычисления факториала fact
unsigned long fact(int a) //Заголовок функции fact
{
unsigned long f=1; //Локальная переменная f
if(a==0) return 1; //Первый оператор возврата
for(int j=1;j<=a;j++)
f*=j;
return f; //Второй оператор возврата
}