тупица
1

Переписать программу с паскаля на си

15.05.2014, 22:22. Показов 640. Ответов 1
Метки нет (Все метки)

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
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
unit DrawTreeUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Math;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Click(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  r, i, h : integer;
  Tree : array of integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  r:=6;
  h:= 40;
  setlength (Tree, 1023);
  for i:= 1 to 1022 do
  begin
    Tree[i] := 0;
  end;
  Tree[0] := 1;
  Image1.Canvas.Pen.Color := 900;
  Image1.Canvas.Brush.Color := 1000;
  Image1.Canvas.Ellipse(Image1.Width div 2 - r, 10, Image1.Width div 2 + r, 10 + 2 * r);
end;
 
 
procedure dfs (v: integer);
var i, d, k: integer;
begin
  if (v < 1024) then begin
      if (Tree[v-1] = 0) then
      begin                  
          d := trunc (ln (v)/ln(2));
          k:=1;
          for i:= 1 to d do
          k := k*2;
          Tree[v-1] := 1;
          Form1.Image1.Canvas.MoveTo(Form1.Image1.Width*(v-k+1) div (k+1), 10 + h*(2*d) + r);
          Form1.Image1.Canvas.LineTo(Form1.Image1.Width*((v div 2)- (k div 2) +1) div ( (k div 2) +1), 10 + h*(2*(d-1)) + r);
          Form1.Image1.Canvas.Ellipse(Form1.Image1.Width*(v-k+1) div (k+1) - r, 10 + h*(2*d),  Form1.Image1.Width*(v-k+1) div (k+1) + r, 10 + h*(2*d)+2*r);
          Form1.Image1.Canvas.Ellipse(Form1.Image1.Width*((v div 2)- (k div 2) +1) div ( (k div 2) +1) - r, 10 + h*(2*(d-1)),  Form1.Image1.Width*((v div 2)- (k div 2) +1) div ( (k div 2) +1) + r, 10 + h*(2*(d-1)) + 2*r);
      end else begin
          if (v < 1023) then begin
            dfs (v*2);
            dfs (v*2+1);
          end;
      end;
  end;
end;
 
procedure TForm1.Click(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var d, i, k, w: integer;
begin
  w := Image1.Width;
  d := (Y-10) div (2*h);
  k:=1;
  for i:= 1 to d do
    k := k*2;
  for i:= 1 to k do
  begin
    if ((w*i div (k+1) - X) * (w*i div (k+1) - X) + (10 + r + d*2*h - Y) * (10 + r + d*2*h - Y) < r*r) and (Tree[k-2+i] = 1) then begin
        dfs (k-1 + i) ;
        break;
    end;
  end;
 
end;
 
 
 
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2014, 22:22
Ответы с готовыми решениями:

Переписать программу из паскаля в с++
program laba52; uses crt; VAR a:array of real; s:real; i:integer; begin s:=1; randomize;...

Переписать программу с Паскаля на С++
Есть программа, реализующая метод закрашивания Гуро, но написана она на Паскале+opengl. Мне же...

Переписать программу из паскаля в с++
Уважаемые форумчане!! Помогите пожалуйста переписать программу из паскаля в с++. uses crt; Var...

Переписать программу из паскаля в с++
Program L5Z1; var K:array of real; i:real; c:integer; begin writeln('Зформовані масиви:...

1
67 / 64 / 21
Регистрация: 01.05.2014
Сообщений: 247
15.05.2014, 22:59 2
Приветствую!
Вы можете сделать это сами...
Возьмите *.EXE ( вашу программу ).
Загрузите Её в Интерактивный дизассемблер (IDA), версией выше пятой.
Путешевствуя по-функциям.., остановитесь (на одной из Них)...
Нажмите клавишу "F5", или выберите в пункте меню : "Produse File" / "Create `C`..."
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2014, 22:59
Помогаю со студенческими работами здесь

Переписать программу из паскаля на с++
const n = 15; var a:array of integer; i,j,x:integer; begin randomize;...

Переписать программу с Паскаля на С++
Всем привет! Возникла задача написать код на C++, но данный язык я вообще не знаю. Зато знаю pascal...

Переписать программу из Паскаля в C
Люди добрые, помогите. Нужна эта же программа, но в Си (C). Код Pascal program pr1_9; uses...

Переписать программу с Паскаля на QBasic.
var S : string = 'This text con tains thr ee let ter wo rds.'; I, P, NewP : Integer; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru