Объясните как работает код

#include <iostream>
#include <math.h>
#include <time.h>
#include <cstring>
#include <cstdio>
#include <fstream>

using namespace std;

double func(double x)
{
    double y;
    y = sin(x);
    return y;
}

void main()
{
    const int size_x=79;
    const int size_y=50;

    char c[size_x][size_y];

    for(int i = 0; i < size_x; i++)
        for(int j = 0; j < size_y; j++)
            c[i][j]=' ';

    double xst, xend;
    cin >> xst;
    cin >> xend;

    double intx = (xend - xst) / size_x;

    double ymax = -1e308;
    double ymin = 1e308;

    for(int i = 0; i < size_x; i++)
    {
        double x = xst + intx * i;
        double y = func(x);

        if(y < ymin)
            ymin=y;

        if(y > ymax)
            ymax=y;
    }

    double inty = (ymax-ymin) / size_y;

    for(int i=0; i < size_x; i++)
    {
        double x = xst + intx * i;
        double y = func(x);

        for(int j=0; j<size_y; j++)
        {
            double ylow = ymin + inty * j;
            double yup = ylow + inty;

            if(y> ylow && y< yup)
                c[i][j]='*';
        }
    }

    for(int i = size_y - 1; i >= 0; i--)
    {
        for(int j = 0; j < size_x; j++)
            cout << c[j][i];

        cout<<endl;
    }

    system("pause");
}
#include <iostream>
#include <math.h>
#include <time.h>
#include <cstring> 
#include <cstdio>
#include <fstream>

using namespace std;

double func(double x) // функция для вычисления синуса числа х
{
    double y;
    y = sin(x);
    return y;
}

void main()
{
    const int size_x = 79; // задаем размеры будущего массива
    const int size_y = 50;

    char c[size_x][size_y]; // создаем двумерный массив

    for (int i = 0; i < size_x; i++) // инициализируем его пробелами
        for (int j = 0; j < size_y; j++)
            c[i][j] = ' ';

    double xst, xend; // вводим два числа - начало и конец
    cin >> xst;
    cin >> xend;

    double intx = (xend - xst) / size_x; // отнимаем начало от конца и делим на первый из размеров массива

    double ymax = -1e308; // задаем максимальное и минимальное значения
    double ymin = 1e308;

    for (int i = 0; i < size_x; i++)
    {
        double x = xst + intx * i; // вычисляем х
        double y = func(x); // с помощью функции находим синус х

        if (y < ymin) // если выход за установленные пределы(максимум и минимум) устанавливаем новые пределы
            ymin = y;

        if (y > ymax)
            ymax = y;
    }

    double inty = (ymax - ymin) / size_y; // отнимаем минимум от максимума и делим на второй размер массива

    for (int i = 0; i < size_x; i++)
    {
        double x = xst + intx * i; // вычисляем х
        double y = func(x); // с помощью функции находим синус х

        for (int j = 0; j<size_y; j++)
        {
            double ylow = ymin + inty * j; // производим еще вычисления
            double yup = ylow + inty;

            if (y> ylow && y< yup) // по результатам которых рисуется синусоида в массиве
                c[i][j] = '*';
        }
    }

    for (int i = size_y - 1; i >= 0; i--) // выводим полученный массив на экран
    {
        for (int j = 0; j < size_x; j++)
            cout << c[j][i];

        cout << endl;
    }

    system("pause");
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.