#include <stdio.h>
#include <math.h>
// Параметры функции
#define A 2.5
#define B 0.4
// Функция для вычисления значения по условию
double calculate(double t) {
if (t < -0.1) {
// Пример для t < -0.1: f(t) = a * t + b
return A * t + B;
} else if (t <= 0.5) {
// Пример для -0.1 <= t <= 0.5: f(t) = a * t^2 - b
return A
* pow(t
, 2) - B
; } else {
// Пример для t > 0.5: f(t) = a / t + b
return A / t + B;
}
}
int main() {
// Диапазон и количество точек
const double t_start = -1.0;
const double t_end = 1.0;
const int N = 50; // Не менее 50 значений
// Шаг между точками
double step = (t_end - t_start) / (N - 1);
printf("Вычисление значений функции на интервале [-1, 1]\n"); printf("Параметры: a = %.2f, b = %.2f\n\n", A
, B
); printf("%-10s %-15s\n", "t", "f(t)"); printf("-----------------------\n");
for (int i = 0; i < N; i++) {
double t = t_start + i * step;
double value = calculate(t);
printf("%-10.4f %-15.6f\n", t
, value
); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgovLyDQn9Cw0YDQsNC80LXRgtGA0Ysg0YTRg9C90LrRhtC40LgKI2RlZmluZSBBIDIuNQojZGVmaW5lIEIgMC40CgovLyDQpNGD0L3QutGG0LjRjyDQtNC70Y8g0LLRi9GH0LjRgdC70LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQv9C+INGD0YHQu9C+0LLQuNGOCmRvdWJsZSBjYWxjdWxhdGUoZG91YmxlIHQpIHsKICAgIGlmICh0IDwgLTAuMSkgewogICAgICAgIC8vINCf0YDQuNC80LXRgCDQtNC70Y8gdCA8IC0wLjE6IGYodCkgPSBhICogdCArIGIKICAgICAgICByZXR1cm4gQSAqIHQgKyBCOwogICAgfSBlbHNlIGlmICh0IDw9IDAuNSkgewogICAgICAgIC8vINCf0YDQuNC80LXRgCDQtNC70Y8gLTAuMSA8PSB0IDw9IDAuNTogZih0KSA9IGEgKiB0XjIgLSBiCiAgICAgICAgcmV0dXJuIEEgKiBwb3codCwgMikgLSBCOwogICAgfSBlbHNlIHsKICAgICAgICAvLyDQn9GA0LjQvNC10YAg0LTQu9GPIHQgPiAwLjU6IGYodCkgPSBhIC8gdCArIGIKICAgICAgICByZXR1cm4gQSAvIHQgKyBCOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIC8vINCU0LjQsNC/0LDQt9C+0L0g0Lgg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtGH0LXQugogICAgY29uc3QgZG91YmxlIHRfc3RhcnQgPSAtMS4wOwogICAgY29uc3QgZG91YmxlIHRfZW5kID0gMS4wOwogICAgY29uc3QgaW50IE4gPSA1MDsgLy8g0J3QtSDQvNC10L3QtdC1IDUwINC30L3QsNGH0LXQvdC40LkKCiAgICAvLyDQqNCw0LMg0LzQtdC20LTRgyDRgtC+0YfQutCw0LzQuAogICAgZG91YmxlIHN0ZXAgPSAodF9lbmQgLSB0X3N0YXJ0KSAvIChOIC0gMSk7CgogICAgcHJpbnRmKCLQktGL0YfQuNGB0LvQtdC90LjQtSDQt9C90LDRh9C10L3QuNC5INGE0YPQvdC60YbQuNC4INC90LAg0LjQvdGC0LXRgNCy0LDQu9C1IFstMSwgMV1cbiIpOwogICAgcHJpbnRmKCLQn9Cw0YDQsNC80LXRgtGA0Ys6IGEgPSAlLjJmLCBiID0gJS4yZlxuXG4iLCBBLCBCKTsKICAgIHByaW50ZigiJS0xMHMgJS0xNXNcbiIsICJ0IiwgImYodCkiKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgZG91YmxlIHQgPSB0X3N0YXJ0ICsgaSAqIHN0ZXA7CiAgICAgICAgZG91YmxlIHZhbHVlID0gY2FsY3VsYXRlKHQpOwogICAgICAgIHByaW50ZigiJS0xMC40ZiAlLTE1LjZmXG4iLCB0LCB2YWx1ZSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=