- Выполнить следующие демонстрационные программы
//программа иллюстрирует применение локальных переменных в функциях
#include <iostream.h>
double f(double x)
{
return x*x-5*x+10;
}
double slope(double x)
{
double f1,f2,incrim=0.01*x; //объявление локальных переменных
f1=f(x+incrim);
f2=f(x-incrim);
return (f1-f2)/2/incrim;
}
int main()
{
double x=3.5;
cout << "f"<<x<<”)”<<f(x)<<”\n”<<”f(”<<x<<”)=”<<slope(x)<<”\n”;
return 0;
}
//программа иллюстрирует применение статических локальных переменных в функциях
#include <iostream.h>
double mean(double x)
{
static double sum=0;
static double sumx=0;
sum=sum+1;
sumx=sumx+x;
return sumx / sum;
}
int main()
{
cout << “avereg=”<<mean(1)<<”\n”;
cout << “avereg=”<<mean(2)<<”\n”;
cout << “avereg=”<<mean(3)<<”\n”;
cout << “avereg=”<<mean(10)<<”\n”;
cout << “avereg=”<<mean(11)<<”\n”;
return 0;
}
//программа иллюстрирует применение функций типа inline
#include <iostream.h>
inline double sqr(double x)
{
return x*x;
}
inline double cube(double x)
{
return x*x*x;
}
int main()
{
double x;
cout << “Input number \n”;
cin>>x;
cout << “Sqr”<<x<<”=”<<sqr(x)<<” \n”;
cout << “Cube”<<x<<”=”<<cube(x)<<” \n”;
return 0;
}
//программа иллюстрирует использование аргументов задаваемых по умолчанию
#include <iostream.h>
#include <math.h>
inline double sqr(double x)
{
return x*x;
}
double distance(double x2,double y2,double x1=0,double y1=0)
{
return sqrt(sqr(x2-x1)+sqr(y2-y1));
}
int main()
{
double x1,x2,y1,y2;
cout << “Input X for point 1:”;
cin>>x1;
cout << “Input X for point 2:”;
cin>>x2;
cout << “Input Y for point 1:”;
cin>>y1;
cout << “Input Y for point 2:”;
cin>>y2;
cout << “Distance between point=”<< distance(x1,y1,x2,y2)<<” \n”;
cout << “Distance between point 1 and (0,0)=”<< distance(x1,y1,0)<<” \n”;
cout << “Distance between point 2 and (0,0)=”<< distance(0,x2,y2)<<” \n”;
return 0;
}
//программа иллюстрирует использование перегрузки функций
#include <iostream.h>
//программа содержит перегружаемые функции для увеличения значений аргументов на 1 для
//разных типов данных
//версия для типа int
void inc(int& i)
{
i=i+1;
}
//версия для типа double
void inc(double& i)
{
i=i+1;
}
//версия для типа char
void inc(char& c)
{
c=c+1;
}
int main()
{
char c=’A’;
int i=10;
double x=10.2;
cout << “c= ”<<c<<”\n”<<”x=”<<x<<”\n”<<i=”<<i<<”\n”;
//вызываем функции для увеличения
inc(c);
inc(x);
inc(i);
//вывод результатов
cout << “c= ”<<c<<”\n”<<”x=”<<x<<”\n”<<i=”<<i<<”\n”;
return 0;
}
- Написать программу согласно варианту
1) Написать подпрограммы для вычисления площади треугольника. С клавиатуры вводятся а) координаты X Y 3-х вершин б) длины 2-х сторон и угол между ними. Для варианта а) и б) написать перегружаемые функции.
2) Написать подпрограммы для вычисления площади прямоугольника и квадрата. С клавиатуры вводятся длины двух сторон в случае прямоугольника, длина одной стороны в случае квадрата. Для вычисления площадей использовать перегружаемую функцию а также аргументы по умолчанию для квадрата длина стороны =10, для прямоугольника 10 и 20.
3) Написать подпрограммы для вычисления площадей и длин окружности и эллипса для окружности S=pR2, l=2pR для эллипса S=pab, l=2p(a+b)/2. С клавиатуры вводятся длины двух диаметров в случае эллипса и длина радиуса для окружности. Для вычисления площадей и длин использовать перегружаемые функции а также аргументы по умолчанию для окружности R =10, для эллипса a=5 b=10.
4) Написать программу которая считывает с клавиатуры три числа два из них типа int представляющих денежную единицу например число долларов и центов (при этом второе число является 2-х значным от 0 до 99) третье число имеет тип double и также предсталяет денежную единицу например $14.35 или $5.01. Необходимо составить подпрограммы для перевода 2-х первых чисел типа int в формат с плавающей точкой. Например если ввели два числа 15 и 89 то результат должен быть $15.89 Для третьего числа осуществить обратную операцию для чего можно привести число типа double к типу int тогда если например было введено число 15.89 то результат будет содержать число 15 затем можно отнять 15.89-15 и результат умножить на 100 и опять привести его к типу int получим 89. Результаты работы программы отобразить на экране.
5) Составить программу для ввода с клавиатуры и сложения двух комплексных чисел x+ j y где x и y вводятся с клавиатуры. Создать перегружаемые функции для случаев когда x и y целые числа, а также для случаев когда x и y числа с плавающей запятой. Результаты работы вывести на экран.
6) Составить программу для ввода с клавиатуры и умножения двух комплексных чисел x+ j y где x и y вводятся с клавиатуры. Создать перегружаемые функции для случаев когда x и y целые числа, а также для случаев когда x и y числа с плавающей запятой. Результаты работы вывести на экран.
7) Составить программу которая считывает три числа с клавиатуры и вычисляет наибольшее и наименьшее среди них. Создать перегружаемые функции для чисел целого типа int, а также для чисел с плавающей запятой. Результаты работы вывести на экран.