Documento 02 - Segundo Trimestre
Bibliotecas
É comum utilizar bibliotecas para realizar tarefas específicas em um programa. As bibliotecas funcionalidades prontas, que foram programadas por outras pessoas, que podem ser usadas em nossos programas.
No Portugol, existem diversas biliotecas prontas que podem ser utilizadas para adicionar funcionalidades novas ao nosso programa. Isso inclui:
Calendario: fornece funcionalidades relacionadas a datas;Graficos: fornece formas de desenhar no console do portugol;Matematica: cálculos matemáticos prontos;Texto: para manipulação de cadeia de caracteres (strings);Tipos: conversão entre tipos de dados;Util: outras funcionalidades úteis.
Importando Bibliotecas
Toda biblioteca precisa ser importada para ser utilizada. Para isso, basta utilizar a palavra inclua biblioteca seguida do nome da biblioteca, como no exemplo:
programa {
inclua biblioteca Matematica
funcao inicio() {
escreva("O maior número entre 2 e 5 é: ", Matematica.maior_numero(2, 5))
}
}
Repare que é necesssário colocar a linha de código inclua biblioteca Matematica logo após a linha de código programa {.
Também é necessário usar o nome da biblioteca seguido de um ponto e o nome da função que deseja utilizar.
Cada biblioteca possui suas funções, que podem ser utilizadas para realizar tarefas específicas. Para consultar as funções de cada biblioteca, basta acessar a documentação da biblioteca na ajuda do Portugol Studio.
Tente carregar o exemplo a seguir:
programa {
inclua biblioteca Graficos
inclua biblioteca Util
funcao inicio() {
Graficos.iniciar_modo_grafico(verdadeiro)
Graficos.definir_titulo_janela("Olá, Mundo!")
Graficos.definir_cor(100)
Graficos.desenhar_texto(100, 100, "Oi mundo!")
Graficos.renderizar()
Util.aguarde(5000)
}
}
O que essa aplicação faz?
Ao executar o programa, uma janela será aberta com o título "Olá, Mundo!" e o texto "Oi mundo!" será desenhado no centro da janela. Em seguida, a janela será fechada após 5 segundos.
Estruturas de Repetição
Estruturas de repetição são usadas para executar um bloco de código várias vezes. Elas definem um bloco de código que será executado várias vezes de acordo com a condição previamente estabelecida.
As estruturas de repetição mais comuns são:
enquanto: executa um bloco de código enquanto uma condição for verdadeira.para: executa um bloco de código um número determinado de vezes.para-cada: executa um bloco de código para cada elemento de uma coleção.
Para toda estrutura de repetição, é necessário definir uma condição de parada. Caso contrário, o programa entrará em um loop infinito. Isso seria como dizer, por exemplo, pegue um avião e voe até encontrar a borda da Terra. Você jamais iria parar!
Loop infinito é um termo usado para descrever um programa que não tem uma condição de parada, o que significa que o programa nunca termina. Isso pode acontecer quando uma condição de parada não é definida corretamente ou quando uma condição de parada nunca é atendida.
Estrutura de Repetição enquanto
A estrutura de repetição enquanto é usada para executar um bloco de código enquanto uma condição for verdadeira.
programa {
funcao inicio() {
inteiro contador = 0
enquanto (contador < 10) {
escreva("Contador: ", contador)
contador = contador + 1
}
escreva("Fim do programa")
}
}
O bloco de código dentro do enquanto será executado enquanto a condição contador < 10 for verdadeira. A variável contador foi declarada e inicializada com o número 0. Isso significa que o bloco de código dentro de enquanto será executado pelo menos uma vez, e enquanto se manter menor do que 10, vai continuar executado.
Como a variável contador é incrementada dentro do bloco de código, ela irá em cada aumentar a cada iteração até seja igual a 10, fazendo com que o bloco de código dentro do enquanto seja executado 10 vezes e encerre, continuando a execução do resto do código.
Iteração é um termo usado para descrever uma execução completa do escopo da estrutura de repetição.
Estrutura de Repetição para
A estrutura de repetição para é usada para executar um bloco de código um número determinado de vezes.
programa {
funcao inicio() {
para (inteiro contador = 0; contador < 10; contador = contador + 1) {
escreva("Contador: ", contador)
}
escreva("Fim do programa")
}
}
Ao contrário do enquanto, o para permite realizar a inicialização, a condição e o incremento de uma variável dentro da estrutura de repetição. Perceba que depois de encerrar o para, o resto do código vai ser executado normalmente. A variável `contador não pode ser acessada fora do escopo do para.
Vetores
Vetores são estruturas que permitem armazenar vários valores de um mesmo tipo em uma única variável. Eles funcionam como uma "caixa" com várias divisórias, onde cada divisória pode guardar um valor.
No Portugol, para declarar um vetor, basta indicar o tipo, o nome e o tamanho entre colchetes:
inteiro numeros[5]
Neste exemplo, o vetor numeros pode armazenar 5 valores inteiros. Os índices dos vetores começam em 0, ou seja, o primeiro elemento está na posição 0, o segundo na posição 1, e assim por diante.
Para acessar ou modificar um elemento do vetor, utilize o índice correspondente:
numeros[0] = 10
numeros[1] = 20
escreva(numeros[0]) // Mostra 10
Também é possível percorrer todos os elementos de um vetor usando estruturas de repetição, como o para:
programa {
funcao inicio() {
inteiro numeros[5]
para (inteiro i = 0; i < 5; i = i + 1) {
numeros[i] = i * 2
}
para (inteiro i = 0; i < 5; i = i + 1) {
escreva("Elemento ", i, ": ", numeros[i], "\n")
}
}
}
Neste exemplo, o primeiro laço preenche o vetor com valores, e o segundo laço exibe cada elemento.
Lembre-se: acessar um índice fora do tamanho do vetor causa erro no programa.
Vetores são úteis para armazenar listas de dados, como notas de alunos, números sorteados, ou qualquer coleção de valores do mesmo tipo.