Форум программистов, компьютерный форум 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; const int NotUsed = system( "color 2" );
C++ Используя разложение функции в ряд, вычислить точное значение Используя разложение функции в ряд, вычислить точное значение (fа (x)), используя библиотечные математические функции как такое сделать? что лучше использовать? http://www.cyberforum.ru/cpp-beginners/thread1221802.html
C++ Найти сумму членов последовательности между максимальным и минимальным элементами
Помогите пожалуйста, нужно решить в С++. Дана последовательность n различных целых чисел. Найти сумму ее членов, расположеных между максимальным и минимальным значениями (в сумму включить и оба эти числа). Нашел подобную программу, только написанную в паскале и из 100 чисел. uses crt; const n=100; var a:array of integer; i,max,min,mini,maxi,sum:integer; begin clrscr; max:=a; min:=a; ...
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 namespace std; struct Complex//структура { float re,im; }; Complex CMPX(float r,float i)//получаем комплексное число { Complex res; подробнее

Показать сообщение отдельно
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
03.07.2014, 12:56     Вычисления функции на заданном промежутке. (Pascal ABC>C++)
Вычисления функции на заданном промежутке с шагом 0.2 и построить график этой функции.
Нужна помощь чтобы код переписать на c++:

Pascal
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
uses crt,graphABC;
 
function y(x:real):real;
begin
  if x<0 then y:=x
  else if x<=1.5 then y:=x+1
  else y:=2.5*x*x*x+6*x*x-30
end;
 
var a,b,x,h,max,min,mx,my,dx:real;
    x0,y0,i,n:integer;
    s:string;
begin
  a:=-2;
  b:=3;
  h:=0.1;
  x:=a;
  i:=0;
  while x<=b+h/2 do
    begin
      writeln('x=',x:5:1,'  y=',y(x):7:3);
      inc(i);
      if i mod 22=0 then
        begin
          write('Press Enter');
          readln
        end;
      x:=x+h
    end;
  write('Нажмите Enter для просмотра графика');
  readln;
  hidecursor;
  clrscr;
  x0:=round(-windowwidth*a/(b-a));
  y0:=windowheight div 2;
  mx:=(windowwidth-50)/(b-a);
  x:=a;
  max:=y(x);
  min:=max;
  while x<b do
    begin
      x:=x+0.01;
      if y(x)>max then max:=y(x);
      if y(x)<min then min:=y(x);
    end;
  if max>abs(min) then
    my:=(y0-20)/max
  else
    my:=(y0-20)/abs(min);
  n:=3;
  if max/10>n then
    n:=trunc(max/10)+1;
  if abs(min/10)>n then
    n:=trunc(abs(min/10))+1;
  line(0,y0,windowwidth,y0);
  line(x0,0,x0,windowheight);
  for i:=1 to n do
  begin
    line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3);
    line(x0-round(i*mx),y0-3,x0-round(i*mx),y0+3);
    line(x0+3,y0-round(i*my*10),x0-3,y0-round(i*my*10));
    line(x0+3,y0+round(i*my*10),x0-3,y0+round(i*my*10));
    textout(x0+round(mx*i)-15,y0+10,inttostr(i));
    textout(x0-round(mx*i),y0+10,inttostr(-i));
    textout(x0-25,y0-round(i*my*10)-10,inttostr(i*10));
    textout(x0-30,y0+round(i*my*10)-10,inttostr(-i*10));
  end;
  textout(x0+5,y0+10,'0');
  textout(windowwidth-15,y0-25,'X');
  textout(x0+5,8, 'Y');
  //график
  x:=a;
  dx:=0.001;
  while x<=b do
    begin
      x:=x+dx;
      setpixel(x0+round(x*mx),y0-round(y(x)*my),clBlue);
    end;
  setfontsize(12);
  setfontcolor(clBlue);
  textout(x0+20,10,'       x<0  y=x');
  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');
end.
Вот мои наброски...
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
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<iomanip>
#include<graphics.h>
#include<windows.h>
 
using namespace std;
 
float y(float x)
{
    if (x<0)
    {
        y=x;
    }
    else
    {
        if (x<=1.5)
        {
            y=x+1;
        }
        else
        {
            y=2.5*(x*x*x)+6*(x*x)-30;
        }
    }
}
 
main()
{
    //setlocale(LC_ALL, "Russian");
    //setlocale(0, "");
    int ww=500, hh=500;
    float a=-2, b=3, h=0.1, x=a; i=0, max, min, mx, my, dx;
    int x0, y0, i, n;
    char s;
    initwindow (ww, hh);
    while (x<=b+h/2)
    {
        std::cout<<"x="<<x<<" "<<"y="<<y(x)<<std::endl;
        i++;
        if (i%22=0)
        {
            std::cout<<"Press Enter";
            getch();
        }
        x+=h;
    }
    std::cout<<"Нажмите Enter для просмотра графика";
    getch();
    //hidecursor();
    system("cls");
    x0=round(-ww*a/b-a));
    y0=hh/2;
    mx=(hh-50)/(b-a);
    x=a;
    max=y(x);
    min=max;
    while (x<d)
    {
        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=trunc(max/10)+1;
    }
    if (abs(min/10)>n)
    {
        n=trunc(abs(min/10))+1;
    }
    line(0,y0,ww,y0);
    line(x0,0,x0,hh);
    for (i=1; i<n; i++)
    {
        line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3);
        line(x0-round(i*mx),y0-3,x0-round(i*mx),y0+3);
    line(x0+3,y0-round(i*my*10),x0-3,y0-round(i*my*10));
    line(x0+3,y0+round(i*my*10),x0-3,y0+round(i*my*10));
    outtextxy(x0+round(mx*i)-15,y0+10,inttostr(i));
    outtextxy(x0-round(mx*i),y0+10,inttostr(-i));
    outtextxy(x0-25,y0-round(i*my*10)-10,inttostr(i*10));
    outtextxy(x0-30,y0+round(i*my*10)-10,inttostr(-i*10));
    }
    outtextxy(x0+5,y0+10,'0');
  outtextxy(ww-15,y0-25,'X');
  outtextxy(x0+5,8, 'Y');
  // График
  x=a;
  dx=0.001;
  while (x<=b)
  {
        x=x+dx;
        setpixel(x0+round(x*mx),y0-round(y(x)*my),0);
    }
  setfontsize(12);
  setfontcolor(0);
  textout(x0+20,10,"       x<0  y=x");
  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");
    closegraph();
    return 0;
}
Миниатюры
Вычисления функции на заданном промежутке. (Pascal ABC>C++)  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru