% Auto.m -- konstruktor klas, uywany przez m5
%-----------------------------------------------------------------
% Ponisze programy s przeznaczone do wykorzystania z ksik
% MATLAB i Simulink. Poradnik uytkownika. Wydanie III
% Autorzy: Bogumia Mrozek, Zbigniew Mrozek
% Helion, 2010 ISBN: 978-83-246-2564-2
%-----------------------------------------------------------------
%% m572 Definiowanie klasy Auto
%----------------------------------
classdef Auto
%file Auto.m
properties % atrybuty publiczne
model
zuzyciePaliwa100km
end
properties (GetAccess=private)
rezerwaPaliwa % atrybut prywatny, niedostpny poza klas
end
methods
function a=Auto(Model,Zuzycie100km,Paliwo)
% konstruktor dla klasy obiektw 'Auto'
% przykad wywoania (call as):
% Renault=Auto('Clio 1400 Economique',3.8,50);
if nargin == 0 % nic nie robi
elseif isa(Model,'Auto')
a=Model; % utworzenie duplikatu obiektu
else % przypisuje zadane wartoci polom obiektu
a.model=Model;
a.zuzyciePaliwa100km=Zuzycie100km;
a.rezerwaPaliwa=Paliwo;
end
end
%
function pojazd=trasa(pojazd,odleglosc)
% metoda 'trasa' dla obiektw nalecych do klasy 'Auto'
% podaje ilo rezerwy paliwa po przejechaniu trasy
% lub komunikat o koniecznoci zatankowania na trasie
% funkcja trasa ma dostp do struktury z atrybutami obiektu
% czyli do pl: zuzyciePaliwa100km, rezerwaPaliwa
z=pojazd.zuzyciePaliwa100km;
paliwo=odleglosc/100*z;
rezerwa=pojazd.rezerwaPaliwa - paliwo;
if rezerwa > 0
pojazd.rezerwaPaliwa=rezerwa;
display([pojazd.model,' dojechal, pozostalo paliwo /destination reached, not used fuel is/ ', ...
num2str(pojazd.rezerwaPaliwa),' litrow '])
else
przejechal=pojazd.rezerwaPaliwa/...
pojazd.zuzyciePaliwa100km*100;
zabraklo=ceil(odleglosc-przejechal);
pojazd.rezerwaPaliwa=0;
display(['dotankuj ',pojazd.model,' - zabraknie paliwa na przejechanie /needed extra fuel for/ ', ...
num2str(zabraklo),' km'])
end %if
end % function
%% 5.7.4 get, set
function out = getRezerwa(pojazd)
% przykad wywoania (call as): rezerwa= getRezerwa(Renault,30)
out = pojazd.rezerwaPaliwa;
end % function
%
function pojazd = setRezerwa(pojazd,Paliwo)
% przykad wywoania (call as): Renault= setRezerwa(Renault,30)
pojazd.rezerwaPaliwa=Paliwo;
end % function
%
end % methods
end % classdef