Ir ao conteúdo
  • Cadastre-se

C C Raiz quadrada exata - Linguagem C


Eduardo Ozelame

Posts recomendados

Olá pessoal.

Tudo bem?

 

Estou cursando uma disciplina de Algoritmos e estou com um pouco de dificuldade, poderiam me ajudar nessa questão em Linguagem C?

 

 

Existe um algoritmo interessante para se obter a raiz quadrada de um número quando ela é exata. Para isso, basta subtrair números ímpares consecutivos do número do qual se deseja retirar a raiz quadrada. O número de vezes será a raiz do número. Por exemplo:

 

image.png.c2d3ae61c287f3fc330329c429d27a92.png

 

No exemplo, subtraíram-se de 25 os 5 primeiros números ímpares consecutivos até que se chegasse 0. Assim, a raiz quadrada de 25 é 5. Escreva um programa que realize a leitura de um número inteiro.

Em seguida este número é passado a uma função que irá calcular e retornar a raiz quadrada deste número utilizando o algoritmo descrito acima.

O resultado (a raiz quadrada do número) deverá ser escrito na tela pela função chamadora.

 

Obrigado

Abraço colegas.

Link para o comentário
Compartilhar em outros sites

 

Pessoal, o que acham deste programa?

Está coerente?

 

// Inclusão de Bibliotecas
#include<stdio.h> 
#include<stdlib.h>
#include<math.h>
#include<string.h>

 

int main() 
{

    int numero, termos, soma;


    do {

        printf("\nInforme um numero: ");
        scanf("%d", &numero); 
        

        for(termos=1, soma=0; soma<numero; termos++) 
        {
            soma = ( termos * (2+(termos-1)*2) )/2;         
        }

        if(numero >= 0) {

            if (soma == numero) 
                printf("A raiz quadrada exata de %d eh %d\n", numero, termos-1);
                
            else 
                printf("O numero %d nao e raiz exata!\n", numero);
            
        }

    } while (numero>=0); 
    

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Eduardo Ozelame Dê uma olhada nessa referência, pesquise mais sobre funções.

 

PS: eu vi que você criou 2 outras postagens, e aqui no fórum esperamos que você mostre o que tentou fazer, assim como acabou de mostrar, para que possamos ajudar :)

Faça o mesmo com as outras 2, caso contrário, não terá resposta alguma.

Link para o comentário
Compartilhar em outros sites

Pense mais em seguir as ações enunciadas; entenda a degradação do número inteiro lido em ímpares consecutivos, que é a aparte centra do algoritmo e não aberto a interpretações, com clareza experimente imprimir cada um dos números ímpares, como no exemplo. Por último, olha que 'soma' é somente no nome, pois apesar da variável se chamar soma a expressão (no lado esquerdo) não é uma simples adição.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Link para o comentário
Compartilhar em outros sites

@GabrielLV Eu estava tentando fazer, achei que pelo menos teria alguma dica de caminho para seguir, um norte... Mas infelizmente nem nisso podem ajudar? Que pena.

Mas já que querem um rascunho, vou deixar o programa aqui pronto para que possa ajudar outros colegas.

 

 

// Inclusão de Bibliotecas
#include<stdio.h> 
#include<stdlib.h>
#include<math.h>
#include<string.h>

// Lista de Variáveis
int impar=1, numero=0, contador=0, raiz=0;

// Rotina do execução
int main()
{
    
    printf("Informe o numero que voce deseja obter a raiz: \n");
    scanf("%d", &numero);
    
    raiz=numero;
    
    while (numero>0) 
    {         
        numero = numero - impar;    
        impar = impar+2;
        
        contador = contador +1;    
    }

    if (numero<0)
    {
    printf("A raiz não exata ");    
    }
    
    else
    {
    printf("A raiz exata de %d eh %d: ", raiz,contador);
    
    }
    
}//FIM
 

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

@Eduardo Ozelame

19 minutos atrás, Eduardo Ozelame disse:

achei que pelo menos teria alguma dica de caminho para seguir, um norte... Mas infelizmente nem nisso podem ajudar? Que pena.

O caminho é esse:

Em 15/11/2020 às 17:36, Lucca Rodrigues disse:

Dê uma olhada nessa referência, pesquise mais sobre funções.

Fora isso, eu já disse como a função deve ser feita.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!