Форум программистов, компьютерный форум CyberForum.ru

Переписать с языка с# на с++ - C++

Восстановить пароль Регистрация
 
MisterMk88
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 60
13.12.2012, 21:31     Переписать с языка с# на с++ #1
Добрый день. Прошу помочь переписать программу с языка с# язык с++
Ниже мой исходник на с#
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
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.Threading;
public delegate void Del(bool z);
public class First : Form
{
    public event Del ev;
    int p, k;// координаты шара в первом окне
    bool life1 = true;// признак жизни потока
    Thread thread1;//поток
    public First()// конструктор
    {
        k = 50;//координата Х шара
        p = 0;//координата У шара
        Text = "Krug";// название окна
        Height = 200;//размер
        Width = 200;//окна
        Show();// показать окно
        thread1 = new Thread(new ThreadStart(ThreadFunc1));//создали поток
        thread1.Start();// запустить поток
    }
    protected override void OnPaint(PaintEventArgs args)
    {
        if (life1 == true)//если существует поток, то рисуем шар
        {
            args.Graphics.DrawEllipse(new Pen(new SolidBrush(Color.Black), 2), p, k, 35, 35);//рисуем окружност
            SetStyle(ControlStyles.UserPaint |
            ControlStyles.AllPaintingInWmPaint |
            ControlStyles.OptimizedDoubleBuffer |
            ControlStyles.ResizeRedraw, true);
        }
    }
    private void ThreadFunc1()//потоковая ф-я
    {
        while (life1)// пока есть жизнь в  потоке
        {
            p++;// перемещение
            if (p >= ClientSize.Width - 35)// если доходит до края окна
            {
                if (ev != null) ev(life1);// если событие на равно нулю, передать перменную life1 обработчику
                life1 = false;// остановить поток
            }
            Thread.Sleep(15);
            Invalidate();// перерисовка
        }
    }
 
    protected override void OnClosed(EventArgs e)
    {
        life1 = false;// реакция закрытия окна
    }
 
    public class Second : Form
    {
        int n, m;//местоположение шара
        bool life2;// признак жизни второго потока
        Thread thread2;// поток
        public Second()
        {
            n = 50;//координата Х
            m = 0;//координата У
            life2 = false;// поток
            Text = "Krug2";// название окна
            Height = 200;//размер
            Width = 200;//окна
            Show();//
            thread2 = new Thread(new ThreadStart(ThreadFunc2));// создать поток
        }
 
        private void ThreadFunc2()// поток второго окна
        {
            while (life2)// пока есть жизнь в потоке
            {
                m++;// перемещаем шар
                if (m >= ClientSize.Width - 35) life2 = false;// если шар дошел до края окна, завершить поток
                Thread.Sleep(10);
                Invalidate();
            }
            MessageBox.Show("Программа завершила свою работу");
        }
        protected override void OnPaint(PaintEventArgs args)
        {
            if (life2 == true)
            {
                args.Graphics.DrawEllipse(new Pen(new SolidBrush(Color.Black), 2), m, n, 35, 35);
                SetStyle(ControlStyles.UserPaint |
                ControlStyles.AllPaintingInWmPaint |
                ControlStyles.OptimizedDoubleBuffer |
                ControlStyles.ResizeRedraw, true);
            }
 
        }
        protected override void OnClosed(EventArgs e)//завершаем поток
        {
            life2 = false;
        }
        public void Hand(bool life1)// обработчик события
        {
            life2 = life1;// передаем прризнак жизни второму окну
            thread2.Start();// запускаем поток
        }
    }
    static void Main()
    {
        First a = new First();
        Second b = new Second();
        a.ev += new Del(b.Hand);// подписать обработчик на событие
        Application.Run(a);// запустить программу
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 21:31     Переписать с языка с# на с++
Посмотрите здесь:

Изменение языка C++
Функции языка с++ C++
изучение языка C++
C++ Стандарт языка С++
Реклама языка С++ C++
C++ Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю
C++ Переписать символы с входящего рядка в выходящий, меняя операторы языка паскаль на операторы языка С++ := на =, = на ==, # на !=
По русскому названию языка программирования определить английское название этого языка C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru