Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Abstract. This report aims to briefly describe the problems proposed by the
practical project and the main strategies found to develop each program, as
long as they meet the functionalities specified in each problem.
1. Construção do calendário
O primeiro problema pede para que se construa um programa que produza uma folha de
calendário anual. Neste sentido, o programa lê o ano informado pelo usuário, e a partir
de uma série de funções retorna o calendário inteiro daquele ano. Após a leitura, o
programa chamará a função que mostram o nome do mês (de acordo com seu respectivo
número) e o formata, mostrando todos os dias do mês. Para tal, utilizou-se outras
funções como ferramentas auxiliares, como o algoritmo de Zeller (adaptado de
CHAPMAN, 1991), para se calcular o primeiro dia de cada mês e outra função para
definir o último dia de cada mês, levando em consideração anos bissextos.
2. Operadores de bits
Ao definir a constante SIZE como (1 << 4), ela passará a ter o valor de 16 (decimal).
Neste sentido, o primeiro laço irá percorrer de 15 (SIZE-1) até 0, o que representa cada
linha da figura geométrica. Ou seja, este laço estará definindo o numero de linhas, uma
vez que além de percorrer “SIZE” vezes e chamar os laços internos, também pula
linhas. Em um segundo momento, para cada passagem deste primeiro laço, dois outros
laços serão percorridos: o primeiro percorre de 0 até o tamanho da linha atual menos
uma unidade, o outro percorre do último número do laço anterior até a quantidade
faltante para chegar a 16.
Tendo isso em vista, pode-se notar como consequência que, na medida em que o limite
do primeiro laço interno diminui, o segundo aumenta. Este comportamento está
representado na Figura 4, onde o caractere “.” representa a ação feita pelo laço (a) da
Figura 3, “-” pelo laço (b) e “*” pelo laço (c).
Como foi possível observar na Figura 4, a cada nova linha (de 16 a 1), haverá uma
menor contribuição do primeiro laço interno em comparação ao segundo laço; é
importante salientar que esta Figura não leva em consideração o que cada laço
teoricamente deveria imprimir, mas sim como os mesmos estão atuando linha a linha.
O terceiro problema envolve duas partes: criar um menu para que o usuário decida o que
deseja fazer e, com isso, codificar ou decodificar uma mensagem. Para aquela primeira
decisão, o programa lê cada letra da mensagem até o ponto final e as converte para
binário. Caso o número de bits deste binário for ímpar, então é adicionado um bit ao
número mais significativo (digito mais à esquerda). Após feito, está mensagem é
convertida novamente, desda vez para decimal, e mostrado ao usuário.
DEITEL, P.; DEITEL, H. (2016.). C How to program: with and introduction to C++.
Londres: Pearson, 8th ed..