logo search
ООП для Заоч / Пинчук Лозовская Программир на С

Void main()

{ int k;

printf("Decimal k = "); scanf("%d",&k);

printf("Hexagonal k = %s \n",binar(k));

}

void biread(FILE* f, Type& x);

Виконується читання змінної x з бінарного файлу. Змінна може мати довільний тип.

void biwrite(FILE* f, Type& x);

Виконується запис значення змінної x у бінарний файл. Змінна може мати довільний тип.

У наступному прикладі виконується запис у файл proba.bin таблиці функції Ланжевена. Запис виконується у бінарному режимі, без форматних перетворень. Після цього виконується читання таблиці із файлу і виведення її на екран.

// Приклад 6

#include <syst.h>

void main()

{ FILE* f = fopen("proba.bin","wb");

// відкриття файлу для запису

double x,y; int k;

for (k=0;k<=20;k++) { x=0.1*k; y=lanj(x);

biwrite(f,x); biwrite(f,y);

}

fclose(f);

f = fopen("proba.bin","rb"); // відкриття файлу для читання

for (;;) { biread(f,x); biread(f,y);

if (feof(f)) break;

printf("%f %f \n",x,y);

}

fclose(f);

}

void printr(char* S, FILE* f = stdout);

Виводить у файл, який відповідає покажчику f, рядок символів S з корекцією символів кирилиці. Якщо другий параметр не вказано, рядок виводиться на екран.

void temprint(Type& A);

Виведення на екран значень всіх елементів структури A по ітератору. Структура повинна мати тип, визначений в бібліотеці STL.

Нижче наведено приклад застосування функції temprint для виведення елементів структури типу vector.

// Приклад 7

#include <syst.h>

#include <vector>

void main()

{ vector<int> A(8);

for (int k=0;k<8;k++) A[k]=k*k;

temprint(A);

}

void endline(FILE* f, char* text);

Ця процедура виводить у файл, який відповідає покажчику f, рядок, що містить таку інформацію: наданий рядок text, ім'я cpp-файлу поточної програми, дату і час виконання програми. Виведення такої інформації можна планувати на початку або наприкінці роботи програми. Для виведення інформації на екран для першого параметру треба вказати значення stdout.

Наприклад, якщо наведена нижче програма

// Приклад 8

#include <syst.h>

void main()

{ endline(stdout,"Ivanov A.B.");

}

розташована у файлі example.cpp, то після її виконання отримаємо на екрані інформацію у такій формі:

Ivanov A.B., 12.03.2005, 13:38, example.cpp

14.5. Математичні функції

Type abs(Type x);

Абсолютна величина (або модуль) від x . Тип значення, що повертається, відповідає типу аргументу. Аргумент може мати довільний числовий тип або тип complex.

double log2(double x);

Логарифм по основі 2 .

inline const Type& Max(const Type& a, const Type& b);

Функція повертає посилання на змінну, значення якої більше.

inline const Type& Min(const Type& a, const Type& b);

Функція повертає посилання на ту змінну, значення якої менше. Наприклад, є дві змінні x,y якогось довільного типу, треба присвоїти значення 0 тій з них, яка є меншою. Для цього достатньо у програмі записати такий рядок:

Min(x,y) = 0;

double frac(double x);

Функція повертає дробову частину x у форматі double.

int round(double x);

Функція здійснює приведення до цілого шляхом округлення.

double frand();

При кожному виклику функція повертає чергове випадкове число з інтервалу [0,1]. Одержувані випадкові числа мають рівномірний розподіл. Для формування результату використовується стандартний генератор цілих випадкових чисел random(int) сумісно з глобальною константою RND_MAXL, яка визначається у модулі syst.h.

double frand(float a, float b);

Функція повертає випадкове число з рівномірним розподілом з інтервалу [a,b]. У цій функції також використовується бібліотечна функція random(int) і глобальна константа RND_MAXL.

ulong fact(int k);

double factd(int k);

Функції для обчислення факторіала. Різні типи значень, що повертаються, дозволяють одержати факторіал для різних інтервалів значень аргументу: для функції fact(x) маємо інтервал 0 ≤ x ≤ 12, для функції factd(x) - інтервал 0 ≤ x ≤ 170. При цьому тільки функція fact виконує обчислення точно.

ulong Cmb(int n, int r);

Функція підраховує кількість сполучень із n по r.

double simpson(double (*F)(double), double a, double b,

int N);

Функція обчислює інтеграл за методом Симпсона. Параметри: a, b - межі інтегрування, N - кількість кроків інтегрування, F - ім'я підінтегральної функції, що повинна бути описана як функція типу double F(double). Похибка отриманого значення визначається параметром N. Нижче наведено приклад обчислення інтегралу

за допомогою функції simpson. Крім підрахованого значення інтегралу, програма виводить ще й його точне значення, яке дорівнює 3/4 .

// Приклад 1

#include <syst.h>

double f(double x)

{ return sh(sqrt(pi*pi-x*x))*cos(x);

}