Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
tasty_angel
1

усовершенствовать программу

30.11.2010, 23:53. Показов 537. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Bitmap Bitmap1;
        Bitmap Bitmap2;
        Graphics Pic1;
        Graphics Pic2;
        Pen Pen1 = new Pen(Color.Red);
        Pen Pen2 = new Pen(Color.Blue);
        const int n = 200;
        double[] T = new double[n+1];
        bool stop;
 
 
        Public Form1()
        {
            InitializeComponent();
            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Bitmap1 = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            Bitmap2 = new Bitmap(pictureBox2.Width, pictureBox2.Height);
            Pic1 = Graphics.FromImage(Bitmap1);
            Pic2 = Graphics.FromImage(Bitmap2);
            button1.Enabled = false;
            button2.Enabled = true;
            button3.Enabled = false;
            double FiMax = Math.PI * Double.Parse(textBox1.Text) / 180;
            double L = Double.Parse(textBox3.Text);
            double g = Double.Parse(textBox4.Text);
//------------------------------------------------------------------------------------------------------------
            double dFi = 2 * FiMax / n;
            double K = Math.Sin(FiMax / 2);
            double Teta1;
            double Teta2 = -Math.PI / 2;
            T[0] = 0;
            for (int i = 1; i <= n; i++)
            {
                Teta1 = Teta2;
                if (i < n) { Teta2 = Math.Asin(Math.Sin((i * dFi - FiMax) / 2) / K); } else { Teta2 = Math.PI / 2; }
                double S = (1 / Math.Sqrt(1 - K * K * Math.Sin(Teta1) * Math.Sin(Teta1)) + 1 / Math.Sqrt(1 - K * K * Math.Sin(Teta2) * Math.Sin(Teta2))) / 2;
                for (int j = 1; j < 10000; j++)
                {
                    double Teta = Teta1 + j * (Teta2 - Teta1) / 10000;
                    S += 1 / Math.Sqrt(1 - K * K * Math.Sin(Teta) * Math.Sin(Teta));
                }
                S *= (Teta2 - Teta1) / 10000;
                T[i] = T[i - 1] + S;
            }
            textBox5.Text = String.Format("{0:e}", 2 * T[n]*Math.Sqrt(L/g));
            textBox6.Text = String.Format("{0:e}", Math.Sqrt(2 * g * L * (1 - Math.Cos(FiMax))));
            textBox7.Text = String.Format("{0:e}", g * L * (1 - Math.Cos(FiMax)));
            //------------------------------------------------------------------------------------------------------------
            double Kx = Bitmap2.Width / (2 * T[n]);
            double Ky = (Bitmap2.Height - 40) / (2 * FiMax);
            stop = false;
        L0: ;
            for (int i = 1; i <= n; i++)
            {
                double Fi = i * dFi - FiMax;
                int X = (int)Math.Round(Bitmap1.Width / 2 + 150 * Math.Sin(Fi));
                int Y = (int)Math.Round(50 + 150 * Math.Cos(Fi));
                Pic1.Clear(Color.White);
                Pic1.DrawEllipse(Pen1, X - 10, Y - 10, 20, 20);
                Pic1.DrawLine(Pen2, Bitmap1.Width / 2, 50, X, Y);
                Pic2.Clear(Color.White);
                Pic2.DrawLine(Pen2, 0, Bitmap2.Height / 2, Bitmap2.Width, Bitmap2.Height / 2);
                Pic2.DrawLine(Pen2, 0, 0, 0, Bitmap2.Height);
                for (int j = 1; j <= n; j++) Pic2.DrawLine(Pen1, (float)(Kx * T[j - 1]), Bitmap2.Height / 2 - (float)(Ky * (dFi * (j - 1) - FiMax)), (float)(Kx * T[j]), Bitmap2.Height / 2 - (float)(Ky * (dFi * j - FiMax)));
                for (int j = n - 1; j >= 0; j--) Pic2.DrawLine(Pen1, (float)(Kx * (T[n] + T[n - (j + 1)])), Bitmap2.Height / 2 - (float)(Ky * (dFi * (j + 1) - FiMax)), (float)(Kx * (T[n] + T[n - j])), Bitmap2.Height / 2 - (float)(Ky * (dFi * j - FiMax)));
                Pic2.DrawEllipse(Pen2, (float)(Kx * T[i]) - 3, Bitmap2.Height / 2 - (float)(Ky * (dFi * i - FiMax)) - 3, 6, 6);
                pictureBox1.Image = Bitmap1;
                pictureBox2.Image = Bitmap2;
                double Interval = (1E+08) * (T[i] - T[i-1]);
                for (int j = 1; j <= Interval; j++) { }
                Application.DoEvents();
                if (stop) goto L1;
            }
            for (int i = n-1; i >= 0; i--)
            {
                double Fi = i * dFi - FiMax;
                int X = (int)Math.Round(Bitmap1.Width / 2 + 150 * Math.Sin(Fi));
                int Y = (int)Math.Round(50 + 150 * Math.Cos(Fi));
                Pic1.Clear(Color.White);
                Pic1.DrawEllipse(Pen1, new Rectangle(X - 10, Y - 10, 20, 20));
                Pic1.DrawLine(Pen2, Bitmap1.Width / 2, 50, X, Y);
                Pic2.Clear(Color.White);
                Pic2.DrawLine(Pen2, 0, Bitmap2.Height / 2, Bitmap2.Width, Bitmap2.Height / 2);
                Pic2.DrawLine(Pen2, 0, 0, 0, Bitmap2.Height);
                for (int j = 1; j <= n; j++) Pic2.DrawLine(Pen1, (float)(Kx * T[j - 1]), Bitmap2.Height / 2 - (float)(Ky * (dFi * (j - 1) - FiMax)), (float)(Kx * T[j]), Bitmap2.Height / 2 - (float)(Ky * (dFi * j - FiMax)));
                for (int j = n - 1; j >= 0; j--) Pic2.DrawLine(Pen1, (float)(Kx * (T[n] + T[n - (j + 1)])), Bitmap2.Height / 2 - (float)(Ky * (dFi * (j + 1) - FiMax)), (float)(Kx * (T[n] + T[n - j])), Bitmap2.Height / 2 - (float)(Ky * (dFi * j - FiMax)));
                Pic2.DrawEllipse(Pen2, Bitmap2.Width/2 + (float)(Kx * T[n-i]) - 3, Bitmap2.Height / 2 - (float)(Ky * (dFi * i - FiMax)) - 3, 6, 6);
                pictureBox1.Image = Bitmap1;
                pictureBox2.Image = Bitmap2;
                double Interval = (1E+08) * (T[i+1] - T[i]);
                for (int j = 1; j <= Interval; j++) { }
                Application.DoEvents();
                if (stop) goto L1;
            }
            goto L0;
        L1: ;
        button1.Enabled = true;
        button2.Enabled = false;
        button3.Enabled = true;
        Pic1.Dispose();
        Pic2.Dispose();
        Bitmap1.Dispose();
        Bitmap2.Dispose();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            stop = true;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
           
        }
    }
}
 Комментарий модератора 
Используйте теги форматирования кода!

з.ы. Вы реально думаете что в этом будет кто-то разбираться? Поясните хотя-бы что\куда\по чём.


Добавлено через 28 минут
это программа маятника..она полностью работает...просто над в неё добавить пару функций,чтоб она выглядела немного посолиднее....помогите плиз чем можете!!!!!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2010, 23:53
Ответы с готовыми решениями:

Усовершенствовать программу-тест, например, предусмотреть возможность выбора количества вопросов и ответов
Имеется проект-тест по химии, нужно в него добавить таймер, возможность выбора количества вопросов...

Как усовершенствовать алгоритм?
Архивация public static void Zip(string FileRes, string FileDest) { ...

Как усовершенствовать код
for (int i = 0; i &lt; ButtonArray.Count(); i++) { if...

Однорукий бандит: усовершенствовать генерацию случайных чисел
У меня такой вопрос. Вот я использовал самую обычную систему выпада рандомных чисел, но я заметил...

0
30.11.2010, 23:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2010, 23:53
Помогаю со студенческими работами здесь

Усовершенствовать программу для распознавания картинок
Я кажется написал программу для распознавания цифр, но она работает с очень и очень немногими...

Усовершенствовать калькулятор
Я взял за основу калькулятор с одной книги, решил добавить sin, но после того как я попытался...

Усовершенствовать код поиска комбинаций
Console.Write(&quot;N:&quot;); string str = Console.ReadLine(); string mas=new...

Как усовершенствовать алгоритму обратной польской записи?
Коллеги, добрый день! Написал алгоритм ОПЗ на выполнение следующих операций: сложения, вычитания,...

Усовершенствовать программу
..таким образом,чтобы в случае того,как пользователь вводит то число,которое уже вводил,сообщить...

усовершенствовать программу
Найти значение k и выбрать правильный вариант после текста программы.Попытайтесь усовершенствовать...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru