Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1

Точечный график функции

07.11.2010, 14:08. Показов 3449. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, в книжке приводится такой пример задачи
Написать прог. которая чертит на экране точечный график функции у=0.х^2+4х-3. Диапазон изменения
аргумента: от -15 до 5; шаг приращения аргумента: 0,1. График вывести на фоне координатных осей, точка пересечения которых должна находится в центре экрана.

и в качестве решения вот этот код
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include "stdio.h"
#include "conio.h"
#include "graphics.h"
 
#define HB 10 // ¬*ЄбЁ¬*«м*®Ґ Є®«ЁзҐбвў® §**зҐ*Ё©
#define WS 300
#define HS 150
 
   char  head[40];    // §*Ј®«®ў®Є
   float kurs[HB];    // ¤***лҐ
   char* date[HB][5]; // Ї®¤ЇЁбЁ ¤***ле - ¤*в* ў д®а¬*⥠dd.mm
 
   int nrec; // Є®«ЁзҐбвў® н«Ґ¬Ґ*в®ў ¤***ле 
 
   int dx;     // и*Ј Ї® е
   int py[HB];  // y-Є®®а¤Ё**вл в®зҐЄ ** Ја*дЁЄҐ
 
// ўў®¤ Ё ®Ўа*Ў®вЄ* Ёб室*ле ¤***ле
void  LoadData()
{
 
     FILE* f; // д*©« ¤***ле
 
     int i;
 
    if ( (f = fopen("c:\\borlandc\\cpp\\kurs.txt", "rt")) == NULL)
    {
        printf("ЋиЁЎЄ* ¤®бвгЇ* Є д*©«г ¤***ле\n");
        getch();
        return;
    }
 
    fscanf(f,"%s",head);
    printf("%s\n",head);
 
    i = 0;
    while ((! feof(f) ) && ( i < HB ))
    {
        fscanf(f,"%s",&date[i]);
        printf("%s\n",date[i]);
 
        fscanf(f,"%f",&kurs[i]);
        printf("%5.2f\n",kurs[i]);
        i++;
    }
    nrec = i;
    fclose(f);
 
    // **©вЁ ¬Ё*Ё¬*«м*л© н«Ґ¬Ґ*в ¬*ббЁў*
    float min = kurs[0];
    float max = kurs[0];
 
    for ( i = 1; i < nrec; i++ )
    {
        if ( kurs[i] < min)
            min = kurs[i];
 
        if ( kurs[i] > max)
            max = kurs[i];
     }
 
    // ўлзЁб«Ёвм y-Є®®а¤Ё**вл в®зҐЄ
    for (i=0; i < nrec; i++)
        py[i] = (HS-20) * (kurs[i]- min)/(max - min)+2;
 
    return;
}
 
void Graphic()
{
    int x0, y0;
    int x;
 
    int dx;
    int i;
 
    char st[20];
 
    x0 = 10;
    y0 = HS + 20;
    dx = (WS - 2* x0)/ (nrec );
 
    outtextxy(x0,10, head );
    rectangle(1,1,WS,y0+10);
 
    x =x0;
    moveto(x,y0-py[0]);
    x =x +dx;
 
    for ( i = 1; i < nrec; i++)
    {
      lineto(x,y0-py[i]);
       x= x+dx;
    }
 
    x = x0;
    for ( i = 0; i < nrec; i++)
    {
     sprintf(st,"%2.2f", kurs[i]);
     outtextxy(x,y0 - py[i]-10,st);
       x= x+dx;
    }
}
 
void main(void)
{
   int gdriver = DETECT;
   int gmode;            
   int errorcode;        
 
   initgraph(&gdriver, &gmode, "c:\\borlandc\\bgi\\");
   errorcode = graphresult();
 
   if (errorcode != grOk)  // (r)Ёрцт  р-р¦р "р ¦рр ?* ¤. *?ірї 
   {
      printf("ЋиЁЎЄ*: %d\n", errorcode);
      puts("„«п §*ўҐаиҐ*Ёп **¦¬ЁвҐ <Enter>");
      getch();
      return;
   }
 
   LoadData();
   Graphic();
 
   getch();
   closegraph();
}
но у меня в си 2010 ругается на
C++
1
#include "graphics.h"
C++
1
2
3
initgraph
closegraph();
graphresult();
объясните кто может ! что мне делать ? очень хочу освоить эту тему )!

Добавлено через 26 минут
(у=0.х^2+4х-3.) извините ошибка вышла ) у=0.5*х^2+4*х-3.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.11.2010, 14:08
Ответы с готовыми решениями:

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

Как вывести на экран точечный график функции?
Написать программу, которая выводит на экран точечный график функции у=1.9^x. Диапазон изменения аргумента от -3 до 3, шаг аргумента - 0.3....

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

16
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
07.11.2010, 14:25
Цитата Сообщение от Астик Посмотреть сообщение
#include "graphics.h"
Graphics.h - это каменный век.
Поэтому советую приобрести Turbo C++ 3.1.

Не по теме:

У вас даже коментарии с эроглифами!

0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 15:24  [ТС]
Цитата Сообщение от Mencey Посмотреть сообщение
Graphics.h - это каменный век.
Поэтому советую приобрести Turbo C++ 3.1.
Не по теме:
У вас даже коментарии с эроглифами!
в смысле я это с диска скопировал) а в Вижуал Студио 2010 как это реализовать ?

Добавлено через 6 минут
Цитата Сообщение от Mencey Посмотреть сообщение
Graphics.h - это каменный век.
Поэтому советую приобрести Turbo C++ 3.1.
Не по теме:
У вас даже коментарии с эроглифами!
в смысле я это с диска скопировал) а в Вижуал Студио 2010 как это реализовать ?

Добавлено через 17 минут
Цитата Сообщение от Астик Посмотреть сообщение
Graphics.h - это каменный век.
Поэтому советую приобрести Turbo C++ 3.1.
вот поэтому он и не распознает! я хочу понять как этот код переделать под 2010 вижуал с++
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.11.2010, 15:29
в любой версии VS вы не скомпилируйте этот код, он будет компилироватся только в Turbo C++ 3.1
графика в студии это - GDI, DirectX, OpenGL
0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 18:44  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
в любой версии VS вы не скомпилируйте этот код, он будет компилироватся только в Turbo C++ 3.1
графика в студии это - GDI, DirectX, OpenGL
но в книге рассматривается VS

Добавлено через 2 часа 15 минут
Че больше никто ничего не знает?
0
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
07.11.2010, 18:48
Скачайте Turbo C++. Достаньте из него хидер graphics.h и билиотеки для графики. И зпихай всё это в VS.
0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 19:37  [ТС]
Цитата Сообщение от Mencey Посмотреть сообщение
Скачайте Turbo C++. Достаньте из него хидер graphics.h и билиотеки для графики. И зпихай всё это в VS.
а как это сделать?

Добавлено через 16 минут
Как реализовать эту программу в VS 2010?
0
 Аватар для KpeHDeJIb
57 / 57 / 5
Регистрация: 31.10.2010
Сообщений: 103
07.11.2010, 19:48
Цитата Сообщение от Maxwe11 Посмотреть сообщение
он будет компилироватся только в Turbo C++ 3.1
Скорее в Borland C++ 3.1, где BGI был.
0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 19:56  [ТС]
Цитата Сообщение от KpeHDeJIb Посмотреть сообщение
Скорее в Borland C++ 3.1, где BGI был.
я это уже понял . подскажите как переделать код под VS
0
 Аватар для KpeHDeJIb
57 / 57 / 5
Регистрация: 31.10.2010
Сообщений: 103
07.11.2010, 20:03
Цитата Сообщение от Астик Посмотреть сообщение
я это уже понял . подскажите как переделать код под VS
Качаешь отсюда библиотеку и используешь: http://www.cs.colorado.edu/~main/bgi/visual/
0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 20:18  [ТС]
Цитата Сообщение от KpeHDeJIb Посмотреть сообщение
Качаешь отсюда библиотеку и используешь: http://www.cs.colorado.edu/~main/bgi/visual/
он не переходит по ссылке, говорит ошибка! а нельзя эту прогу переписать без
C++
1
#include <graphics.h>
0
 Аватар для KpeHDeJIb
57 / 57 / 5
Регистрация: 31.10.2010
Сообщений: 103
07.11.2010, 20:24
Цитата Сообщение от Астик Посмотреть сообщение
а нельзя эту прогу переписать без
Ну тогда и все остальное надо будет переписывать, очевидно же. Можешь конечно с использованием GDI написать все, если хочешь.
0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 20:29  [ТС]
Цитата Сообщение от KpeHDeJIb Посмотреть сообщение
Ну тогда и все остальное надо будет переписывать, очевидно же. Можешь конечно с использованием GDI написать все, если хочешь.
и как это сделать?
0
 Аватар для KpeHDeJIb
57 / 57 / 5
Регистрация: 31.10.2010
Сообщений: 103
07.11.2010, 20:34
Цитата Сообщение от Астик Посмотреть сообщение
и как это сделать?
Руками, скорее всего. Создаешь окно Windows, получаешь его контекст, затем рисуешь. Не думаю что тебе подойдет этот способ. Лучше воспользуйся BC++ 3.1
0
 Аватар для Астик
13 / 13 / 2
Регистрация: 03.10.2010
Сообщений: 190
Записей в блоге: 1
07.11.2010, 22:28  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
в любой версии VS вы не скомпилируйте этот код, он будет компилироватся только в Turbo C++ 3.1
графика в студии это - GDI, DirectX, OpenGL
почему?

Добавлено через 8 минут
Цитата Сообщение от KpeHDeJIb Посмотреть сообщение
Руками, скорее всего. Создаешь окно Windows, получаешь его контекст, затем рисуешь.
в смысле это надо в консоле.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.11.2010, 22:36
Цитата Сообщение от Астик Посмотреть сообщение
почему?
потому что graphics.h это разработка Borland, рассчитанная под DOS или его эмуляцию

Добавлено через 2 минуты
Цитата Сообщение от Астик Посмотреть сообщение
в смысле это надо в консоле.
нет это не в консоли, а потому скачайте Турбо С++ 3.1, а строить график с использованием GDI, DirectX, OpenGL это довольно хлопотно и никто вам этого не будет делать
0
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
07.11.2010, 22:55
Через минут 15 на WinApi зделаю.

Добавлено через 10 минут
За еденицу принят отрезок в 5 пикселей.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <windows.h> 
#include <math.h> 
 
#define NUM    1000 
#define TWOPI (2 * 3.14159) 
#define MoveTo(hdc, x, y) MoveToEx(hdc, x, y, NULL)
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                    PSTR szCmdLine, int iCmdShow) 
{ 
    static char szAppName[] = "SineWave"; 
    HWND        hwnd; 
    MSG         msg;   
    WNDCLASSEX  wndclass; 
 
    wndclass.cbSize        = sizeof(wndclass); 
    wndclass.style         = CS_HREDRAW | CS_VREDRAW; 
    wndclass.lpfnWndProc   = WndProc; 
    wndclass.cbClsExtra    = 0; 
    wndclass.cbWndExtra    = 0; 
    wndclass.hInstance     = hInstance; 
    wndclass.hIcon         = LoadIcon(NULL, IDI_APPLICATION); 
    wndclass.hCursor       = LoadCursor(NULL, IDC_ARROW); 
    wndclass.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH); 
    wndclass.lpszMenuName  = NULL; 
    wndclass.lpszClassName = szAppName; 
    wndclass.hIconSm       = LoadIcon(NULL, IDI_APPLICATION); 
 
    RegisterClassEx(&wndclass); 
 
    hwnd = CreateWindow(szAppName, "Sine Wave Using Polyline", 
                                            WS_OVERLAPPEDWINDOW, 
                                            CW_USEDEFAULT, CW_USEDEFAULT, 
                                            CW_USEDEFAULT, CW_USEDEFAULT, 
                                            NULL, NULL, hInstance, NULL); 
 
    ShowWindow(hwnd, iCmdShow); 
    UpdateWindow(hwnd); 
 
    while(GetMessage(&msg, NULL, 0, 0)) 
    { 
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
    return msg.wParam; 
} 
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) 
{ 
  static int  cxClient, cyClient, x0, y0; 
  HDC         hdc; 
    float       i;
  int         k; 
  PAINTSTRUCT ps; 
  POINT       pt[NUM]; 
 
    switch(iMsg) 
    { 
            case WM_SIZE: 
                cxClient = LOWORD(lParam); 
                cyClient = HIWORD(lParam); 
                x0 = cxClient / 2;
                y0 = cyClient / 2;
                return 0; 
 
            case WM_PAINT: 
                hdc = BeginPaint(hwnd, &ps); 
                
                MoveTo(hdc, 0, y0);
                LineTo(hdc, cxClient, y0);
                LineTo(hdc, cxClient - 10, y0 - 5);
                MoveTo(hdc, cxClient, y0);
                LineTo(hdc, cxClient - 10, y0 + 5);
                
                MoveTo(hdc, x0, 0);
                LineTo(hdc, x0, cyClient);
                MoveTo(hdc, x0, 0);
                LineTo(hdc, x0 - 5, 10);
                MoveTo(hdc, x0, 0);
                LineTo(hdc, x0 + 5, 10);
                
                for(i = -15.0f, k = 0; i <= 5; i += 0.1, k++) 
                { 
                    pt[k].x = x0 + i * 5;
                    pt[k].y = y0 + (int)(0.5*i*i+4*i-3) * 5; 
                } 
 
                Polyline(hdc, pt, 200); 
                return 0; 
 
            case WM_DESTROY: 
                PostQuitMessage(0); 
                return 0; 
    } 
 
 return DefWindowProc(hwnd, iMsg, wParam, lParam); 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2010, 22:55
Помогаю со студенческими работами здесь

Написать программу, которая выводит на экран точечный график функции
Народ помогите пожалуйста написать программу буду признателен!!!!!!!!! Написать программу, которая выводит на экран точечный график...

точечный график в dev c++
Данная программа должна выводить точечный график функции, но при выполнении выдает пустой экран.Вот код программы помогите разобраться. #...

Вывести на экран точечный график функции
Написать программу, которая выводит на экран точечный график функции у =ctg7 x. Диапазон изменения аргумента — от -3 до 6, шаг аргумента —...

Вывести на экран точечный график функции
Написать программу, которая выводит на экран точечный график функции у=1.2 в степени х Диапазон измерения аргумента от -6 до 6, шаг...

Вывести на экран точечный график заданной функции
. Написать программу, которая выводит на экран точечный график функции y=0,5^2+4x-3 . Диапазон изменения аргумента — от -15 до 5; шаг...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru