Перейти к основному содержимому

Для программ на C++

#include <iostream>
#include <iomanip>
#include <cstring>

using namespace std;

struct I_print { // данные для печати результатов интегрирования
char *name; // название функции
double i_sum; // значение интегральной суммы
double i_toch; // точное значение интеграла
int n; // число разбиений области интегрирования при котором достигнута требуемая точность
};

void PrintTabl(I_print i_prn[], int k) {
const char SIDE_SYBMOL = '|';
const char HORIZONTAL_SYBMOL = '-';
const char CONNECTOR_SYBMOL = '+';

const int m = 4; // число столбцов таблицы
int wn[m] = {12, 18, 18, 10}; // ширина столбцов таблицы
char *title[m] = {(char *) "Function", (char *) "Integral", (char *) "IntSum", (char *) "N "};
int size[m];
for (int i = 0; i < m; i++) {
size[i] = (int) strlen(title[i]);
}

// шапка таблицы
std::cout << CONNECTOR_SYBMOL << setfill(HORIZONTAL_SYBMOL);
for (int j = 0; j < m - 1; j++)
cout << setw(wn[j]) << CONNECTOR_SYBMOL;
cout << setw(wn[m - 1]) << CONNECTOR_SYBMOL << endl;

cout << SIDE_SYBMOL;
for (int j = 0; j < m; j++)
cout << setw((wn[j] - size[j]) / 2) << setfill(' ') << ' ' << title[j]
<< setw((wn[j] - size[j]) / 2) << SIDE_SYBMOL;
cout << endl;

// заполнение таблицы
for (int i = 0; i < k; i++) {
cout << CONNECTOR_SYBMOL << fixed;
for (int j = 0; j < m - 1; j++)
cout << setfill(HORIZONTAL_SYBMOL) << setw(wn[j]) << CONNECTOR_SYBMOL;
cout << setw(wn[m - 1]) << CONNECTOR_SYBMOL << setfill(' ') << endl;

cout << SIDE_SYBMOL << setw((int) (wn[0] - strlen(i_prn[i].name)) / 2) << ' ' << i_prn[i].name
<< setw((int) (wn[0] - strlen(i_prn[i].name)) / 2) << SIDE_SYBMOL;
cout << setw(wn[1] - 1) << setprecision(10) << i_prn[i].i_toch << SIDE_SYBMOL
<< setw(wn[2] - 1) << i_prn[i].i_sum << setprecision(6) << SIDE_SYBMOL
<< setw(wn[3] - 1) << i_prn[i].n << SIDE_SYBMOL << endl;
}

// низ таблицы
cout << CONNECTOR_SYBMOL << setfill(HORIZONTAL_SYBMOL);
for (int j = 0; j < m - 1; j++)
cout << setw(wn[j]) << CONNECTOR_SYBMOL;
cout << setw(wn[m - 1]) << CONNECTOR_SYBMOL << setfill(' ') << endl;
}

int main() {
setlocale(LC_ALL, "Russian");
I_print a{};
a.name = (char *) "ccaa";
a.i_sum = 1;
a.i_toch = 2;
a.n = 3;

I_print b{};
b.name = (char *) "ddbb";
b.i_sum = 4;
b.i_toch = 5;
b.n = 6;

I_print f[2];
f[0] = a;
f[1] = b;

PrintTabl(f, 2);
return 0;
}