Exercícios de instruções de ciclo na linguagem C Com esta lista de exercícios o aluno pratica a escrita de programas que envolvem ciclos e a definição e invocação de novas funções . a) Elaborar um programa para mostrar uma tabela de senos, cosenos e tangentes para ângulos de 15 em 15 graus, entre 0 e 360 graus, como mostra a fig. seguinte. x 0: 15: 30: 45: 60: 75: 90: 105: 120: 135: 150: 165: 180: sin(x) 0.00000 0.25882 0.50000 0.70711 0.86603 0.96593 1.00000 0.96593 0.86603 0.70711 0.50000 0.25882 0.00000 cos(x) 1.00000 0.96593 0.86603 0.70711 0.50000 0.25882 0.00000 -0.25882 -0.50000 -0.70711 -0.86603 -0.96593 -1.00000 tg(x) 0.00000 0.26795 0.57735 1.00000 1.73205 3.73205 Infinite -3.73205 -1.73205 -1.00000 -0.57735 -0.26795 -0.00000 ................................................. b) Elaborar um programa que leia um número inteiro positivo representando o número de bilhete de identidade, e calcule o dígito de verificação (apresentado à frente do número no BI). O cáculo consiste em calcular a soma pesada dos dígitos, em que o dígito de menor peso tem peso 2 , o seguinte peso 3 e asssim sucessivamente. O dígito de verificação deve ser igual à diferença entre 11 e o resto da divisão por 11 da soma obtida. E se o resultado dá 10 ou 11? Uma vez que há apenas um dígito de verificação procure descobrir o que acontece nesse caso. c) Elabore um programa que leia do teclado (standard input) dois valores inteiros positivos e calcule se esses dois números lidos são ”amigos”. Diz-se que dois números são amigos se cada um deles é igual à soma dos divisores próprios do outro. Divisores próprios de um número positivo n são todos os divisores inteiros positivos excepto o próprio n. Um exemplo de números amigos são os números 284 e o 220, uma vez que a soma dos divisores de 220 dá 284 e vice-versa, como é mostrado a seguir: Divisores próprios de 220-> 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 Divisores próprios de 284-> 1 + 2 + 4 + 71 + 142 = 220 d) Realizar e testar a função double calc_juros(int total_anos, double mi, double tax) que retorna o montante total obtido em juros de um depósito a total_anos anos, com montante inicial mi à taxa de juro anual tax. e) Utilizando a biblioteca e tendo como única função auxiliar a função de desenho de uma recta (graph_line), desenhe um qudrado a cheio, de côr vermelha, encostado ao canto superior esquerdo da janela gráfica e 200 píxeis de lado. f) Faça um program idêntico ao da alínea e), mas agora tendo como única função de suporte a função de desenho de um píxel (graph_pixel). g) Generalize o programa realizado na alínea anterior, de modo a que possa desenhar um número indeterminado de rectângulos a cheio, lendo do standard input, para cada rectângulo, a posição do canto superior esquerdo, o comprimento e a altura e a côr, como mostrado na fig. seguinte. No final de cada rectângulo, o programa questiona o utilizador, como é mostrado, se pretende, ou não, desenhar mais rectângulos. h) Realize um programa para apresentar, centrado na janela gráfica, um tabuleiro quadrado de dimensão e número de quadrículas dado, como indica a fig. seguinte. Note que a dimensão do tabuleiro tem de ser múltipla do número de quadrículas. i) Realize um programa para desenhar rectas na janela gráfica, dadas as coordenadas dos pontos inicial e final, usando como única função gráfica de suporte a função graph_pixel. Bom trabalho Jorge Martins