Raiz Quadrada (Square Root) para Bash
Publicado por Sergio Spoladore 06/11/2006
[ Hits: 9.056 ]
Homepage: http://yetlinux.blogspot.com
Este raro script calcula a raiz quadrada de um número natural entre 0 e 2^63 - 1. Caso ultrapasse este valor, haverá erro de cálculo. Creio ter corrigido todos os bugs. Serve como exercício de programação.
Deixo que vocês o compreendam.
#!/bin/bash verif (){ str1="$1" [[ -z "$str1" ]] && { echo "Use $0 <numero>"; echo "<numero> entre 0 e 9223372036854775807."; echo "Caso ultrapasse, havera erro de calculo."; exit 1; } str2=${str1//[0123456789]/} [[ -n "$str2" ]] && { echo "Use somente digitos de 0 a 9." exit 1; } } cortazero(){ a1=$1; while [ "$a1" != "$b1" ]; do b1=$a1; a1=${a1##0}; done; echo $a1; } sqrt(){ tmp1=$1; [[ $((${#tmp1}%2)) -eq 1 ]] && tmp1='0'$tmp1; j=0; rq='0'; rt=''; while [ -n "${tmp1:$j:2}" ]; do rt=$rt${tmp1:$j:2}; rt=`cortazero $rt`; [[ -z "$rt" ]] && rt='0'; rq=`cortazero $rq`; [[ -z "$rq" ]] && rq='0'; for ((i=1;i<=10;i++));do [[ $rt -lt $(( (`cortazero $((2*$rq))`$i) *$i)) ]] && { rt=$((rt-(`cortazero $((2*$rq))`$((i-1)))*$((i-1)))); rq=$rq$((i-1)); break; } done; let j+=2; done; rq=`cortazero $rq`; [[ -z "$rq" ]] && rq='0'; echo $rq; } verif $1; sqrt $1;
Script de iniclização do Exim para Funcionamento com MailScanner
Script Administração SquidFacil Ubuntu 11.10
Serviço de conexão 3G - Debian
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
driver do repositorio debian nao atende o requisito minimo [RESOLVIDO]... (9)
Novo problema! Erro durante a atualização! (7)
Linux Mint não conecta Wi-Fi sem fio (1)
Tenho um problama de quebra de pacote e não descobri como resolver [RE... (2)