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

перекодировать с с# на с++ - C++

Восстановить пароль Регистрация
 
damarflow
Сообщений: n/a
20.12.2013, 23:08     перекодировать с с# на с++ #1
Всем привет! Можете помочь с заданием?
код написан на С#, но его нужно перекодировать в С++.
Вариант 8 контрольной работы №4
И вообще, правильно ли он написан? помогите новчику=(

8. Последовательность записанных через точку с запятой описаний двумерных массивов без инициализирующих выражений, то есть описаний вида имя [размерность1][размерность2]. Где имя - последовательно латинских букв и цифр, начинающаяся не с цифры, размерность — целое число>0 и <1000. Семантическая процедура - сгенирировать программу на С++, случайным образом заполняющая эти массивы и выводящую их на экран.

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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
 
 
namespace Dmitriy
{
    internal class Program
    {
        static int index = 0, MasIndex = 0, NumIndex = 0, NameIndex = 0;
        static char[] s;
        static string tempNum1 = "", tempNum2 = "", tempStr = "", tempName = "", New;
        static char Simvol;
        static List<object> listcoolections = new List<object>();
        
        //чтение переменной - семантика
        static public void ReadName(int k)
        {
 
            tempName += Simvol;
 
            if (k > 20) Error("Длина имени массива превышает установленное значение - 20");
 
            else return;
        }
 
        //обработка имени массива
        static public void Name()
        {
            tempName = "";
            int k = 0;
 
            if (Regex.IsMatch(Simvol.ToString(), "^[A-za-z]+$"))
            {
                ReadName(k);
                k++;
                Next();
            }
 
            while (Regex.IsMatch(Simvol.ToString(), "^[A-za-z0-9]+$"))
            {
                ReadName(k);
                k++;
                Next();
            }
 
        }
 
        //считывание строки из файла
        static public void ResetText()
        {
            Console.Write("Считано с файла: \n");
            New = File.ReadAllText(@"d:\test\test.txt");
            s = New.ToCharArray();
            Console.WriteLine(s);
            Simvol = s[index];
        }
 
        //функция ошибки
        static public void Error(string Komment)
        {
            Console.WriteLine("\n\n");
            for (int i = 0; i < index; i++)
            {
                Console.Write(s[i]);
            }
 
            Console.WriteLine("*");
            Console.Write(Komment);
            Console.Write("\n\nОшибка на символе №: " + (index + 1));
            Console.Read();
            Environment.Exit(0);
        }
 
        //главная функция
        static public void MainFunction()
        {
            //Имя массива
            Name();
 
            //вызов функции проверки введеных значений 
            Analiz();
 
            //проверяем символ на соответствия значению ";"           
            if ((Simvol == ';') && (index == s.Length - 1))
            {                                   
                    Console.WriteLine();
 
                    foreach (object ob in listcoolections)
                    {
                        Console.Write("{0} ", ob);
                    }        
                
                Console.Read();
            }
            
            else if (Simvol == ';')
            { 
            Next();
            MainFunction();
            } 
 
            else Error("Непредусмотренный конец");
        }
 
        //проверка массивов
        static public void Analiz()
        {
            int k = 0;
 
 
            if (Simvol == '[') Next();
 
            // проверка числа
            if (Regex.IsMatch(Simvol.ToString(), "^[0-9]+$"))
            {
                tempNum1 += Simvol;
                k++;
                if (k > 10) Error("Длина числа превышает установленное значение - 10");
 
                Next();
 
                while (Regex.IsMatch(Simvol.ToString(), "^[0-9]+$"))
                {
                    tempNum1 += Simvol;
                    k++;
                    if (k > 10) Error("Длина числа превышает установленное значение - 10");
                    Next();
                }
 
                k = 0;
 
                if (Simvol == ']') { Next(); }
 
                else Error("Проблема со скобками");
 
                if (Simvol == '[') { Next(); }
 
                else Error("Проблема со скобками");
 
                if (Regex.IsMatch(Simvol.ToString(), "^[0-9]+$"))
                {
                    tempNum2 += Simvol;
                    k++;
                    if (k > 10) Error("Длина числа превышает установленное значение - 10");
 
                    Next();
 
                    while (Regex.IsMatch(Simvol.ToString(), "^[0-9]+$"))
                    {
                        tempNum2 += Simvol;
                        k++;
                        if (k > 10) Error("Длина числа превышает установленное значение - 10");
                        Next();
                    }
 
                    if (Simvol == ']') { Next(); }
 
                    else Error("Проблемы со скобками");
 
                    int temp1 = Int32.Parse(tempNum1);
                    int temp2 = Int32.Parse(tempNum2); 
 
                    int[,] tempMas = new int[temp1,temp2];
 
                    Random rnd = new Random();
 
                    for (int i = 0; i < temp1; i++)
                    {
                        for (int j = 0; j < temp2; j++)
                        {
                            tempMas[i,j] = rnd.Next(10);
                        }
                    }
 
                    if (MasIndex < 5)
                    {
                        listcoolections.Add(tempMas);
                        Console.WriteLine("Массив " + tempName + " инициализирован");
                        MasIndex++;
                    }
                    else Error("Слишком много введено массивов");
                }
                                              
            }
            else Error("Ошибка при чтении размерности массива");
        }
 
        //функциия считывания следующего символа
        static public void Next()
        {
            // проверка на преждевременный конец строки
            if (index == s.Length - 1)
            {
                Error("\n\nСтрока недописана");
            }
            // иначе едем дальше
            else
            {
                index++;
                Simvol = s[index];
            }
        }
 
        //главная функция
        static void Main(string[] args)
        {
            ResetText();
            MainFunction();
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2013, 23:08     перекодировать с с# на с++
Посмотрите здесь:

Перекодировать PHP
Как перекодировать для Visual C++? C++
C++ Перекодировать из Паскаля в с++
перекодировать в символы PHP
C++ Перекодировать из UCS-2 Little Endian в UTF
C# .NET 4.x Перекодировать dataset c#
C++ Перекодировать строку из кодировки KOI в кодировку Windows-1251 и обратно
C++ Перекодировать текст с UTF-8 в ASCII

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

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

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