Patiko? Prenumeruok el. paštu

Straipsniai pagal gairę

Programavimo kalbų mokslinis palyginimas

php platformsBerlyno Universiteto profesorius Lutz Prechelt, tiriantis programinės įrangos panaudojamumą, sumastė atlikti web developmentui skirtų programavimo kalbų ir platformų mokslinį palyginimą. Kadangi Internete verdantys debatai atrodo niekada neišspręs klausimo kas geriau, jis sumąstė reikalą išspresti tiesiai šviesiai: susikviesti įvairių platformų gerus programerius į vieną vietą su savo serveriais ir paruoštomis platformomis, paskirti užduotį, duoti jiems laiko ir sulyginti gautus rezultatus įvairiais aspektais. Idėja beveik ir įgyvendinta: toks „konkursas“ vyksta dabar Niurnberge (sausio 25-26 dienomis). Surinktiems programeriams, bus duota užduotis ir skirta 30 valandų jai realizuoti. Šis renginys pavadintas Plat_Forms

Atstovaujamos deja tik PHP, Perl ir JAVA kalbos. Komandos

Neither Python nor Ruby nor, surprisingly, .net had a sufficient number of sufficiently qualified applications. In order to ensure the quality of the teams, we have thus not included these platforms in the contest this year.

Šiuo metu, kai vyksta šis “tyrimas”, vyksta ir Live Bloginimas. Tad eiga ir rezultatus galite stebėti.

Asmens kodas

Reikia patikrinti asmens kodo teisingumą? Manau šis dalykas jums pravers. Skanaus.

Algoritmas lietuviško asmens kodo (nuo 65 puslapio).

PHP, JavaScript versija pateikti nuo manęs, kiti buvo parodyti kaip komenarai senojoje blogo versijoje.

PHP

PHP - Copy Code

 1 <?

 2 /**

 3  * Tikrina ar asmens kodas

 4  *

 5  * @param string $s

 6  * @return bool

 7  */

 8 

 9 function ar_asmens_kodas($s) {

10   if (!is_numeric($s) || strlen($s)!=11) {

11     return false;

12   }

13   $d=0; $e=0; $b=1; $c=3;

14   for ($i=0;$i<10;$i++) {

15     $a=$s[$i];

16     $d=$d+($b*$a);

17     $e=$e+($c*$a);

18     $b++; if ($b==10) $b=1;

19     $c++; if ($c==10) $c=1;

20   }

21   $d=$d % 11;

22   $e=$e % 11;

23   if ($d==10) {

24     $i = ($e == 10) ? 0 : $e;

25   } else {

26       $i = $d;

27   }

28   return ($s[10]==$i) ? true : false;

29 }

30 

31 /**

32 * Butinai reikia paduotu stringa siam scriptui atveju, pvz

33 * ar_asmens_kodas('38011254123');

34 */

35 ?>

Javscript

Javascript – Copy Code

 1 function tikrinti_akoda(kodas) {

 2 var i,a,b,c,d,e;

 3 var s = new String(kodas);

 4     d=0;

 5     e=0;

 6     b=1;

 7     c=3;

 8     for (i=0;i<10;i++) {

 9         a=s.charAt(i);

10         d=d+(b*a);

11         e=e+(c*a);

12         b=b+1;

13         if (b==10)

14           b=1;

15         c=c+1;

16         if (c==10)

17             c=1;

18      }

19      d=d % 11;

20      e=e % 11;

21      if (d==10) {

22           if (e==10)

23             i=0;

24           else

25             i=e;

26      } else

27           i=d;

28      if (s.charAt(10)==i)

29          return true;

30      else

31          return false;

32 }

Perl

http://search.cpan.org/~kudarasp/Asmens-Kodas-0.02/lib/Asmens/Kodas.pm

MS SQL

Copy Code

 1 CREATE PROCEDURE asmensKodoTikrinimasSP

 2 (      @AsmensKodas bigint

 3 )

 4 AS

 5 BEGIN

 6   DECLARE @L  INTEGER,

 7             @M1 INTEGER,

 8             @M2 INTEGER,

 9             @M3 INTEGER,

10             @M4 INTEGER,

11             @D1 INTEGER,

12             @D2 INTEGER,

13             @R1 INTEGER,

14             @R2 INTEGER,

15             @R3 INTEGER,

16             @K  INTEGER,

17             @ATS BIT

18 

19     IF @AsmensKodas &gt; 10000000000

20     BEGIN

21          IF @AsmensKodas &lt; 69999999999

22          BEGIN

23               SET @L = @AsmensKodas / 10000000000

24               SET @AsmensKodas = @AsmensKodas - (10000000000 * @L)

25               SET @M1 = @AsmensKodas / 1000000000

26               SET @AsmensKodas = @AsmensKodas % 1000000000

27               SET @M2 = @AsmensKodas / 100000000

28               SET @AsmensKodas = @AsmensKodas % 100000000

29               SET @M3 = @AsmensKodas / 10000000

30               SET @AsmensKodas = @AsmensKodas % 10000000

31               SET @M4 = @AsmensKodas / 1000000

32               SET @AsmensKodas = @AsmensKodas % 1000000

33               SET @D1 = @AsmensKodas / 100000

34               SET @AsmensKodas = @AsmensKodas % 100000

35               SET @D2 = @AsmensKodas / 10000

36               SET @AsmensKodas = @AsmensKodas % 10000

37               SET @R1 = @AsmensKodas / 1000

38               SET @AsmensKodas = @AsmensKodas % 1000

39               SET @R2 = @AsmensKodas / 100

40               SET @AsmensKodas = @AsmensKodas % 100

41               SET @R3 = @AsmensKodas / 10

42               SET @AsmensKodas = @AsmensKodas % 10

43               SET @K = @AsmensKodas

44 

45               DECLARE @Suma INTEGER, @Liekana INTEGER

46               SET @Suma = @L * 1 + @M1 * 2 + @M2 * 3 + @M3 * 4 + @M4 * 5 +

47                          @D1 * 6 + @D2 * 7 + @R1 * 8 + @R2 * 9 + @R3 * 1

48               SET @Liekana = @Suma % 11

49               IF @Liekana &lt;&gt; 10

50               BEGIN

51                    IF @Liekana = @K

52                       SET @ATS = 1

53                    ELSE

54                       SET @ATS = 0

55               END

56               ELSE

57               BEGIN

58                    SET @Suma = @L * 3 + @M1 * 4 + @M2 * 5 + @M3 * 6 + @M4 * 7 +

59                               @D1 * 8 + @D2 * 9 + @R1 * 1 + @R2 * 2 + @R3 * 3

60                    SET @Liekana = @Suma % 11

61                    IF @Liekana &lt;&gt; 10

62                    BEGIN

63                       IF @Liekana = @K

64                          SET @ATS = 1

65                       ELSE

66                          SET @ATS = 0

67                    END

68                    ELSE

69                    BEGIN

70                         SET @Liekana = 0

71                         IF @Liekana = @K

72                            SET @ATS = 1

73                         ELSE

74                            SET @ATS = 0

75                    END

76               END

77          END

78          ELSE

79              SET @ATS = 0

80     END

81     ELSE

82         SET @ATS = 0

83 

84     SELECT @ATS

Kita

Na daugiau :) Dos versija

> home
  • Apie mane
  • Apklausos
  • Blogas
  • Lietblogs Search
  • Nuorodos
  • Reklama mano bloge
  • Search
  • Tags
  • Testas
  • Projektai
  • Kontaktuok
  • Archyvas