Solicitação de algoritmo 3

A solicitação foi realizada por Lendel dos Santos Rodrigues. A dúvida envolve um enunciado maior, mas era específica em apenas um ponto da questão, então fiz reduções no código apenas para a dúvida específica. O enunciado segue abaixo, mas a dúvida envolvia a utilização da expressão sen(i)/cos(i) dentro do problema.

Enunciado: defina em uma unidade independente: um novo tipo, usando typedef, para representar um vetor com as seguintes características: quantidade máxima de componentes: 50; componentes reais. Criar uma função independente para: calcular os n (1 <= n <= 50) componentes reais do vetor através da expressão sen(i) / cos(i).

O código enviado foi bem estruturado em 3 arquivos, um contendo a função principal, o arquivo de header das funções e o outro as funções propriamente ditas. O código estava inclusive comentado, o que é muito bom. Segue os códigos contidos nos 3 arquivos. Eu removi dos códigos aquilo que não objeto de dúvida da solicitação.

Vamos as correções, começando com o arquivo de header. Nele uma correção necessária é na definição do typedef. A questão solicitava um vetor com valores reais e foi especificado no código um vetor de inteiros. A correção deve ser feita na linha 6, alterando ela para: typedef float Vetor[MAX];

Como o objetivo da questão está em preencher um vetor com valores, eu especifiquei uma função para mostrar os valores do vetor e ela já está aparecendo no header.

O Lendel preencheu o vetor em sua função com valores aleatórios entre 0 e 50. É no preenchimento do vetor que paira dúvida da solicitação. O enunciado, que pede que o preenchimento seja feito com o resultado da expressão sen(i) / cos(i). A alteração segue abaixo. Um detalhe importante é que a função para o seno é a função sin() e não sen() como aparece no enunciado.

Veja que o enunciado solicitou a variação de
1 <= n <= 50. Como os valores da variável i do laço de repetição estão variando de 0 até 49, fiz a expressão com o valor de i acrescido de 1.

A alteração foi bem simples. A dúvida do Lendel deve ter sido realmente na interpretação do que era necessário fazer na questão. Um detalhe é que para utilizar as funções sin() e cos() é preciso fazer a inclusão da biblioteca cmath (feita na linha 2).

Vendo agora o arquivo com o código da função principal temos algumas modificações. Eu removi a inclusão da biblioteca cmath já que ela não é necessária nesse arquivo, apenas no que contem a codificação das funções. Eu também fiz a inicialização da variável n. O uso de variáveis não inicializadas é grave, embora seja um esquecimento corriqueiro.

Share

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.