vložil Radek Červinka
27. května 2011 02:48
Pořád mi to přijde, že píšu a píšu a žádné výsledky (teda kromě návštěvnosti, která je slušná). Takže jelikož je období zkoušek, je zde malý testík. Ušetřím Vás trapností typu jakými třemi způsoby se dá označit komentář, na druhou stranu pro dnešek vynecháme i generika a další věci.
V budoucnosti přejdeme k XE2, kde určitě bude hafo témat, ale to bude ještě cca 2-3 měsíce trvat a do té doby máme ještě trochu času. Takže na zabití času malý test.
Co bod - to bod. V úvahu jsem bral Delphi XE, ale většina věcí je platná obecně. A prosím bez google a spol., kdo najde chybu vyhrává.
1) Proměnné třídy jsou na začátku
a) inicializovány na prázdnou hodnotu
b) nedefinované hodnoty, tj. záleží na stavu paměti
c) jen string je = ''
2) TObject.Free
a) volá destruktor, a zda objekt existuje je věcí programátora
b) provede test zda objekt není nil, a volá destructor
c) zavolá destruktor a nastaví objekt na nil
3) initialization a finalization
a) initialization se provádí dle abecedy jména unitu a finalization
následně ve stejném pořadí
b) initialization se provádí dle abecedy jména unitu a finalization
následně v opačném pořadí
c) initialization se provádí dle pořadí nalezení odkazu na unit při
překladu, ale je to modifikováno podle závislostí unit mezi sebou
a finalization následně ve stejném pořadí
d) initialization se provádí dle pořadí nalezení odkazu na unit při
překladu, ale je to modifikováno podle závislostí unit mezi sebou
a finalization následně v opačném pořadí
4) overload
a) je stav přetížení kompilátoru (velké množství provázaných unit)
b) je direktiva kompilátoru, kdy umožní definici stejné metody s jinými parametry
c) je direktiva kompilátoru, kdy předefinováváme metodu předka
5) Kód označený jako deprecated
a) nejde přeložit a označuje se tím starý kód nutný změny
b) jde přeložit, ale v budoucích verzích Delphi už přeložit jít nemusí
nebo se může chovat výrazně jinak
c) jde přeložit a označuje ideální kód
6) DUNIT
a) je slangově něco jako tunit, ale v Delphi
b) je klíčové slovo pro C++Builder označující Delphi Unit
pro vylepšení spolupráce mezi Builderem a Delphi
c) framework pro testy pro Delphi
7) Název unitu
a) nesmí obsahovat nic kromě písmen A - Z a číslic 0 - 9
b) jako a) plus _
c) jako b) plus .
d) jako c) plus znaky národních abecedy
8) Program obsahující
program Test;
{$APPTYPE CONSOLE}
uses
Classes, SysUtils;
var
t: TStringList;
s: string;
begin
t := TStringList.Create;
try
t.Delimiter := ';';
t.DelimitedText := '1;2;3;4;5;6;7;8;9;';
for s in t do
write('A');
finally
FreeAndNil(t);
end;
end.
vypíše
a) 9x A
b) 10x A
c) 1x A
d) nepůjde přeložit
e) nevypíše nic
9)
Rozdíl mezi:
TIntProcA = reference to procedure (n: Integer);
TIntProcB = procedure (n: Integer) of object;
TIntProcC = procedure (n: Integer);
TIntProcD = function (n: Integer):Integer;
Není volba (správná odpověď je za bod)
10) Ekvivalent static proměnné třídy je v Delphi
a)
type TT = class (TObject)
private
class var fiCount:Integer;
end;
b)
type TT = class (TObject)
private
static var fiCount:Integer;
end;
c)
type TT = class (TObject)
private
static fiCount:Integer;
end;
d) nejde
11) FastMM
a) je rychleji rozpustná varianta čokoládové tyčinky M&M
b) je správce paměti z D7
c) je správce paměti z D2006 a vyšší
d) je správce paměti z D2009 a vyšší
d) je správce paměti z DXE
výsledky
- 1) a - http://stackoverflow.com/questions/132725/are-delphi-variables-initialized-with-a-value-by-default
- 2) b
- 3) d
- 4) b
- 5) b
- 6) c
- 7) d - osobně jsem si myslel původně c), ale d) funguje taky i když je to fuj
- 8) b
- 9) Deklarace: TIntProcA je anonymní metoda, TIntProcB je metoda objektu, TIntProcC je normální procedura , TIntProcD je normální funkce
- 10) a
- 11) c
Jak to dopadlo?
- 1 - 2 body: Nějaký omyl ne? Hold Delphi je i výrobce auto součástek - třeba hledáte ho?
- 3 - 6 bodů: Sportka je pro Vás taky možnost, s výhrou je to navíc v současné situaci skoro na stejné úrovni, taky nic nedostanete.
- 7 - 9 bodů: Slušný výsledek, aspoň tak no.
- 10 - 11 bodů: Prosím příště bez google! Ale vážně: to není špatné
A mimochodem ty tři způsoby komentování kódu z úvodu:
// radek
{ poznamka }
(* a taky *)
a jak pepak v komentářích poznamenal, ještě jde použít podmíněná kompilace