1. Please write in any programming language you like – or pseudo code – a procedure to display a 32 bits number (integer) in the hexadecimal format.
To be clear, your own procedure not one from a standard library of course.
2. Please design a class hierarchy of vehicles (car, bike, truck etc) with the most basic components and the relations between them. Limit it to
essentials (for example public, private etc are not important) and write in any OO-language you like or use pseudo code. You can add comments for
explanations if you want.
3. How would you store your vehicle objects and their attributes (see question 2 above) in a relational database? Please design a simple data model.
You can choose you own syntax or diagrams as long as your data model is presented in its essentials clearly enough.
4. Below you see some – incomplete - snippets of code of EQ’s product tOption. Can you try to describe what you think the code is for, what it is
doing, why it was made that way. Do elaborate, just what your ideas and impressions are – there are no pitfalls to trick you.
&lt;entity name=&quot;Country&quot; external=&quot;MF_COUNTRY&quot; objectType=&quot;OPCountryT&quot;&gt;
&lt;attribute name=&quot;administrationId&quot; external=&quot;ADMINISTRATION_ID&quot; type=&quot;key&quot; /&gt;
&lt;attribute name=&quot;currencyId&quot; external=&quot;CURRENCY_ID&quot; type=&quot;key&quot; /&gt;
&lt;attribute name=&quot;countryName&quot; external=&quot;COUNTRY_NAME&quot; type=&quot;string&quot; width=&quot;100&quot; /&gt;
&lt;relation name=&quot;itsAdministration&quot; source=&quot;administrationId&quot; destination=&quot;Administration.id&quot; type=&quot;1:1&quot; /&gt;
&lt;relation name=&quot;itsCurrency&quot; source=&quot;currencyId&quot; destination=&quot;Currency.id&quot; type=&quot;0:1&quot; /&gt;
&lt;/entity&gt;
&lt;entity name=&quot;Currency&quot; external=&quot;MF_CURRENCY&quot; objectType=&quot;OPCurrencyT&quot;&gt;
&lt;attribute name=&quot;name&quot; external=&quot;NAME&quot; type=&quot;string&quot; width=&quot;50&quot; /&gt;
&lt;attribute name=&quot;symbol&quot; external=&quot;SYMBOL&quot; type=&quot;string&quot; width=&quot;10&quot; /&gt;
&lt;relation name=&quot;itsCountries&quot; source=&quot;id&quot; destination=&quot;Country.currencyId&quot; type=&quot;1:n&quot; /&gt;
&lt;relation name=&quot;itsMoneyAccounts&quot; source=&quot;id&quot; destination=&quot;MoneyAccount.currencyId&quot; type=&quot;1:n&quot; /&gt;
&lt;/entity&gt;
&lt;entity name=&quot;GenericAccount&quot; isAbstract=&quot;yes&quot;&gt;
&lt;attribute name=&quot;accountHolderId&quot; external=&quot;ACCOUNT_HOLDER_ID&quot; type=&quot;key&quot; /&gt;
&lt;attribute name=&quot;depositoryId&quot; external=&quot;DEPOSITORY_ID&quot; type=&quot;key&quot; /&gt;
&lt;attribute name=&quot;reservedAmount&quot; external=&quot;RESERVED_AMOUNT&quot; type=&quot;number&quot; /&gt;
&lt;attribute name=&quot;blockedAmount&quot; external=&quot;BLOCKED_AMOUNT&quot; type=&quot;number&quot; /&gt;
&lt;attribute name=&quot;balance&quot; external=&quot;BALANCE&quot; type=&quot;number&quot; /&gt;
&lt;relation name=&quot;itsAccountHolder&quot; source=&quot;accountHolderId&quot; destination=&quot;AccountHolder.id&quot; type=&quot;1:1&quot; /&gt;
&lt;/entity&gt;
&lt;entity name=&quot;MoneyAccount&quot; external=&quot;MF_MONEY_ACCOUNT&quot; parentEntity=&quot;GenericAccount&quot; objectType=&quot;OPMoneyAccountT&quot;&gt;

&lt;attribute name=&quot;currencyId&quot; external=&quot;CURRENCY_ID&quot; type=&quot;key&quot; /&gt;
&lt;relation name=&quot;itsDepository&quot; source=&quot;depositoryId&quot; destination=&quot;MoneyDepository.id&quot; type=&quot;1:1&quot; /&gt;
&lt;relation name=&quot;itsCurrency&quot; source=&quot;currencyId&quot; destination=&quot;Currency.id&quot; type=&quot;1:1&quot; /&gt;
&lt;relation name=&quot;itsDebitMoneyFinancialInstructions&quot; source=&quot;id&quot; destination=&quot;MoneyFinancialInstruction.debitAccountId&quot; type=&quot;1:n&quot; /&gt;
&lt;relation name=&quot;itsCreditMoneyFinancialInstructions&quot; source=&quot;id&quot; destination=&quot;MoneyFinancialInstruction.creditAccountId&quot; type=&quot;1:n&quot; /&gt;
&lt;/entity&gt;
// with MoneyAccount:
&lt;extend name=&quot;availableAmount&quot; scope=&quot;public&quot;&gt;
availableAmount is
balance - reservedAmount
&lt;/extend&gt;
function OPMoneyAccountT.availableNotBlockedAmount : ECCurrencyI;
begin
result := validCurrency( availableAmount ).subtract( blockedAmount);
end;
procedure OPMoneyAccountT.addAmountToBalance( const anAmount : ECCurrencyI );
var
originalBalance : ECCurrencyI;
newBalance : ECCurrencyI;
begin
originalBalance := balance;
newBalance := originalBalance.add( anAmount );
if anAmount.isGreaterThanOrEqualsZero then
begin // credit
creditedAmount := creditedAmount.add( anAmount )
end
else
begin // debit
debitedAmount := debitedAmount.subtract( anAmount );
end;
balance := newBalance;
end;