Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вычисления функции на заданном промежутке. (Pascal ABC>C++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите составить блок-схему для данного кода http://www.cyberforum.ru/cpp-beginners/thread1221813.html
Помогите пожалуйста нарисовать алгоритм для этой программы: #include <iostream> #include <conio.h> #include <cstring> #include <string> #include <fstream> using namespace std; char g,l;...
C++ Используя разложение функции в ряд, вычислить точное значение Используя разложение функции в ряд, вычислить точное значение (fа (x)), используя библиотечные математические функции как такое сделать? что лучше использовать? http://www.cyberforum.ru/cpp-beginners/thread1221802.html
C++ Найти сумму членов последовательности между максимальным и минимальным элементами
Помогите пожалуйста, нужно решить в С++. Дана последовательность n различных целых чисел. Найти сумму ее членов, расположеных между максимальным и минимальным значениями (в сумму включить и оба эти...
C++ Передача двумерного массива в функцию
Не могу передать массив в фунцию int min(int Array) { int min = 0; min = Array; for(int i=0;i<3;i++){ for(int j=0;j<3;j++) if(Array<min) min=Array;
C++ Составить блок-схемы по строковым конструкциям http://www.cyberforum.ru/cpp-beginners/thread1221749.html
Строковые конструкции #include <conio.h> #include<iostream.h> #include<string.h> void main() { char a,b; cout«"vvedite 3 simvola";
C++ Ввести комплексные числа, упорядочить их мнимые части и вывести на экран Всем пртвет. Сижу на зачете и нуждаюсь в вашей помлщи. К этому коду надо добавить ввод не двух а 5 комплексных чисел упорядочить их мнимые части и вывести на экран #include <iostream> using... подробнее

Показать сообщение отдельно
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
03.07.2014, 20:27
Попробовал в консоли нарисовать (Visual Studio)
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "stdafx.h"
#include <cstdlib>
#include <locale>
#include <iostream>
#include <string>
#include <cmath>
#include <windows.h>
 
using namespace std;
 
double y(double x)
{
    if(x < 0) return x;
    else
        if(x <= 1.5) return x + 1;
        else return 2.5 * x * x* x + 6 * x * x - 30;
}
double round(double x)
{
    if(x < 0) return floor(x - 0.5);
    else return floor(x + 0.5);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    double a, b, x, h, max, min, mx, my, dx;
    int x0, y0, i, n;
    string s;
 
    wcout.imbue(locale("rus_rus.866"));
 
 
    a = -2;
    b = 3;
    h = 0.1;
    x = a;
    i = 0;
    while(x <= b + h / 2)
    {
        wcout << L"x = " << x << L" y=" << y(x) << endl;
        ++i;
        if(i % 22 == 0)
        {
            wcout << L"Press Enter";
            system("pause>nul");
        }
        x += h;
    }
    wcout << L"Нажмите Enter для просмотра графика";
    system("pause>nul");
    system("cls");
//=============================================================================
    wchar_t ct[1024];
    GetConsoleTitleW(ct, 1024);
    HWND hwnd = FindWindowW(NULL, ct);
    RECT rect;
    GetClientRect(hwnd, &rect);
    HDC hdc = GetWindowDC(hwnd);
    HPEN hpen = CreatePen(PS_SOLID, 1, RGB(255, 255, 255));
    SelectObject(hdc, hpen);
    LOGFONTW lf;
    wcscpy(lf.lfFaceName, L"Times New Roman");
    lf.lfHeight = 10;
    lf.lfItalic = 1;
    lf.lfStrikeOut = 0;
    lf.lfUnderline = 0;
    lf.lfWidth = 5;
    lf.lfWeight = 40;
    lf.lfCharSet = DEFAULT_CHARSET;
    lf.lfPitchAndFamily = DEFAULT_PITCH;
    lf.lfEscapement = 0;
    HFONT hf;
    hf = CreateFontIndirectW(&lf);
    SelectObject(hdc, hf);
    SetTextColor(hdc, RGB(25, 255, 255));
    SetBkColor(hdc, RGB(0, 0, 0));
//=============================================================================
 
    x0 = round(-rect.right * a / (b - a));
    y0 = rect.bottom / 2;
    mx = (rect.right - 50) / (b - a);
    x = a;
    max = y(x);
    min = max;
    while(x < b)
    {
      x = x + 0.01;
      if(y(x) > max) max = y(x);
      if(y(x) < min) min = y(x);
    }
    if(max > abs(min)) my = (y0 - 20) / max;
    else my = (y0 - 20) / abs(min);
    n = 3;
    if(max / 10 > n) n = int(max / 10) + 1;
    if(abs(min / 10) > n) n = int(abs(min / 10)) + 1;
 
    MoveToEx(hdc, 0, y0, NULL);
    LineTo(hdc, rect.right, y0);
    MoveToEx(hdc, x0, 0, NULL);
    LineTo(hdc, x0, rect.bottom);
    char txt[100];
    for(i = 1; i <=n; i++)
    {
        MoveToEx(hdc, x0 + round(i * mx), y0 - 3, NULL);
        LineTo(hdc, x0 + round(i * mx), y0 + 3);
        MoveToEx(hdc, x0 - round(i * mx), y0 - 3, NULL);
        LineTo(hdc, x0 - round(i * mx), y0 + 3);
        MoveToEx(hdc, x0 + 3, y0 - round(i * my * 10), NULL);
        LineTo(hdc, x0 - 3, y0 - round(i * my * 10));
        MoveToEx(hdc, x0 + 3,y0 + round(i * my * 10), NULL);
        LineTo(hdc, x0 - 3, y0 + round(i * my * 10));
 
        itoa(i, txt, 10);
        TextOutA(hdc, x0 + round(mx * i) - 15, y0 + 10, txt, strlen(txt));
        itoa(-i, txt, 10);
        TextOutA(hdc, x0 - round(mx * i), y0 + 10, txt, strlen(txt));
        itoa(i * 10, txt, 10);
        TextOutA(hdc, x0 - 25, y0 - round(i * my * 10) - 10, txt, strlen(txt));
        itoa(-i * 10, txt, 10);
        TextOutA(hdc, x0 - 30, y0 + round(i * my * 10) - 10, txt, strlen(txt));
    }
    TextOutW(hdc, x0 + 5, y0 + 10, L"0", 1);
    TextOutW(hdc, rect.right - 15, y0 - 25, L"X", 1);
    TextOutW(hdc, x0 + 5, 8, L"Y", 1);
  //график
  x = a;
  dx = 0.001;
  while(x <= b)
  {
      x = x + dx;
      SetPixel(hdc, x0 + round(x * mx), y0 - round(y(x) * my), RGB(255, 12, 255));
  }
  //setfontsize(12);
  //setfontcolor(clBlue);
    TextOutW(hdc, x0 + 20, 10, L"       x<0  y=x", 15);
  //textout(x0+20,30,' 0<=x<=1.5  y=x+1');
  //textout(x0+20,50,'     x>1.5  y=2.5x^3+6x^2-30');
 
    system("pause>nul");
    return 0;
}
0
Миниатюры
Вычисления функции на заданном промежутке. (Pascal ABC>C++)  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru