Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
1

В какой тип данных конвертировать результат, что бы выдавало число, а не "бесконечность или NaN"

10.12.2013, 22:15. Просмотров 775. Ответов 18
Метки нет (Все метки)

Добрый день, подскажите пожалуйста в какой тип данных конвертировать результат, что бы выдавало число, а не "бесконечность или NaN".
Результаты вычислений:
Кликните здесь для просмотра всего текста
Значение h0 1-5
1,8
1,1
0,8
0,4
0,48
Значение h1 1-5
1,1
0,8
0,4
0,48
0,4
Значение N 1-5
1,32143486989898E+23
-3,19842061392918E+86
-бесконечность
NaN
-бесконечность
Значение M 1-5
9,23502778395307E+24
-1,32907343078814E+88
-бесконечность
NaN
-бесконечность
Значение P 1-5
1,36787717637547E+16
2,1058759849963E+85
бесконечность
NaN
бесконечность


Кому интересно код программы:
Кликните здесь для просмотра всего текста
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
142
143
144
using System;
 
class tlkmc
{
    static void Main()
    {
        Double h0_1, h0_2, h0_3, h0_4, h0_5;
        Double E_1, E_2, E_3, E_4, E_5;
        Double h1_1, h1_2, h1_3, h1_4, h1_5;
        Double l_1, l_2, l_3, l_4, l_5;
        Double sigmaTC_1, sigmaTC_2, sigmaTC_3, sigmaTC_4, sigmaTC_5;
        Double Kc2_1, Kc2_2, Kc2_3, Kc2_4, Kc2_5;
        Double delta_1, delta_2, delta_3, delta_4, delta_5;
        Double hH_1, hH_2, hH_3, hH_4, hH_5;
        Double Nsig_1, Nsig_2, Nsig_3, Nsig_4, Nsig_5;
        Double Pcr_1, Pcr_2, Pcr_3, Pcr_4, Pcr_5;
        Double X2_1, X2_2, X2_3, X2_4, X2_5;
        Double lc_1, lc_2, lc_3, lc_4, lc_5;
        Double deltaL_1, deltaL_2, deltaL_3, deltaL_4, deltaL_5;
        Double P_1, P_2, P_3, P_4, P_5;
        Double Mpr_1, Mpr_2, Mpr_3, Mpr_4, Mpr_5;
        Double N1, N2, N3, N4, N5;
        Double Deltah_1, Deltah_2, Deltah_3, Deltah_4, Deltah_5;
        Double a0, a1, a2, a3;
        ////
        a0 = 241.2;
        a1 = 1133.4;
        a2 = -1195.2;
        a3 = 525.6;
 
        ///// 
        h0_1 = 1.8;
        h1_1 = h0_2 = 1.1;
        h1_2 = h0_3 = 0.8;
        h1_3 = h0_4 = 0.4;
        h1_4 = h0_5 = 0.48;
        h1_5 = 0.4;
        /////
        E_1 = 0.39;
        E_2 = 0.28;
        E_3 = 0.25;
        E_4 = 0.2;
        E_5 = 0.16;
        /////вычисления/////
        //1
        Deltah_1 = h0_1 - h1_1;
        Deltah_2 = h0_2 - h1_2;
        Deltah_3 = h0_3 - h1_3;
        Deltah_4 = h0_4 - h1_4;
        Deltah_5 = h0_5 - h1_5;
        //3
        l_1 = Math.Sqrt(307.5 * Deltah_1);
        l_2 = Math.Sqrt(307.5 * Deltah_2);
        l_3 = Math.Sqrt(307.5 * Deltah_3);
        l_4 = Math.Sqrt(307.5 * Deltah_4);
        l_5 = Math.Sqrt(307.5 * Deltah_5);
        //4
        sigmaTC_1 = a0 + (2 / 3) * a1 * E_1 + (8 / 15) * a2 * Math.Pow(E_1, 2) + (16 / 35) * a3 * Math.Pow(E_1, 3);
        sigmaTC_2 = a0 + (2 / 3) * a1 * E_2 + (8 / 15) * a2 * Math.Pow(E_2, 2) + (16 / 35) * a3 * Math.Pow(E_2, 3);
        sigmaTC_3 = a0 + (2 / 3) * a1 * E_3 + (8 / 15) * a2 * Math.Pow(E_3, 2) + (16 / 35) * a3 * Math.Pow(E_3, 3);
        sigmaTC_4 = a0 + (2 / 3) * a1 * E_4 + (8 / 15) * a2 * Math.Pow(E_4, 2) + (16 / 35) * a3 * Math.Pow(E_4, 3);
        sigmaTC_5 = a0 + (2 / 3) * a1 * E_5 + (8 / 15) * a2 * Math.Pow(E_5, 2) + (16 / 35) * a3 * Math.Pow(E_5, 3);
        //5
        Kc2_1 = 1.15 * sigmaTC_1;
        Kc2_2 = 1.15 * sigmaTC_2;
        Kc2_3 = 1.15 * sigmaTC_3;
        Kc2_4 = 1.15 * sigmaTC_4;
        Kc2_5 = 1.15 * sigmaTC_5;
        //6
        delta_1 = (2 * 0.09 * l_1) / Deltah_1;
        delta_2 = (2 * 0.09 * l_2) / Deltah_2;
        delta_3 = (2 * 0.09 * l_3) / Deltah_3;
        delta_4 = (2 * 0.09 * l_4) / Deltah_4;
        delta_5 = (2 * 0.09 * l_5) / Deltah_5;
        //7
        hH_1 = 1 / Math.Pow(((0.3 / 0.3) * Math.Pow(h0_1, delta_1 - 1) * Math.Pow(h1_1, delta_1 + 1)),2*delta_1);
        hH_2 = 1 / Math.Pow(((0.3 / 0.3) * Math.Pow(h0_2, delta_2 - 1) * Math.Pow(h1_2, delta_2 + 1)), 2 * delta_2);
        hH_3 = 1 / Math.Pow(((0.3 / 0.3) * Math.Pow(h0_3, delta_3 - 1) * Math.Pow(h1_3, delta_3 + 1)), 2 * delta_3);
        hH_4 = 1 / Math.Pow(((0.3 / 0.3) * Math.Pow(h0_4, delta_4 - 1) * Math.Pow(h1_4, delta_4 + 1)), 2 * delta_4);
        hH_5 = 1 / Math.Pow(((0.3 / 0.3) * Math.Pow(h0_5, delta_5 - 1) * Math.Pow(h1_5, delta_5 + 1)), 2 * delta_5);
        //8
        Nsig_1=(1/Deltah_1)*((0.3*h0_1)/(delta_1-2)*(Math.Pow((h0_1/hH_1),(delta_1-2)-1)+(0.3*h1_1)/(delta_1+2)*(Math.Pow((hH_1/h1_1),(delta_1+2))-1)));
        Nsig_2 = (1 / Deltah_2) * ((0.3 * h0_2) / (delta_2 - 2) * (Math.Pow((h0_2 / hH_2), (delta_2 - 2) - 1) + (0.3 * h1_2) / (delta_2 + 2) * (Math.Pow((hH_2 / h1_2), (delta_2 + 2)) - 1)));
        Nsig_3 = (1 / Deltah_3) * ((0.3 * h0_3) / (delta_3 - 2) * (Math.Pow((h0_3 / hH_3), (delta_3 - 2) - 1) + (0.3 * h1_3) / (delta_3 + 2) * (Math.Pow((hH_3 / h1_3), (delta_3 + 2)) - 1)));
        Nsig_4 = (1 / Deltah_4) * ((0.3 * h0_4) / (delta_4 - 2) * (Math.Pow((h0_4 / hH_4), (delta_4 - 2) - 1) + (0.3 * h1_4) / (delta_4 + 2) * (Math.Pow((hH_4 / h1_4), (delta_4 + 2)) - 1)));
        Nsig_5 = (1 / Deltah_5) * ((0.3 * h0_5) / (delta_5 - 2) * (Math.Pow((h0_5 / hH_5), (delta_5 - 2) - 1) + (0.3 * h1_5) / (delta_5 + 2) * (Math.Pow((hH_5 / h1_5), (delta_5 + 2)) - 1)));
        //9
        Pcr_1 = Kc2_1 * Nsig_1;
        Pcr_2 = Kc2_2 * Nsig_2;
        Pcr_3 = Kc2_3 * Nsig_3;
        Pcr_4 = Kc2_4 * Nsig_4;
        Pcr_5 = Kc2_5 * Nsig_5;
        //10
        X2_1 = 8 * Pcr_1 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_2 = 8 * Pcr_2 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_3 = 8 * Pcr_3 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_4 = 8 * Pcr_4 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_5 = 8 * Pcr_5 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        //
        lc_1 = Math.Sqrt(307.5 * Deltah_1 + Math.Pow(X2_1, 2)) + X2_1;
        lc_2 = Math.Sqrt(307.5 * Deltah_2 + Math.Pow(X2_2, 2)) + X2_2;
        lc_3 = Math.Sqrt(307.5 * Deltah_3 + Math.Pow(X2_3, 2)) + X2_3;
        lc_4 = Math.Sqrt(307.5 * Deltah_4 + Math.Pow(X2_4, 2)) + X2_4;
        lc_5 = Math.Sqrt(307.5 * Deltah_5 + Math.Pow(X2_5, 2)) + X2_5;
        //
        deltaL_1 = ((lc_1 - l_1) / l_1) * 100;
        deltaL_2 = ((lc_2 - l_2) / l_2) * 100;
        deltaL_3 = ((lc_3 - l_3) / l_3) * 100;
        deltaL_4 = ((lc_4 - l_4) / l_4) * 100;
        deltaL_5 = ((lc_5 - l_5) / l_5) * 100;
        //11
        P_1 = Pcr_1 * 1550 * lc_1;
        P_2 = Pcr_2 * 1550 * lc_2;
        P_3 = Pcr_3 * 1550 * lc_3;
        P_4 = Pcr_4 * 1550 * lc_4;
        P_5 = Pcr_5 * 1550 * lc_5;
        //12
        Mpr_1 = Kc2_1 * ((2 * 1550 * 307.5 * 0.09 * lc_1) / Deltah_1) * ((0.3 * h0_1) / (delta_1 - 2) * (Math.Pow((h0_1 / hH_1), (delta_1 - 2)) - 1) - (0.3 * h1_1) / (delta_1 + 2) * (Math.Pow((hH_1 / h1_1), (delta_1 + 2)) - 1));
        Mpr_2 = Kc2_2 * ((2 * 1550 * 307.5 * 0.09 * lc_2) / Deltah_2) * ((0.3 * h0_2) / (delta_2 - 2) * (Math.Pow((h0_2 / hH_2), (delta_2 - 2)) - 1) - (0.3 * h1_2) / (delta_2 + 2) * (Math.Pow((hH_2 / h1_2), (delta_2 + 2)) - 1));
        Mpr_3 = Kc2_3 * ((2 * 1550 * 307.5 * 0.09 * lc_3) / Deltah_3) * ((0.3 * h0_3) / (delta_3 - 2) * (Math.Pow((h0_3 / hH_3), (delta_3 - 2)) - 1) - (0.3 * h1_3) / (delta_3 + 2) * (Math.Pow((hH_3 / h1_3), (delta_3 + 2)) - 1));
        Mpr_4 = Kc2_4 * ((2 * 1550 * 307.5 * 0.09 * lc_4) / Deltah_4) * ((0.3 * h0_4) / (delta_4 - 2) * (Math.Pow((h0_4 / hH_4), (delta_4 - 2)) - 1) - (0.3 * h1_4) / (delta_4 + 2) * (Math.Pow((hH_4 / h1_1), (delta_4 + 2)) - 1));
        Mpr_5 = Kc2_5 * ((2 * 1550 * 307.5 * 0.09 * lc_5) / Deltah_5) * ((0.3 * h0_5) / (delta_5 - 2) * (Math.Pow((h0_5 / hH_5), (delta_5 - 2)) - 1) - (0.3 * h1_5) / (delta_5 + 2) * (Math.Pow((hH_5 / h1_1), (delta_5 + 2)) - 1));
        //13
        N1 = (Mpr_1 * 4.4) / 307.5;
        N2 = (Mpr_2 * 7.4) / 307.5;
        N3 = (Mpr_3 * 10) / 307.5;
        N4 = (Mpr_4 * 13.3) / 307.5;
        N5 = (Mpr_5 * 20) / 307.5;
 
 
        //// вывод значений 
        Console.WriteLine("Значение h0 1-5");
        Console.WriteLine(h0_1); Console.WriteLine(h0_2); Console.WriteLine(h0_3); Console.WriteLine(h0_4); Console.WriteLine(h0_5);
        Console.WriteLine("Значение h1 1-5");
        Console.WriteLine(h1_1); Console.WriteLine(h1_2); Console.WriteLine(h1_3); Console.WriteLine(h1_4); Console.WriteLine(h1_5);
        Console.WriteLine("Значение N 1-5");
        Console.WriteLine(N1); Console.WriteLine(N2); Console.WriteLine(N3); Console.WriteLine(N4); Console.WriteLine(N5);
        Console.WriteLine("Значение M 1-5");
        Console.WriteLine(Mpr_1); Console.WriteLine(Mpr_2); Console.WriteLine(Mpr_3); Console.WriteLine(Mpr_4); Console.WriteLine(Mpr_5);
        Console.WriteLine("Значение P 1-5");
        Console.WriteLine(P_1); Console.WriteLine(P_2); Console.WriteLine(P_3); Console.WriteLine(P_4); Console.WriteLine(P_5);
        Console.ReadKey();
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 22:15
Ответы с готовыми решениями:

Тип данных "bool?" - что означает знак вопроса
Здравствуйте! Читаю книгу по c#. В ней есть пример создания класса, в котором...

Методом вычислить тип треугольника: "не существует", "тупоугольный", "прямоугольный", "остроугольный"
Помогите пожалуйста С помощью метода вычислить тип треугольника::cry: 1) если...

Прибавление строк string a="a"+"b" |=какой то число
у меня такая простая ситуация хотел вывести на экран (так для проверки)...

Ошибка CS0234 Тип или имя пространства имен "Interpor" не существует в пространстве имен "Microsoft.Office"
Выбивает "Ошибка CS0234 Тип или имя пространства имен "Interpor" не существует...

Конвертировать строку в число. Подобрать тип данных
Здравствуйте есть такая строка -4.99218750e+000, надо ее конвертировать в...

18
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,346
Завершенные тесты: 3
10.12.2013, 22:17 2
Какое число ты хочешь получить вместо бесконечности или не номера (т.е. NAN)?
1
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
11.12.2013, 01:28 3
Цитата Сообщение от BadMasterUA Посмотреть сообщение
Кому интересно код программы:
Мда... Как увидел этот список переменных, так сразу понял, что мне уже не интересно.
И как вы сами в них не заблудились? (Вопрос риторический.)
0
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 08:41  [ТС] 4
Цитата Сообщение от ViterAlex Посмотреть сообщение
Какое число ты хочешь получить вместо бесконечности или не номера (т.е. NAN)?
Хотя-бы с одним знаком после запятой.

Добавлено через 3 минуты
Цитата Сообщение от memphis Посмотреть сообщение
Мда... Как увидел этот список переменных, так сразу понял, что мне уже не интересно.
И как вы сами в них не заблудились? (Вопрос риторический.)
:-) в них не сложно разобраться если знаешь формулы. Я сам с радостью сделал это все циклом но увы, тогда бы увы неправильно считалось.
0
valera_21
371 / 355 / 94
Регистрация: 05.01.2010
Сообщений: 1,481
Завершенные тесты: 5
11.12.2013, 12:11 5
Цитата Сообщение от BadMasterUA Посмотреть сообщение
Хотя-бы с одним знаком после запятой.
бесконечность с одним знаком после запятой - сильно, как впрочем и не число с одним знаком (с каким же интересно) после запятой
0
pincet
1337 / 923 / 126
Регистрация: 23.07.2010
Сообщений: 5,039
11.12.2013, 13:31 6
Цитата Сообщение от BadMasterUA Посмотреть сообщение
Кому интересно код программы:
Фееричный пример того, как не надо писать код. "Массивы? не, не слыхал!"
1
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 18:47  [ТС] 7
Цитата Сообщение от pincet Посмотреть сообщение
Фееричный пример того, как не надо писать код. "Массивы? не, не слыхал!"
слышал ( но не разобрался
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
11.12.2013, 18:55 8
Цитата Сообщение от BadMasterUA Посмотреть сообщение
не разобрался
BadMasterUA, пока не разберётесь, дальше двигаться нет никакого смысла. Это как жить в городе и не разбираться в сигналах светофора - жить можно, но в пределах квартала.
1
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 19:06  [ТС] 9
подскажите как все таки числа вытянуть, мне нужны они для курсовой.
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
11.12.2013, 19:21 10
BadMasterUA, значение NaN говорит о том, что где-то у вас фигня в вычислениях. Первый кандидат - деление на 0. Double.NaN - поле.
Вот вы и найдите в своей программе то место где появляется NaN. Или ждите когда найдётся желающий разобраться в вашей программе, причём неизвестно даже, что она делает.
1
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 19:31  [ТС] 11
Сейчас посмотрю, а так это программа для определения параметров холодной прокатки в моем случае на НСХП 1550 Новолипецкого металлургического комбината. правда есть одно место в программе, которое уже заставляет меня задуматься это вот эта формула
В какой тип данных конвертировать результат, что бы выдавало число, а не "бесконечность или NaN"

я записал ее в программе в таком варианте так как на знаю как вычислить такой корень
hH_1 = 1 / Math.Pow(((0.3 / 0.3) * Math.Pow(h0_1, delta_1 - 1) * Math.Pow(h1_1, delta_1 + 1)),2*delta_1);
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
11.12.2013, 20:05 12
BadMasterUA, сделайте вычисление того выражения, которое под корнем отдельной частью программы. В этом нет математической хитрости, это просто поможет не запутаться, да и искать проблемы будет легче.

Пока что я вижу, что на картинке вы должны извлекать корень 2*delta, т. е.
C#
1
hH_1 = Math.Pow(подкоренное_выражение, 1 / (2 * delta));
причём эта дельта без индекса, т.е. просто какая-то ваша дельта. А вы возводите в степень 2*delta_1...
И вот это: 1 / Math.Pow(... Ага, вот это 1 / ... должно быть в показателе степени, как я только что написал, а не для результата вычисления.

... Как-то всё это не весело.
0
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 20:16  [ТС] 13
Спасибо попробую, можете посмотреть я вот решил все таки, что бы разобраться с масивами решил переписать программы с использованием одномерного масива правильно я делаю?
Кликните здесь для просмотра всего текста
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
/////////////вариант с масивами//////////////////////
using System;
using System.IO;
 
class a1
{
    static Double[] P; static Double[] N;
    static Double[] M; static Double[] h0;
    static Double[] h1; static Double[] E;
    static Double[] Deltah; static Double[] L;
    static Double[] sigmaTC; static Double[] Kc2;
    static Double[] delta; static Double[] h_H;
    static Double[] hH; static Double[] X2;
    static Double[] lc; static Double[] DeltaL;
 
    static void Main()
    {
        StreamWriter f = new StreamWriter("Результаты лабы 6v2.txt");
 
        h0 = new Double[4];
        h0[0] = 1.8;
        h0[1] = 1.1;
        h0[2] = 0.8;
        h0[3] = 0.6;
        h0[4] = 0.48;
        h1 = new Double[4];
        h1[0] = 1.1;
        h1[1] = 0.8;
        h1[2] = 0.6;
        h1[3] = 0.48;
        h1[4] = 0.4;
        E = new Double[4];
        E[0] = 0.39;
        E[1] = 0.28;
        E[2] = 0.25;
        E[3] = 0.2;
        E[4] = 0.16;
        P = new Double[4];
        N = new Double[4];
        M = new Double[4];
        Deltah = new Double[4];
        DeltaL = new Double[4];
        L = new Double[4];
        lc = new Double[4];
        X2 = new Double[4];
        h_H = new Double[4];
        //// вычисления////
        for (int i = 1; i <= 4; i++)
        {
            Deltah[i] = h0[i] - h1[i];
            L[i] = Math.Sqrt(307.5 * Deltah[i]);
        }
 
        f.Close();
        Console.ReadKey();
    }
}

и можете подсказать как это все потом вывести в массивы M,P,N и что бы ввывести результаты в консоль.
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
11.12.2013, 21:46 14
BadMasterUA, в новом коде я не могу разобраться, не забывайте, что я не владею предметной областью. Такое количество массивов всё равно не радует. Что вы там конкретно меряете я тоже не знаю.
Знаю, что результаты измерений вы должны прогнать через одну или несколько формул. Результаты вычислений по каждой серии вы должны усреднить и, возможно сверить с теоретическим значением.
А вот как скомпоновать эти самые результаты измерений, конечно же я не могу заочно сказать. Могу лишь предположить, что для каждой серии замеров вы должны завести массив массивов. Длиной этого массива будет количество замеряемых параметров, а в каждый подмассив вы вносите результаты замеров. Как-то так. Это всё организационные вопросы. Они помогут найти то место, где появляется NaN и тогда уже надо смотреть "кто виноват" и "что делать".
0
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 22:33  [ТС] 15
ну суть этой программы посчитать параметры по клетям: Момент прокатки, мощность эл.дв и т.д. Я до писал код но там выбивает не явное преоброзование "Ошибка 1 Неявное преобразование типа "double" в "double[]" невозможно" в каких строчка я отметил "///ошибка///" , а вывести мне нужно содержимое этих массивов.
Кликните здесь для просмотра всего текста
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
/////////////вариант с масивами//////////////////////
using System;
using System.IO;
 
class a1
{
    static Double[] P; static Double[] N;
    static Double[] M; static Double[] h0;
    static Double[] h1; static Double[] E;
    static Double[] Deltah; static Double[] L;
    static Double[] sigmaTC; static Double[] Kc2;
    static Double[] delta; static Double[] h_H;
    static Double[] hH; static Double[] X2;
    static Double[] lc; static Double[] DeltaL;
    static Double[] Nsigma; static Double[] Pcr;
    static Double[] V;
 
    static void Main()
    {
        StreamWriter f = new StreamWriter("Результаты лабы 6v2.txt");
 
        h0 = new Double[5];
        h0[0] = 1.8;
        h0[1] = 1.1;
        h0[2] = 0.8;
        h0[3] = 0.6;
        h0[4] = 0.48;
        h1 = new Double[5];
        h1[0] = 1.1;
        h1[1] = 0.8;
        h1[2] = 0.6;
        h1[3] = 0.48;
        h1[4] = 0.4;
        E = new Double[5];
        E[0] = 0.39;
        E[1] = 0.28;
        E[2] = 0.25;
        E[3] = 0.2;
        E[4] = 0.16;
        V = new Double[5];
        V[0] = 4.4;
        V[1] = 7.4;
        V[2] = 10;
        V[3] = 13.3;
        V[4] = 20;
        P = new Double[5];
        N = new Double[5];
        M = new Double[5];
        Deltah = new Double[5];
        DeltaL = new Double[5];
        L = new Double[5];
        lc = new Double[5];
        X2 = new Double[5];
        h_H = new Double[5];
        Nsigma=new Double[5];
        Pcr = new Double[5];
        //// вычисления////
        for (int i = 1; i <= 5; i++)
        {
            Deltah[i] = h0[i] - h1[i];
            L[i] = Math.Sqrt(307.5 * Deltah[i]);
            sigmaTC[i] = 241.3 + (2 / 3) * 1133.4 * E[i] + (8 / 15) * (-1195.2) * Math.Pow(E[i], 2) + (16 / 35) * 525.6 * Math.Pow(E[i], 3);
            Kc2[i] = 1.15 * sigmaTC[i];
            delta[i] = (2 * 0.09 * L[i]) / Deltah[i];
            h_H[i] = Math.Pow(((0.3 / 0.3) * Math.Pow(h0[i], delta[i] - 1) * Math.Pow(h1[i], delta[i] + 1)), 2 * delta[i]);
            /////ошибка //Nsigma = (1 / Deltah[i]) * ((0.3 * h0[i]) / (delta[i] - 2) * (Math.Pow((h0[i] / hH[i]), (delta[i] - 2) - 1) + (0.3 * h1[i]) / (delta[i] + 2) * (Math.Pow((hH[i] / h1[i]), (delta[i] + 2)) - 1)));
            Pcr[i] = Kc2[i] * Nsigma[i];
            X2[i] = 8 * Pcr[i] * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
            lc[i] = Math.Sqrt(307.5 * Deltah[i] + Math.Pow(X2[i], 2)) + X2[i];
            /////ошибка///DeltaL = (lc[i] - L[i] / L[i]) * 100;
            P[i] = Pcr[i] * 1550 * lc[i];
            M[i] = Kc2[i] * ((2 * 1550 * 307.5 * 0.09 * lc[i]) / Deltah[i]) * ((0.3 * h0[i]) / (delta[i] - 2) * (Math.Pow((h0[i] / hH[i]), (delta[i] - 2)) - 1) - (0.3 * h1[i]) / (delta[i] + 2) * (Math.Pow((hH[i] / h1[i]), (delta[i] + 2)) - 1));
 
        }
        Array.Sort(P);
        Console.WriteLine(Array.BinarySearch(P, 1));
        f.Close();
        Console.ReadKey();
    }
}
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
11.12.2013, 22:41 16
BadMasterUA, в помеченных строках ошибки из-за того, что Nsigma и DeltaL являются массивами, а вы обращаетесь к ним как к переменным. Имени массива можно присвоить ссылку на другой массив, но не результат типа double. Как я понимаю вы должны результат вычисления присвоить элементу массива, т.е.
Nsigma[здесь_индекс_элемента] = ...
0
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
11.12.2013, 23:13  [ТС] 17
кажется я понял о чем вы, я выходит из пустого массива пытаюсь взять значение. А как тогда заполнить массив? Эти два числа вычисляются но я не задают результаты в массив.
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
12.12.2013, 00:02 18
BadMasterUA, скажу так. Массивы тема не сложная. Весьма не сложная. Но это не значит, вы её освоите за эти пару обменов сообщениями на форуме. Вам следует взять учебник и последовательно прочесть материал о массивах. Обязательно с повторением в коде прочитанного материала. Потому, как то, что вы пишете сейчас - это Фобос и Деймос.
0
BadMasterUA
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 43
12.12.2013, 15:49  [ТС] 19
Переделала старый вариант программы теперь только для четвертой клети пишет NaN помогите найти ошибку
Кликните здесь для просмотра всего текста
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
142
143
144
using System;
 
class tlkmc
{
    static void Main()
    {
        Double h0_1, h0_2, h0_3, h0_4, h0_5;
        Double E_1, E_2, E_3, E_4, E_5;
        Double h1_1, h1_2, h1_3, h1_4, h1_5;
        Double l_1, l_2, l_3, l_4, l_5;
        Double sigmaTC_1, sigmaTC_2, sigmaTC_3, sigmaTC_4, sigmaTC_5;
        Double Kc2_1, Kc2_2, Kc2_3, Kc2_4, Kc2_5;
        Double delta_1, delta_2, delta_3, delta_4, delta_5;
        Double hH_1, hH_2, hH_3, hH_4, hH_5;
        Double Nsig_1, Nsig_2, Nsig_3, Nsig_4, Nsig_5;
        Double Pcr_1, Pcr_2, Pcr_3, Pcr_4, Pcr_5;
        Double X2_1, X2_2, X2_3, X2_4, X2_5;
        Double lc_1, lc_2, lc_3, lc_4, lc_5;
        Double deltaL_1, deltaL_2, deltaL_3, deltaL_4, deltaL_5;
        Double P_1, P_2, P_3, P_4, P_5;
        Double Mpr_1, Mpr_2, Mpr_3, Mpr_4, Mpr_5;
        Double N1, N2, N3, N4, N5;
        Double Deltah_1, Deltah_2, Deltah_3, Deltah_4, Deltah_5;
        Double a0, a1, a2, a3;
        ////
        a0 = 241.2;
        a1 = 1133.4;
        a2 = -1195.2;
        a3 = 525.6;
 
        ///// 
        h0_1 = 1.8;
        h1_1 = h0_2 = 1.1;
        h1_2 = h0_3 = 0.8;
        h1_3 = h0_4 = 0.4;
        h1_4 = h0_5 = 0.48;
        h1_5 = 0.4;
        /////
        E_1 = 0.39;
        E_2 = 0.28;
        E_3 = 0.25;
        E_4 = 0.2;
        E_5 = 0.16;
        /////вычисления/////
        //1
        Deltah_1 = h0_1 - h1_1;
        Deltah_2 = h0_2 - h1_2;
        Deltah_3 = h0_3 - h1_3;
        Deltah_4 = h0_4 - h1_4;
        Deltah_5 = h0_5 - h1_5;
        //3
        l_1 = Math.Sqrt(307.5 * Deltah_1);
        l_2 = Math.Sqrt(307.5 * Deltah_2);
        l_3 = Math.Sqrt(307.5 * Deltah_3);
        l_4 = Math.Sqrt(307.5 * Deltah_4);
        l_5 = Math.Sqrt(307.5 * Deltah_5);
        //4
        sigmaTC_1 = a0 + (2 / 3) * a1 * E_1 + (8 / 15) * a2 * Math.Pow(E_1, 2) + (16 / 35) * a3 * Math.Pow(E_1, 3);
        sigmaTC_2 = a0 + (2 / 3) * a1 * E_2 + (8 / 15) * a2 * Math.Pow(E_2, 2) + (16 / 35) * a3 * Math.Pow(E_2, 3);
        sigmaTC_3 = a0 + (2 / 3) * a1 * E_3 + (8 / 15) * a2 * Math.Pow(E_3, 2) + (16 / 35) * a3 * Math.Pow(E_3, 3);
        sigmaTC_4 = a0 + (2 / 3) * a1 * E_4 + (8 / 15) * a2 * Math.Pow(E_4, 2) + (16 / 35) * a3 * Math.Pow(E_4, 3);
        sigmaTC_5 = a0 + (2 / 3) * a1 * E_5 + (8 / 15) * a2 * Math.Pow(E_5, 2) + (16 / 35) * a3 * Math.Pow(E_5, 3);
        //5
        Kc2_1 = 1.15 * sigmaTC_1;
        Kc2_2 = 1.15 * sigmaTC_2;
        Kc2_3 = 1.15 * sigmaTC_3;
        Kc2_4 = 1.15 * sigmaTC_4;
        Kc2_5 = 1.15 * sigmaTC_5;
        //6
        delta_1 = (2 * 0.09 * l_1) / Deltah_1;
        delta_2 = (2 * 0.09 * l_2) / Deltah_2;
        delta_3 = (2 * 0.09 * l_3) / Deltah_3;
        delta_4 = (2 * 0.09 * l_4) / Deltah_4;
        delta_5 = (2 * 0.09 * l_5) / Deltah_5;
        //7
        hH_1 = Math.Pow(((0.3 / 0.3) * Math.Pow(h0_1, delta_1 - 1) * Math.Pow(h1_1, delta_1 + 1)), 1/(2*delta_1));
        hH_2 = Math.Pow(((0.3 / 0.3) * Math.Pow(h0_2, delta_2 - 1) * Math.Pow(h1_2, delta_2 + 1)), 1/(2 * delta_2));
        hH_3 = Math.Pow(((0.3 / 0.3) * Math.Pow(h0_3, delta_3 - 1) * Math.Pow(h1_3, delta_3 + 1)), 1/(2 * delta_3));
        hH_4 = Math.Pow(((0.3 / 0.3) * Math.Pow(h0_4, delta_4 - 1) * Math.Pow(h1_4, delta_4 + 1)), 1/(2 * delta_4));
        hH_5 = Math.Pow(((0.3 / 0.3) * Math.Pow(h0_5, delta_5 - 1) * Math.Pow(h1_5, delta_5 + 1)), 1/(2 * delta_5));
        //8
        Nsig_1=(1/Deltah_1)*((0.3*h0_1)/(delta_1-2)*(Math.Pow((h0_1/hH_1),(delta_1-2)-1)+(0.3*h1_1)/(delta_1+2)*(Math.Pow((hH_1/h1_1),(delta_1+2))-1)));
        Nsig_2 = (1 / Deltah_2) * ((0.3 * h0_2) / (delta_2 - 2) * (Math.Pow((h0_2 / hH_2), (delta_2 - 2) - 1) + (0.3 * h1_2) / (delta_2 + 2) * (Math.Pow((hH_2 / h1_2), (delta_2 + 2)) - 1)));
        Nsig_3 = (1 / Deltah_3) * ((0.3 * h0_3) / (delta_3 - 2) * (Math.Pow((h0_3 / hH_3), (delta_3 - 2) - 1) + (0.3 * h1_3) / (delta_3 + 2) * (Math.Pow((hH_3 / h1_3), (delta_3 + 2)) - 1)));
        Nsig_4 = (1 / Deltah_4) * ((0.3 * h0_4) / (delta_4 - 2) * (Math.Pow((h0_4 / hH_4), (delta_4 - 2) - 1) + (0.3 * h1_4) / (delta_4 + 2) * (Math.Pow((hH_4 / h1_4), (delta_4 + 2)) - 1)));
        Nsig_5 = (1 / Deltah_5) * ((0.3 * h0_5) / (delta_5 - 2) * (Math.Pow((h0_5 / hH_5), (delta_5 - 2) - 1) + (0.3 * h1_5) / (delta_5 + 2) * (Math.Pow((hH_5 / h1_5), (delta_5 + 2)) - 1)));
        //9
        Pcr_1 = Kc2_1 * Nsig_1;
        Pcr_2 = Kc2_2 * Nsig_2;
        Pcr_3 = Kc2_3 * Nsig_3;
        Pcr_4 = Kc2_4 * Nsig_4;
        Pcr_5 = Kc2_5 * Nsig_5;
        //10
        X2_1 = 8 * Pcr_1 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_2 = 8 * Pcr_2 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_3 = 8 * Pcr_3 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_4 = 8 * Pcr_4 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        X2_5 = 8 * Pcr_5 * 307.5 * ((1 - Math.Pow(0.3, 2)) / (3.14 * 210000));
        //
        lc_1 = Math.Sqrt(307.5 * Deltah_1 + Math.Pow(X2_1, 2)) + X2_1;
        lc_2 = Math.Sqrt(307.5 * Deltah_2 + Math.Pow(X2_2, 2)) + X2_2;
        lc_3 = Math.Sqrt(307.5 * Deltah_3 + Math.Pow(X2_3, 2)) + X2_3;
        lc_4 = Math.Sqrt(307.5 * Deltah_4 + Math.Pow(X2_4, 2)) + X2_4;
        lc_5 = Math.Sqrt(307.5 * Deltah_5 + Math.Pow(X2_5, 2)) + X2_5;
        //
        deltaL_1 = ((lc_1 - l_1) / l_1) * 100;
        deltaL_2 = ((lc_2 - l_2) / l_2) * 100;
        deltaL_3 = ((lc_3 - l_3) / l_3) * 100;
        deltaL_4 = ((lc_4 - l_4) / l_4) * 100;
        deltaL_5 = ((lc_5 - l_5) / l_5) * 100;
        //11
        P_1 = Pcr_1 * 1550 * lc_1;
        P_2 = Pcr_2 * 1550 * lc_2;
        P_3 = Pcr_3 * 1550 * lc_3;
        P_4 = Pcr_4 * 1550 * lc_4;
        P_5 = Pcr_5 * 1550 * lc_5;
        //12
        Mpr_1 = Kc2_1 * ((2 * 1550 * 307.5 * 0.09 * lc_1) / Deltah_1) * ((0.3 * h0_1) / (delta_1 - 2) * (Math.Pow((h0_1 / hH_1), (delta_1 - 2)) - 1) - (0.3 * h1_1) / (delta_1 + 2) * (Math.Pow((hH_1 / h1_1), (delta_1 + 2)) - 1));
        Mpr_2 = Kc2_2 * ((2 * 1550 * 307.5 * 0.09 * lc_2) / Deltah_2) * ((0.3 * h0_2) / (delta_2 - 2) * (Math.Pow((h0_2 / hH_2), (delta_2 - 2)) - 1) - (0.3 * h1_2) / (delta_2 + 2) * (Math.Pow((hH_2 / h1_2), (delta_2 + 2)) - 1));
        Mpr_3 = Kc2_3 * ((2 * 1550 * 307.5 * 0.09 * lc_3) / Deltah_3) * ((0.3 * h0_3) / (delta_3 - 2) * (Math.Pow((h0_3 / hH_3), (delta_3 - 2)) - 1) - (0.3 * h1_3) / (delta_3 + 2) * (Math.Pow((hH_3 / h1_3), (delta_3 + 2)) - 1));
        Mpr_4 = Kc2_4 * ((2 * 1550 * 307.5 * 0.09 * lc_4) / Deltah_4) * ((0.3 * h0_4) / (delta_4 - 2) * (Math.Pow((h0_4 / hH_4), (delta_4 - 2)) - 1) - (0.3 * h1_4) / (delta_4 + 2) * (Math.Pow((hH_4 / h1_1), (delta_4 + 2)) - 1));
        Mpr_5 = Kc2_5 * ((2 * 1550 * 307.5 * 0.09 * lc_5) / Deltah_5) * ((0.3 * h0_5) / (delta_5 - 2) * (Math.Pow((h0_5 / hH_5), (delta_5 - 2)) - 1) - (0.3 * h1_5) / (delta_5 + 2) * (Math.Pow((hH_5 / h1_1), (delta_5 + 2)) - 1));
        //13
        N1 = (Mpr_1 * 4.4) / 307.5;
        N2 = (Mpr_2 * 7.4) / 307.5;
        N3 = (Mpr_3 * 10) / 307.5;
        N4 = (Mpr_4 * 13.3) / 307.5;
        N5 = (Mpr_5 * 20) / 307.5;
 
 
        //// вывод значений 
        Console.WriteLine("Значение h0 1-5");
        Console.WriteLine(h0_1); Console.WriteLine(h0_2); Console.WriteLine(h0_3); Console.WriteLine(h0_4); Console.WriteLine(h0_5);
        Console.WriteLine("Значение h1 1-5");
        Console.WriteLine(h1_1); Console.WriteLine(h1_2); Console.WriteLine(h1_3); Console.WriteLine(h1_4); Console.WriteLine(h1_5);
        Console.WriteLine("Значение N 1-5");
        Console.WriteLine(N1); Console.WriteLine(N2); Console.WriteLine(N3); Console.WriteLine(N4); Console.WriteLine(N5);
        Console.WriteLine("Значение M 1-5");
        Console.WriteLine(Mpr_1); Console.WriteLine(Mpr_2); Console.WriteLine(Mpr_3); Console.WriteLine(Mpr_4); Console.WriteLine(Mpr_5);
        Console.WriteLine("Значение P 1-5");
        Console.WriteLine(P_1); Console.WriteLine(P_2); Console.WriteLine(P_3); Console.WriteLine(P_4); Console.WriteLine(P_5);
        Console.ReadKey();
    }
}
0
12.12.2013, 15:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 15:49

Определить, какой человек указан в списке раньше: самый "старый" или самый "молодой"
Известен возраст группы людей в списке. Какой человек указан в списке раньше:...

Графический редактор и ошибка "System.Windows.Forms.Cursor" является "тип", но используется как "переменная"
Всем привет.Пишу программу простейший графический редактор.Нужно,чтобы при...

Ошибка 2 "Files.StreamRider.StreamWriter" является "пространство имен", но используется как "тип"
Получаю следующую ошибку { FileStream Q1 = new...


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

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

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