Programação Básica
A sintaxe do Sage é baseada na linguagem do Python e, assim, herda o estilo compacto e muito legível do Python. Neste tutorial, vamos apresentar a sintaxe para o essencial da programação.
3.1 Estruturas Básicas
Listas
Uma lista é uma coleção ordenada de objetos. Os elementos de uma lista são indexados pelos inteiros, começando por 0 . Aqui está um exemplo rápido de como construir uma lista e acessar seus elementos.
Como dissemos acima, listas são listas de objetos, logo podemos ter listas de listas:
Sublistas
Uma caracteristica das listas em Python é a possibilidade de obter sublistas um por fatiamento (slice).
Gerando Listas
Como eles são usados com bastante freqüência, Sage oferece uma maneira conveniente de criar listas de números consecutivos.
Outras outras possibilidades:
3.2 Condicionais
Uma declaração condicional é o que usamos quando queremos que nosso código tome decisões. Por exemplo, suponha que queremos dividir um número por 2 apenas se for par. Nós podemos fazer isso em Sage usando uma instrução .
Às vezes, é necessário verificar se a nossa expressão satisfaz mais de uma condição. Para fazer isso, use a declaração , que é uma abrevição do if-else.
Os testes são avaliados em ordem e, uma vez que o primeiro é cumprido, o código associado é executado e o Sage encerra a execução.
Note acima que para k=6, as consições 1 e 2 são atendidas mas o Sage executa o código contido apenas na primeira condição.
3.3 Laço for
Um laço , repetidamente, executa um bloco de código um número fixo de vezes. Veja um simples exemplo.
A seguir vamos imprimir números contidos em uma lista que são primos:
Agora vamos somar todos os primos de 0 até 100.
3.4 Laço While
Essencialmente, um loço executa um bloco de código enquanto uma condição ainda está satisfeita. Para exemplificar vamos calcular a soma dos primos entre 0 e 100.
Exemplos Avançados
Calcula a soma dos primos menores que 100, até que a soma seja menor que 700.
Quais são os primos menores que 100 cuja soma é menor que 700?
3.5 Compreensão de lista ( Laços em listas)
Uma técnica particularmente útil em python (e Sage por extensão) é a construção de listas usando compreensões de lista . Esse recurso é muito parecido com a notação do construtor definido que usamos em matemática. Por exemplo, o conjunto de inteiros pares pode ser escrito como: . Com o Sage podemos contruir parte desse conjunto usando uma sintaxe similar. A seguir contruimos a lista com inteiros pares de 0 até 20.
Agora, vamos voltar aos números primos e obter, usando compreensão, a lista dos prmos menos que 100. Os passos a seguir é chamado de filtro de lista.
Obterndo a soma de todos os primos menores que 100.
Para construir a lista de todos os números naturais que são menores do que 20 tais que .
Pareando listas obtidas por compreensão.
3.6 Criando suas Funções
Uma vez que seus cálculos se complicarem o suficiente, talvez queiramos esconder parte dessa complexidade criando seu próprio comando que possa ser facilmente reutilizado, como os comandos internos da Sage. Esses comandos definidos pelo usuário são comumente chamados de funções , embora diferem das funções matemáticas.
Sequência de Fibonacci definada recursivamente por
Para obter seus elementos podemos fazer:
Gerando uma lista com 10 temos da sequência de fibonacci:
3.7 Exercícios
Escreva um procedimento que retorne o sinal de um número real. Ou seja, use O Sage para representar a função $$\mathrm{sgn}(x)=\begin{cases}
1 & \quad \text{se } x> 0,\ 0 & \quad \text{se } x=0,\
1 & \quad \text{se} ,x<0.\ \end{cases} $$
Usando um laço, calcule o somatório: .
O fatorial de um número natural é definido recursivamente por: Crie uma função que calcule o fatorial de um número natural n.
Crie lista para representar o conjunto
Vamos criar uma função para calcular uma aproximação para a função seno usando a Série de Taylor: Incluindo todos os termos da série até que A constante é o erro de aproximação predefinido.