<commit_before>#include "stdio.h"
#include <math.h>
#include <cmath>
#include <cstdlib>
#include <ctime>

struct Data
{
	double a;
	double b;
	double x1;
	double x2;
	double dx;
	double* f;
};

#define SIZE 100
static double source[SIZE];
static double results[SIZE];
static double results2[SIZE];
static Data d = { 1, 5, -2, -0.1, 0.1, results };

double f(double x) {
	double result;
	if (x <= -0.7) {
		result = -1 * d.a * x * x;
	} else {
		result = (d.a - x) / (d.b * x);
	}
	return result;
}

double scale(double x, double min, double from, double to) {
	min = std::abs(min);
	from = std::abs(from + min);
	x = std::abs(x+min);
	double scaleFactor = to / from;
	return scaleFactor * x;
}

double printVertical(double* f, int size) {
	printf("\n\n\n3.\n");
	for (int i = 0; i < size; ++i) {
		for (int j = 0; j < f[i]; ++j) {
			printf(" ");
		}
		printf("*\n");
	}
}

float randomFloat(float a, float b) {
	float random = ((float) rand()) / (float) RAND_MAX;
	float diff = b - a;
	float r = random * diff;
	return a + r;
}

int main()
{
	//1111111111111111111111111111111111111111111111111
	printf("Iteration from %.2f to %.2f with step %.2f\n", d.x1, d.x2, d.dx);

	int cnt = 0;
	if (d.x1 < d.x2)
		for (double x = d.x1; x < d.x2+d.dx; x+=d.dx) {
			source[cnt] = x;
			if (d.a - x == 0)
				d.f[cnt] = 0;
			else
				d.f[cnt] = f(x);
			++cnt;
		}
	else
		for (double x = d.x1; x > d.x2+d.dx; x-=d.dx) {
			source[cnt] = x;
			if (d.a - x == 0)
				d.f[cnt] = 0;
			else
				d.f[cnt] = f(x);
			++cnt;
		}

	printf(" x         f(x)\n");
	for (int i = 0; i < cnt; ++i)
	{
		printf("%.2f     %.2f\n", source[i], d.f[i]);
	}<commit_msg>comments<commit_after>#include "stdio.h"
#include <math.h>
#include <cmath>
#include <cstdlib>
#include <ctime>

struct Data
{
	double a;
	double b;
	double x1;
	double x2;
	double dx;
	double* f;
};

// размерность максимальная и массивы для результатов
#define SIZE 100
static double source[SIZE];
static double results[SIZE];
static double results2[SIZE];
// Инициализируем нашу структуру значениями
static Data d = { 1, 5, -2, -0.1, 0.1, results };

//функция Ф(от икса) по условиям задачи
double f(double x) {
	double result;
	if (x <= -0.7) {
		result = -1 * d.a * x * x;
	} else {
		result = (d.a - x) / (d.b * x);
	}
	return result;
}

// функция нормирования, вписывает значения в новый гарфик
double scale(double x, double min, double from, double to) {
	min = std::abs(min);
	from = std::abs(from + min);
	x = std::abs(x+min);
	double scaleFactor = to / from;
	return scaleFactor * x;
}

//выводим вертикальный график
double printVertical(double* f, int size) {
	printf("\n\n\n3.\n");
	//Печатаем столько пробелов сколько в массиве, чтобы получить отступ
	for (int i = 0; i < size; ++i) {
		for (int j = 0; j < f[i]; ++j) {
			printf(" ");
		}
		printf("*\n");//Печатаем знак максимума в конце каждой строки
	}
}

int main()
{
	//1111111111111111111111111111111111111111111111111
	printf("Iteration from %.2f to %.2f with step %.2f\n", d.x1, d.x2, d.dx);

	int cnt = 0;
	// Определяем в какую сторону итерироваться будем
	// т.к. значение x1 может быть больше x2 и тогда итерация
	// должна идти в другую сторону
	if (d.x1 < d.x2)
		for (double x = d.x1; x < d.x2+d.dx; x+=d.dx) {
			source[cnt] = x;//сохраняем значения исходные
			if (d.a - x == 0)//деление на ноль нельзя, по этому проверяем заранее значения исходя из формулы ф(от икс)
				d.f[cnt] = 0;
			else
				d.f[cnt] = f(x);//считаем ф(от икса)
			++cnt;
		}
	else
		for (double x = d.x1; x > d.x2+d.dx; x-=d.dx) {
			source[cnt] = x;
			if (d.a - x == 0)
				d.f[cnt] = 0;
			else
				d.f[cnt] = f(x);
			++cnt;
		}

	printf(" x         f(x)\n");
	for (int i = 0; i < cnt; ++i)
	{
		printf("%.2f     %.2f\n", source[i], d.f[i]);
	}
{'fraction_non_alphanumeric': 0.1839295248264816, 'fraction_numerical': 0.046983449012279764, 'mean_word_length': 2.815682281059063, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1769991', 'n_tokens_mistral': 1864, 'n_tokens_neox': 1731, 'n_words': 469}