Posts com Tag ‘sistemas’

Continuando com a serie de postagens sobre a linguagem GO, o rarefecundo.com trás a instalação e configuração do mesmo nos sistemas operacionais linux.

Instalação no LINUX/MAC

No site golang.com existe um tutorial com passo a passo para instalação e configuração do sistema, nestes dois SOs. Mas achei muito interessante o script  produzido pelo Daniel Mazza que pode ser baixado neste endereço: http://migre.me/LSSZ

Vamos mostar como fazer a instalação manual depois faremos a instalação usando o script do Mazza.

para fazer a instalação no linux, eu usei o ubuntu 9.10/64bits para fazer esse post, vamos seguir os seguintes passos:

Primeiro: A configuração das variáveis e abaixo está as combinações possíveis a serem usadas nos passos que se seguem,

$GOOS $GOARCH
darwin 386
darwin amd64
freebsd 386
freebsd amd64
linux 386
linux amd64
linux arm
nacl 386

No nosso caso a combinação utilizada foi a linux/amd64, detalhes eu uso core2duo intel, o fato é que a arquitetura de 64bits inicial foi da amd por isso foi colocado este nome para ela, mas como é um padrão tanto os processadores da amd quanto os da intel usam essa arquitetura.

Escolhemos a pasta /HOME/go  para ser a pasta raiz da aplicação

Escolhido o local de instalação vamos agora as variáveis. Para registrá-las use os comandos:

export GOROOT=$HOME/go
export GOBIN=$HOME
/bin
export GOOS=linux
export GOARCH=amd64
export PATH=$PATH:$HOME
/bin

inicialmente você terá que digitar as linhas acima para fazer a instalação .

para não precisar fazer o registro das variáveis todas as vezes que o sistema for reiniciado edite o arquivo .baschrc ou .profile, no meu caso foi o .bachrc usei o comando

$ sudo gedit /home/nomeUsuario/.bashrc

é só adicionar no final do arquivos as linhas acima, lembrado que nomeUsuario deve ser substituído pelo seu usuário no sistema.

para conferir se as variáveis foram registradas digite:

$ env | grep ‘^GO’   (se for copiar esta linha, redigite as aspas simples.)

Segundo: Baixando os pacotes necessários.

vamos instalar algumas ferramentas  necessárias para baixar os pacotes a serem compilados do GO.

$ sudo apt-get install bison gcc libc6-dev ed gawk make

$ sudo apt-get install mercurial

em seguida vamos baixar os pacotes que serão compilados,

$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT

crie o diretório necesśario e em seguida faça a instalação

$ mkdir ~/bin 2> /dev/null

$  cd $GOROOT/src

$  ./all.bash

se tudo deu certo (provavelmente não) você está com o go instalado na sua maquina. para testar digite no terminal 6l ou 8l caso apareça algo diferente de command not fount, parabéns você conseguiu instalar agora é só esperar a próxima postagem com o ola mundo. caso contrário recomendo o uso do script do Mazza http://migre.me/LSSZ

baixe e depois descompacte o conteúdo para a pasta de usuário.

Acesse esta pasta:

$ /home/nomeUsuario/GoInstaller

e em seguida execute o script, ele vai pedir para confirmar a arquitetura e o SO, se seu linux for de 64bits será o linux/amd64. é só aguardar o dito fazer o trabalho.

até a próxima!

fontes:

http://golang.org/doc/install.html

Indução Matemática:

1.Base: Provar que uma afirmação P(menor) é verdadeira
para o “menor” elemento sobre o qual incide a afirmação
2. Passo indutivo: Assumir que a afirmação é verdadeira
para P(k) com k=1, 2, …, n , então pode provar-se que:
P(n) → P(n+1) .
3. Conclusão: Usando 1. e 2. prova-se que: ∀n P(n)

Exemplo 01:
Provar que se n é um inteiro maior do que 1, então n pertence ao conjunto de números inteiros positivos.

1+2+3+4+…+n= n(n+1)/2 é verdadeiro ∀n Є Z+

Por indução matemática temos:

1. P(1) é verdadeiro? (primeiro valor da sequência)

1=1(1+1)/2
1=1 é verdadeiro

2.P(k) é verdadeiro? (último valor da sequência)

1+2+3+4…k=k(k+1)/2

Por demostrar que P(k+1) é verdadeiro
1+2+3+4…k+(k+1) = (k+1).((k+1)+1)/2

Temos que:

1+2+3+4…(k+1) = 1+2+3+4…(k+1)
= k*(k+1)/2 + (k+1)
= k (k+1) + (2(k+1))
= (k2+k+2k+2)/2
usando fatoração pelo método de Ruffine temos:

1 3 2

-1 -2
-1
1 2 0

(k+1)*(k+2)
=((k+1)*((k+1)+1))/2
logo
1+2+3+4+…+(k+1)=((k+1)-(k+1)+1)/2

isto é p(k+1) é verdadeiro.
Finalmente
de 1. e 2. por indução matemática temos;
p(n) é verdadeiro para todo n ou seja ∀n Є Z+
isto é, 1+2+3+4+…+n=(n(n+1))/2 é verdadeiro em ∀n Є Z+

Exemplo 02:
Provar que :
2^3n-1 é divisível por 7
Observação: um número mЄZ é divisível por rЄZ se e somente se existe tЄZ tal que m = r * t.

Exemplo 15(m) é divisível por 5(r) pois 15(m) = 5(r) * 3(t). “m” é divisível por “r” é equivalente a “m” é múltiplo de r.
Por indução matemática.

1.p(1) = 2^3*1-1 = 7 = 8 – 1 = 7 é divisível por 7, logo p(1) é verdadeiro.

2.Seja p(k) verdadeiro por demostrar que
p(k+1) é verdadeiro.
Temos:
2^3k-1 é divisível por 7
isto é 2^3k-1 = 7*t t Є Z
demostrando:
2^3(k+1)-1 = 2^3k+3-1
2^3(k+1)-1 = 2^3k * 2^3-1
2^3(k+1)-1 = 8 * 2^3k-1
2^3(k+1)-1 = 7 * 2^3k+2^3k -1
2^3(k+1)-1 = 7 * 2^3k+7 *t
2^3(k+1)-1 = 7 * (2^3k+t)
portanto:
3(k+1)
2^3(k+1)-1 = 7 * (2^2k+t)
isto é 2^3(k+1)-1 é divisível por 7 é verdadeiro.

Finalmente temos 1. e 2. é verdadeiro
2^3n-1 é divisível por 7 ∀n Є Z+

Esta é a primeira parte de indução matemática, as próximas postagens serão das aulas ministradas nas próximas semanas.

segue a lista de exercícios sobre conjuntos e indução matemática.
Lista 1 Matemática discreta.

Thiago Amorim