Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
XameLIO
3 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 58
#1

Переделать - Delphi

10.09.2011, 17:14. Просмотров 408. Ответов 4
Метки нет (Все метки)

Здраствуйте помогите пожалуйста дум дубом в делфи надо код из паскаля перекинуть в делфи "красивенько"))) с окошками и всей фигней((( заранее благодарен вот код паскаля
Pascal
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
const
max = 101;
type
  Sequence = array [1..max] of Integer;
var
s: Sequence;
j:integer;
procedure Find(var s: Sequence; l: Integer; n, m: Integer);
var
i: Integer;
begin
if n = 0 then
begin
for i := 1 to l do
      Write(s[i], ' ');
j:=j+1;
WriteLn;
end
else
if m > n then
m := n;
for i := m downto 1 do
begin
s[l + 1] := i;
      Find(s, l + 1, n - i, i);
end;
end;
var
n: Integer;
begin
Writeln('Введите число');
j:=0;
ReadLn(n);
if n>0 then
begin
Writeln('Решение');
  Find(s, 0, n, n);
Writeln('Общее количество разбиений',j);
end
else
writeln('Не существует разбиений данного числа');
readln
end.
Добавлено через 41 минуту
помогите кто пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 17:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переделать (Delphi):

немного переделать
Нужна помощь, срочно! Переделать программу unit Unit1; interface uses ...

Помогите переделать
В простую переменную последовательно вводятся N положительных чисел. Определить...

Переделать немножко =)
Дана действительная квадратная матрица порядка n. Вычислить сумму тех из m...

Переделать в формы
"Считалка". Даны натуральные n,m. Предполагается, что n человек встают в круг и...

Переделать программу
Вот программа по двухмерным массивам. Которая должна определить количество...

Переделать код
memo1.clear; Doc :=...

4
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
10.09.2011, 17:32 #2
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
const
    max = 101;
type
  Sequence = array [1..max] of Integer;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
 
    procedure Find(var s: Sequence; l: Integer; n, m: Integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
 
 
var
  Form1: TForm1;
  s: Sequence;
  j:integer;
implementation
 
{$R *.dfm}
 
{ TForm1 }
 
 
 
 
 
procedure TForm1.Find(var s: Sequence; l, n, m: Integer);
var
i: Integer;
begin
if n = 0 then
begin
for i := 1 to l do
j:=j+1;
end
else
if m > n then
m := n;
for i := m downto 1 do
begin
s[l + 1] := i;
      Find(s, l + 1, n - i, i);
end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
n: Integer;
begin
n:= StrtoInt(Edit1.Text);
j:= 0;
if n > 0 then
 begin
  Find(s, 0, n, n);
  ShowMessage('Общее количество разбиений  '+IntToStr(j));
end
else
ShowMessage('Не существует разбиений данного числа');
 
end;
end.
1
XameLIO
3 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 58
10.09.2011, 17:50  [ТС] #3
а можно архивом как то проектом а то не работает((( а я дуб в делфи
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,329
10.09.2011, 17:53 #4
Или лучше так, с выводом.

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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, XPMan, Spin;
 
type
  TForm1 = class(TForm)
    SpinEdit1: TSpinEdit;
    Label1: TLabel;
    Memo1: TMemo;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
  Sequence = array of Integer;
var
  Form1: TForm1;
  s: Sequence;
  j:integer;
implementation
 
{$R *.dfm}
procedure Find(var s: Sequence; l: Integer; n, m: Integer; mm:TMemo);
var
i: Integer;
begin
if n = 0 then
 begin
  for i := 1 to l do
  mm.Text:=mm.Text+IntToStr(s[i-1])+' ';
  mm.Text:=mm.Text+#13#10;
  j:=j+1;
 end
else if m > n then  m := n;
for i := m downto 1 do
 begin
  s[l] := i;
  Find(s, l+1, n - i, i,mm);
 end; 
end;
procedure TForm1.Button1Click(Sender: TObject);
var n: Integer;
begin
n:=SpinEdit1.Value;
Setlength(s,n);
j:=0;
if n>0 then
 begin
  Find(s, 0, n, n, Memo1);
  Memo1.Lines.Add('Общее количество разбиений='+IntToStr(j));
 end
else
Memo1.Lines.Add('Не существует разбиений данного числа');
end;
 
end.
0
Вложения
Тип файла: rar Разбиение на слагаемые.rar (175.5 Кб, 5 просмотров)
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
10.09.2011, 18:03 #5
исходник, но у Puporev красивей будет
0
Вложения
Тип файла: rar Новая папка (4).rar (4.0 Кб, 3 просмотров)
10.09.2011, 18:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2011, 18:03
Привет! Вот еще темы с решениями:

Переделать код
Doc := WebBrowser1.OleObject.Document.GetElementsByTagName('tr'); for i := 0...

Нужно переделать
Я создал программу, но никак не получается воткнуть в нее систему очистки) т.е....

Переделать рекурсию
Эта рекурсия имитирует одинарный цикл (вывод алфавита в мемо): private ...

Переделать с if в case
var result, timea,timeb,timec, yrt:Real; begin btn2.Visible:=True; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru