Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.12.2013, 00:33
tane tane вне форума
Прохожий
 
Регистрация: 17.12.2013
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Построить и вывести треугольник Паскаля и Лейбница

DELPHI)7Помогите пожалуйста написать курсач.Построить и вывести треугольник Паскаля и Лейбница.Нужен максимально простой код.Заранее благодарю!
Ответить с цитированием
  #2  
Старый 17.12.2013, 06:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,111
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Нужна теория. Что такое треугольник Паскаля и Лейбница.
2. Вообще, с такими темами либо в Работу, либо в Код на шару.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
tane (17.12.2013)
  #3  
Старый 17.12.2013, 10:34
tane tane вне форума
Прохожий
 
Регистрация: 17.12.2013
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

(Треугольник Лейбница) На рисунке изображен фрагмент гармонического треугольника Лейбница. Его свойства подобны (обратны) свойствам треугольника Паскаля: числа на границе треугольника обратны последовательным натуральным числам, каждое число внутри равно сумме двух чисел, стоящих под ним.
Изображения
Тип файла: png 1231.png (7.9 Кбайт, 9 просмотров)
Тип файла: png 12.png (17.4 Кбайт, 8 просмотров)
Ответить с цитированием
  #4  
Старый 17.12.2013, 10:38
tane tane вне форума
Прохожий
 
Регистрация: 17.12.2013
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
1. Нужна теория. Что такое треугольник Паскаля и Лейбница.
2. Вообще, с такими темами либо в Работу, либо в Код на шару.

Есть 2 кода,их бы объеденить и максимально упростить(так как я новичок)
Код:
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
Паскаль
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
 
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
function F(x,y:integer):integer;
begin
if (x=1)or(y=1)then F:=1
else F:=F(x-1,y)+F(x,y-1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var n,i,j,k:integer;
begin
n:=Strtoint(Edit1.Text);
for i:=1 to n do
begin
for k:=1 to 2*(n-i)+1 do
label1.Caption:=label1.Caption+ ' ';
for j:=1 to i do
label1.Caption:=label1.Caption + inttostr(F(j,i-j+1))+' ';
label1.Caption:=label1.Caption+#13+#10;
end;
end;
 
end.
 
Треугольник Лейбница
 
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms;
 
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
TextSize: TSize;
public
{ Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
uses Math;
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Font.Name:='Courier New';
GetTextExtentPoint32(Canvas.Handle,'0',1,TextSize);
DoubleBuffered:=True;
OnResize:=FormPaint;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
var BitMap: TBitmap;
n,i,k,j,m,t: Integer;
a: array of Integer;
xRect: TRect;
begin
BitMap:=TBitmap.Create;
BitMap.Height:=ClientHeight;
BitMap.Width:=ClientWidth;
n:=ClientHeight div (TextSize.cy*2);
SetLength(a,n);
for i:=n downto 1 do begin
k:=i;
for j:=0 to (i-1) div 2 do begin
a[j]:=k;
a[i-1-j]:=k;
k:=(k*(i-1-j)) div (j+1);
end;
if i=n then m:=Length(IntToStr(a[(i-1) div 2]));
k:=((n-i)*(m+1)*TextSize.cx) div 2;
for j:=0 to i-1 do begin
xRect:=Rect(k,(i-1)*TextSize.cy*2+TextSize.cy,k+m*TextSize.cx,(i-1)*TextSize.cy*2+TextSize.cy*2);
DrawText(BitMap.Canvas.Handle,PChar(IntToStr(a[j])),Length(IntToStr(a[j])),xRect
,DT_CENTER);
if i>1 then begin
xRect:=Rect(k,(i-1)*TextSize.cy*2,k+m*TextSize.cx,(i-1)*TextSize.cy*2+TextSize.cy);
DrawText(BitMap.Canvas.Handle,'1',1,xRect,DT_CENTER);
t:=Length(IntToStr(a[j]))*TextSize.cx;
BitMap.Canvas.MoveTo(k+(m*TextSize.cx-t) div 2,(i-1)*TextSize.cy*2+TextSize.cy);
BitMap.Canvas.LineTo(k+(m*TextSize.cx-t) div 2+t,(i-1)*TextSize.cy*2+TextSize.cy);
end;
Inc(k,(m+1)*TextSize.cx);
end;
end;
Canvas.Draw(0,0,BitMap);
BitMap.Free;
end;
 
end.
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:36.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025