Забравена парола?
Начало на реферати

Задача по Делфи


Задача 6. В отделен модул, дефинирайте клас, описващ парцел, с полета за: зона (от 1 до 10), площ и цена на единица площ и с методи за : инициализация на полетата, прочитане стойностите на полетата, пресмятане на общата цена (= площ * цена за единица площ) и пресмятане на данъка (= коефицент * обща цена / зона), където коефицентът е параметър на метода.

В програма, използваща този модул:

А) Декларирайте (и напишете реализацията на методите му) клас, описващ застроен парцел (наследник на горния), с полета за: зона, площ, цена на единица площ и цена на постройката и методи за: инициализация на полетата, прочитане стойностите на полетата, пресмятане на общата цена (= площ * цена на единица площ + цена на постройка) и пресмятане на данъка (= коефицент * обща цена / зона), където коефицентът е параметър на метода.

B) Напишета полиморфна процедура, на която се подава като аргументи обект – парцел или застроен парцел и брой такива парцели и която отпечатва общата цена за всички парцели.

С) Декларирайте и инициализирайте:

- обект парцел в трета зона, с площ 100 м2, цена на единица площ 30 лв.,

- обект застроен парцел във втора зона, с площ 70 м2, цена на единица площ 40 лв. И цена на сградата 20000 лв. Отпечатайте стойностите на полетата, общата цена и данъка за двата обекта при коефицент 0.002, също и общата цена за 10 броя парцели като дадения и 5 броя застроени парцели като дадения. (това е процедура полиморф, пише се два пъти за 1) за 10 броя и 2) за 5 броя)


Решение:


Unit parunit;

//Модул с частни полета и виртуален метод obcena

interface

type

parcel=class

private zona:byte;pl,cena1:Real;

public

procedure Init(x:byte;y,z:real);

function Getzona:Real;

function Getpl:Real;

function Getcena1:Real;

function obcena:Real;virtual;

function dan(k:Real):real;

end;

implementation

procedure parcel.Init;

begin

zona:=x;pl:=y;cena1:=z;

end;

function parcel.Getzona;

begin Result:=zona end;

function parcel.Getpl;

begin Result:=pl end;

function parcel.Getcena1;

begin Result:=cena1 end;

function parcel.obcena;

begin obcena:=pl*cena1 end;

function parcel.dan;

Задача по Делфи facebook image
Публикувано от: Наталия Апостолова

Седиментогенен цикъл 9 out of 10 based on 2 ratings. 2 user reviews.