Função Fatorial Recursiva em Fortran 95
A velha função fatorial, recursiva, em Fortran versão 95. Para compilar, use: "gfortran fatorial001.f95 -o fatorial001", igual GNU Pascal e GCC Durante a execução (após compilado), o programa pede um número de um intervalo pré-definido de 0 a J. Insistentemente, há um loop indefinido para isto. "J" deve ser no máximo até 20, já que o número definido por 21! (fatorial de 21) excede 2^63. O que há de diferente no código são as particularidades desta linguagem: - Blocos com início e fim definidos por palavras, lembrando Pascal; - Cláusula "Program" semelhante a Pascal; - Comentários vêm após um ponto de exclamação; - Operadores lógicos definidos por palavras entre pontos (.OP.). Provavelmente foi daí que veio .AND., .T. .F. do Dbase, Clipper etc.; - Máscaras de formatação com strings, algo mais complexas que C para formatação de entrada/saída de dados. Podem ser feitas com um comando chamado "FORMAT". De novo uma referência ao "PICTURE" do Clipper; - Necessidade de uma estranha expressão (Advance='no') para evitar avanço de linha; - Dimensionamento do tamanho do tipo de dados (KIND=8). Esta cláusula aumenta o inteiro para 64 bits. 8 é o valor máximo; - Cláusula "PARAMETER" para declarar constantes; - Funções e subrotinas devem estar num bloco determinado em uma áres definida pela cláusula "CONTAINS"; - Não foi usado algo como "RETURN" ao final, mas uma variável especificada para retorno do valor; - Variáveis de sequências de caracteres são definidas por uma coisa que "lembra" uma multiplicação de um tipo (Character) por um valor (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). A sintaxe de Fortran é ricamente cheia de recursos tanto quanto C. Infelizmente não tão lacônica e taquigráfica quanto. Seu código compilado com gfortran gerou um executável pequeno, mesmo sem usar "strip -s". É tão verborrágica quanto Pascal e até mais, lembrando também Clipper e COBOL.
Por: Perfil removido
Crivo de Eratóstenes Simples em Pascal
Esta implementação do Crivo de Erastótenes possui diretivas de pré-compilação que permitem que o código seja compilado por fpc (Free Pascal) ou gpc (GNU Pascal). Na prática é igual a um IF ... THEN ... sem usar BEGIN ... END e usando ENDIF. Sendo também que esta etapa ocorre como uma filtragem de código, antes deste ser compilado. No caso os compiladores consideram na compilação o código dentro de {$ifdef X} ... {$endif} somente se houver uma identificação de um símbolo (aqui chamado de X) no contexto Já {$ifndef X} ... {$endif} faz o contrário: compila se a definição do símbolo não for encontrada. A pré-definição "FPC" indica uso do compilador Free Pascal. A pré-definição __GPC_RELEASE__ indica uso do compilador GNU PASCAL. O código demarcado, portanto, só será usado conforme estes símbolos aparecerem {ifdef ...} ou não {ifndef ...}, isto é, conforme os compiladores utilizados. O nome dos tipos de dados numéricos para valores grandes é diferente nos dois compiladores e foi utilizada uma predefinição na área TYPE do código. Dentro desta área o código é selecionado em tempo de compilação conforme a diretiva. Mais abaixo também está outro par de compilações condicionais. A procedure Inc (...) parece não funcionar com valores não-ordinais ou inteiros no Free Pascal, portanto foi escolhido o incremento na forma-padrão como opção. Acredito que o uso de Inc (...) funcione do mesmo modo que a variável com "duplo mais" (V++) ou "mais igual" (V+=2) funcionam otimizados em C.
Por: Perfil removido
Crivo de Eratóstenes Simples em PHP
Não é muito comentado, mas pode-se fazer scripts que rodem direto do terminal para tarefas corriqueiras em PHP. Igual a Perl, Python e Shellscript. Como o objetivo desta linguagem é ser uma página dinâmica de web (ou CGI, mais raro), essa observação passa por desapercebido. Para rodar um script em PHP igual aos outros script, necessita-se de três coisas: 1ª Permissões de execução: "chmod +x ..." 2ª Colocar She-Bang na primeira linha: "#!/usr/bin/php" 3ª Todo o código deve estar entre as tags "". O que estiver fora das tags será impresso na tela sem ser interpretado. ================================================================= Este script tabula números primos. A contagem está marcada para o intervalo de 1 até 10000000 (dez milhões). Um script em Perl de código muito similar tabulou aqui os ńúmeros do intervalo de um a um milhão em quase quatro segundos. Este script fez o mesmo teste de um a um milhão em pouco menos de três, isto é um segundo a menos. Mas o que me chamou a atenção foi que o mesmo teste para ńúmeros do intervalo de um a dez milhões levou em Perl 1min 17seg (um minuto e desessete segundos). Este script aqui em "PHP de terminal" fez a mesma tabulação no intervalo de um a dez milhões em 57seg (cinquenta e sete segundos). Essa diferença de 20 segundos é muito significante para não ser notada. Se fosse em hardware mais antigo, seria uma eternidade. PHP mais rápido que Perl para ser usado em terminal?? Ainda é pouco para comparação. Falta testar acessos a recursos de sistema e ver até onde vai o poder de fogo de ambas as linguagens para tarefas similares. Desde CGI, administração de sistemas e uso em aplicativos... Pra variar, não sei se ainda pode ser melhorado, nem onde pode falhar. Aguardo por bugs.
Por: Perfil removido
Array de números aleatórios não-repetidos de um intervalo em Pascal
Este programa feito em Pascal preenche um array (vetor) de números inteiros de um intervalo dado (de 1 até VALOR) com valores inteiros aleatórios deste intervalo. Não sei como está agora, mas Pascal era primeira linguagem de cursos técnicos e universitários ao se ensinar algoritmos no 1º ciclo. Tinha ganho vida nova através do Object Pascal presente no Delphi. Que ultimamente não tenho visto muita coisa por aí... Ele consegue ser compilado com gpc (GNU Pascal) e fpc (Free Pascal). Há uma pequena "gambiarra" no código: Pelo menos foi assim que consegui fazer funcionar em ambos os compiladores. $ gpc alea001.pas -o alea001 # para usar gpc ou $ fpc alea001.pas # para usar fpc Ambos os compilados são enormes se comparado com o compilado em C. A vantagem de se usar gpc é que dá pra usar o gdb (GNU Debugger). Basta colocar a opção "-ggdb" no comando de compilação do gpc. Há também um debugger próprio do Free Pascal, mas o gdb é mais popular. Não tenho a menor ideia se funciona em Turbo Pascal, nem garantia no Dev-Pascal :-)
Por: Perfil removido
Crivo de Eratóstenes Simples em Ruby
9 de 10 livros que vejo sobre Ruby tem o tal Rails no título. Este script estaria no décimo livro :-) - estaria porque não foi tirado de livro algum - já que ele não é de Rails. Tudo bem? Quando "executado em console" (sic) exibe números primos no intervalo de 1 a 10000. Segue a lógica do Crivo de Eratostenes. Mas é muito lento. Aumentando o valor para 100000 chega a demorar trinta segundos. Em Perl os mesmos de 1 a 100000 demoram cerca de três segundos. Em C ... deixa pra lá :-) A minha dúvida reside se há o que melhorar usando alguma coisa sintaxe de Ruby. No caso de Perl foi bem testado até chegarem aos menores consumos de tempo. Por exemplo, em Perl laços "while" são mais rápidos que laços "for" e "foreach". Essa diferença de tempo pode vir a ser por maturidade de projeto? Agradeço se alguém apontar onde estão os gargalos.
Por: Perfil removido
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









