Ir ao conteúdo
  • Cadastre-se

Posts recomendados

Boa noite galera! Sou novo aqui no fórum e vou iniciar o curso de análise e desenvolvimento de sistemas.
 
Eu estava querendo fazer um programa simples para calcular a raiz quadrada de um número com precisão de duas casas decimais, procurando pela internet achei o seguinte programa:
 
{ Calcula a raiz quadrada de um numero com duas casas decimais de precisão. }

program RaizQuadrada;uses crt;var Raiz, x: real;Achou: boolean;beginclrscr;write('Digite um numero : ');readln(x);writeln;if x < 0then writeln('Nao existe raiz quadrada de um numero negativo.')else beginAchou := false;Raiz := 0.01;while not(Achou) dobeginif (Raiz * Raiz) = xthen Achou := trueelse if (x - (Raiz * Raiz)) <= 0.01then Achou := trueelse Raiz := Raiz + 0.01;end;writeln('A raiz quadrada de ', x:10:2, ' e = ', Raiz:10:2);end;writeln;write('Pressione [Enter] para prosseguir.');readln;end.

Achei este programa muito grande pra uma tarefa tão simples, então fiz o programa desse outro jeito:

program Raiz_quadrada;varA: real;beginwrite('Digite um numero: ');readln(A);writeln;if (A < 0) thenwriteln('Não existe raiz quadrada de um numero negativo!')elsewriteln('A raiz quadrada de ',A:0:2,' é ',sqrt(A):0:2);writeln;write('Tecle <ENTER> para encerrar');readln();end.

 
Os dois programas fazem a mesma coisa, minha dúvida é a seguinte: Realmente tem que usar todas as funções do primeiro programa ou o segundo programa já está de bom tamanho??
 
Desde já agradeço pela ajuda!

Link para o comentário
Compartilhar em outros sites

Boa noite!

 

Quem tem que definir se está de bom tamanho é você, se programa atende a sua necessidade e faz o que você quer/precisa então

está bom; o objetivo foi alcançado.

 

Mas caso esteja preocupado com erros na utilização do programa por outras pessoas por exemplo, você tem então que pensar em

formas de impedir inserção de caracteres e valores inválidos, impedindo assim falhas na execução do programa.

 

Acho que é isso! Até próxima e boa sorte!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá. Só complementando.

 

Os dois programas fazem a mesma coisa, minha dúvida é a seguinte: Realmente tem que usar todas as funções do primeiro programa ou o segundo programa já está de bom tamanho??

Desde já agradeço pela ajuda!

 

Então, depende da proposta para o «Eu estava querendo fazer um programa simples para calcular a raiz quadrada de um número com precisão de duas casas decimais, procurando pela internet achei o seguinte programa:»

 

Se for seguir o que está sendo pedido, o segundo código TALVEZ NÃO SEJA VÁLIDO, pois ele não está "calculando com precisão de duas casas decimais", mas sim "exibindo um resultado com precisão de duas casas decimais". Na minha opinião são duas coisas diferentes... um calcula dessa forma, o outro calcula um valor aproximado (se não for exato, SEMPRE será uma valor irracional, logo terá que ter aproximação), e após é feito um "arredondamento" pela formatação ":x:y" lá na hora de exibir... (a precisão do cálculo é muito maior, apenas é aproximado depois).

 

Em fim, na minha opinião, a primeira forma é mais elegante e faz mais sentido, pois no segundo está basicamente "utilizando uma função pronta e pronto". Um é mais didático, outro mais simples. Obs.: Se for apenas para "saber a resposta", usa a calculado do Windows, por exemplo...

 

 

***

 

Como citado New Nerd, dá para implementar outro detalhes interessantes para "verificação dos valores de entrada" como o "caracteres e valores inválidos". Você já implementou para os valores negativos, mas dá também para "letras" e outros caracteres (precisa de comando especiais... não tão conhecidos para iniciantes)... por ai vai.

 

 

Para o primeiro código, é fácil verificar que o código não está muito otimizado, já que ele apenas está meio que comparando valores de "0.01" em "0.01"... e isso de forma crescente!!, ou seja, para calcular a raiz de 100.000, serão feitos mais de 300.000 cálculos... dá para reduzir e muito essa conta!!!! ou pensar ou "pegar" outra forma de cálculo e implementar.

 

 

No aguardo.

 

Abraços

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...