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

Перевод программы с VB.NET на C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Aero в программе http://www.cyberforum.ru/cpp-beginners/thread24460.html
В стандартных программах Windows (просмотр изображений, выбор гаджетов боковой панели и т.п) видно, что у них прозрачен не только заголовок, но и их часть (либо окно целиком (как в выборе гаджетов)...).. Вопрос: как такое можно сделать в своей программе? (чтобы она была целиком / частично (не только заголовок) Аеро)?! Помогите, пожалуйста! :help::)
C++ сортировка матрицы (столбцы матрицы в порядке убывания суммы их элементов) ввод размерности матрицы c клавиатуры. Отсортировать столбцы матрицы в порядке убывания суммы их элементов http://www.cyberforum.ru/cpp-beginners/thread24431.html
C++ Надо задать класс с машинами, чтобы на печать выводилось модель, скорость
Завтра здавать лабу по информатике, а она не идёт помогите плиз. Что я не так делаю? Надо задать класс с машинами, чтобы на печать выводилось модель, скорость(если v<0,то ошибка),номер.Помогите!!!!! #include <stdlib.h> #include <iostream> #include <conio.h> #include <stdio.h> #include <math.h> using namespace std;
C++ Что такое компилятор, и где его взять?
Здравствуйте дорогие форумчане! Вот начал изучать по самоучителям С++ и сталкнулся с таким термином, как компилятор. Я так понял он преобразовает программу в рабочее состояние (если что-то не так поправте и объясните поподробней). И хотел бы узнать где его можно достать, и какие бывают разные компилятор и их предназначения. Буду очень благодарен и выслушаю каждый ответ, который вы мне...
C++ Вариант компилирования bat в exe http://www.cyberforum.ru/cpp-beginners/thread24168.html
Увжаемые пользовтаели. У меня появилась необходимость написать определённый скрипт запуска. Сделал его batником, т.к. ноль в программировании. А теперь требуется сделать его ексешкой. Знаю что есть вариант компилирвания bat в exe . Но тогда в рабочей области создаётся всёже исходный батник, который можно легко отредактирвоать и узнать много лишнего. Вообщем буду благодарен тому кто накидает это...
C++ Разбить множество чисел типа 1.2.3.4...n КОДДИНГ отладка кода #include<stdio.h> #include<stdlib.h> #include<string.h> const char p=','; FILE *fil; tree(int n, int i ,char *pok){ char mas; подробнее

Показать сообщение отдельно
RazorQ
 Аватар для RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386

Перевод программы с VB.NET на C++ - C++

02.03.2009, 08:37. Просмотров 1424. Ответов 4
Метки (Все метки)

Доброго времени суток! На просторах интернета я нашел исходный текст одной интересной программки. Смысл в том, что программа отвечает на вопросы, которые вводит пользователь. Своего рода AI(искусственный интелект) Исходник написан на Visual Basic.NET. Я дружу с VB.NET, но ближе мне C++ и поэтому я решил перевести прогу на C++. Вот исходный код на VB.NET:
Visual Basic
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
Module Module1
    Public otvet As String
    ' отсюда начинается выполнение программы
    Sub Main()
        Console.WriteLine("Привет! Давай поговорим. Задай мне любой вопрос.")
        Do
            otvet = Console.ReadLine()
            Console.WriteLine(AI(otvet))
        Loop
    End Sub
    ' функция которая возвращает ответ
    Function OkQuestion(ByRef TheText As String) As String
        Dim TempText As String
        Dim Ekstra As String = ""
        Dim Text(9) As String
        Dim Number As Short
        If InStr(1, TheText, "elvis", CompareMethod.Text) Then GoTo Theking
        TempText = Replace(TheText, "", "")
        If TheText = TempText Then
            Ekstra = ""
        Else
            Ekstra = " "
        End If
Start:
        If InStr(1, TheText, "Что" & Ekstra, CompareMethod.Text) Then GoTo WhichWhatHow
        If InStr(1, TheText, "Как" & Ekstra, CompareMethod.Text) Then GoTo WhichWhatHow
        If InStr(1, TheText, "Где" & Ekstra, CompareMethod.Text) Then GoTo Where
        If InStr(1, TheText, "Почему" & Ekstra, CompareMethod.Text) Then GoTo Why
        If InStr(1, TheText, "Который" & Ekstra, CompareMethod.Text) Then GoTo WhichWhatHow
        If InStr(1, TheText, "Кто" & Ekstra, CompareMethod.Text) Then GoTo Who
        If InStr(1, TheText, "Когда" & Ekstra, CompareMethod.Text) Then GoTo When_Renamed
        Text(0) = "Я думаю так"
        Text(1) = "А ты что думаешь?"
        Text(2) = "Да"
        Text(3) = "Нет"
        Text(4) = "Все знают, что нет"
        Text(5) = "Наверно"
        Text(6) = "He уверен"
        Text(7) = "Да, конечно."
        Text(8) = "Нет"
        Text(9) = "Все знают, что да"
        Number = Int((Rnd() * 10) + 1) - 1
        Return Text(Number)
        Exit Function
WhichWhatHow:
        Text(0) = "Откуда мне знать?"
        Text(1) = "Я устал - поговорим завтра"
        Text(2) = "Эхх, мне бы твои заботы"
        Text(3) = "Hy, как тебе сказать"
        Text(4) = "Любопытный вопрос ... кто-то уже спрашивал"
        Text(5) = "Нехороший вопрос"
        Text(6) = "Ты хочешь знать, что я думаю об этом?"
        Text(7) = "Я не хочу говорить об этом"
        Text(8) = "Извини, забыл"
        Text(9) = "Терпеть не могу любопытных людей"
        Number = Int((Rnd() * 10) + 1) - 1
        Return Text(Number)
        Exit Function
Where:
        Text(0) = "Может во Флориде?"
        Text(1) = "Я думаю, это где-то в Америке."
        Text(2) = "Подожди...Я пороюсь в атласе."
        Text(3) = "В Германии"
        Text(4) = "Прямо на небесах"
        Text(5) = "На скотном дворе"
        Text(6) = "Сам догадайся"
        Text(7) = "В Белом доме"
        Text(8) = "Последний раз я его видел в нижнем белье"
        Text(9) = "Может в стиральной машине?"
        Number = Int((Rnd() * 10) + 1) - 1
        Return Text(Number)
        Exit Function
Why:
        Text(0) = "Потому что кончается на У, дурачок!"
        Text(1) = "Открой энциклопедию!"
        Text(2) = "Это судьба"
        Text(3) = "Гм, я не знаю"
        Text(4) = "А я так хочу!"
        Text(5) = "Спроси Монику Левински"
        Text(6) = "Ну, ты попроще задавай вопросы"
        Text(7) = "Я не помню"
        Text(8) = "Поясни вопрос"
        Text(9) = "А почему ты не спросишь об этом маму?"
        Number = Int((Rnd() * 10) + 1) - 1
        Return Text(Number)
        Exit Function
Who:
        Text(0) = "Ты не думаешь, что это Владимир Жириновский"
        Text(1) = "Бонд, Джеймс Бонд"
        Text(2) = "Джим Кэрри"
        Text(3) = "Чужой"
        Text(4) = "Тетя Соня"
        Text(5) = "Врач-гинеколог"
        Text(6) = "Дед в кожаном пальто"
        Text(7) = "Твой папочка"
        Text(8) = "Билл Клинтон"
        Text(9) = "Памела Андерсон"
        Number = Int((Rnd() * 10) + 1) - 1
        Return Text(Number)
        Exit Function
When_Renamed:
        Text(0) = "Завтра"
        Text(1) = "Вчера"
        Text(2) = "Это было в 1900"
        Text(3) = "Ты будешь слишком стар, когда это будет"
        Text(4) = "Давно это было"
        Text(5) = "Во время гражданской войны"
        Text(6) = "Когда ты родился"
        Text(7) = "Когда ты первый раз побрился"
        Text(8) = "Ну, это было когда Билл Клинтон и Моника Левински..."
        Text(9) = "Сейчас"
        Number = Int((Rnd() * 10) + 1) - 1
        Return Text(Number)
        Exit Function
Theking:
        If InStr(1, TheText, "alive", CompareMethod.Text) Or InStr(1, TheText, "living", 
СompareMethod.Text) 
 Or InStr(1, TheText, "dead", CompareMethod.Text) Then
 
            Return "А ты как думал ? Конечно жив. Он сейчас король ;)"
        Else
            GoTo Start
        End If
    End Function
    ' если ответ не найден, то отвечаем в общем
    Function NoQuestion() As Object
        Dim Text(9) As String
        Dim Number As Short
        Text(0) = "Ну, попробуй подумать"
        Text(1) = "Я лучше отвечу на вопросы"
        Text(2) = "А может лучше задашь вопросик"
        Text(3) = "Я люблю вопросы"
        Text(4) = "Пожалуйста, задай мне вопрос"
        Text(5) = "Я всего лишь машина .... ну, спроси меня"
        Text(6) = "Попробуй еще раз задать вопрос"
        Text(7) = "0K, но сейчас задай вопрос"
        Text(8) = "Попробуй задать мне вопрос"
        Text(9) = "Я только отвечаю"
        Randomize()
        Number = Int((Rnd() * 10) + 1) - 1
        NoQuestion = Text(Number)
    End Function
 
    Function AI(ByRef Text As String) As String
        Dim TempText As String
        Dim Ekstra As String = ""
        TempText = Text
        'функция InStr() возвращает целое число, указывающее начальную                  
    'позицию первого вхождения одной строки в другую.
        'здесь мы проверяем, есть ли один из вопросов или знак ?
        If InStr(1, Text, "Что" & Ekstra, CompareMethod.Text) Then GoTo Question
        If InStr(1, Text, "Как" & Ekstra, CompareMethod.Text) Then GoTo Question
        If InStr(1, Text, "Где" & Ekstra, CompareMethod.Text) Then GoTo Question
        If InStr(1, Text, "Почему" & Ekstra, CompareMethod.Text) Then GoTo Question
        If InStr(1, Text, "Который" & Ekstra, CompareMethod.Text) Then GoTo Question
        If InStr(1, Text, "Кто" & Ekstra, CompareMethod.Text) Then GoTo Question
        If InStr(1, Text, "Когда" & Ekstra, CompareMethod.Text) Then GoTo Question
        'функция Right() возвращает строку, содержащую указанное число знаков                
    'с правой стороны строки.
        If Microsoft.VisualBasic.Right(TempText, 1) = "?" Then GoTo Question
        'если ничего не найдено, то переходим к функции NoQuestion()
        Return NoQuestion()
        Exit Function
Question:
 
        Return OkQuestion(Text)
    End Function
End Module
этот код надо перевести на C++. Все бы ничего, да библиотечные функции VB.NET просто так на C++ не переводятся.

Добавлено через 21 час 39 минут 2 секунды
Что ж. Я вижу никто не берется за это. Тогда такой упрощенный вопрос: какие еть аналоги функций InStr(), Right() в языке C++. Объясню:
Функция InStr() - возвращает целое число, указывающее начальную позицию первого вхождения одной строки в другую.
Функция Right() - возвращает строку, содержащую указанное число знаков с правой стороны строки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru