Scripts sugeridos

Dado três valores, informar o maior e menor número

Script para iniciantes, usado para verificar o maior e menor número entre três valores digitados.

Por: Milton Caetano Filho


Cálculo de logaritmo de um número por um terceiro método em C

Este é um terceiro método de cálculo de logaritmos e o curioso é que sempre são necessários os mesmos números de passos para o cálculo. Bem diferente do que cito como métodos "A" e "B". Não é nada inovador e é do tipo de coisa vista num curso escolar sobre a matéria. Detalhes no código. Não precisa de derivadas. Apenas saber raiz quadrada. O que significa que dá prá fazer com o auxílio de uma calculadora do tipo que não é científica e algumas anotações caso esta calculadora tenha restrição de memória. Portanto a precisão e o custo computacional estão ligados diretamente ao algoritmo de raiz quadrada usado. Ele usa o mesmo método quese usa para saber quantas casas decimais ou quantos bits tem um número. Ao se escrever um número de binário para decimal, são usadas somas de potências de 2 e *** qualquer número é uma soma de potências não-repetidas de 2. Como se faz mesmo? Divide-se por 2 repetidas vezes e anotam-se os restos, 0 e 1 alternados que serão os dígitos de escrita. Por exemplo: 32 = 2 elevado à 5. São feitas 5 divisões por 2. Por acaso esse 5 é o expoente e o logaritmo. Para 33 = 2 elevado à 5. mais 1. A diferença é que sobrou 1. Se a parte inteira desse logaritmo de 33 base 2 é 5 e pôde ser calculada, então não existiria algo a ser feito com esse 1 que sobrou prá saber qual é o logaritmo de 33 base 2 fracionado? A resposta é sim. Numa divisão, divisão mesmo, quando o resto é maior que o número prá se dividir, coloca-se a vírgula e vão sendo colocados zeros quando não se consegue dividir. Se o objetivo era o de descobrir quantos 2 existiam dentro de 33, agora esse objetivo deve ser mudado porque 2 já não é possível com o resto 1. Agora deve-se descobrir quantas "raiz quadradas de 2" existem neste resto. Dividir o resto por sqrt(2) quantas vezes for possível, contar quantas divisões foram feitas e colocar após a vírgula colocada após o cinco. E quando o resto for de novo menor que o teste, que é "raiz quadrada de 2", muda se de novo o teste. Muda-se para "raiz quadrada da raiz quadrada" de dois. Também chamada de a "raiz quarta". Faz-se a mesma coisa: contam-se o número de divisões e anota-se na casa decimal seguinte à da última contagem. O único problema é que este método depende do sistema de numeração adotado. Esse exemplo citado acima foi para base 2. Para fazer com base 10, precisa trabalhar com "raiz décima". E agora? Da mesma forma que inteiros são representados por somas de potências de dois, fracionários também podem ser representados. Representados por somas de potências de 0.5 (ou 1/2). Ficaria a sequência: 1/2, 1/4, 1/8, 1/16, 1/32... 1/2 = 0.1 binário 1/4 = 0.01 binário 1/8 = 0.001 binário 1/16 = 0.0001 binário 1/32 = 0.00001 binário Da mesma forma que existem decimais de casas infinitas, existiriam binários de casas infinitas. No caso do teste de divisão existiriam duas hipóteses: "dá prá dividir" o resultado da divisão é 1 "não dá prá dividir" o resultado da divisão é 0 Sempre havendo resto. Se fosse prá escrever em binário de baixo nível na memória, bastava deslocar uma casa tipo "x >> 1" em ponto flutuante e inverter o bit, mas parece que em C não há como e ainda não me inteirei do que poderia ser feito. Ainda. Então o jeito é somar potências de (1/2) decimais numa variável conforme o resultado da divisão seja 0 ou 1. O expoente da potência somada corresponde à casa fracionária binária. Fiquem à vontade para sugestões, dúvidas ou apontar erros e simplificações.

Por: listeiro_037


Imprime um mapa de caracteres ASCII

Esse código imprime o mapa de caracteres ASCII.

Por: fechado


Uptime para tempo humano

Tive que converter o uptime da maquina para tempo legível. Primeiramente, recolhi o valor com um script (que fazia outras coisas além dessa, óbviamente): cat /proc/uptime|cut -f1 -d. >/tmp/tempo Depois, chamava o programa em C de dentro desse script.

Por: Djames Suhanko


SSH PortScan

Código bastante simplificado que verifica se um determinado IP definido pelo usuário está com a porta 22 aberta ou não. Este é o principio de um port scan. * Código para estudo.

Por: André





Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts