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

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
ivan1212
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 54
#1

Сделать так, чтобы выводилось 3 знака после запятой и численное значение В было нормальным - Delphi

12.04.2016, 00:35. Просмотров 291. Ответов 1
Метки нет (Все метки)

Программа выводит в Мемо1 вот это:
Численное значение определенного интеграла В= 3.5E+003
A[ 2]=
X Y
1.000000E+000 -9.048390E-002
4.000000E+000 -7.128836E-002
7.000000E+000 -3.214845E-002
1.000000E+001 1.261199E-003
A[ 3]=
X Y
1.000000E+000 -6.032260E-002
4.000000E+000 -4.752557E-002
7.000000E+000 -2.143230E-002
1.000000E+001 8.407993E-004
A[ 4]=

Можете сделать так, чтобы выводилось 3 знака после запятой и там где численное значение В было нормальным.
Вот текст процедур:

Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
type
  tmx = array[1..100] of extended;
  tmy = array[1..100, 1..100] of extended;
var
  sa, sx, sy: string;
  Ma, Mx: tmx;
  My: tmy;
  An, ak, da, xn, Dx, b, c, d, eps, int: extended;
  k, n, n1, er, km: integer;
  function Pwr(x: real): real;//Возведение в степень (1/3)
  begin
    if x = 0 then Pwr := 0
    else
    if x > 0 then pwr := exp(ln(x) * (1 / 3)) else
      pwr := -exp(ln(abs(x)) * (1 / 3));
  end;
  
  procedure tab(b, an, ak, da, xn, dx: real; n: integer; var Mx, Ma: tmx; var My: tmy);
  var
    i, j: integer;
    x, y, a: real;
  begin
    j := 1;
    a := an;
    while a <= ak do
    begin
      X := xn;
      i := 1;
      while i <= n do
      begin
        y := (cos(b) * sin(sqrt(x))) / (a * sqrt(x + 5 * pwr(3 * x)));
        mx[i] := x;
        my[j, i] := y;
        i := i + 1;
        x := x + dx
      end;
      ma[j] := a;
      a := a + da;
      j := j + 1;
    end;
  end;
  
  function f(x: real): real;
  begin
    f := x * x * x * exp(2 * x);
  end;
  
  procedure integral(c, d, eps: real; var n1, er: integer; km: integer; var int: real);
  var
    y1, yn, h, del, int1, x: real;
    i, j: integer;
  begin
    y1 := f(c);
    yn := f(d);
    int1 := 0;
    n1 := 2;
    er := 1;
    j := 1;
    while j <= km do
    begin
      h := (d - c) / n1;
      x := c + h;
      int := 0;
      for I := 1 to n1 - 1 do
      begin
        int := int + f(x);
        x := x + h;
      end;
      int := h * (y1 / 2 + yn / 2 + int);
      del := abs(int1 - int);
      if del < eps then
      begin
        j := km;
        er := er - 1;
      end
      else
      begin
        int1 := int; n1 := n1 * 2;
      end;
      j := j + 1;
    end;
  end;
  
  procedure rezout(var mx: tmx; var ma: tmx; var my: tmy; k, n: integer);
  var
    i, j: integer;
    sa, sx, sy, kk: string;
  begin
    for j := 1 to k do
    begin
      str(j:14, kk);
      memo1.lines.add(' A[' + kk + ']=' + sa);
      memo1.lines.add('X           Y');
      for i := 1 to n do
      begin
        str(Mx[i]:14, sx);
        str(My[j, i]:14, sy);
        memo1.lines.add(sx + '     ' + sy);
      end;
      
      
      
      
      
    end;
  end;
 
begin
  an := strtofloat(edit1.text);
  ak := strtofloat(edit2.text);
  da := strtofloat(edit3.text);
  xn := strtofloat(edit4.text);
  dx := strtofloat(edit5.text);
  n := strtoint(edit6.text);
  c := strtofloat(edit7.text);
  d := strtofloat(edit8.text);
  eps := strtofloat(edit9.text);
  km := strtoint(edit10.text);
  integral(c, d, eps, n1, er, km, int);
  if er = 1 then
  begin
    str(km:14, sa);
    memo1.lines.add('Интеграл не найден за ' + sa + 'итераций');
    exit
  end;
  b := int;
  str(Int:14, sy);
  memo1.lines.add('Численное значение определенного интеграла В=' + sy);
  Tab(B, An, ak, da, xn, dx, n, mx, ma, my);
  k := trunc((ak - an) / da) + 1;
  rezout(mx, ma, my, k, n);
end;
 
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2016, 00:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сделать так, чтобы выводилось 3 знака после запятой и численное значение В было нормальным (Delphi):

Как сделать так, чтобы когда на 3-ёх " Label " Было одинаковое значение, то на 4-ом появлялся текст ? - Delphi
На фотографии то что я хочу сделать я уже сделал крестики нолики при нажатии на кнопку в верхнем квадратике появляется соответствующий...

Сделать так, чтобы после ввода текста в Edit вместо нажатия кнопки "Да" можно было нажимать клавишу "Enter" - Delphi
Раньше при помощи нехитрого кода (if (key = #13) then ...) у меня получалось сделать так, чтобы после ввода текста в Edit вместо нажатия...

Отредактировать текст так, чтобы после каждого знака препинания стоял один пробел - Delphi
помогите пожалуйста с этим разобраться...) составить программу, которая редактирует текст так, чтобы после каждого знака препинания стоял...

Как сделать так, чтобы определенный edit нельзя было редактировать ? - Delphi
На форме имеется едит в котором автоматически просчитывается цена по формуле, как сделать так, чтобы этот едит нельзя было редактировать,...

Как сделать так, чтобы компонент RadioGroup нельзя было изменять? - Delphi
как сделать так чтобы компонент RadioGroup нельзя было изменять?

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

1
Puporev
Модератор
54009 / 41642 / 14725
Регистрация: 18.05.2008
Сообщений: 97,887
12.04.2016, 12:11 #2
Цитата Сообщение от ivan1212 Посмотреть сообщение
чтобы выводилось 3 знака после запятой
Delphi
1
2
3
memo1.lines.add('X           Y');
for i := 1 to n do
memo1.lines.add(format('%.3f',[Mx[i]]) + '     ' +format('%.3f',[My[j,i]]));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2016, 12:11
Привет! Вот еще темы с ответами:

Сделать так, чтобы при выборе одного checkbox'a нельзя было выбрать другой - Delphi
Помогите сделать так, что бы при выборе одного checkbox'a нельзя было выбрать другой. А так же как сделать что бы выбор одного из двух...

Есть ли способ сделать так, чтобы таблица была статической на форме, а содержание было динамическим? - Delphi
Привет всем. Можно ли сделать так, чтобы таблица была статической на форме делфи, а содержание было динамическим? Например: Есть кнопка...

Сделать так, чтобы можно было нажать на кнопку только в случае, если выбран один из Checkbox'ов - Delphi
Нужна помощь. Есть на форме 2 checkbox и кнопка, нужно чтобы мы могли нажать на кнопку в случае если выбрали один из checkbox

хочу сделать так, чтобы можно было из строки s1 удалить такие символы, которые найдутся в строке s2! - Delphi
Доброго времени суток! :D Нужна небольшая помощь! Подскажите пожалуйста, как реализовать такую вещь: Я ввожу две строки, назовём их...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru