hluh / FID

0 stars 0 forks source link

GROOWE STREET HOME #1

Open hluh opened 12 months ago

hluh commented 12 months ago

include

include

include

include

include

using namespace std;

double per(double x, double xx) { return x / xx; }

double vtor(double x1) { return sqrt(x1); }

// Функция для вывода положительных чисел на экран в обратном порядке void printPositiveReverse(double* numbers, int size) { cout << "Положительные числа в массиве в обратном порядке:" << endl; for (int i = size - 1; i >= 0; --i) { if (numbers[i] > 0) { cout << numbers[i] << endl; } } }

// Функция для сортировки массива методом простого обмена (пузырьковой сортировкой) void bubbleSort(double* numbers, int size) { for (int i = 0; i < size - 1; ++i) { for (int j = 0; j < size - i - 1; ++j) { if (numbers[j] > numbers[j + 1]) { // Меняем местами элементы, если предыдущий больше следующего double temp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = temp; } } } }

int main() { setlocale(LC_ALL, "rus"); srand(time(0)); // Инициализация генератора случайных чисел

int size;
cout << "Введите размерность массива: ";
cin >> size;

// Создаем массив с указанной размерностью
double* numbers = new double[size];

// Заполняем массив случайными числами в диапазоне от -1000 до 1000
for (int i = 0; i < size; ++i) {
    numbers[i] = (rand() % 2001) - 1000; // Генерируем случайное число в диапазоне от -1000 до 1000
}

// Выводим сгенерированные числа
cout << "Сгенерированный массив до сортировки:" << endl;
for (int i = 0; i < size; ++i) {
    cout << "Случайное число " << i + 1 << " - " << numbers[i] << endl;
}

// Сортируем массив
bubbleSort(numbers, size);

// Выводим отсортированные числа
cout << "Отсортированный массив:" << endl;
for (int i = 0; i < size; ++i) {
    cout << "Случайное число " << i + 1 << " - " << numbers[i] << endl;
}

// Находим минимальное число в массиве
double minNumber = numbers[0];
for (int i = 1; i < size; ++i) {
    if (numbers[i] < minNumber) {
        minNumber = numbers[i];
    }
}
cout << "Минимальное число в массиве: " << minNumber << endl;

// Определяем и выводим положительные числа
int positiveCount = 0;
double positiveProduct = 1; // Инициализируем произведение положительных чисел единицей
cout << "Положительные числа в массиве:" << endl;
for (int i = 0; i < size; ++i) {
    if (numbers[i] > 0) {
        cout << numbers[i] << endl;
        ++positiveCount;
        positiveProduct *= numbers[i];
    }
}
cout << "Количество положительных чисел: " << positiveCount << endl;
cout << "Произведение положительных чисел: " << positiveProduct << endl;

// Вызываем функцию для вывода положительных чисел на экран в обратном порядке
printPositiveReverse(numbers, size);

// задание 2

int main1(); {
    setlocale(LC_ALL, "rus");
    srand(time(0)); // Инициализация генератора случайных чисел

    int n, m;
    cout << "Введите количество строк n: ";
    cin >> n;
    cout << "Введите количество столбцов m: ";
    cin >> m;

    // Создаем двумерный массив с указанными размерностями
    double** numbers = new double* [n];
    for (int i = 0; i < n; ++i) {
        numbers[i] = new double[m];
    }

    // Заполняем массив случайными числами в диапазоне от -1000 до 1000
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            numbers[i][j] = (rand() % 2001) - 1000; // Генерируем случайное число в диапазоне от -1000 до 1000
        }
    }

    // Выводим сгенерированные числа
    cout << "Сгенерированный массив:" << endl;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            cout << numbers[i][j] << "\t";
        }
        cout << endl;
    }

    // Определяем строку с наибольшим количеством положительных элементов
    int maxPositiveCountRow = -1;
    int maxPositiveCount = 0;
    for (int i = 0; i < n; ++i) {
        int positiveCount = 0;
        for (int j = 0; j < m; ++j) {
            if (numbers[i][j] > 0) {
                ++positiveCount;
            }
        }
        if (positiveCount > maxPositiveCount) {
            maxPositiveCount = positiveCount;
            maxPositiveCountRow = i;
        }
    }

    // Выводим результаты
    if (maxPositiveCountRow != -1) {
        cout << "Строка с наибольшим количеством положительных элементов: " << maxPositiveCountRow + 1 << endl;
    }
    else {
        cout << "В массиве нет строк" << endl;
    }

    // Освобождаем выделенную память
    for (int i = 0; i < n; ++i) {
        delete[] numbers[i];
    }
    delete[] numbers;

    return 0;
}

}

hluh commented 11 months ago

include

include

void main()

{

setlocale(LC_ALL, "RUS"); 

puts("нажмите ентер");

getchar();

puts("Моя программа");
puts("          часть два       ");
puts("**************************************************************************");
puts("*                                      *");
puts("*Тема: вычисление траектории падения человека с 9 этажа на живом примере *");
puts("*выполнил Ракитин П.А.                             *");
puts("*                                  *");
puts("**************************************************************************");
puts("                  часть три                   ");
puts("        _   _    _   _  ");
puts("| /_   | | |_|  | | |_   ");
puts("| |_|  |_| |_|  |_|  _|   ");

}

hluh commented 10 months ago

define _CRT_SECURE_NO_WARNINGS

include

include

define D 2.54

define P 2,32166

int main() { setlocale(LC_ALL, "RUS"); int n, m;//1 puts("введите два целых числа\n"); scanf_s("%d%d", &n, &m, 1); puts("введены числа\n"); printf("Сумма = %d\n", n + m); printf("Разность = %d\n", m - n); printf("произведение = %d\n", m n); printf("частное = %d\n", m / n); printf("остаток от деления = %d\n", m % n); int dym; //2 float result; puts("введите дюймы для получения сантиметров\n"); scanf_s("%d", &dym); result = D dym; printf("%d дюйм - это %1.f см\n", dym, result); int pdym; float presult; puts("Введите испанские дюймы для перевода в сантиметры\n"); scanf_s("%d", &pdym); presult = P pdym; printf("%d испанских дюйм - это %1.f см\n", pdym, presult); float a, b; //3 puts("введите два числа\n"); scanf_s("%f%f", &a, &b); puts("\t===========================\n"); puts("\t| a b | a + b | a - b | "); puts("\t===========================\n"); printf("\t| %1.f %1.f | %1.f + %1.f | %1.f - %1.f |\n", a, b, a, b, a, b); puts("\t===========================\n"); printf("\t| %.1f | %1.f | %1.f |\n", (a b), (a + b), (a - b)); puts("\t===========================\n");

}

hluh commented 10 months ago

define _CRT_SECURE_NO_WARNINGS

include

include "stdlib.h"

include

int main() { setlocale(LC_ALL, "RUS"); char c; printf("Введите тип char:"); scanf("%c", &c); int i; printf("Введите тип int:"); scanf("%d", &i); float f; printf("Введите тип float:"); scanf("%f", &f); scanf(""); double d; printf("Введите тип даубле:"); scanf("%lf", &d); printf("char = %c\n int = %d\n float = %f\n dauble = %lf\n", c, i, f, d); printf(" ЗАДАНИЕ 2 \n"); //задание 2 float res; int a = 11; int b = 3; int x; float y; double z; x = a / b; y = a / b; z = a / b; res = (float)a / (double)b; printf("равно = %f\n", res); printf(" ЗАДАНИЕ 3 "); int n; printf("Введите трёхзначное число:"); scanf("%d", &n); printf("Первая цифра = %d\n", n / 100); printf("последняя цифра = %d\n", n % 10); printf("сумма цифр = %d\n", n / 100 + n % 10 + (n / 10) % 10); }

hluh commented 10 months ago

include

include "stdlib.h"

include

include

define _USE_MATH_DEFINES

define M_PI 3.14159265358979323846

define P 3

int main() { setlocale(LC_ALL, "RUS"); printf(" ЗАДАНИЕ 1 \n"); printf("Введите значение синуса\n"); float gr; scanf_s("%f", &gr); double rad; rad = sin(gr * M_PI / 180); printf("Градусы в радианах: %lf\n", rad); printf(" ЗАДАНИЕ 2 \n"); // y = ln3(b2) + ax // b = px*2 + sqrt(a) // a = sqrt(px) float y, x, a, b; puts("Введите параметр x\n"); scanf_s("%f", &x); a = printf("Вычисление переменной а = %f\n", sqrt(P x)); b = printf("Вычисление переменной b = %f\n", pow((P x), 2) + sqrt(a)); y = printf("Вычисление переменной y = %f\n", pow(log(pow(b, 2)), 3) + (a x)); printf(" ЗАДАНИЕ 3 \n"); int A, B, C; A = (int)a; B = (int)b; C = (int)y; printf("только одно из чисел А и В четное %d\n", A % 2 + B % 2 != 0); printf("каждое из чисел А,В,С кратно трем %d\n", A % 3 + B % 3 + C % 3 == 0);

hluh commented 10 months ago

include

include

include

int main() { setlocale(LC_ALL, "RUS"); printf(" задание 1 \n"); int yeas; printf("Введите год\n"); scanf_s("%d", &yeas); if (yeas % 4 != 0 || yeas % 100 != 0 && yeas % 400 == 0) { printf("Год не является високосным\n\n"); } else { printf("Год является високосным\n\n"); }

int x;
printf("        ЗАДАНИЕ 2       \n");
    printf("Введите число\n");
scanf_s("%d", &x);
if (x <= 3)
{
    printf("%f\n", (pow(x, 2) - 3 * x + 9));
}
else
{
    printf("%f\n", 1 / (pow(x, 3) + 6));
}

int z;
printf("        Задание 3       \n");
    printf("Введите количество копеек\n");
scanf_s("%d", &z);
if (z >= 1 && z < 1000000)
{
    printf("%d рубля и %d копеек \n", z / 100, z  % 100);
    return (0);
}
else
{
    printf("введено неверное число \n");
    return (0);
}

}

hluh commented 10 months ago

define _CRT_SECURE_NO_WARNINGS

include

include

include

include

void main(void) { setlocale(LC_ALL, "RUS"); printf(" ЗАДАНИЕ 1 \n"); char c; printf("Введите цифру или букву: "); scanf("%c", &c);

switch (c)
{
case '0':
    puts("Введена цифра.\n");
    break;
case '1':
    puts("Введена цифра.\n");
    break;
case '2':
    puts("Введена цифра.\n");
    break;
case '3':
    puts("Введена цифра.\n");
    break;
case '4':
    puts("Введена цифра.\n");
    break;
case '5':
    puts("Введена цифра.\n");
    break;
case '6':
    puts("Введена цифра.\n");
    break;
case '7':
    puts("Введена цифра.\n");
    break;
case '8':
    puts("Введена цифра.\n");
    break;
case '9':
    puts("Введена цифра.\n");
    break;
default:
    printf("Введена буква\n");
}

printf("        ЗАДАНИЕ 2       \n");
float x, y; // Задание 2
char v;
printf("Введите пример:\n");
scanf("%f%c%f", &x, &v, &y);
switch (v)
{
case '-':
    printf("=%f", x - y);
    break;
case '+':
    printf("=%f", x + y);
    break;
case '/':
    printf("=%f", x / y);
    break;
case '*':
    printf("=%f", x * y);
    break;
default:
    printf("Пример не распознан\n");
    break;
}

printf("        задание 3       \n");
char b;
printf("Введите знак операции:\n");
scanf("%c", &b);
scanf("%c", &b);
switch (b)
{
case '+':
    printf("плюс\n");
    break;
case '-':
    printf("минус\n");
    break;
case '*':
    printf("умножение\n");
    break;
case '/':
    printf("деление\n");
    break;
case '%':
    printf("остаток от деления\n");
    break;
default:
    printf("вы ввели что то не то\n");
    break;
}

system("pause");

}

hluh commented 10 months ago

define _CRT_SECURE_NO_WARNINGS

include

include

include

define A 2

define B 4

int main() { setlocale(LC_ALL, "RUS"); printf(" задание 1 \n"); int n, m; printf("введите первое число:"); scanf("%d%", &n); printf("введите второе число:"); scanf("%d", &m); int sum = 0; int i = 0; for (i = m; i >= n; i--) { sum += i;

}
printf("Резуальтат %d\n", sum);

printf("        задание 2   \n  ");
puts("2^x - 2x^2 - 1"); 
float x, y, o;
printf("введите значение:");
scanf("%f", &y);
for (x = A; x < B + y; x += y)
{
    o = pow(2, x) - 2 * pow(x, 2) - 1;
    printf("| %.1f | %.1f |\n", x, y);
}

printf("        задание 3       \n");
float v = 0, p, w;
for (p = 1; p < 10; p++)
{
    w = pow(v, p);
}

}

hluh commented 9 months ago

LABA 9

define _CRT_SECURE_NO_WARNINGS

include

include

define _USE_MATH_DEFINES

include

define ROW 9

define COL 9

//zadanie 3 int triangle_draw(q, width, symbol) { int height = (width tan(q M_PI / 180.0));

for (int i = 1; i <= height; i++) {
    for (int j = 1; j <= width; j++) {
        if (j <= i) {
            printf("%c ", symbol);
        }
    }
    printf("\n");
}
return 0;

}

void main() { setlocale(LC_ALL, "RUS"); // zadanie 1

int row, col;
printf("\n");
for (row = 1; row <= ROW; ++row)
{
    for (col = 1; col <= COL; col++)
    {
        printf("%5d", col * row);
    }
    printf("\n");
}
system("pause");

// Измените программу, так чтобы выводился только 
// левый нижний треугольник таблицы Пифагора

int a, b;
printf("\n");
for (a = 1; a <= 5; a++)
{
    for (b = 2; b <= a + 1; b++)
    {
    printf("%5d", a * 10);
        if (a < 5 - b)
{
printf(" ");
}
    }
    printf("\n");
}
system("pause");

//zadanie 2 вариант 2) числа повторений последней цифры в числе;

while (1)
{
    char r;
    printf("Продолжить? Да - y, нет - n\n");
    scanf("%c", &r);
    if (r = getchar() == 'n')
        break;
    else;
    {
        int number, c = 0;
        long long int num, num1;
        printf("Введите число\n");
        scanf("%lld", &num1);
        number = num1;
        while (number != 0) {
        int digit = number % 10;
            if (digit == 3)
            {
                c++;
            }
            number /= 10;
        }
        printf("Число повторения цифры 3 числа %lld: %d\n\n", num1, c);
    }
}

//zadanie 3

int q, width;
char symbol;
printf("Введите угол a (в градусах, целое число): ");
scanf("%d", &q);
getchar();

printf("Введите сторону b (в условных единицах, целое число): ");
scanf("%d", &width);
getchar();

printf("Введите символ для заполнения: ");
scanf("%c", &symbol);
getchar();

triangle_draw(q, width, symbol);

return 0;

}

hluh commented 9 months ago

11 LABA

include

include

include

include

include

define N 10 ;

define XMAX 50

const float cOnst = 2.5;

void n1(void) { setlocale(LC_ALL, "RUS"); int i, k; float temp; float A[10]; float B[10]; int C[10]; for (k = 0; k < 10; k++) { printf("a[%d] =", k); scanf("%f", &temp); C[k] = k; B[k] = temp; A[k] = 2 * temp; } printf("| исходное значение | \t | индекс | | новое значение |\n"); for (i = 0; i < 10; i++) { printf("| %.0f |\t | %d | | %.0f | \n", B[i], C[i], A[i]); } }

void main(void) {

setlocale(LC_ALL, "RUS");
n1(); n2(); n3(); n4(); n5(); n6(); n7(); n8(); n9(); n10(); n11(); n12();

float A[10];
float temp;
float S = 0;
for (int i = 0; i < 10; i++)
{
    printf("A[%d]=", i);
    scanf("%f", &temp);
    A[i] = temp;
    S = S + A[i];
}
S = S / 10;
printf("Среднее арифметическое = %f\n", S);

// 2 ЗАДАНИЕ

//float A[100];
//float m = 0;
//float n = 0;
//int number1 = 0; 
//int number2 = 0;
//for (int i = 0; i < 100; i++)
//{
//  
//  A[i] = XMIN + 1.f * ( XMAX - XMIN) * rand() / RAND_MAX; 
//  float numb = A[i];
//  if (numb > 0)
//  {
//      m = m + kaka; 
//      number1 += 1;
//  }
//  else
//  {
//      n = n + numb; 
//      number2 += 1;
//  }
//}
//printf(" Имя массива = A ;\n Накопленное значение отриц.элементов = %f ;\n Накопленное значение полож.элементов = %f ;\n Кол-во положительных элементов = %d ;\n Кол-во отрицательных элементов = %d ;\n Среднее значение положительных элементов = %f\n", n, m, number1, number2, m / 2);
system("pause");

}

hluh commented 9 months ago

laba 12

define _CRT_SECURE_NO_DEPRECATE

include

include

include

void main()

{

setlocale(LC_ALL, "rus");

//Задание 1

int *pi;

float *pf;

char *pc;

double *pd;

printf("%lu\n", sizeof(pi));

printf("%lu\n", sizeof(pf));

printf("%lu\n", sizeof(pc));

printf("%lu\n", sizeof(pd));

//Задание 2

float PI = 3.14159, *p1, *p2;

p1 = p2 = &PI;

printf("По адресу p1=%p хранится *p1=%g\n", p1, *p1);

printf("По адресу p2=%x хранится *p2=%g\n", p2, *p2);

//Задание 3

int* pa, x = 1;

printf("Значение не изменится, так как мы увеличили только указатель,\n а не переменную, на которую он ссылается.\n ");

printf("К тому же после увеличения указатель уже будет указывать не на переменную, а на мусор\n");

pa = &x;

pa++;

printf("Изначальное значение переменной \t| Значение переменной после увеличения pa\n");

printf("Переменная x: %d \t\t\t| %d\n", *(pa - 1), *pa);

printf("Переменная pa: %x \t\t\t| %x\n\n", pa - 1, pa);

//Задание 4
double pz = 5.5, * p5 = &pz;

float py = 4.5 , *p4 = &py;

char pp = 'g', *i = pp;

printf("p1 до выполнения: %x\tp2 до выполнения: %x\ti до выполнения: %x\n", p1, p2, i);

p1++;

p2--;

i++;

printf("p1 после выполнения: %x\tp2 после выполнения: %x\ti после выполнения: %x\n\n", p1, p2, i);

printf("В результате операций переменные (адреса) будут увеличиваться или уменьшаться на разное количество битов.\n");

printf("В зависимости от типов данных переменные изменятся на \n8 байт (p1 - тип double)\n4байта (p2 - тип float)n1 байт (i - тип char)");

//Задание 5

int z = 0x12345678;

int* prt;

unsigned char* a1, * a2, * a3, * a4, * a;

unsigned char* am[20];

prt = &z;

a = (unsigned char*)prt;

a1 = a + 3;

a2 = a + 2;

a3 = a + 1;

a4 = a;

printf("%.2x\n%.2x\n%.2x\n%.2x\n", *a1, *a2, *a3, *a4);

int g = 0x61015625;

prt = &g;

a = (unsigned char*)prt;

for (int i = sizeof(g); i > 0; i--)

{

am[i] = a + i - 1;

printf("%.2x\n", *am[i]);

}

a = prt;

printf("%x\n", *prt);

printf("%x\n", prt);

system("pause");

}

hluh commented 6 months ago

define _CRT_SECURE_NO_WARNINGS

include

include

include

include

define PI 3.14159265358979323846

define SCREENW 60

define SCREENH 40

typedef double (*TFunc)(double); double Y(double x);

double V(double x); void plot(double x0, double x1, TFunc f); void tabul(double xn, double xk, double h, double (*function)(double), char sn, char sk);

int main() { setlocale(LC_ALL, "rus"); puts("\n\t\t"); puts("\n\t\t \t"); puts("\n\t\t \t"); puts("\n\t\t Выполнил: Ракитин Павел Алексеевич \t"); puts("\n\t\t Группа: бИСТ - 234 \t"); puts("\n\t\t Программа табулирования функции \t"); puts("\n\t\t \t"); puts("\n\t\t \t"); puts("\n\t\n\t"); puts(" Y(x) = exp(((pow(sin(x), 2)) / (pow(sqrt(0.2 pow(x, 8)), 3))) log(5 x))\n"); puts("\t(1 + x) / (pow(sqrt(1 + pow(x, 2)), 3)), если x <= 0\t"); puts("V(x) =\t2 exp(-2 * x), если х > 0 и x<1\t"); puts("\tpow(fabs(2 - x), 1 / 3), если x >= 1\t"); int argum; double znachx, minx, maxx, shag; char skobka1, skobka2;

while (1) {

    puts("ОДЗ: Y(x) - функция может принимать только отрицательные значения\nV(x) - функция может принимать только отрицательные значения\nПример ввода: интервалы - (x1 ; x2), [x1 ; x2], поуинтервалы - (x1 ; x2], [x1 ; x2)\n");
    printf("введите номер требуемого действия из списка:\n");
    printf("1. Значение функции Y(x) при заданном x или значение функции V(x) при заданном x\n");
    printf("2. Значение функции Y(x) при заданном интервале/полуинтервале/отрезке с шагом или значение функции V(x) при заданном интервале/полуинтервале/отрезке с шагом\n");
    printf("3. График функции Y(x) на промежутке или График функции V(x) на промежутке\n");
    printf("4. Завершение работы\n");
    printf(":");
    scanf("%i", &argum);
    getchar();

    switch (argum) {
    case 1:
        printf("Если вы хотите вычислить значения функции Y(x) - 1.\nЕсли вы хотите вычислить значения функции V(x) - 2.\n>");
        scanf(" %d", &argum);
        if (argum == 1) {
            printf("Значение x:");
            scanf("%lf", &znachx);
            while (znachx >= 0) {

                printf("Ошибка.Попробуйте снова\n");
                printf("Значение x:");
                scanf("%lf", &znachx);

            }
            printf("Y(%lf)=%lf\n", znachx, Y(znachx));

        }
        else if (argum == 2) {
            printf("Значение x:");
            scanf("%lf", &znachx);
            while (znachx >= 0) {
                printf("Ошибка.Попробуйте снова\n");
                printf("Значение x:");
                scanf("%lf", &znachx);

            }
            printf("V(%lf)=%lf\n", znachx, V(znachx));

        }
        while (argum != 1 && argum != 2) {
            printf("Если вы хотите вычислить значения функции Y(x) - 1.\nЕсли вы хотите вычислить значения функции V(x) - 2.\n>");
            scanf(" %d", &argum);
            if (argum == 1) {
                printf("Значение x:");
                scanf("%lf", &znachx);
                while (znachx >= 0) {
                    printf("Ошибка.Попробуйте снова\n");
                    printf("Значение x:");
                    scanf("%lf", &znachx);

                }
                printf("Y(%lf)=%lf\n", znachx, Y(znachx));
            }
            else if (argum == 2) {
                printf("Значение x:");
                scanf("%lf", &znachx);
                printf("V(%lf)=%lf\n", znachx, V(znachx));
            }
        }
        break;
    case 2:
        printf("Если вы хотите вычислить значения функции на итервале или полуинтервале Y(x) - 1.\nЕсли вы хотите вычислить значения функции на итервале или полуинтервале V(x) - 2.\n>");
        scanf(" %d", &argum);
        if (argum == 1) {
            printf("Введите промежуток в формате [/(x1;x2)/] :");
            scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
            printf("Введите шаг: ");
            scanf("%lf", &shag);
            while (minx >= 0 || maxx >= 0 || minx >= 0 && maxx >= 0) {
                printf("Ошибка.Попробуйте снова\n");
                printf("Введите промежуток в формате [/(x1;x2)/] :");
                scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
                printf("Введите шаг: ");
                scanf("%lf", &shag);
            }

            printf("Таблица значений Y(x):\n");
            tabul(minx, maxx, shag, Y, skobka1, skobka2);
        }
        else if (argum == 2) {
            printf("Введите промежуток в формате [/(x1;x2)/] :");
            scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
            printf("Введите шаг: ");
            scanf("%lf", &shag);
            while (minx >= 0 || maxx >= 0 || minx >= 0 && maxx >= 0) {
                printf("Ошибка.Попробуйте снова\n");
                printf("Введите промежуток в формате [/(x1;x2)/] :");
                scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
                printf("Введите шаг: ");
                scanf("%lf", &shag);
            }
            printf("Таблица значений V(x):\n");
            tabul(minx, maxx, shag, V, skobka1, skobka2);
        }

        while (argum != 1 && argum != 2) {

            printf("Если вы хотите вычислить значения функции на итервале или полуинтервале Y(x) - 1.\nЕсли вы хотите вычислить значения функции на итервале или полуинтервале V(x) - 2.\n>");
            scanf(" %d", &argum);
            if (argum == 1) {
                printf("Введите промежуток в формате [/(x1;x2)/] :");
                scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
                printf("Введите шаг: ");
                scanf("%lf", &shag);
                while (minx >= 0 || maxx >= 0 || minx >= 0 && maxx >= 0) {
                    printf("Ошибка.Попробуйте снова\n");
                    printf("Введите промежуток в формате [/(x1;x2)/] :");
                    scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
                    printf("Введите шаг: ");
                    scanf("%lf", &shag);
                }
                printf("Таблица значений Y(x):\n");
                tabul(minx, maxx, shag, Y, skobka1, skobka2);
            }
            else if (argum == 2) {
                printf("Введите промежуток в формате [/(x1;x2)/] :");
                scanf(" %c%lf ; %lf%c", &skobka1, &minx, &maxx, &skobka2);
                printf("Введите шаг: ");
                scanf("%lf", &shag);
                printf("Таблица значений V(x):\n");
                tabul(minx, maxx, shag, V, skobka1, skobka2);
            }
        }
        break;
    case 3:
        printf("Если вы хотите построить график фукции Y(x)(функция может принимать только отрицательные значения) введите - 1\nЕсли вы хотите построить график фукции V(x)(функция может принимать только отрицательные значения) введите - 2\n>");
        scanf(" %d", &argum);
        if (argum == 1) {
            printf("Введите промежуток в формате 'x1 x2' ");
            scanf("%lf %lf", &minx, &maxx);
            while (minx >= 0 || maxx >= 0 || minx >= 0 && maxx >= 0) {
                printf("Ошибка.Попробуйте снова\n");
                printf("Введите промежуток в формате 'x1 x2' ");
                scanf("%lf %lf", &minx, &maxx);
            }
            plot(minx, maxx, Y);
        }
        else if (argum == 2) {
            printf("Введите промежуток в формате 'x1 x2' ");
            scanf("%lf %lf", &minx, &maxx);
            while (minx >= 0 || maxx >= 0 || minx >= 0 && maxx >= 0) {
                printf("Ошибка.Попробуйте снова\n");
                printf("Введите промежуток в формате 'x1 x2' ");
                scanf("%lf %lf", &minx, &maxx);
            }
            plot(minx, maxx, V);
        }
        break;
    case 4:
        return 0;
    default:
        printf("!Введено отсутствующее значение!\n");
        break;
    }
}

} double Y(double x) { double y; y = exp(((pow(sin(x), 2)) / (pow(sqrt(0.2 pow(x, 8)), 3))) log(5 * x)); return y; }

double V(double x) { if (x <= 0) { double y; y = (1 + x) / (pow(sqrt(1 + pow(x, 2)), 3)); return y; } if (x > 0 && x < 1) { double u; u = 2 exp(-2 x); return u; } if (x >= 1) { double p; p = pow(fabs(2 - x), 1 / 3); return p; } } void plot(double x0, double x1, TFunc f) { char screen[SCREENW][SCREENH]; double x, y[SCREENW]; double ymin = 0, ymax = 0; double hx, hy; int i, j; int xz, yz;

hx = (x1 - x0) / (SCREENW - 1);

for (i = 0, x = x0; i < SCREENW; ++i, x += hx) {
    y[i] = f(x);
    if (y[i] < ymin) ymin = y[i];
    if (y[i] > ymax) ymax = y[i];
}

hy = (ymax - ymin) / (SCREENH - 1);
yz = (int)floor(ymax / hy + 0.5);
xz = (int)floor((0. - x0) / hx + 0.5);

for (j = 0; j < SCREENH; ++j)
    for (i = 0; i < SCREENW; ++i) {
        if (j == yz && i == xz) screen[i][j] = '+';
        else if (j == yz) screen[i][j] = '-';
        else if (i == xz) screen[i][j] = '|';
        else screen[i][j] = ' ';
    }

for (i = 0; i < SCREENW; ++i) {
    j = (int)floor((ymax - y[i]) / hy + 0.5);
    screen[i][j] = '*';
}

for (j = 0; j < SCREENH; ++j) {
    for (i = 0; i < SCREENW; ++i) putchar(screen[i][j]);
    putchar('\n');
}

} void tabul(double xn, double xk, double h, double (*function)(double), char sn, char sk) { if (h == 0) { // Проверка на нулевой шаг printf("Шаг не может быть равен нулю\n"); return; } if (sn == '[' && sk == ']') { for (double x = xn; x <= xk; x += h) { printf("%lf\t|\t%lf\n", x, function(x)); } } if (sn == '[' && sk == ')') { for (double x = xn; x < xk; x += h) { printf("%lf\t|\t%lf\n", x, function(x)); } } if (sn == '(' && sk == ']') { for (double x = xn + h; x <= xk; x += h) { printf("%lf\t|\t%lf\n", x, function(x)); } } if (sn == '(' && sk == ')') { for (double x = xn + h; x < xk; x += h) { printf("%lf\t|\t%lf\n", x, function(x)); } } }