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

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

[ Hits: 3.041 ]

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

Script lixeira em Tcl

param - abre aplicativos com parâmetros no Blackbox e outros

Renomeando arquivos de forma padronizada

Cadeias aleatórias

Calculadora em Tcl/Tk


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts