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

from C# to C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для чего нужен шаблон <typename T> http://www.cyberforum.ru/cpp-beginners/thread788026.html
Здравствуйте. template <typename T> T CLAMP(const T& value, const T& low, const T& high) { return (value < low) ? low : ((value > high) ? high : value); } Из книги я понял,что это шаблон,но для чего,я так и не смог разобрать,подскажите пожалуйста.
C++ Базовая графика в С++ Всем доброго времени суток, уважаемые товарищи заслуженные программисты! С++ изучаю самостоятельно, как и программирование вообще, потому, столкнувшись с вопросом, не имею возможности обратиться ни к кому, кроме как к вам. Уповаю на снисхождение. Задача заключается вот в чём: у моего близкого друга, обретающегося в далёком Брюсселе, через месяц день рождения, в связи с тем появилась... http://www.cyberforum.ru/cpp-beginners/thread787961.html
C++ Осуществите в классе перегрузку метода proizved() c различным количеством параметров
Осуществите в классе перегрузку метода proizved() c различным количеством параметров так, что если параметров два, они перемножаются, если параметров 3, то первые два аргумента перемножается, а .третий добавляется к произведению.
C++ как мне определить правильно параметры процедуры, чтобы с меняло свое значение
void strfun(int a, int b, int c) { c = a + b; } int main() { int a=5, b=6, c=0; strfun(a, b, c); cout << c << endl;
C++ Эмулятор Нормальных Алгорифмов Маркова http://www.cyberforum.ru/cpp-beginners/thread787936.html
У меня тема курсовой - эмулятор нормальных алгорифмов Маркова. Я понял, как это все реализуется, но вот как написать на C++ - понятия не имею. Нужно написать такую прогу, чтобы можно было свои правила вписывать и потом действия производить. Со строками, например. Помогите пожалуйста!
C++ Можно ли заставить класс записывать самого себя в файл? то есть class A{ int q,w,e; bool Write(); }; main(){ A a1; a1.write();// и он записывает сам себя в файл, не переменные!!! подробнее

Показать сообщение отдельно
nobless1368
14 / 14 / 1
Регистрация: 04.06.2012
Сообщений: 124
Записей в блоге: 1

from C# to C++ - C++

17.02.2013, 03:37. Просмотров 380. Ответов 2
Метки (Все метки)

Собственно сабж. Есть код на шарпе, хотелось бы перевести его на плюсы, но своих мозгов не хватает (или опыта?).

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace aias_lab4
{
    class Program
    {
        static void Main(string[] args)
        {
            char B, E; // 2 символа, определяющие нижнюю и верхнюю границы диапазона символов анализируемой строки (они могут совпадать)
            int nn = 0;
 
            Console.WriteLine("Vvedite nachalniy i konechniy simvoly diapozona simvolov:");
            B = Convert.ToChar(Console.ReadLine());
            E = Convert.ToChar(Console.ReadLine());
            int s = Math.Abs(Convert.ToInt32(E - B));
            Console.WriteLine("Vvedite dlinu ishodnoy stroki:");
            int n = Convert.ToInt32(Console.ReadLine());
            char[] T = new char[n];
            Random rand = new Random();
            for (int i=0; i<n; i++)
                T[i] = (char)(rand.Next(B, E+1));
            //Console.WriteLine(S);
            Console.WriteLine("Vvedite stroku obrazec:");
            string ps = Console.ReadLine();
            int m = ps.Length;
            char[] P = ps.ToCharArray();
            /*for (int i = 0; i < m; i++)
                Console.WriteLine(P[i]);*/
            int[] D = new int [256];
            Console.Write("Ishodnaya stroka: ");
            for (int i = 0; i < n; i++)
                Console.Write(T[i]);
            Console.WriteLine("\n");
            Console.WriteLine("Boyer-Mur:");
            int k;
            for (k = 0; k < 256; k++) 
                D[k] = m;
            for (k = 0; k < m-1; k++)
                D[P[k]] = m - k-1;
            int l,j,ss=0;
            for (k = -1; k < n - m; )
            {
                for (l = k + m, j = m-1; j >= 0 && T[l] == P[j]; j--, l--) nn++;
                if (j == -1)
                {
                   //Console.WriteLine("Naydeno sovpadenie s "+(l+2)+" elementa;");
                    ss++;
                }
                k += D[T[k + m]];
            }
            if (ss == 0)
                Console.WriteLine("Sovpadeniy ne naideno.");
            Console.WriteLine("Chislo sravneniy - " + nn);
 
 
 
            nn = 0;
 
 
 
 
            Console.WriteLine("");
            Console.WriteLine("Knut-Morris-Pratt:");
            ss = 0;
            int[] F = new int[m];
            F[0] = 0;
            for (int q = 1; q < m; q++) 
            {
                k = F[q-1];
                while (k > 0 && P[q] != P[k])
                {
                    k = F[k - 1];
                }
                F[q] = (P[q] == P[k]) ? k + 1 : 0; 
            }
            for (int q = 0, i = 0; i < n; i++) 
            {
                while (q > 0 && P[q] != T[i])
                {
                    q = F[q - 1];
                    nn++;
                }
                if (P[q] == T[i]) q++;
                nn++;
                if (q == m) 
                {
                    //Console.WriteLine("Naydeno sovpadenie s "+(i-m+2)+" elementa;");
                    ss++;
                    q = F[q-1];
                }
            }
            if (ss == 0)
                Console.WriteLine("Sovpadeniy ne naideno.");
            Console.WriteLine("Chislo sravneniy - " + nn);
        }
    }
}
Программа представляет собой реализацию алгоритма Бойера-Мура и алгоритма Кнута-Морриса-Пратта, если вдруг кому-то это интересно знать.
Буду признателен за любую помощь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru