php.lv forumi: Kurš māk stilīgāk apmainīt divu mainīgo vērtības? - php.lv forumi

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • This topic is locked

Kurš māk stilīgāk apmainīt divu mainīgo vērtības?

#16 User is online   Aleksejs 

  • code ex machina
  • PipPipPipPipPip
  • Group: Moderatori
  • Posts: 4,297
  • Joined: 2003.04.05

Posted 2009.02.13 11:02

Ne visam stilīgajam ir jēga (~;
Un ne viss, kas ir jēdzīgs ir stilīgs (~;
http://tinyurl.com/web-aplikaciju-izstrade Web Aplikāciju Izstrāde - publisks čats skaipā latviešu valodā.
http://www.twitter.com/AleksejsZ
http://viednis.lv - jautājumi un atbildes pa tēmu

#17 User is offline   marrtins 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 649
  • Joined: 2006.06.09

Posted 2009.02.13 11:53

View Postbubu, on 13.02.2009 10:36, said:

XOR triku, ja tiešam jāmaina tikai veseli skaitļi, var arī pielietot augsta līmeņa valodās, bet nu es tam personīgi neredzu jēgu:

Augsta līmeņa valodas tāpēc ir augsta līmeņa, kur par šādiem vipendroniem nav jāsatraucas. Ja nu tikai sporta pēc, kā šajā topikā :)
www.vps.lv

#18 User is offline   Ghenis 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 117
  • Joined: 2006.08.08

Posted 2009.02.13 13:47

View Postdarksign, on 12.02.2009 21:56, said:

Ghenis .. un ko tieši tev iedeva? :))

Mhh,
a)Login sistēma, kura ļauj ielogoties tik no viena subneta utt.
b)Kaut kādi OOP pamati (Uzrakstīt klasi utt).
c)Inklūdot failu pēc GET parametra.
Principā, čeklists par to vai koderis zin elementāras drošības un programmēšanas lietas :-)

A par mainīgo mainīšanu - list($a, $b) = array($b, $a);
+++

#19 User is offline   Web Developer 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 497
  • Joined: 2009.01.29

Posted 2009.02.13 16:31

Cik stilīgi ir domāt, ka esi stilīgs un mērīties ar savu programmētāja krānu publiski forumos? Katrā valodā savas metodes. Runa iet par php vai assembler?
Kurš no jums te ikdienā kodē uz assembler?

#20 User is offline   marrtins 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 649
  • Joined: 2006.06.09

Posted 2009.02.13 17:03

Runa neiet. Izlasi jautājumu, tad Tev taps skaidrs.
www.vps.lv

#21 User is offline   Web Developer 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 497
  • Joined: 2009.01.29

Posted 2009.02.13 17:23

Runa ir. Izlasīju jautājumu, mans pirmais jautājums būtu - "kādā programmēšanās valodā"? Piedodiet, man tas ir būtiski, kaut vai stila un sintakses pēc.
Ja es saņemu atbildi "php", tad es uzrakstu uz TĀFELES sekojoši:
<?php
	
$a = "aa";
$b = "bb";

$c = $a;
$a = $b;
$b = $c;

echo $a."<br/>";
echo $b;


Labākais un praktiskākais veids. Vai arī izmantojot iebūvēto funkciju list un array, bet starpība? Tēmas autora piedāvātais pirmais variants šķiet tik stulbs, cik nu stulbs vispār varētu būt šāda triviāla uzdevuma risinājums. Tas ir tas pats, kas dedzināt svecīti, lai izlasītu grāmatu, ja turpat ir pieejama galda lampa ar bezmaksas elektrību.

#22 User is offline   darksign 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 170
  • Joined: 2008.03.11

Posted 2009.02.13 20:11

to "Web Developer" nevajag uztvert personiigi.. tikai sporta un intereses peec...

par programmēšanas valodu.. nav ierobežojuma, jo dažādāk jo labāk.. (lai gan šis tak php forums galvenokārt... :D )

ja zini kā to izdarīt ASM, ok, pastāsti, ja MS ASM ir savādāk, tad arī.... ja lieto piemēram D (nevis C vai ko ierastu) tad pastāsti.. varbūt ir interesanta atšķirība, vai vēl kāds veids ieviests :))


tātad uz doto brīdi mums ir šeit iepostoti šādi veidi:
PHP varianti

Quote

$a = 3;
$b = 2;


$a = $a+$b; 
$b = $a-$b; 
$a = $a-$b;


$a = $a * $b; 
$b = $a / $b; 
$a = $a / $b;


$c = $b; 
$b = $a; 
$a = $b;


list($a, $b) = array($b, $a);


$a ^= $b ^= $a ^= $b;



Pyton varianti:

Quote

a, b = b, a



ASM varianti:

Quote

XOR AX,BX
XOR BX,AX
XOR AX,BX


XCHG AX, BX


kāds zin vēl kaut kādu foršu variantu kas īpaši izcelties? :)

p.s. nav obligāti universālam jābūt.. var būt arī konkrētiem gadījumiem.. piem. tikai string, tikai int utt tipiem ;)

This post has been edited by darksign: 2009.02.13 20:11


#23 User is offline   bubu 

  • Koda dievs
  • PipPipPipPipPip
  • Group: Administratori
  • Posts: 9,196
  • Joined: 2004.03.16

Posted 2009.02.13 21:21

Kāda vairs jēga no tā? Tiem "foršajiem variantiem" ar kuriem "izcelties" nav nekādas praktiskas jēgas.
Tikpat labi vari prasīt kā pārkopēt failu, un atbilde dod risinājumu - izdrukāt faila hexdumpu, noskanēt ar skaneri, un tad ar ocr softu saglabāt atpazītos baitus vajadzīgajā faila atrašanās vietā. A jēga?

#24 User is offline   Web Developer 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 497
  • Joined: 2009.01.29

Posted 2009.02.13 21:58

Pieņemu, ka te tomēr ir php forums, attiecīgi, apspriedīsim tikai attiecībā uz valodu php, lai būtu līdzvērtīga skaidrība.

Cik nanosekundes kurš katrs paņēmiens aizņem, netaisos pētīt, bet, manuprāt, vislabākais paņēmiens ir:

Quote

list($a, $b) = array($b, $a);

Atkāpjos no sava iepriekšējā, kurš varētu būt otrs labākais.

Ar ko viņš labs?
1) ļoti īss un skaidrs pieraksts;
2) viegli lasāms kods;
3) nav nekā lieka un visu funkciju izpilda vienā rindiņā.

Performanci nav jēgas apspriezt tik sīkām vienībām. Cik tu tur ietaupīsi? Ja Tev katra milisekunde ir svarīga, kas izpildās uz servera, tad tev jādomā par nopietnākām valodām nekā php...

#25 User is offline   4e4en 

  • Script kiddie
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 310
  • Joined: 2004.09.07

Posted 2009.02.14 02:40

Pie asm aizmirsāt piemest klāt veco labo push/pop variantu

push eax
push ebx
pop eax
pop ebx


ko var drusku optimizēt uz

push eax
mov eax, ebx
pop ebx


#26 User is offline   darksign 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 170
  • Joined: 2008.03.11

Posted 2009.02.15 02:46

to bubu => jēga nav.. vnk sporta un intereses pēc :) bet ja ir kāds pa tiešām forš varbūt aizmirstāks variants vienam, bet otram nē, tad te to ļoti labi var atgādināt... kā piemēram ar to list() = array() .... pats biju piemirsis.. un izskatās ka webdeveloper arī ;) un tnx to you all tagad taas lietas ir atsvaidzinaatas ;)

#27 User is offline   zinatnieks 

  • Daudzsološais profiņš
  • PipPipPip
  • Group: Reģistrētie lietotāji
  • Posts: 116
  • Joined: 2006.03.13

Posted 2009.02.22 23:25

darksign pazīstot tevi personīgi diez vai tu to esi aizmirsis... Tu vienkārši to nezināji, atzīsti tak... :)
My Portfolio - www.coderportfolio.com
Skricelējumi par programmēšanu - blog.coderportfolio.com

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • This topic is locked