Escolar Documentos
Profissional Documentos
Cultura Documentos
html
Pgina 1 de 21
8
Programao Bsica (Basic
Programming)
Voc usou o Maple interativamente nos captulos anteriores, realizando seqencialmente operaes
como execuo de um nico comando. Como o Maple tem uma linguagem de programao
completa,
voc pode usar tambm sofisticadas construes de programao (programming constructs).
Importante: recomendado que se use o modo Planilha (Worksheet) e entrada em 1-D Math ao
programar ou usar comandos de programao. Portanto, todas as entradas neste captulo so em
1-D Math.
Seo
Tpicos
Controle de Fluxo - Construes Execuo Condicional
de programao bsica
( Declarao if ) Repetio
(Declarao for )
Comandos Iterativos Criando uma Seqncia
Comandos iterativos eficientes, Adicionando e Multiplicando
especializados
Expresses Selecionando
Operandos de Expresses
Mapeando um Comando sobre
um Conjunto ou uma Lista
Procedimentos - Programas
Maple
Mapeando um Comando
Binrio sobre Duas Listas ou
Vetores
Definio e Execuo de
Procedimentos Simples
Procedimentos com Entradas
(Inputs) Procedimentos de
Valores Devolvidos Exibio
de Definies de
Procedimentos Exibio da
Biblioteca Maple de Definies
index1.html
Pgina 2 de 21
de Procedimentos Mdulos
index1.html
Pgina 3 de 21
>
>
Clusula else
Em uma declarao if simples com a clusula else, se a avaliao das expresses condicionais
devolve
false ou FAIL, o Maple executa a declarao na clusula else.
Por exemplo:
index1.html
Pgina 4 de 21
>
Clusula elif
Em uma declarao if com clusulas elif , o Maple avalia as expresses condicionais na ordem at
que
uma delas devolva true. O Maple executa a seqncia de declarao e depois sai da declarao if.
Se nenhuma das avaliaes devolve true, o Maple sai da declarao if.>
>
Ordem das Clusulas elif - Uma seqncia de declarao de clusula elif executada somente se
a avaliao de todas as expresses condicionais anteriores devolve false ou FAIL e a avaliao da
sua expresso condicional devolve true. Isto significa que a troca da ordem das clsulas elif pode
mudar o comportamento da declarao if.
Na seguinte declarao if , as clusulas elif esto na ordem errada.
>
>
index1.html
Pgina 5 de 21
>
index1.html
Pgina 6 de 21
Clusula
from inicial
by incremento
to final
Valores Padro
1
1
infinity ()
index1.html
Pgina 7 de 21
Exemplos
O loop seguinte devolve a raiz quadrada de inteiros de 1 at 5 (inclusive).
>
Quando o valor da varivel contador n justamente maior que 5, O Maple sai do loop.
>
O valor by pode ser negativo. O loop repete at que o valor da varivel contador seja justamente
menor que o valor final.
>
index1.html
Pgina 8 de 21
>
for/in Loop
A declarao loop for/in repete uma seqncia de declaraes para cada componente (operando) de
uma expresso, por exemplo, os elementos de uma lista.
Sintaxe
O loop for/in tem a seguinte sintaxe.
>for variable in expression do
statement_sequence
end do;
2. Executar a statement_sequence.
3. Atribuir o operando seguinte varivel.
4. Repetir os passos 2 e 3 para cada operando na expresso. Se no houver mais operandos, sair do
loop. ( Este o teste limite do loop)
Exemplo
O loop seguinte devolve uma aproximao com ponto-flutuante para a funo seno (sin) nos
index1.html
Pgina 9 de 21
ngulos
( medidos em graus) na lista L.
>
>
Loop while
O loop while repete uma seqncia de declaraes at que uma expresso booleana no seja
mantida.
Sintaxe
O loop while tem a seguinte sintaxe.
>while condicional_expression do
statement_sequence
end do;
O loop while repete-se at que sua expresso booleana conditional_expression avalie false ou
FAIL.Para mais informaes sobre expresses booleanas, veja Execuo Condicional (Declarao
if)
(Conditional Execution (if Statement)) (pg. 289).
Exemplo
index1.html
Pgina 10 de 21
O loop seguinte computa os dgitos de 872349 na base 7 (na ordem de aumento de significncia).
>
>
index1.html
Pgina 11 de 21
Para informaes sobre bases no-decimais, veja Nmeros em Bases No-Decimais (pg. 62).
Declaraes Gerais de Loop (General Loop Statements)
Voc pode incluir uma declarao while em um loop for/from ou for/in.
O loop geral for/from tem a seguinte sintaxe.
>For counter from initial by increment to final
while conditional_expression do
statement_sequence
end do;
Depois de testar a condio limite do loop no incio de cada iterao do loop for loop, o Maple
avaliaa conditional_expression.
Se a conditional_expression avalia false ou FAIL, o Maple deixa o loop.
Se a expresso condicional (conditional_expression) avalia true, o Maple executa a seqncia de
declarao (statement_sequence).
Loop Infinito
Voc pode construir um loop para o qual no exista a condio para deix-lo, por exemplo, um
loopwhile em que a expresso condicional avalie sempre true. Este chamado de loop infinito. O
Maple executa indefinidamente, a menos que ele execute uma declarao break, quit ou return ou
que voc interrompa a computao. Para mais informaes, consulte as pginas de ajuda para ?
break, ?quit,
?return e ?interrupt .
index1.html
Pgina 12 de 21
Informao Adicional
Para mais informaes sobre a declarao for e looping, consulte a pgina de ajuda ?do.
map
zip
Descrio
Criar seqncia
Computar soma numrica
Computar produto numrico
Devolver operandos que satisfazem uma
condio
Devolver operandos que no satizfazem uma
condio
Devolver operandos que satisfazem uma
condio e separadamente devolvem
operandos que no satisfazem uma condio
Aplicar comandos aos operandos de uma
expresso
Aplicar comando binrio aos operandos de
duas listas ou vetores
index1.html
Pgina 13 de 21
seq(expresso, nome in
expresso);
Exemplos
>
>
>
index1.html
Pgina 14 de 21
>
Os pontos limites do intervalo dos ndices (initial e final) na chamada de seqncia add e mul
devem avaliar constantes numricas. Para informaes sobre somas e produtos simblicos, consulte
as pginas
de ajuda ?sum e ?product.
Seleo de Operandos de Expresso
Os comandos select, remove e selectremove aplicam um procedimento de avaliao booleana
ou um comando para os operandos de uma expresso. Para informaes sobre operandos, consulte a
pgina de ajuda ?op.
O comando select devolve os operandos para os quais o procedimento ou o comando devolve
true.
O comando remove devolve os operandos para os quais o procedimento ou o comando devolve
false.
O comando selectremove devolve duas expresses do mesmo tipo da expresso de entrada.
- A primeira consiste em operandos para os quais o procedimento ou o comando devolve true.
- A segunda consiste em operandos para os quais o procedimento ou o comando devolve false ou
FAIL.
Veja a tabela 8.5.
Para informaes sobre procedimentos Maple, veja Procedimentos (pg. 301).
Tabela 8.5: Os Comandos select, remove e selectremove
index1.html
Pgina 15 de 21
remove(proc_cmd,
expression);
>
selectremove(proc_cmd, >
expression);
Para informaes sobre argumentos opcionais para os comandos de seleo, consulte a pgina de
ajuda
?select.
Exemplos
>
index1.html
Pgina 16 de 21
expression);
>
Para informaes sobre mapear os operandos de outras expresses, argumentos opcionais para o
comando map e outros comandos para mapear, consulte a pgina de ajuda ?map.
O comando zip aplica um nome ou procedimento binrio ou comando component-wise a duas listas
ou vetores.
Por padro, o comprimento do objeto devolvido aquele da menor lista ou vetor. Se voc especificar
um valor como quarto argumento (opcional), ele usado como o valor dos elementos que faltam
na menor lista ou vetor. Neste caso, o comprimento do valor devolvido aquele da maior lista ou
vetor.Veja a tabela 8.7.
index1.html
Pgina 17 de 21
Exemplos
>
>
Para mais informaes sobre o comando zip, consulte a pgina de ajuda ?zip.
Informao Adicional
Para mais informaes sobre comandos looping , consulte a pgina de ajuda do comando
correspondente.
8.4 Procedimentos
Um procedimento do Maple um programa que consiste em declaraes do Maple. Usando
procedimentos,
voc pode executar rapidamente a seqncia de declaraes contidas.
index1.html
Pgina 18 de 21
>
Para executar o procedimento p, entre com seu nome seguido de parnteses (( )).
>
>
Quando o usurio executa o procedimento, os nomes dos parmetros so substitudos pelos valores
dos argumentos.
>
index1.html
Pgina 19 de 21
>
Para mais informaes sobre escrever procedimentos, incluindo opes e variveis locais e globais,
consulte a pgina de ajuda ?procedure.
>
Voc deve avaliar o nome do procedimento usando o comando print (ou eval).
index1.html
Pgina 20 de 21
>
>
index1.html
Pgina 21 de 21
Mdulos
Os procedimentos do Maple associam uma seqncia de comandos a um nico comando. O mdulo,
uma estrutura de programao mais complexa, permite a voc associar procedimentos relacionados
e dados.
Uma funcionalidade chave dos mdulos que eles exportam variveis. Isto significa que as
variveis
esto disponveis fora do mdulo em que foram criadas. A maioria dos pacotes do Maple so
implementados como mdulos. Os comandos do pacote so exportaes do mdulo.
Para mais informaes sobre mdulos, consulte a pgina de ajuda ?module.