Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097

Как нарисовать график функции ?

01.05.2016, 22:08. Показов 2962. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "graphics.h"
#include <windows.h>
#include <string>
#include <math.h> 
#include <cstdlib> // содержит srand() и rand()
#include <time.h>
using namespace std;
 
//0 — черный
//1 — синий
//2 — зеленый
//3 — голубой
//4 — красный
//5 — лиловый
//6 — желтый
//7 — белый
//8 — серый
//9 — свело - синий
//A — светло - зеленый
//B — светло - голубой
//С — светло - красный
//E — светло - желтый
//F — ярко - белый
 
// функция генерации случайного числа из диапазона от range_min до range_max включительно
int rrand(int range_min, int range_max) {
    return rand() % (range_max - range_min + 1) + range_min;
}
const unsigned int ARRSIZE = 10;
const int min = 0;
const int max = 10;
int ar[ARRSIZE];
int br[ARRSIZE];//по ф-ле
double y;
//int a = 5;
int main()
{
    system("color 1F");  // Установка синего  фона-1 и белого цвета шрифта F.
    srand(static_cast<unsigned int>(time(NULL)));
    cout << endl;
    // инициализация массива случайными значениями из диапазона -//min..max
    for (int i = 0; i < ARRSIZE; i++) {
        ar[i] = rrand(min, max);
        y = 2 * sin(ar[i]);
        cout << "element masiva ar: " << i << "= " << ar[i] << endl;
        br[i] = y;
        cout << "element masiva br: " << i << "= " << br[i] << endl;
    }
    
 
 
    int gdriver = DETECT, gmode;
    initgraph(&gdriver, &gmode, "  ");
    int x = 30;
    int y = 30;
    for (int i = 0; i < ARRSIZE; i++) {
        putpixel(ar[i], br[i], RED);
    }
    putpixel(x, y, RED);
    outtextxy(200, 75, "hello");
    system("pause");
    closegraph();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.05.2016, 22:08
Ответы с готовыми решениями:

Как нарисовать график функции?
Edit1-&gt;Text == &quot;x*x&quot;; int x; Как нарисовать график функции int y = Edit1-&gt;Text;

Как нарисовать график функции в С++?
в обычной IDE типа Visual Studio. Через WinApi или какие-то графические библиотеки, неважно, главное чтобы функция задавалась в программе,...

Как нарисовать график функции?
Привет всем. Учусь программированию всего пол года. И тут мне дают задание - написать программу для рисования графика функции y=x. Скажите,...

7
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
01.05.2016, 22:38  [ТС]
C++
1
2
3
    for (int i = 0; i < ARRSIZE; i++) {
        line(ar[i], br[i],ar[i+1],br[i+1]);
    }
подправил код.Только если минусовые координаты то графика не видно.
0
7 / 7 / 6
Регистрация: 24.11.2015
Сообщений: 41
Записей в блоге: 2
01.05.2016, 22:50
Тебе именно в консоле? Я пользуюсь visual c++ -> clr, там добавляешь в форму chart
и рисуешь сам граффик
C++
1
chart1->Series["Series1"]->Points->AddXY(x, y);
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
02.05.2016, 01:06  [ТС]
вы имеете ввиду консольное приложение clr?

Добавлено через 5 минут
chart1 идентификатор не найден.

Добавлено через 23 минуты
Мне нужен именно консольный график на с++ от visual studio

Добавлено через 50 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "graphics.h"
#include <windows.h>
#include <math.h> 
#include <cstdlib> // содержит srand() и rand()
#include <time.h>
using namespace std;
 
//0 — черный
//1 — синий
//2 — зеленый
//3 — голубой
//4 — красный
//5 — лиловый
//6 — желтый
//7 — белый
//8 — серый
//9 — свело - синий
//A — светло - зеленый
//B — светло - голубой
//С — светло - красный
//E — светло - желтый
//F — ярко - белый
 
// функция генерации случайного числа из диапазона от range_min до range_max включительно
int rrand(int range_min, int range_max) {
    return rand() % (range_max - range_min + 1) + range_min;
}
const unsigned int ARRSIZE = 10;
const int min = 0;
const int max = 100;
int a[ARRSIZE];
int x[ARRSIZE];
int b[ARRSIZE];
int br[ARRSIZE];//по ф-ле
double y;
//int a = 5;
 
int main()
{
    system("color 1F");  // Установка синего  фона-1 и белого цвета шрифта F.
    srand(static_cast<unsigned int>(time(NULL)));
    cout << endl;
    // инициализация массива случайными значениями из диапазона -//min..max
    for (int i = 0; i < ARRSIZE; i++) {
        a[i] = rrand(min, max);
        b[i] = rrand(min, max);
        //y = 2 * sin(ar[i]) * exp(ar[i]/a);
        //y = pow(ar[i], 2);
        int y= cos(a[i] * x[i] + b[i]) / sin(a[i] * x[i] + b[i]);//ф-ла графика
        cout << "element masiva a: " << i << "= " << a[i] << endl;
        cout << "element masiva x: " << i << "= " << x[i] << endl;
        cout << "element masiva b: " << i << "= " << b[i] << endl;
        br[i] = y;
        cout << "element masiva br: " << i << "= " << br[i] << endl;
    }
    POINT op;
    HWND hWnd = GetConsoleWindow(); //Получаем дескриптор окна консоли
    HDC hDC = GetDC(hWnd); //Получаем контекст устройства по полученному дескриптору
    SelectObject(hDC, GetStockObject(WHITE_PEN)); //Выбираем перо WHITE_PEN в контекст
    for (int i = 0; i < ARRSIZE; i++) {
    //MoveToEx(hDC, 50, 50, &op); //Ставим текущую точку в координаты 50,50
    //LineTo(hDC, 635, 320); //Рисуем линию из текущей точки в точку 100, 200
        MoveToEx(hDC, a[i], br[i], &op); //Ставим текущую точку в координаты 50,50
        LineTo(hDC, a[i+1], br[i+1]); //Рисуем линию из текущей точки в точку 100, 200
    }
    ReleaseDC(hWnd, hDC); //"Освобождаем" контекст   
    int gdriver = DETECT, gmode;
    initgraph(&gdriver, &gmode, "  ");
    int x = 30;
    int y = 30;
    for (int i = 0; i < ARRSIZE; i++) {
        setbkcolor(6); //цвет фона
        line(a[i], br[i], a[i + 1], br[i + 1]);
    }
    putpixel(x, y, RED);
    outtextxy(200, 75, "hello");
    system("pause");
    closegraph();
    return 0;
}
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
02.05.2016, 20:11  [ТС]
в экселе такой график получаеться
0
5 / 5 / 4
Регистрация: 10.02.2011
Сообщений: 48
02.05.2016, 20:42
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
1
for (int i = 0; i < ARRSIZE; i++) {
line(ar[i], br[i],ar[i+1],br[i+1]);
}
Тут может случиться (и случится) досадная беда
На моменте, когда i = (ARRSIZE-1), этот код попытается обратиться к ячейке массива i+1 и выйдет за границы массива
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
02.05.2016, 21:46  [ТС]
и все таки как нарисовать график?
Под вин32 приложение график получился.А вот как тоже самое под консольку сделать.
Миниатюры
Как нарисовать график функции ?  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
03.05.2016, 09:03
scherbakovss201, какой ты упрямый. Не предназначены консоли для этого - я уже говорил. График есть - пользуйся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.05.2016, 09:03
Помогаю со студенческими работами здесь

Как в Visual C++ 2012 нарисовать линию или график функции
Я новичок в MVisual c++, только запустил ее и не знаю как создать событие для рисования. В QT все просто - создается событие для рисования ...

Нарисовать график функции
Нарисовать график функции f(X)=X^2+25*X

Нарисовать график функции
Написать программу, которая выводит на экран точечный график функции y= √x. Диапазон изменения аргумента – от 0 до 5, шаг аргумента – 0.5....

Нарисовать график функции в консоли
Добрый день. Задание следующее: протабулировать функции y=sin|x|,y=cos|x|. Нарисовать графики этих функций. Возникли следующие вопросы:что...

Нарисовать график функции f(X)=sin(X)
Нарисовать график функции f(X)=sin(X).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru