O ciclo iterativo for..next (para... valor seguinte), na sua forma simples, tem o significado seguinte:
Para variável de valor inicial dado e valor final dado executar isto e recomeçar incrementando a variável de 1 (até ultrapassar o valor final)
Em pseudocódigo, poderia ser:
for Variavel=Inicial to Final execute f(Variavel) next Variavel value
O ciclo executaria para todos os valores inteiros de 0 a N. Sendo conhecidos os valores inicial, final, e o incremento, o número de execuções do ciclo é conhecido.
' Four 18:28 30-04-2008 ' Exemplo de ciclo iterativo for...next ' Criação e inicialização de variáveis Contador=0 Saida="As easy as" ' Ciclo for Contador=1 to 3 Saida = Saida & " " & Contador next ' Saída msgbox Saida
Se se deseja que o incremento seja diferente de +1, deve ser especificado; nomeadamente, deve sê-lo se se pretende percorrer os valores em ordem decrescente (de 0 a -35, por exemplo), como no código abaixo:
' Four2.vbs 18:39 30-04-2008 Contador=0 ValorInicial=0 ValorFinal=1 Incremento=0.25 for Contador=ValorInicial to ValorFinal step Incremento msgbox "O valor actual é " & Contador next msgbox "Novo ciclo!" ValorInicial=0 ValorFinal=-3 Incremento=-1 for Contador=ValorInicial to ValorFinal step Incremento msgbox "O valor actual é " & Contador next msgbox "Voilà!"
O factorial de um número é o produto de todos os números inteiros até esse número inclusivé. P. Ex., o factorial de 4 = 1*2*3*4. É um número inteiro. O factorial de 0 é 1.
Escreva um programa que calcule o factorial de um número. Haverá várias coisas a ter em conta; por exemplo, o valor inicial do contador, da variável a conter o resultado, e o tipo destas.
É muito fácil ultrapassar a capacidade numérica dos formatos inteiros com este programa. Isso conduz ou a um erro, ou à mudança de tipo para um dos tipos reais.
Melhore o programa por forma a impedir entradas inválidas.
Primo é o número que só pode ser dividido por ele próprio e por um. Escreva um programa que diga se um número é primo ou não.
Para testar a divisibilidade de um número eventualmente primo, basta dividi-lo pelo números primos entre 2 e a raiz quadrada do número. Isso implica guardar uma lsiat de números primos no código, o que ainda não sabe fazer; no entanto, se tentar a divisão por todos os números até à raiz do número, não precisa de guardar uma lista.
O operador mod devolve o resto de uma divisão de inteiros. Assim 5 mod 3 devolve 2; 6 mod 3 devolve 0, 7 mod 3 devolve 1.
O operador para raiz quadrada é sqr. Assim, sqr(16) devolve 4.
' A depuração deste código não está garantida!
' Declarações e inicializações
dim I, Numero, Raiz
Eprimo=1
' Aquisição
Numero= inputbox ("Numero a testar?")
Raiz= cint(sqr(Numero))
' Cálculos
if Numero > 2 then
for I=2 to Raiz
if (Numero mod I) = 0 then Eprimo =0
' A linha abaixo provoca a saida
' forçada do ciclo for..next
' e não é politicamente correcta
exit for
next
end if
' Resultados
if Eprimo=1 then
msgbox Numero & " é primo"
else
msgbox Numero & " não é primo"
end if
A série de Fibonacci foi uma das coisas que O Código Da Vinci popularizou. O primeiro termo é zero, o segundo, 1; o terceiro e os seguintes são a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8... Escreva um programa que diga, de um número entre 0 e 30,000 se este pertence ou não à série de Fibonacci, e quais são os dois mais próximos.
Início: 25/4/2008
Última modificação: 18:43 06-05-2008