Se o objetivo é aprender como a função funciona, uma boa forma é ler o código fonte de alguma implementação da libc, tomarei por exemplo a glibc. Show A função powf (chamada internamente de __powf) está definida no /math/w_powf.c. A operação dela se resume a chamar a __ieee754_powf que faz a operação real e depois lida com edge cases. Essa segunda está definida em /sysdeps/ieee754/flt-32/e_powf.c. Não é um código fácil de ler, mas pode valer o esforço. O interessante nesse código é que ele computa em tempo constante. Não há loops ou recursão. Em uma outra implementação, a dietlibc, a função está no arquivo /libm/pow.c. Ela tem uma otimização para inteiros que calcula em um loop. O pow para não inteiros é calculado como exp(log(mant)*expo), delegando a outras funções. A função exp e log são implementadas em assembly usando instruções apropriadas da FPU que fazem o cálculo em hardware. Ver /i386/log.S e /i386/exp.S. Recomendo cuidado se pretende implementar sua própria versão de alguma dessas funções. Faça isso apenas se for realmente necessário (você estar em um ambiente extremamente limitado de recursos e não pode se dar ao luxo de incluir uma libc junto a sua aplicação). Escrever uma função equivalente pode ser muito interessante para estudos, mas não em produção.
Se a biblioteca math implementa isso, e não usa algum tipo de magia, então deve ter como implementar, não é mesmo? O que é a raiz quadrada? É o inverso da operação do quadrado, ou seja sqrt(x2) = xquando x * x = x2Sabendo isso dá pra pensar em algum algoritmo que calcule x a partir de x2. Por exemplo, podemos iterar desde 0 até achar um valor que quando multiplicado por si mesmo de um valor proximo ao de x2, e assim temos a raiz quadrada. para x := 0 ate INFINITO faça: se (x * x) >= x2 então: retorne xÉ ineficiente mas funciona. Assim da para tentar bolar outros algoritmos mais eficientes para números grandes, por exemplo da pra tentar ir percorrendo ao contrario usando divisão de x2 por x, etc. Só usar a criatividade, analisar as relações entre os números, o domínio de resultados possíveis podendo descartar coisas que dá pra saber de antemão que não vão fazer parte da solução, etc.
O termo sqrt () significa “raiz quadrada” que calcula a raiz quadrada de qualquer número positivo ou negativo. O sqrt () em C pega um único valor como entrada e calcula sua raiz quadrada como saída. Aceita qualquer valor positivo ou negativo. Você pode usar a biblioteca “math.h” para implementar a função no código. A função sqrt () também calcula a raiz quadrada de tipos de dados float, inteiros ou long double. Tudo que você precisa fazer é usar um operador de elenco para converter o tipo de duplo. Para trabalhar com números flutuantes simplesmente use a função “sqrtf ()” e se você quiser lidar com o tipo duplo longo em seguida, use "sqrtl ()". Se você inserir qualquer valor negativo como uma entrada, a função sqrt () em C mostra um domínio erro. Venha, vamos verificar como a função sqrt () funciona na linguagem C. Aqui iremos elaborar sqrt () usando o compilador GNU GCC no Windows 10. Exemplo 1Nosso primeiro exemplo é calcular a raiz quadrada de um número flutuante longo usando a função sqrt (). Agora vamos verificar como o programa funciona. Abra o compilador GNU GCC no Windows 10 e selecione um novo arquivo vazio no menu de arquivos. Para criar um novo arquivo, você também pode usar um atalho de teclado ‘Ctrl + Shift + N’. Agora o arquivo foi aberto com sucesso no Editor GNU. Bem, é hora de escrever um código C para elaborar sqrt (). Estaremos discutindo a maneira mais simples e fácil de calcular uma raiz quadrada usando sqrt () em linguagem C. Portanto, você deve adicionar as bibliotecas ‘stdio.h’ e ‘math.h’. Podemos então definir uma função principal no programa. Depois disso, usamos um método de declaração para declarar uma variável. Em seguida, definimos duas funções, ou seja, printf () e scanf (). Em seguida, a função prinf () em C é usada para imprimir o valor inserido por um usuário e a função scanf () obtém um número flutuante longo (% lf) do usuário. Em seguida, usamos uma função sqrt () para calcular a raiz quadrada de um número inserido pelo usuário. Depois de escrever o código com sucesso, agora é hora de salvar seu arquivo de código com a extensão ‘.cc’ conforme abaixo. O nome do arquivo pode ser diferente em sua ilustração. Agora, construa e execute o arquivo ou simplesmente use a tecla de atalho “F9” para verificar a saída de um código C de sqrt (). Siga as etapas fornecidas no console e clique na tecla “Enter”. Exemplo 2Nosso próximo programa é calcular a raiz quadrada de um número de 1 a 10 usando a função sqrt (). O programa pega um número de 1 a 10 como entrada e exibe uma raiz quadrada desse número como saída. Vamos passar para o compilador GNU GCC no Windows 10 e selecionar um novo arquivo vazio ou usar o mesmo arquivo “Program1.cc”. Usamos o mesmo arquivo de código “Program1.cc” e fizemos alterações nele. Aqui, usamos as mesmas bibliotecas padrão ‘math.h’ e ‘stdio.h’ assim como fizemos no exemplo anterior. Nesta ilustração, usamos uma variável inteira e um loop “for” para imprimir todos os números de 1 a 10. Usamos a função sqrt () na função printf () que recebe o tipo de dados double como entrada, então ajustamos a variável inteira para double. A função printf () mostra todos os números e suas raízes quadradas. Salve novamente o arquivo “Program1.cc” para execução posterior. Então, novamente, crie e execute o código ou simplesmente use a tecla F9 para verificar a saída de um código C de sqrt (). Após compilar o programa acima, você obterá o resultado desejado. Exemplo 3Nosso próximo programa é calcular a raiz quadrada de um número positivo usando a função sqrt (). Aqui está outro exemplo que recebe um número inteiro positivo como entrada e exibe um número inteiro positivo como saída. Vamos passar para o compilador GNU GCC no Windows 10 e selecionar um novo arquivo vazio ou usar o mesmo arquivo “Program1.cc”. Usamos o mesmo arquivo de código “Program1.cc” e fizemos alterações nele. Usamos o mesmo ‘math.h' e 'stdio.h'Bibliotecas padrão como a função principal, assim como fizemos no exemplo acima. Nesta ilustração, definimos duas variáveis inteiras. Uma variável é usada para entrada e a outra é usada para saída. Definimos duas funções, ou seja, printf () e scanf (). Então função prinf () em C é usado para imprimir o valor inserido por um usuário e a função scanf () pega um número do usuário para mostrar sua raiz quadrada. Em seguida, usamos uma função sqrt () para calcular a raiz quadrada de um número inserido pelo usuário. Por último, usamos uma função printf () que mostra o valor calculado da raiz quadrada. Observação: Se o seu código não for executado, aborte a ação anterior e clique na guia construir e executar para execução posterior. Novamente, crie e execute o código ou simplesmente use a tecla de atalho “F9” para verificar a saída de um código C de getch (). ConclusãoNeste tutorial, discutimos o uso e a importância da função sqrt () e sua implementação usando o compilador GCC. Discutimos três exemplos diferentes para a compreensão da função sqrt () na linguagem de programação C. Agora você pode usar facilmente inteiros e números de ponto flutuante longos com a função sqrt () na linguagem de programação C.
Visão geral da raiz quadrada em CPara atender aos requisitos de negócios, às vezes é necessário usar funções matemáticas no desenvolvimento de aplicativos. Embora algumas operações básicas possam ser executadas usando expressões simples, talvez não seja possível executar expressões avançadas sem a ajuda de funções matemáticas. As funções matemáticas avançadas incluem funções complexas usadas para resolver tipos específicos de problemas matemáticos. Existem várias funções matemáticas disponíveis em todas as linguagens de programação e o mesmo ocorre com a linguagem C. Na linguagem de programação C, temos o arquivo de cabeçalho math.h usado para alavancar funções matemáticas. Aqui nesta seção, aprenderemos sobre como encontrar a raiz quadrada usando a linguagem de programação C. Usaremos o arquivo de cabeçalho math.h para calcular a raiz quadrada de qualquer número. Lógica de raiz quadrada em C
Mas se o caso for considerado positivo, podemos aplicar a lógica abaixo. Int counter=1, sqroot=1, val=14; return counter - 1;
Como encontrar a raiz quadrada em C?Uma linguagem de programação c fornece uma plataforma para usar várias abordagens para descobrir a raiz quadrada de qualquer número. Podemos elaborar nosso próprio código ou usar a função predefinida em. C para descobrir a raiz quadrada. Abaixo está o código que pode ser usado para obter o quadrado usando uma expressão matemática simples. O uso do método abaixo ajudará na obtenção do valor inteiro da raiz quadrada. Por exemplo, se a raiz quadrada de qualquer valor for 4.965, ele mostrará apenas 4 como raiz quadrada. Funcionará perfeitamente bem com os números cuja raiz quadrada é um número inteiro. Como a raiz quadrada de 25 é 5 e o código abaixo funcionará com precisão para calcular a raiz quadrada desse número. Calcular raiz quadrada sem usar a função embutida#include Void main() ( val=9; if (val == 0 || val == 1) printf(“The square root is %d”, val) ; exit() ; int counter = 1, sqroot=1, output; while (sqroot <= val) ( counter++; sqroot = counter*counter; ) output= counter - 1; printf(“The square root is %d”, output) ; ) Neste programa, o usuário estará obtendo a saída no formato inteiro, pois todas as variáveis pertencem ao tipo de dados int. Neste exemplo, a saída será 3, pois a raiz quadrada de 9 é 3. Se o usuário optar por encontrar a raiz quadrada de 38, obterá 6 como saída. Calcular raiz quadrada usando a função embutida#include #include int main() ( double val = 87, sqroot; sqroot = sqrt(val); printf("The square root of %lf = %lf", val, sqroot); ) Neste programa, usamos a função embutida conhecida como sqrt, que é usada para encontrar a raiz quadrada de qualquer número. A saída é armazenada no tipo de dados duplo. O resultado desse cálculo de raiz quadrada usando este programa será 9.327. Resultado: ConclusãoA raiz quadrada é a função matemática que pode ser implementada usando a linguagem de programação C. Os desenvolvedores podem elaborar o código para calcular a raiz quadrada e também podem usar a função integrada para calcular o mesmo. Sqrt é a função fornecida por C que permite calcular a raiz quadrada rapidamente. O uso desta função não requer nenhum esforço. Não apenas em C, mas em todas as linguagens de programação, existem funções embutidas que facilitam o desenvolvimento e é certo que elas devem ter uma função para calcular a raiz quadrada, o que nos permite alavancar as funções matemáticas predefinidas. Artigos recomendadosEste é um guia para a Raiz quadrada em C. Aqui discutimos uma visão geral da Raiz quadrada em c, lógica e também como encontrar a Raiz quadrada juntamente com um exemplo. Você também pode consultar os seguintes artigos para saber mais -
|