
- •Информатика основы
- •Предисловие
- •Введение
- •Программы
- •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. Организация программ с использованием структур
- •Имя_структуры . Имя_элемента_структуры
- •Список товаров
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
- •Основные бинарные операции
- •Операции сравнения
- •Составные операции присваивания
- •Логические операции
- •Типы числовых данных
- •Константы, используемые в математических выражениях
- •Математические функции
- •Типовые сообщения об ошибках
- •Оглавление
Результат выполнения программы
k=10
m=4
b1=1
bk=4.6
c1=1
ck=3.6
Полученный результат: y= 5.80738
!! Проанализируйте программу. Создав новый файл проекта с именем faktorial.ide, наберите в нем текст данной программы, откомпилируйте ее и произведите запуск программы на выполнение.
6.3. Перегруженные функции
С++ позволяет определять несколько функций, реализующих один и тот же алгоритм, с одним и тем же именем. Эта особенность называетсяперегрузкой функции, а сами функции -перегруженнымифункциями. Применение таких функций делает программы более понятными и легко читаемыми.
Перегруженные функции различаются компилятором с помощью так называемой сигнатуры – списка типов их аргументов. Однако, используя в перегруженных функциях параметры по умолчанию, следует быть осторожным, так как функция с пропущенными аргументами может быть вызвана не той перегруженной функцией.
Примером эффективного использования перегрузки функций является задача сортировки массивов различных типов. Ниже приведена программа сортировки методом "пузырька" числовых массивов типа int,long,floatиdoubleразличной размерности (лист. 6.2).
Листинг 6.2. func.сpp
#include <iostream.h>
#include <math.h>
//Прототипы перегруженных функций sort
void sort(int,int[]);
void sort(int,long[]);
void sort(int,float[]);
void sort(int,double[]);
void main() //Основная программа
{
/*Корректируемые параметры до использования
программы: значение m и тип z */
const int m=5; //Размерность массива чисел
double z[m]; //Тип массива чисел z
//Ввод массива
cout<<"Введите элементы массива z[]:\n";
for(int i=0;i<m;i++)
{
cout<<"z["<<i<<"]=";cin>>z[i];
}
cout<<"\nИсходный массив чисел:\n"<<"z["<<m<<"]={";
for(int i=0;i<m;i++)
cout<<z[i]<<" ";
cout<<"}"<<endl;
cout<<"\nОтсортированный массив чисел:\n"<<"z["<<m<<"]={";
sort(m,z); //Обращение к функции sort с массивом типа double
cout<<"}";
}
//Перегруженная функция для массива типа int
void sort(int n,int mass[]) //Заголовок с параметром - массивом
{
//Сортировка методом "пузырька"
for(int i=0;i<n-1;i++)
{ int a;
for(int j=i+1;j<n;j++)
if (mass[j]<mass[i])
{a=mass[i];
mass[i]=mass[j];
mass[j]=a;
}
}
//Вывод отсортированного массива
for(int i=0;i<n;i++)
cout<<mass[i]<<" ";
}
//Перегруженная функция для массива типа long
void sort(int n,long mass[])
{
for(int i=0;i<n-1;i++)
{ long a;
for(int j=i+1;j<n;j++)
if (mass[j]<mass[i])
{a=mass[i];
mass[i]=mass[j];
mass[j]=a;
}
}
for(int i=0;i<n;i++)
cout<<mass[i]<<" ";
}
//Перегруженная функция для массива типа float
void sort(int n,float mass[])
{
for(int i=0;i<n-1;i++)
{ float a;
for(int j=i+1;j<n;j++)
if (mass[j]<mass[i])
{a=mass[i];
mass[i]=mass[j];
mass[j]=a;
}
}
for(int i=0;i<n;i++)
cout<<mass[i]<<" ";
}
//Перегруженная функция для массива типа double
void sort(int n,double mass[])
{
for(int i=0;i<n-1;i++)
{ double a;
for(int j=i+1;j<n;j++)
if (mass[j]<mass[i])
{a=mass[i];
mass[i]=mass[j];
mass[j]=a;
}
}
for(int i=0;i<n;i++)
cout<<mass[i]<<" ";
}