Crivo de Eratóstenes Simples em Fortran 95
Para compilar, use: "gfortran sieve001.f95 -o sieve001", igual GNU Pascal e GCC Particularidades desta linguagem: - Início e fim de blocos demarcados por palavras, lembrando Pascal; - Cláusula "Program" ao início do programa semelhante a Pascal; - Declaração de variáveis no início do código, como em Pascal. - Arrays podem ser bem flexíveis ao serem dimensionados; - Usam-se parêntesis para determinar elementos de um array; - A simples declaração "LISTAGEM(:)=12345" preenche todos os elementos do array LISTAGEM com o mesmo valor. - Cláusula de fim de blocos terminam geralmente com a seguinte estrutura: "END" + "Comando titular do bloco" + "Identificador criador pelo programador". Exemplos: END DO, END IF, END PROGRAM XXXXXXX, END FUNCTION XXXXXXX; - Comentários são declarados após um ponto de exclamação; - Operadores lógicos são identificados por palavras abreviadas entre pontos (.OP.). Exemplos: .AND. .OR. .NOT. Provavelmente foi daí que veio .AND., .T. .F. do Dbase, Clipper etc.; - Originalmente "maior que (>)", "menor que (<)", "maior ou igual que (>=)", "menor ou igual que (<=)" etc em Fortran escreviam-se igual ao que se usa hoje em Bash Script ou no comando test: * Maior que: .GT. (Greater Than). Em Bash: -gt * Menor que: .GT. (Less Than). Em Bash: -lt * Maior ou igual que:: .GE. (Greater or Equal Than). Em Bash: -ge * Menor ou igual que:: .LE. (Less or Equal Than). Em Bash: -ge * Igual a: .EQ. (Equal). Em Bash -eq * Diferente de: .NE. (Not Equal). Em Bash -ne Usados dentro de colchetes em scripts em comandos "if/elif" e "while", por exemplo. - Atualmente os operadores simbólicos consagrados do tipo ">" para a omparação "maior que" podem ser usados em lugar das letras e pontos. No script fica como exemplificado. - Formatação de entrada/saída de strings e números, são mais complicadas que em C. São feitas com uma variável de string pré-declarada ou com um comando chamado "FORMAT", podendo até ter um número de linha de código (label) para identificá-lo. FORMAT lembra um comando chamado "PICTURE" do Clipper/XBase; - Impressão de término de linha ('\n' em C) no comando Write pode ser cancelada com a incomum declaração "Advance='no'"; - Cláusula "PARAMETER" pode definir constantes; - Strings são definidas por uma notação semelhante a uma multiplicação de um tipo de dado (Character) por um valor. Exemplo: Character*5. - Não existe operador para resto de divisão (módulo, sinal de porcentagem "%" em C), sendo necessário o uso de uma função já implementada na linguagem (não aparece neste código). - Não encontrei operador de auto-incremento semelhante ao "duplo mais" em C. Fortran não é lacônico, conciso e simbólico quanto C, porém pode ser tão poderoso quanto. Existem algumas facilidades sintáticas que não devem ser subestimadas.
Por: Perfil removido
Conectar o gns3 na Internet
Esse script visa auxiliar o usuário Linux a conectar o gns3 na Internet. Para executar, digite: $ bash ./bridge.sh Siga os passos de 1 a 8, o restante é opcional. Após realizar o descrito, abra o gns3 e arraste a nuvem e adicione uma interface do tipo tap0.
Por: Alex Marques
Exportar endereços do Evolution para vCard
O Evolution armazena os seus endereços em um arquivo de banco de dados Berkeley DB. Este script demonstra como é possível ler este tipo de arquivo com o Ruby para exportar os endereços para vCard. Permite exportar os endereços para vCard, que pode ser importado por uma grande variedade de programas. Procedimento alternativo para quando o Evolution não estiver disponível. Requer a biblioteca "libdb-ruby1.8" (Ubuntu) ou similar, que pode ser obtida em: http://moulon.inra.fr/ruby/bdb.html
Por: Felipe Rafailov
Algoritmo de Fatoração de Fermat (FFA) em Ruby
FFA: Fermat Factoring Algorithm (Algoritmo de Fatoração de Fermat) Método de fatoração inventado por Pierre de Fermat: Todo numero pode ser escrito como diferença de dois números elevados ao quadrado: n = a² - b², ou n = a*a - b*b; Esta expressão pode ser escrita como n = (a+b) * (a-b), ou n = (a+b) (a-b), onde a soma e a subtração dos valores "a" e "b" são dois fatores do número em questão. Se n é primo, então a-b = 1 e a+b=n; Para números com diversos fatores e divisores existem diversos "a" e "b" que satisfazem a expressão. Este algoritmo testa em progressão diversos valores "b" em "i + j*j", ou i + j², com i=n no primeiro passo. Se i + j*j for um quadrado perfeito, então calcula-se com base nisto os correspondentes a e b da expressão anterior, tendo-se então encontrado um fator. Fator este que não é necessariamente um número primo. Este programa trabalha com os fatores sendo escritos em uma lista, sendo pegos um a um até o final. A função de fatoração retorna uma estrutura com um par de números que se multiplicados retornam o valor de entrada, ordenados em maior e menor. No retorno, a parcela menor substitui a posição do elemento pego anteriormente e a parcela maior é inserida ao fim da lista principal. Quando o valor menor do par é um, o valor maior é um número primo, então continua-se com o próximo elemento da lista principal, encerrando-se ao último elemento. Por último, a lista de fatores é ordenada para apresentação. Obs[1]: Por enquanto não fatora números negativos. Obs[2]: É possível ainda um teste que reduz o número de repetições do while da sub-rotina.
Por: Perfil removido
Insertion Sort em Scilab
Função Scilab que ordena um vetor pelo método Insertion Sort.
Por: White Hawk
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Assisti Avatar 3: Fogo e Cinzas (4)
Conky, alerta de temperatura alta (11)









