algorytm.org

Implementacja w Delphi/Pascal



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Algorytm Euklidesa - Implementacja w Delphi/Pascal
Ocena użytkownikóww: *****  / 3
SłabyŚwietny
Nadesłany przez Michał Knasiecki, 26 lipca 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

NWD/Iter/NWP/Unit1.pas:
//Program pobrany z www.algorytm.org
//Opracowal Michal Knasiecki
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type tab=array[1..1000]of integer;
var
  Form1: TForm1;
  tablica:tab;
implementation
Function ZnajdzNWP:string;   //Zwykla funkcja
var
p,NWP,i:integer;
begin
NWP:=Tablica[1];
for i:=2 to form1.memo1.Lines.Capacity do
        begin
        p:=Tablica[i];
        while p<>NWP do
                if p>NWP then dec(p,NWP) else
                dec(nwp,p);
                end;

result:=inttostr(nwp);
end;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
//Wprowadź do tablicy liczby z listboxa...
for i:=0 to memo1.Lines.Capacity-1 do
tablica[i+1]:=strtoint(memo1.lines[i]);
//... i znajdź nwp
edit1.text:=znajdznwp;
end;

end.

NWD/Rek/NWP/Unit1.pas:
//Program pobrany z www.algorytm.org
//Opracowal Michal Knasiecki
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type tab=array[1..1000]of integer;
var
  Form1: TForm1;
  tablica:tab;
implementation
function NWP2(a,b:integer):integer;
begin
        while not(a=b) do
        if a>b then a:=a-b else
        b:=b-a;
result:=a;
end;
function NWP(n:integer):integer;   //Funkcja rekurencyjna
begin
if n=2 then result:=NWP2(Tablica[1],Tablica[2])
else result:=nwp2(Tablica[n],nwp(n-1));
end;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
//Wprowadź do tablicy liczby z listboxa...
for i:=0 to memo1.Lines.Capacity-1 do
tablica[i+1]:=strtoint(memo1.lines[i]);
//... i znajdź nwp
edit1.text:=inttostr(nwp(memo1.lines.Capacity));
end;

end.
Dodaj komentarz