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

Перевод из Delphi (Алгоритм нахождения наибольшего паросочетания в двудольном графе) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Решение нелинейного уравнения методом простых итераций http://www.cyberforum.ru/cpp-beginners/thread1220762.html
Здравствуйте, помогите пожалуйста написать программу для решения нелинейного уравнения методом простых итераций f(x)=cos(x)-(-x+5) c погрешностью 0.002. Просто в информатике я полный ноль, подсобите пожалуйста( Добавлено через 1 час 13 минут Вот нашёл на вашем форуме пример и соотнёс к своему уравнению. Вроде даже ответ сходится. Может ктонибудь пожалуйста прокомментировать как оно...
C++ Найти первое вхождение подстроки и передать указатель Есть cимвoльная cтрока и подcтpока. Нужно найти пepвоe вхождение подстроки в строку и передать указатель на первый симвoл данного вхождения. Суть задачи понимаю, алгоритм тоже. Но дело доходит до писанины, и у меня ужасный ступор в этот период. Потратил много часов и дальше этого написать правильно алгоритм не получается. Дальше этого этого уйти не могу char Strsr(char a, char b)... http://www.cyberforum.ru/cpp-beginners/thread1220756.html
C++ Решение нелинейных неравенств с двумя переменными
Здраствуйте. Мне нужно написать программу которая должна решать системы нелинейных неравенств с двумя переменными. Но проблема в том, что я даже и незнаю как можно решать нелинейные неравенства с двумя переменными. Проблема в том, что в интернете даже не найти какой то информации по этому поводу. Все что я могу сделать, это перебрать все точки координатной системы, которая выводится на экран, и...
C++ В одномерном массиве посчитать сумму элементов до последнего нулевого значения. Использовать контейнер - List
не могу сделать...
C++ Компиляция программы VS2010 http://www.cyberforum.ru/cpp-beginners/thread1220744.html
Когда компилирую программу (Debug) всё нормально. Но если выбрать (Release) то появляются куча ошибок: 1>sfml-graphics-s-d.lib(RenderWindow.cpp.obj) : error LNK2038: обнаружено несоответствие для "_ITERATOR_DEBUG_LEVEL": значение "2" не соответствует значению "0" в main.obj 1>sfml-graphics-s-d.lib(Transformable.cpp.obj) : error LNK2038: обнаружено несоответствие для "_ITERATOR_DEBUG_LEVEL":...
C++ Определить наличие восклицательного знака в вводимой строке Вводится набор символов, если есть восклицательный знак, выводится true, если нет - false. #include "stdafx.h" #include <iostream> using namespace std; int main() { char k; char a = '!'; подробнее

Показать сообщение отдельно
Irokezer
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 21
01.07.2014, 17:31     Перевод из Delphi (Алгоритм нахождения наибольшего паросочетания в двудольном графе)
Delphi
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
UNIT1
 
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ActnList, ExtDlgs, ExtCtrls, jpeg;
 
type
Tform1 = class(Tform)
StringGrid1: TstringGrid;
Button2: Tbutton;
Label1: Tlabel;
Edit1: Tedit;
Button1: Tbutton;
Label2: Tlabel;
Label3: Tlabel;
Button3: Tbutton;
StringGridDug: TstringGrid;
Edit3: Tedit;
StringGrid2: TstringGrid;
StringGrid3: TstringGrid;
Button4: Tbutton;
Button5: Tbutton;
Button6: Tbutton;
StringGrid4: TstringGrid;
StringGrid5: TstringGrid;
StringGrid6: TstringGrid;
Label4: Tlabel;
Label5: Tlabel;
StringGrid7: TstringGrid;
Button7: Tbutton;
Button8: Tbutton;
procedure Button1Click(Sender: Tobject);
procedure Button2Click(Sender: Tobject);
procedure FormCreate(Sender: Tobject);
procedure Button3Click(Sender: Tobject);
procedure Button4Click(Sender: Tobject);
procedure Button5Click(Sender: Tobject);
procedure Button6Click(Sender: Tobject);
procedure FormShow(Sender: Tobject);
procedure Button7Click(Sender: Tobject);
procedure Button8Click(Sender: Tobject);
 
private
{ Private declarations }
public
{ Public declarations }
end;
 
const
max = 100; { размер большего из двух множеств }
 
var
Form1: Tform1;
n, i, j, del, x, cnt, y, page, ch, s: integer;
osn, dop: array [1 .. max, 1 .. max] of string;
rez: array [1 .. max, 1 .. max] of integer;
str, stolb: array [1 .. 100] of integer;
t: TextFile;
 
implementation
 
uses Unit2;
 
{$R *.dfm}
 
/// Заполнение
procedure Tform1.Button1Click(Sender: Tobject);
begin
Button1.Visible := false;
page := 7;
StringGrid7.Visible := false;
StringGrid6.Visible := false;
StringGrid5.Visible := false;
StringGrid4.Visible := false;
StringGrid3.Visible := false;
StringGrid2.Visible := false;
StringGrid1.Visible := true;
StringGridDug.cols[1].add(‘x’);
StringGridDug.cols[2].add(‘y’);
for j := 1 to x do
begin
StringGridDug.Cells[1, j] := ‘’;
StringGridDug.Cells[2, j] := ‘’;
end;
x := strtoint(Edit1.Text);
y := strtoint(Edit3.Text);
StringGrid1.ColCount := x + 2;
StringGrid1.RowCount := y + 2;
for i := 1 to x do
StringGrid1.cols[i].add(‘х ‘ + inttostr(i));
for j := 1 to y do
StringGrid1.Rows[j].add(‘y ‘ + inttostr(j));
for i := 1 to x do
begin
for j := 1 to y do
StringGrid1.Cells[i, j] := inttostr(0);
end;
end;
 
/// Выход
procedure Tform1.Button2Click(Sender: Tobject);
begin
Form1.Close;
end;
 
/// Основное решение
procedure Tform1.Button3Click(Sender: Tobject);
label
shag2, shag3, shag4, shag5;
begin
StringGrid1.Visible := false;
StringGrid2.Visible := true;
StringGrid2.ColCount := x + 2;
StringGrid2.RowCount := y + 2;
/// //////////// шаг 0
for i := 1 to x do
StringGrid2.cols[i].add(‘х ‘ + inttostr(i));
for i := 1 to y do
StringGrid2.Rows[i].add(‘y ‘ + inttostr(i));
for i := 1 to x do
begin
for j := 1 to y do
if StringGrid1.Cells[i, j] = inttostr(0) then
StringGrid2.Cells[i, j] := ‘x’
else
StringGrid2.Cells[i, j] := ‘’
end;
/// ///////////////////
StringGrid3.ColCount := x + 2;
StringGrid3.RowCount := y + 2;
for i := 1 to x do
StringGrid3.cols[i].add(‘х ‘ + inttostr(i));
for i := 1 to y do
StringGrid3.Rows[i].add(‘y ‘ + inttostr(i));
for i := 1 to x do
begin
for j := 1 to y do
StringGrid3.Cells[i, j] := StringGrid2.Cells[i, j];
end;
for i := 1 to x do
stolb[i] := 0;
for i := 1 to y do
str[i] := 0;
/// ////////////// шаг 1
for i := 1 to x do
begin
for j := 1 to y do
if (StringGrid3.Cells[i, j] = ‘’) and (stolb[i] <> 1) and (str[j] <> 1)
then
begin
StringGrid3.Cells[i, j] := inttostr(1);
stolb[i] := 1;
str[j] := 1;
end;
end;
cnt := 0;
for i := 1 to y do
begin
if str[i] <> 1 then
StringGrid3.Cells[x + 1, i] :=-;
end;
for i := 1 to y do
begin
if str[i] = 1 then
cnt := cnt + 1;
end;
/// ////////////////
StringGrid2.Visible := false;
StringGrid3.Visible := true;
if y = cnt then
begin
showmessage(‘Максимальное паросочетание найдено’);
n := 1;
for i := n to x do
begin
for j := 1 to y do
if StringGrid3.Cells[i, j] = inttostr(1) then
begin
StringGridDug.Cells[1, n] := intto
Возможно ли перевести этот код из делфи в си?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru