Crivo de Eratóstenes Simples em Tcl (sem Tk)

Publicado por Perfil removido (última atualização em 27/08/2012)

[ Hits: 2.499 ]

Download sieve001.tcl




Versão de crivo simples em Tcl.

Uma estranha diferença de Tcl para as outras linguagens C-Like é a de que o par de chaves "{" e "}" é usado na declaração de comandos em bloco e não somente na delimitação de bloco.

Um "while" em C, C++, C# D, Java, Javascript teria em todos a mesma cara:

while (...) { comandos }

Em Tcl ficaria:

while {...} { comandos }

E o costumeiro "for" tradicionalmente escrito como

for ( ... ; ... ; ... ) { comandos }

possuiria os análogos três campos, mas escrito deste jeito:

for {...} {...} {...} { comandos }

Atribuições de dados são feitas com o comando "set": ao invés de

x=5

usa-se

set x 5

Operações matemáticas são feitas indiretamente, semelhante ao que ocorre em shell script:

Em shell script usa-se

x=$((3+4))

ou

x=$[3+4] # se for suportado

ou ainda

let x=3+4

Em Tcl fica:

set x [expr 3+4]

Tk possui particularidades que não são citadas aqui por não ser usada.

No mínimo diferente da maioria ... :-)

  



Esconder código-fonte

#!/usr/bin/tclsh

############################################################
# isto eh um comentario
#
# instrucoes:
#
# usar chmod +x ... no script e executar normalmente
############################################################


set primes(0) 2
set primes(1) 3

set i 5
set j 0
set k 0

while {$i<10000} {
 
   set j 0
   set k [expr sqrt($i)]

   while {$primes($j)<$k && $i%$primes($j)!=0} { incr j }

   if {$primes($j)>$k} { set primes([array size primes]) $i }
 
   if {$i%3==2} { 
      set i [expr $i + 2] 
   } else { 
      set i [expr $i + 4] 
   }

} 
 
for {set i 0} {$i<[array size primes]} {incr i} {
   puts -nonewline "$primes($i) "
}

puts ""

Scripts recomendados

tkFind

Script em Tcl para descompactar arquivos

O mundo do Polinômio

O mundo do Polinômio

Cadeias aleatórias


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts