Учебный курс Программирование на Delphi. Модуль 14 — различия между версиями

Материал из НГПУ им. К.Минина
Перейти к: навигация, поиск
Строка 95: Строка 95:
  
 
*'''Программный код:'''
 
*'''Программный код:'''
 +
 +
unit Unit1;
 +
 +
interface
 +
 +
uses
 +
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 +
  Dialogs, XPMan, StdCtrls, Buttons;
 +
 +
type
 +
  TForm1 = class(TForm)
 +
    Edit1: TEdit;
 +
    Label1: TLabel;
 +
    Label2: TLabel;
 +
    XPManifest1: TXPManifest;
 +
    Label3: TLabel;
 +
    BitBtn1: TBitBtn;
 +
    BitBtn2: TBitBtn;
 +
   
 +
    procedure BitBtn1Click(Sender: TObject);
 +
    procedure BitBtn2Click(Sender: TObject);
 +
  private
 +
    { Private declarations }
 +
  public
 +
    { Public declarations }
 +
  end;
 +
 +
var
 +
  Form1: TForm1;
 +
 +
implementation
 +
 +
{$R *.dfm}
 +
function F(k: integer): integer;
 +
begin
 +
    if (k=1) or (k=2)
 +
            then F:=1
 +
            else F:= F(k-1) + F(k-2)
 +
end;
 +
 +
 +
procedure TForm1.BitBtn1Click(Sender: TObject);
 +
var N: integer;
 +
begin
 +
N:=strtoint(Edit1.Text);
 +
label2.Caption:=inttostr(F(n));
 +
end;
 +
 +
procedure TForm1.BitBtn2Click(Sender: TObject);
 +
begin
 +
close;
 +
end;
 +
 +
end.
 +
 
    
 
    
 
*'''Форма с результатом работы программы:'''
 
*'''Форма с результатом работы программы:'''

Версия 09:06, 10 апреля 2008

Использование функций

Пример 1.

  • Условие задачи:

Даны все действительные числа a,b,c.Вычислить max(a,b,+c)+max(a+b,c)/1+max(a+bc,12)

  • Использованные компоненты:

Label1 - используется для текстовых комментариев;

Label2 - используется для вывода суммы;

edit1 - используется для ввода числа;

edit2 - используется для ввода числа;

edit3 - используется для ввода числа;

BitBtn1 - запуск программы;

BitBtn2 - выход из программы;

  • Программный код:
 unit Unit2;
 interface
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, Grids, XPMan, Buttons;
 type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;                
   Edit3: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Label5: TLabel;
   XPManifest1: TXPManifest;
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   procedure BitBtn2Click(Sender: TObject);
   procedure BitBtn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 var
 Form1: TForm1;
 implementation
 {$R *.dfm}
 function max (x,y: real): real;
    begin
        if x > y
           then  max:=x
           else  max:=y
    end;
  var z, a, b, c: real;
 procedure TForm1.BitBtn2Click(Sender: TObject);
 begin
 begin
     a:=strtoint(edit1.Text);
     b:=strtoint(edit2.text);
     c:=strtoint(edit3.Text);
     z:=(max(a, b+c) + max(a+b, c*c))/(1+ max(a+b*c, 12));
     Label4.Caption:=floattostr(z);
    end;
    end;
 procedure TForm1.BitBtn1Click(Sender: TObject);
 begin
 close;
 end;
 end.
  • Форма с результатом работы программы:

12-1.JPG

Пример 2.

  • Условие задачи:

Найти N число последовательности Фибоначчи. Использовать рекурсивную функцию. Числа Фибоначчи образуют последовательность, у которой каждый очередной член равен сумме двух предыдущих: 0 1 1 2 3 5 8 13 . . . Обозначив N-й член ряда Фибоначчи F(N), можно записать следующую рекурсивную зависимость: F(N) = F(N - 1) + F(N - 2), n >= 3, F(1) = 1 и F(2) = 1

  • Использованные компоненты:

Label1 - используется для текстовых комментариев;

Label2 - используется для текстовых комментариев;

edit1 - используется для ввода числа;

BitBtn1 - запуск программы;

BitBtn2 - выход из программы;

  • Программный код:

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, XPMan, StdCtrls, Buttons;

type

 TForm1 = class(TForm)
   Edit1: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   XPManifest1: TXPManifest;
   Label3: TLabel;
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   
   procedure BitBtn1Click(Sender: TObject);
   procedure BitBtn2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var

 Form1: TForm1;

implementation

{$R *.dfm} function F(k: integer): integer; begin

    if (k=1) or (k=2)
           then F:=1
           else F:= F(k-1) + F(k-2)

end;


procedure TForm1.BitBtn1Click(Sender: TObject);

var N: integer;

begin N:=strtoint(Edit1.Text); label2.Caption:=inttostr(F(n)); end;

procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end;

end.


  • Форма с результатом работы программы:

7-2.JPG

Задание

Литература

  1. Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
  2. Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
  3. Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.

Ссылки

Учебный курс Программирование на Delphi

Учебный план курса Программирование на Delphi