Validação de NIF em C++

Algoritmo de validação de um NIF em C++

/*Biblioteca padrão de C para Inputs e Outputs*/
#include
/*Todas as variáveis estão colocadas como variáveis globais*/
int nif, n, nif_d[8], resultado;

int main(){

//Solicitar ao utilizador o NIF
printf("Insira o seu NIF \n");

//Ler o NIF escrito pelo utilizador
scanf("%d",&nif);

//Separação dos dígitos do NIF
for(n=9;n>=1;n--){
nif_d[n]=nif%10;
nif/=10;
}

//Cálculo do resto
resultado=(9*nif_d[1]+8*nif_d[2]+7*nif_d[3]+6*nif_d[4]+5*nif_d[5]+4*nif_d[6]+
3*nif_d[7]+2*nif_d[8])%11;

// Verificação do tamanho do NIF, validação dos primeiros dígitos e dos dígitos de controlo
if((nif>99999999&&nif<=999999999)||(nif_d[1]==1 || nif_d[1]==2 || nif_d[1]==5 || nif_d[1]==6 || nif_d[1]==8 || nif_d[1]==9)&&(resultado>1&&nif_d[9]==11-resultado)||((resultado==0||resultado==1)&&nif_d[9]==0)){
printf("O NIF é válido");
}
else{
printf("O NIF não é válido");
}
return 0;
}

Transmission Peer Blocklist for Windows – TiBL4Win – v1.0

Just copy the code below to script.bat to where you want, execute as administrator, this will update the transmission blocklist with ips from Peer Block (http://www.peerblock.com/).

Just follow the instructions below in the configuration to download wget and gzip.

::This script creates the same lists as peerblock http://www.peerblock.com/, it outputs a file that you
::can use on Transmission automatically.
::This script was created by Cesário Garcia Mil-Homens - http://www.cesariogarcia.com just for the fun.
::TiBL4Win - v1.0

::CONFIGURATION - WARNING THE DIRECTORIES SHOULD ALREADY EXIST.

::In order for this script to work wget.exe and gzip.exe should be in the tmp directory do not remove them
::Download wget from: https://eternallybored.org/misc/wget/
::Download gzip from: http://gnuwin32.sourceforge.net/packages/gzip.htm
::Setup Transmission Blocklist folder.
set destination_folder="%appdata%\transmission\blocklists"

::DO NOT EDIT BELOW THIS LINE unless you know what you are doing
pushd "%~dp0"
cd tmp
wget -O - "http://list.iblocklist.com/?list=bt_ads&fileformat=p2p&archiveformat=gz" > bt_ads.txt.gz
wget -O - "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz" > bt_level1.txt.gz
wget -O - "http://list.iblocklist.com/?list=bt_spyware&fileformat=p2p&archiveformat=gz" > bt_spyware.txt.gz
gzip -d *.gz
copy *.txt lists
copy lists %destination_folder%
del lists
del *.txt
del *.gz

Dilema moral com a resposta perfeita

Numa entrevista de emprego foi dado um dilema moral a um candidato, a sua resposta foi genial.

Está a conduzir o seu carro numa noite de tempestade selvagem. Passa por uma paragem e vê três pessoas à espera de um autocarro:

1. Uma senhora velha que parece estar prestes a morrer.
2. Um velho amigo que uma vez salvou a sua vida.
3. O homem/mulher perfeito(a) que você sempre sonhou.
Qual destes escolheria para oferecer uma boleia, sabendo que só poderia haver um passageiro no seu carro.

Pense antes de continuar a ler.
Este é um dilema moral/ético que foi realmente utilizado como entrevista de emprego.

Você poderia escolher a senhora velha, porque ela vai morrer caso não seja assistida num hospital, e, portanto, você deve salvá-la em primeiro lugar; ou você pode escolher o velho amigo, porque ele salvou sua vida e esta seria a oportunidade perfeita de o recompensar. No entanto, você pode nunca ser capaz de encontrar o seu/sua amante perfeito(a) novamente.

O candidato que foi contratado (de 200 candidatos) não tive qualquer dificuldade para apresentar a solução perfeita.
O que é que ele disse?

Ele simplesmente respondeu: “Eu dava as chaves do carro ao meu velho amigo, e deixava-o levar a senhora para o hospital eu ficaria para trás à espera do autocarro com a mulher dos meus sonhos.”.
Nunca se esqueça de “pensar fora da caixa”.

Text-To-Speech (TTS) no Android em pt_PT e em todas as línguas

Recentemente pretendi que o meu telemóvel lesse alguns livros, comecei por utilizar o motor de TTS da Google e para além de ser pouco natural, estava em Português do Brasil.

Após alguma pesquisa, encontrei uma solução grátis e muito boa, que ultrapassa largamente em qualidade algumas app’s pagas da playstore. O software foi criado por um grupo de Húngaros e baseia-se no motor de TTS da Nuance.

Após a instalação da app, esta ficará como motor TTS predefinido do nosso dispositivo Android.

Guia de instalação

  1. Efetuar o download da app aqui. Lembre-se que para instalar esta aplicação deverá permitir nas definições a instalação de aplicações de fontes desconhecidas (Definições -> Segurança -> Fontes desconhecidas).
  2. Executar o ficheiro vocalizer_e.tts_1.0.2.3k.apk e instalar.
  3. Efetuar o download dos ficheiros das vozes:
  4. Renomear a extensão do ficheiro pretendido para ZIP.
  5. Descompactar o ficheiro.
  6. Criar no dispositivo Android a directoria /storage/sdcard0/VocalizerEx (sdcard0 é a memória interna).
  7. Copiar para a directoria criada anteriormente a directoria obtida na descompactação do ficheiro ZIP.
  8. Indicar o novo motor TTS como predefinido em Definições -> Idioma e entrada -> Saída de texto para voz e Selecionar VocalizerEx TTS.