Por clareza, todos os TCCs acabam tendo que apresentar exemplos e resultados. Vamos trabalhar técnicas textuais úteis na apresentação de quadros, tabelas, gráficos e algoritmos.
PR61: Escreva um parágrafo descrevendo os resultados do gráfico abaixo:
Nada mais objetivo e claro do que visualizar dados através de gráficos. Algumas dicas para utilizar gráficos como apoio ao texto, seguidas de um exemplo de ótimo texto acompanhando o gráfico acima:
Figuras servem para ilustrar o texto, não para evitar de escrever texto; assim elas não substituem o texto, apenas enriquecem uma discussão que está no texto.
Normalmente é bom seguir dicas similares às dadas acima para gráficos. Veja um bom exemplo do uso de figuras no texto:
Outras dicas para figuras:
Em computação, é muito comum ter que mostrar um algoritmo como resultado de um trabalho de pesquisa (ou programas, para descrições de desenvolvimento). Qualquer que seja a situação, o algoritmo ou programa não pode ser apenas mostrado, ele ilustra uma explicação no texto (ou seja, apoia o texto).
É sempre preferível usar uma notação simples de pseudocódigo, mantendo o padrão para todos os algoritmos. Um procedimento é melhor descrito com números de linhas.
Para o algoritmo abaixo, veja um bom exemplo de texto:
Mergesort divide um array no meio, ordena as duas metades recursivamente, e então junta as duas metades ordenadas por intercalação, produzindo o resultado ordenado, como ilustrado pelo Programa 1.1. Este algoritmo é representativo de algoritmos projetados no paradigma divisão e conquista, em que um problema é resolvido ao se resolver, recursivamente, subproblemas menores e usando as soluções para resolver o problema original. A estrutura recursiva de algoritmos como o mergesort lembra imediatamente as descrições matemáticas do problema.
Para conseguir realizar a intercalação, o Programa 1.1 usa dois arrays auxiliares b e c para guardar os subproblemas (por desempenho, é melhor declarar esses arrays externamente). Invocar este método com a chamada mergesort(0,n-1) ordena o array a[0...n-1]. Depois das chamadas recursivas, as duas metades estão ordenadas. Então, movemos a primeira metade de a[] para b[] e a segunda metade de a[] para c[]. Adicionamos o sentinela INFTY no final de cada um dos arrays auxiliares que assumimos ser maior que qualquer outro elemento, para ajudar realizar a tarefa de mover o resto de um dos arrays auxiliares de volta para a, depois que o outro ficar vazio. Com estas preparações, a intercalação é direta: para cada k, mover o menor dos elementos b[i] e c[j] para a[k], então incrementar k, i e j de acordo.
Antes leia esses artigos: Tips e Tricks, Effective Java