Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
#1

Циклические структуры

08.11.2016, 20:43. Просмотров 819. Ответов 14
Метки нет (Все метки)

Здравствуйте, написал программу по построению таблицы на отрезке от a до b c шагом h. Но он мне выдает только точки а, 0, и bж; а шаг не учитывает, что не так?
P.S Ошибка в Class2 скорее всего!!!

Form1
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Logi logid = new Logi();
            logid.x = Convert.ToDouble(textBox1.Text);
            logid.y = Convert.ToDouble(textBox2.Text);
            logid.a = Convert.ToDouble(textBox3.Text);
            logid.b = Convert.ToDouble(textBox4.Text);
            logid.z = logid.logi(logid.x);
            textBox5.Text = Convert.ToString(logid.z);
        }
    
        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void label4_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
 
        private void label5_Click(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void label6_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label7_Click(object sender, EventArgs e)
        {
 
        }
 
        private void textBox6_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void label8_Click(object sender, EventArgs e)
        {
 
        }
 
        private void textBox8_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            Tabl tab = new Tabl();
            tab.x = double.Parse (textBox1.Text);
            tab.y = double.Parse(textBox2.Text);
            tab.a = double.Parse(textBox3.Text);
            tab.b = double.Parse(textBox4.Text);
            tab.m = double.Parse(textBox6.Text);
            tab.n = double.Parse(textBox7.Text);
            tab.l = double.Parse(textBox7.Text); //Шаг
            tab.Tab(listBox1);
        }
           
    }
}


Class1
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
 
namespace WindowsFormsApplication3
{
 
     public class Logi
    {
        public double z, x, y, a, b;
        public double logi(double x)
        {
 
 
            if (x * y > 0)
            {
                z = 1 - Math.Exp(x * y + a * b);
 
 
            }
            else
                if (x * y == 0)
                {
                    double min;
                    double z1 = b - a * x;
                    double z2 = b - y;
                    if (z1 > z2)
                        min = z1;
                    else
                        min = z2;
                    z = min;
 
 
                }
                else
                {
                    double z1 = Math.Pow(x, 3);
                    double z2 = Math.Exp(y);
                    double z3 = Math.Sqrt(Math.Abs(Math.Log(Math.Pow(y, 2), 2)));
                    double max;
                    max = z1;
                    if (max < z2)
                        max = z2;
                    if (max < z3)
                        max = z3;
                    z = max;
 
 
 
                }
 
 
            return z;
 
        }
    }
}


Class2(Ошибка где-то здесь)

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
 
 
namespace WindowsFormsApplication3
{
    public class Tabl : Logi
    {
 
        public double m { get; set; }// от
        public double n { get; set; }// до
        public double l { get; set; }// Шаг
        public double Xmin { get; set; }
        public double min { get; set; }
        public int Count { get; set; }
 
 
        private double f(double x)
        {
            return logi(x);
 
        }
        public void Tab(ListBox lb)
        {
            lb.Items.Clear();
            double x = m;
            min = f(x); Xmin=x;
            Count = 0;
            while (x<=n)
            {
                double y = f(x);
                lb.Items.Add(x.ToString("F4") + "  " + y.ToString("E"));
                if(min>y)
                {
                    min=y;
                    Xmin=x;
                }
                if (y>0) Count ++;
                x+=l;
            }
        }
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2016, 20:43
Ответы с готовыми решениями:

Циклические алгоритмы
Вычислить сумму S=1*100+2*99+3*98+…+ 50 *51

Циклические конструкции: табулирование функции
При нажатии на Button вычислить значение функции y=x^3-x^2+16x-43 для x...

Циклические конструкции, вычисление суммы ряда
При нажатии на Button вычислить сумму ряда Y=1!+2!+3!+...n!, для n введенного в...

Циклические конструкции. Арифметические циклы
Помогите сделать три задания):cry: Задание 1. Таблица значений функции...

Передача структуры из программы на c# в dll на c++ и получение структуры из dll
В общем проблема в том, что при попытке передачи структуры созданной в c# в dll...

14
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
08.11.2016, 21:31 #2
Какие значения вводишь?
1
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
08.11.2016, 21:45  [ТС] #3
Я ввожу все значения. Например отрезок от -5 до 5 с шагом=1. Он мне выдает ответ только точки для -5,0,5. А шаг не учитывает.
0
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
08.11.2016, 21:49 #4
BluSterben, у тебя там больше переменных. Дай хоть для примера, что ввести. Так я ошибки не вижу, кроме некоторой избыточности кода
1
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
08.11.2016, 21:49  [ТС] #5
Вот пример
0
Миниатюры
Циклические структуры  
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
08.11.2016, 22:48 #6
Мда, нужно больше учить ООП: не увидел очевидного. У тебя в методах используется переменная x, которая скрывает поле x в классе. Если ты задаёшь x извне, то метод должен быть без параметров.
1
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
08.11.2016, 22:52  [ТС] #7
ViterAlex, Если убрать параметры он начнет ругаться и не запустит программу. Так как не опознает что это. Или я тебя не правильно понял?
0
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
08.11.2016, 22:58 #8
Цитата Сообщение от BluSterben Посмотреть сообщение
Если убрать параметры он начнет ругаться и не запустит программу
Сначала убери, а там посмотришь, например так:
C#
1
2
3
4
private double f()
{
    return logi(x);
}
1
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
08.11.2016, 23:01  [ТС] #9
Убрал, толком ничего не изменилось, так же только концы и ноль, только теперь плавающая точка стала значением Z, что не так. То есть программа теперь находит не правильно 2 значение, оно всегда одинаковое.
0
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
09.11.2016, 07:52 #10
Везде убрал или только в этой функции?
1
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
09.11.2016, 10:22  [ТС] #11
Везде
0
Serg34
90 / 90 / 33
Регистрация: 20.09.2014
Сообщений: 423
Записей в блоге: 3
Завершенные тесты: 1
09.11.2016, 11:10 #12
Лучший ответ Сообщение было отмечено BluSterben как решение

Решение

Цитата Сообщение от BluSterben Посмотреть сообщение
tab.l = double.Parse(textBox7.Text); //Шаг
Может здесь надо textBox8 написать?
1
BluSterben
0 / 0 / 2
Регистрация: 08.11.2016
Сообщений: 17
09.11.2016, 11:23  [ТС] #13
Serg34, Боже, ахахаха, ну как можно не заметить. Спасибо, тепер все должно работать.
0
Serg34
90 / 90 / 33
Регистрация: 20.09.2014
Сообщений: 423
Записей в блоге: 3
Завершенные тесты: 1
09.11.2016, 11:28 #14
Цитата Сообщение от BluSterben Посмотреть сообщение
ну как можно не заметить
В Вашем случае это очень просто. Почитайте про именование контролов
Никаких button1 никогда быть не должно, никогда!
0
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
09.11.2016, 11:58 #15
Serg34, вот именно. когда я пробовал у себя, то все контролы именовал соответственно
0
09.11.2016, 11:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2016, 11:58

Циклические структуры
Заранее спасибо

Циклические алгоритмические структуры
Построить и записать алгоритм определения минимального элемента и его индекса в...

Строки и циклические структуры
Помогите пожалуста решить 2 задачи : 1.Вставить посде каждой буквы К и перед...


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

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

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