English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1428) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.12.02. 21:02)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 1 post

TCH  (statz) Főfasz
#1, Főfasz (10466)
1815 | #26d2 | ^ | Idézet | Sat, 27 Jul 2013 19:50:33 +02
84.3.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
Mai témánk (a kecskebaszáson kívül) megint egy kis pacal, noha valószínűleg még mindig senki nem mérgezi rajtam kívül magát vele.
C-like nyelvekben ugye van a "feltétel operátor" (l = (round(random) & 1) != 0 ? 63 : 58;) de Pascalban nincs ilyen egysoros if. (Illetve ez nem igaz, mert egy utasításos blokk esetén nem kell a begin/end, de if-es szerkezeteknél az átláthatóság miatt célszerű mindig kirakni a blokkhatárokat, akkor is, ha egyetlen utasítás van, hogy ne kelljen keresgetni hol a vége. Azonfelül az if nem ad vissza értéket, a blokkon belül van az értékadás helye, míg C alatt a két ágban már csak a visszaadandó érték van.)
Szóval a Pascal ilyet nem tud, viszont tud olyat, hogy - értelemszerűen kételemű - tömböt booleannal címez (const faszom: array[false..true] of longint = (58, 63);) amit lehet használni ugyaneme feladatra (l := faszom[round(random) and 1 <> 0];)

Na most, csak az a kérdés, hogy ez vajh lassabb-e, mint a sima if-es megoldás (if (round(random) and 1 <> 0) then l := 63 else l := 58;) ?

Bencsmárkollyuk ki.
program test1;

var i, l: longint;
const faszom: array[false..true] of longint = (58, 63);

begin
	for i := 0 to 1000000000 do
	begin
		l := faszom[round(random) and 1 <> 0];
	end;
end.
program test2;

var i, l: longint;

begin
	for i := 0 to 1000000000 do
	begin
		if (round(random) and 1 <> 0) then l := 63 else l := 58;
	end;
end.
root@Csabi:~/uasm# time ./test1

real    0m48.110s
user    0m48.110s
sys     0m0.000s
root@Csabi:~/uasm# time ./test2

real    0m49.930s
user    0m49.930s
sys     0m0.000s
Hangyafasszal. Viszont sokkal átláthatóbb, imho még a C-s verziónál is, tehát célszerű használni.


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1428) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.12.02. 21:02)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!