using namespace std;
double a = 0, b = 0; // Числа с плавающей запятой.
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout.precision(16); // 16 значащих знаков.
cout << "a to b power = " << pow(a, b) << endl;
//cout << "remainder a:b = " << a % b << endl;
// Операция взятия остатка не определена.
return EXIT_SUCCESS;
}
0190-function_log.cpp
// function_log.cpp
#include
#include
// "Математические функции".
#include
// Определение своей функции.
double log(double base, double arg)
{
// Через стандартный натуральный логарифм.
return std::log(arg) / std::log(base);
}
int main()
{
using namespace std;
double a = 0, b = 0; // Числа с плавающей запятой.
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout.precision(16); // 16 значащих знаков.
cout << "log(b, a) = " << log(b, a) << endl;
return EXIT_SUCCESS;
}
0200-file_scope_using_namespace.cpp
// file_scope_using_namespace.cpp
#include
#include
// "Математические функции".
#include
using namespace std;
// Определение своей функции.
double log(double base, double arg)
{
// Через стандартный натуральный логарифм.
return log(arg) / log(base);
}
int main()
{
double a = 0, b = 0; // Числа с плавающей запятой.
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout.precision(16); // 16 значащих знаков.
cout << "log(b, a) = " << log(b, a) << endl;
return EXIT_SUCCESS;
}
0210-units_conversion.cpp
// units_conversion.cpp
#include
#include
// Дюймы in в метры.
double in2m(double in) { return 0.0254 * in; }
// Футы ft в метры.
double ft2m(double ft) { return 0.304 * ft; }
// Метры m в дюймы.
double m2in(double m) { return m / 0.0254; }
// Метры m в футы.
double m2ft(double m) { return m / 0.304; }
int main()
{
using namespace std;
cout << "Enter length: ";
double len = 0.0;
cin >> len;
cout << "in to m = " << in2m(len) << endl;
cout << "ft to m = " << ft2m(len) << endl;
cout << "m to in = " << m2in(len) << endl;
cout << "m to ft = " << m2ft(len) << endl;
cout << "in to ft = " << m2ft(in2m(len)) << endl;
cout << "ft to in = " << m2in(ft2m(len)) << endl;
return EXIT_SUCCESS;
}
0220-if.cpp
// if.cpp
#include
#include
using namespace std;
int main()
{
double x = 0;
cout << "x = ";
cin >> x;
cout << "x*x ";
if (x*x < 2) // Условие.
cout << " < ";
else // Альтернатива.
cout << " > ";
cout << "2" << endl;
return EXIT_SUCCESS;
}
0230-bool_expr.cpp
// bool_expr.cpp
#include
#include
using namespace std;
int main()
{
double x = 0;
cout << "x = ";
cin >> x;
// Логическое выражение.
cout << "x*x < 2 == " << (x*x < 2) << endl;
return EXIT_SUCCESS;
}
0240-bool_pred.cpp
// bool_pred.cpp
#include
#include
using namespace std;
// Определение своей функции-предиката.
// Проверяет условие: x в квадрате меньше 2.
bool sqr_lt_2(double x)
{
return x*x < 2;
}
int main()
{
double x = 0;
cout << "x = ";
cin >> x;
cout << "x*x < 2 == " << sqr_lt_2(x) << endl;
return EXIT_SUCCESS;
}
0250-while_true.cpp
// while_true.cpp
#include
#include
using namespace std;
// Определение своей функции-предиката.
// Проверяет условие: x в квадрате меньше 2.
bool sqr_lt_2(double x)
{
return x*x < 2;
}
int main()
{
double x = 0;
while (true)
{
cout << "x = ";
cin >> x;
cout << "x*x < 2 == " << sqr_lt_2(x) << endl;
}
return EXIT_SUCCESS;
}
0260-while_cin.cpp
// while_cin.cpp
#include
#include
using namespace std;
// Определение своей функции-предиката.
// Проверяет условие: x в квадрате меньше 2.
bool sqr_lt_2(double x)
{
return x*x < 2;
}
int main()
{
double x = 0;
cout << "Enter a sequence of numbers x: ";
while (cin >> x) // Условие продолжения выполнения цикла.
{
cout << "x*x < 2 == " << sqr_lt_2(x) << endl;
}
return EXIT_SUCCESS;
}
0270-for_cin.cpp
// for_cin.cpp
#include
#include
using namespace std;
// Определение своей функции-предиката.
// Проверяет условие: x в квадрате меньше 2.
bool sqr_lt_2(double x)
{
return x*x < 2;
}
int main()
{
cout << "Enter a sequence of numbers x: ";
// Определение переменных; условие продолжения; последнее действие на каждом повторении.
for (double x = 0; cin >> x;)
{
cout << "x*x < 2 == " << sqr_lt_2(x) << endl;
}
return EXIT_SUCCESS;
}
0275-cin_delay.cpp
// cin_delay.cpp
// Задержка экрана средствами ISO C++.
#include
using namespace std;
/// Сбросить флаги ошибок и содержимое буфера потока.
void ignore_all(istream &is)
{
is.clear(); // Сброс ошибок.
is.sync(); // Синхронизация объекта потока с внешним устройством.
is.ignore(is.rdbuf()->in_avail()); // Сброс символов уже считанных в буфер потока.
}
/// Задержка экрана = сброс стандартного потока ввода и ожидание следующего символа.
void console_delay()
{
ignore_all(cin);
cin.ignore();
}
// Демонстрация.
int main()
{
while (true)
{
cout << "Enter a sequence of integers:\n";
for (int i; cin >> i;)
cout << i << ' ';
cout << "\nPress Enter to repeat\n";
console_delay();
}
}
0276-cin_delay_eof_exit.cpp
// cin_delay_eof_exit.cpp
// Задержка экрана средствами ISO C++.
#include
#include
using namespace std;
/// Сбросить флаги ошибок и содержимое буфера потока.
void ignore_all(istream &is)
{
is.clear();
is.sync();
is.ignore(is.rdbuf()->in_avail());
}
/// Задержка экрана = сброс стандартного потока ввода и ожидание следующего символа.
void console_delay()
{
ignore_all(cin);
cin.ignore();
}
// Демонстрация.
int main()
{
while (true)
{
cout << "Enter a sequence of integers:\n";
for (int i; cin >> i;)
cout << i << ' ';
// Выйти, если введён признак конца файла.
if (cin.eof())
return EXIT_SUCCESS;
cout << "\nPress Enter to repeat\n";
console_delay();
}
}
0280-circle_const.cpp
// circle_const.cpp
#include
#include
using namespace std;
// Определение своей функции-предиката.
// проверить попадание в круг
bool in_circle(float x, float y,
float cx, float cy, float r)
// координаты центра круга и его радиус
{
// Константы -- после инициализации значения не изменяются.
const float dx = x - cx,
dy = y - cy;
return dx * dx + dy * dy <= r * r;
}
int main()
{
cout << "Enter a sequence of coordinates x, y: ";
// Определение переменных; условие продолжения; последнее действие на каждом повторении.
for (float x, y; cin >> x >> y;)
{
const bool within_the_circle = in_circle(x, y, 1, -1, 3);
cout << "(x, y) within the circle == " << within_the_circle << endl;
}
return EXIT_SUCCESS;
}
0290-complex_bool_expr.cpp
// complex_bool_expr.cpp
#include
#include
using namespace std;
// Проверить попадание в круг.
bool in_circle(float x, float y,
float cx, float cy, float r)
// координаты центра круга и его радиус
{
// Константы -- после инициализации значения не изменяются.
const float dx = x - cx,
dy = y - cy;
return dx * dx + dy * dy <= r * r;
}
// Проверить попадание в прямоугольник.
bool in_rectangle(float x, float y,
float left, float right, float bottom, float top)
// координаты левой, правой, нижней и верхней граней
{
return left <= x && x <= right // && -- "и"
&& bottom <= y && y <= top;
}
// Проверить попадание в заданную фигуру.
bool in_figure(float x, float y)
{
// фигура может быть представлена как пересечение полуплоскости и
// объединения трёх фигур: двух прямоугольников и сегмента круга
return (in_rectangle(x, y, 2.0, 4.0, -5.0, 5.0)
|| in_rectangle(x, y, -4.0, -2.0, -5.0, 5.0) // || -- "или"
|| in_circle(x, y, -2.0, 0.0, 5.0)) && x >= -4.0;
}
int main()
{
cout << "Enter a sequence of coordinates x, y: ";
// Определение переменных; условие продолжения; последнее действие на каждом повторении.
Do'stlaringiz bilan baham: |