دلفي تعليم
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

تعريف كائن object في باسكال

اذهب الى الأسفل

تعريف كائن object في باسكال Empty تعريف كائن object في باسكال

مُساهمة  ali 5/4/2018, 1:12 pm

بسم الله الرحمن الرحيم
الصلاة السلام على رسول الله صلى الله عليه وسلم

تعريف كائن object في باسكال

هذا الكائن object يملك 8 مناهج Methodes
الاول constructor وهو يقوم بحجز مساحة من الذاكرة للمتغييرين تابعين للكائن object
بواسطة الكلمة المحفوظة New .

والمنهج Methode الثاني هو destructor يقوم تحرير المساحة المحجوزة من الذاكرة للمتغييرين السابقين
بواسطة الكلمة المحفوظة Dispose .

والمنهج Methode الثالث يقوم بادخال قيمتين لعرضهما فيما بعد

والمنهج Methode الرابع Addition يقوم بجمع القيمتين المدخلتين
والمنهج Methode الخامس Soustraction يقوم بطرح القيمتين المدخلتين
والمنهج Methode السادس Multiplucation يقوم بضرب القيمتين المدخلتين
والمنهج Methode السابع Division يقوم بقسمة القيمتين المدخلتين
والمنهج Methode الثامن Affiche يقوم بعرض القيمتين المدخلتين

نصرح بمتغييرين من نوع الكائن هكذا
var ca1: pcalc1
وداخل جسم االبرنامج نحجز مساحة من الذاكرة للكائن
New(ca1, Initia);
ثم نرسل القيم لعرضها
ca1.Entree(12, 6)
ثم نعرض القيم
Dispose(ca1, Vide)

Methodes



الكود:


program ObTest;

{$APPTYPE CONSOLE}

 type

  pint = ^tint;
  tint = integer;

  pcalc1 = ^calc1;
  calc1 = object
    intA, intB: pint;
    constructor Initia;
    destructor Vide;
    procedure Entree(a, b: tint);
    function Addition: integer;
    function Soustraction: integer;
    function Multiplucation: integer;
    function Division: integer;
    procedure Affiche;
  end;

{ calc1 }

procedure calc1.Entree(a, b: tint);
begin
 intA^ := a;
 intB^ := b;
end;

constructor calc1.Initia;
begin
 New(intA);
 New(intB);
end;

destructor calc1.Vide;
begin
 Dispose(intB);
 Dispose(intA);
end;

function calc1.Addition: integer;
begin
 Result := intA^+intB^;
end;

procedure calc1.Affiche;
begin
  WriteLn(intA^, ' + ', intB^, ' ',Addition);
  WriteLn(intA^, ' - ', intB^, ' ',Soustraction);
  WriteLn(intA^, ' * ', intB^, ' ',Multiplucation);
  WriteLn(intA^, ' / ', intB^, ' ',Division);
end;

function calc1.Division: integer;
begin
 Result := intA^ div intB^;
end;

function calc1.Multiplucation: integer;
begin
 Result := intA^*intB^;
end;

function calc1.Soustraction: integer;
begin
 Result := intA^-intB^;
end;

var ca1: pcalc1;

begin

  New(ca1, Initia);
  ca1.Entree(12, 6);
  ca1.Affiche;
  Dispose(ca1, Vide);
  readln;

end.



ali
مبرمج مجتهد

عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى