Função Fatorial Recursiva em Ada 95
Este é um exemplo simples de uma função fatorial recursiva em Ada 95. Cheguei a ler um texto onde era citado que Ada é uma linguagem da família Pascal. Até parecem um pouco. Para a compilação pode ser usado o gnatmake. Ele vem junto com o pacote GNAT nas principais distribuições Linux. Uso: $ gnatmake fatorial-0001.adb Caso seja feita uma tentativa de compilação com o gnat, resultará no seguinte, conforme abaixo: $ gnat fatorial-0001.adb gcc-4.9 -c fatorial-0001.adb fatorial-0001.adb:4:11: warning: file name does not match unit name, should be "mostra.adb" Esta crítica sugere que o nome do arquivo deve ter o mesmo nome do programa declarado na primeira declaração Procedure. Mesmo sem fazer isto, tudo parece funcionar normalmente. Continuando: Este é um exemplo simples, sem aprofundamento. O objetivo é ilustrar uma pequena parte da sintaxe de um programa em ADA. No caso um programa com função recursiva. Posso dizer que até onde vi, Ada parece uma espécie de mistura de Pascal com Java. Coisas como System.out.println() são semelhantes a Ada.Text_IO.Get() ou Ada.Text_IO.Put(). As semelhanças com Pascal são maiores e aparecem mais em outras instruções de declaração de tipos e registros, que não constam no exemplo. Uma semelhança relevante é que não é case sensitive. A diferença é que colocando as bibliotecas com With e Use na primeira linha estes comandos podem ser abreviados para Get() e Put(). Get não foi usado nesta oportunidade. Uma coisa que chama a atenção é o fato de que todo programa deve estar declarado como "Procedure Nome_do_Programa" (semelhante ao "Program Nome_do_Programa" do Pascal) e ainda deve ser seguido da partícula is. Os comandos do programa são implementados entre um Begin e um End. Este último End do programa não termina com o ponto final igual ao Pascal, mas sim com "End Nome_do_Programa", seguido de um ponto-e-vírgula. A implementação da função Fatorial se dá antes do Begin de início do código. Ao invés de se igualar o retorno da função ao nome da mesma, retorna-se o resultado com o comando Return (semelhante ao C). A estrutura de decisão IF é semelhante ao Pascal, com IF, THEN, ELSE, mas neste caso completa-se com END IF. Neste exemplo não aparece o que seria semelhante à estrutura CASE, ficando para uma próxima. Ao invés de se usar um WriteLn para a mudança de linha, usa-se simplesmente o comando New_Line. O comando Put é usado semelhante ao comando Write, sem mudança de linha. A linguagem Ada é poderosa, tendo inúmeros usos estratégicos na indústria, como programação concorrente e orientada a objetos. Não é o objetivo de abordá-los neste micro-artigo.
Por: Perfil removido
Conectar rede WIFI pelo terminal
Faça de modo fácil conexões a redes Wifi WPA/PSK WPA2/PSK com DHCP e wpa_supplicant via terminal sem precisar ficar derrubando e levantando placas ou ficar digitando uma "grande" quantidades de linhas para fazer as coisas funcionarem bem. Com este script/programa você apenas precisa escolher a placa a qual quer se conectar, a rede e digitar a senha para se conectar. E caso queira ainda pode testar a conexão via ping. Para aqueles que curtem uma "tela preta", o script pode dar uma boa acelerada no trabalho de configuração de conexão a redes wifi. Basta dar permissões de execução e executar. Qualquer dúvida leia os comentários no código fonte. :)
Por: Perfil removido
Salvar link favorito
Script útil para quem (assim como eu) usa um gerenciador de janelas simples e que não consegue executar os favoritos que são salvos diretamente pelo navegador (depois de arrastar o atalho para alguma pasta). Este script cria um arquivo .htm que redireciona você para o link que desejar (substituindo, assim, o "atalho" favorito, que normalmente não funcionam nestes WMs) SINTAXE DE USO: $ ./fav add <link> <nome> Onde <link> é o link para "favoritar" e <nome> é o nome que será dado ao arquivo; exemplo: Para salvar um "atalho" para o Google, basta executar: ./fav add http://www.google.com Google O comando acima vai criar um arquivo chamado Google.htm na sua pasta pessoal (/home/$USER) que, ao ser executado, te levará a página do Google OBSERVAÇÕES: #1 - o link deve ser completo (incluindo o http://) e, caso exista algum espaço ou caractere especial nele, deixe ele entre aspas ("") assim: ("http://isso é um exemplo.com"); #2 - por mais que o link possa vir entre aspas (""), o <nome> não pode!! logo, se você precisar criar um arquivo que tenha espaços no nome, crie primeiro o arquivo sem os espaços e depois você adiciona-os, renomeando; DICA: Você pode alterar o destino do arquivo modificando o script, mas precisamente as linhas ' export file="/root/$nome.htm" ' e ' export file="/home/$USER/$nome.htm" ' -> Se você quiser que os links sejam salvos no seu Desktop, por exemplo, basta trocar a linha ' export file="/home/$USER/$nome.htm" ' por ' export file="/home/$USER/Desktop/$nome.htm" ' e a linha ' export file="/root/$nome.htm" ' por ' export file="/root/Desktop/$nome.htm" ' (sem os apóstrofos ['']) NOTA: Eu publiquei também um script para listar os favoritos criados por este script (favs), assim, você pode executá-los por meio de uma lista gerada em um terminal, sem precisar ficar arrastando mouse e clicando; quando o script em questão for publicado, eu posto o link nos comentários deste (favs) Enjoy!
Por: Perfil removido
Escrita de um número em octal na tela em Assembly Puro para Linux 64 bits (GNU Assembler)
Este pequeno programa em Assembly tem uma antiga versão em formato de 32 bits: http://www.vivaolinux.com.br/script/Escrita-de-um-numero-em-octal-na-tela-em-Assembly-Puro-para-Linux-x86-(GNU-Assembler)/ Esta versão está no formato 64 bits, para criação de objeto e linkedição em formato ELF64. De modo semelhante à primeira versão, o código usa a pilha para a reordenação dos dígitos após a sequência de divisões. Também foi escrito para usar variáveis globais, que não são tão adequadas ou elegantes como variáveis locais ou a pilha, visando facilitar a compreensão e dar uma visão mais intuitiva ao programa. Conforme os restos sucessivos são obtidos, são empilhados, sendo ainda acrescidos do endereço inicial da string "digit", de modo que o valor empilhado aponta exatamente - é um endereço de memória, um ponteiro mesmo - para o dígito que será impresso. Conforme vão sendo desempilhados, os dígitos são impressos. O último item desempilhado é um ponteiro para o caractere "new line" armazenado ao final do código. Este caractere identifica o fim da escrita dos dígitos, feita através de um cmp (comparação). As diferenças entre a versão de 32 bits e a de 64 bits são notadamente visíveis no uso das interrupções, modo de chamá-las e registradores. - Interrupção de escrita 32 bits: 4 - Interrupção de escrita 64 bits: 1 - Interrupção de encerramento 32 bits: 1 - Interrupção de encerramento 64 bits: 60 - Chamada de interrupção 32 bits: "int 0x80" - Chamada de interrupção 32 bits: "syscall" - Registradores usados no código com interrupções de 32 bits: eax. ebx, ecx, edx - Registradores usados no código com interrupções de 64 bits: rax. rdi, rsi, rdx No caso dos registradores, percebe-se que em 64 bits houve uma pequena mudança na analogia usual.
Por: Perfil removido
Firewall para web server
Esse é mais um simples script para ser usado em servidor web, dá pra ter uma ideia do que usar e talvez do que não usar.
Por: Perfil removido
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Instalação do Programa Imposto de Renda Pessoa Física 2023 [RESOLVIDO]... (6)
Instalando e compilando o GCC/G++ erro (4)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter