quinta-feira, 23 de março de 2017

FLISOL 2017

Mais uma vez O Programando no Aquário vai estar presente no FLISOL 2017 em Marília.
Vai disponibilizar um mini curso sobre desenvolvimento web "Introdução ao Desenvolvimento WEB com Python e Django".

O evento ocorrerá dia 8 de abril no UNIVEM.
http://univem.edu.br/compsi/flisol

As inscrições já estão abertas.
http://pitagoras2.univem.edu.br/gwsites/default2.asp?codigo=85&item=1240

Aproveite os cursos e palestras oferecidos no FLISOL!



Obrigado!

terça-feira, 7 de março de 2017

Introdução a Programação parte 5: Funções

Funções são como programas dentro de programas, são blocos de códigos que podem ser executados pelo seu programa.
São muito úteis para reutilizar e para deixar seu código mais legível.

Por exemplo o comando print que vem sendo utilizado nos últimos posts, dentro dele existem as instruções necessárias para escrever um texto na tela. Quem utiliza o print não precisa se preocupar em como será escrito, só interessa saber que será escrito o que queremos na tela. Também não precisamos escrever diversos comandos para escrever cada pixel de cada letra do texto, apenas chamamos o comando print e o "programa" dentro do print cuida do resto.

A ideia agora é criarmos nossos próprios "comandos" ( funções) para podermos reutilizá-los e tornar nosso código mais expressivo.
Já li em alguns livros que a maior parte do tempo gasto em programação é gasto lendo o código e não o escrevendo, por isso é muito importante que nosso código seja expressivo.

Então vamos começar fazendo uma função bem simples, para isso vamos usar o comando def.
# definindo a funcao
def diz_oi():
    print 'oi fulano'

# chamando a funcao
diz_oi()

Esse exemplo é bem simples, basicamente ao escrevermos "diz_oi()" é executado o "print 'oi fulano'".
Mas esse exemplo não é muito reutilizável, se precisarmos dar oi para outra pessoa já não poderíamos usar essa função.
Para melhorarmos essa função podemos utilizar parâmetros, parâmetros são variáveis que o código que chama a função pode passar para a função. No próximo exemplo o nome de quem estamos dando oi será um parâmetro.

def diz_oi(nome):
    print 'oi',nome

diz_oi('fulano')
diz_oi('ciclano')

Podemos passar diversos parâmetros para a função.
No próximo exemplo a função "diz_oi" recebe mais um parâmetro (entusiamo), que define a quantidade da letra "o" no oi.

def diz_oi(nome,entusiasmo):
    oi = 'o' * entusiasmo + 'i'
    print oi, nome

diz_oi('fulano',3)
diz_oi('ciclano',7)


Vimos então, que o código que chama a função pode passar parâmetros para a função. Mas a função também pode passar algo de volta para o código que a chamou, basta utilizarmos o comando return.
def soma(a,b):
    return a + b

print soma(2,2)

resultado = soma(5,3)
print resultado

No exemplo acima o resultado do cálculo da soma é retornado ao final da função.
Esse resultado pode ser impresso, armazenado ou processado tudo depende do código que chamou a função. Poderíamos por exemplo, passar o resultado como parâmetro novamente.


def soma(a,b):
    return a + b

print soma(soma(1,2),soma(2,3))


Esse último exemplo soma o resultado de duas funções soma, "soma(1,2)" que resulta em 3 e "soma(2,3)" que resulta em 5, assim, a soma das somas resulta em 8.

Obrigado!

terça-feira, 21 de fevereiro de 2017

Introdução a Programação parte 4: Estruturas de Repetição

Uma das grandes vantagens de criar um programa é que ele pode ser executado várias vezes sem muito esforço.
Mas digamos que estamos fazendo um programa para fazer um determinado cálculo que precisamos repetir milhares de vezes, executá-lo manualmente milhares de vezes seria exaustivo.
Porém podemos fazer um programa que consegue repetir esse cálculo várias vezes sozinho, utilizando estruturas de repetição.

Para começar a entender as vantagens de usar as estruturas de repetição, vamos fazer um exemplo simples da tabuada do 2.

print '0 x 2 = ', 0 * 2
print '1 x 2 = ', 1 * 2
print '2 x 2 = ', 2 * 2
print '3 x 2 = ', 3 * 2
print '4 x 2 = ', 4 * 2
print '5 x 2 = ', 5 * 2
print '6 x 2 = ', 6 * 2
print '7 x 2 = ', 7 * 2
print '8 x 2 = ', 8 * 2
print '9 x 2 = ', 9 * 2
print '10 x 2 = ', 10 * 2

O código acima escreve toda a tabuada do 2, porém, foi escrito de uma forma não muito prática.
Imagine agora se fôssemos fazer um programa para escrever todas as tabuadas, teríamos 10 vezes essa quantidade de código.

Vamos então utilizar as estruturas de repetição para diminuir a quantidade de código. No Python existem basicamente o while  ( em português enquanto) e o for (em português para).

O while executa o bloco indentado abaixo dele enquanto a sua condição for verdadeira, veja como fica o exemplo da tabuada do 2 agora.

numero = 0
while numero <= 10:
    print numero,' x 2 = ', numero * 2
    numero = numero + 1

Com esse pequeno código temos o mesmo resultado que o do exemplo anterior, só que precisamos escrever menos código.

Também podemos colocar uma estrutura de repetição dentro da outra, como no próximo exemplo onde o programa fará todas as tabuadas.

tabuada = 0
while tabuada <= 10:
    print 'Tabudada do ',tabuada
    numero = 0
    while numero <= 10:
        print numero,' x ',tabuada,' = ', numero * tabuada
        numero = numero + 1
    tabuada = tabuada + 1


O for pode ser entendido como "para cada item X em uma lista Y". E para nos ajudar com o for, o Python tem uma função que gera listas, chamada range. Veja como fica o exemplo da tabuada do 2 utilizando o for e o range.

for numero in range(11):
    print numero,' x 2 = ', numero * 2
    numero = numero + 1

O range recebe o tamanho da lista como parâmetro, no caso o parâmetro é o número 11, assim temos os números de 0 a 10.

for tabuada in range(11):
    print 'Tabudada do ',tabuada
    for numero in range(11):
        print numero,' x ',tabuada,' = ', numero * tabuada

Espero que com a utilização das estruturas de repetição, vocês possam fazer programas que fazem muito com pouco código!

Obrigado!

quinta-feira, 16 de fevereiro de 2017

Introdução a Programação parte 3: Controle de Fluxo

Dando continuidade ao post "Introdução a Programação parte 2", vamos agora aprender a como controlar o fluxo de nossos programas.

Antes de começar mesmo, vamos fazer uma pequena revisão sobre lógica booleana.
Lógica booleana trata de operações com verdadeiros e falsos, ou para o computador uns e zeros.

Muitas vezes usamos as operações básicas da lógica booleana em nosso cotidiano e nem nos damos conta.
Essas operações são, "não", "e" e "ou", em inglês "not", "and" e "or".

Por exemplo, se eu tiver tempo e dinheiro vou começar a fazer um curso de Inglês.

Nessa sentença o sujeito apenas fará o curso de Inglês se as duas condições forem verdadeiras, ou seja, ter tempo e dinheiro. Caso qualquer uma das condições for falsa ele não fará o curso, ou seja, se ele não tiver tempo ou não tiver dinheiro ele não fará o curso.

Para explicar essa frase já acabei dando exemplos do "ou" e do "não".

Agora vamos transformar a frase acima em código:
tenho_tempo = True
tenho_dinheiro = True

if tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'


A linguagem que estou usando para exemplificar, o Python, necessita da indentação para funcionar corretamente. A linha com o "print" é a ação que deve ser tomada caso a condição do if (em português "se") seja verdadeira, esta parte deve estar toda indentada.
tenho_tempo = True
tenho_dinheiro = True

print 'tomando decisao'
if tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao vou fazer o curso'
print 'decisao tomada'

No exemplo acima foi adicionada um else ( em português "senão"), o bloco indentado abaixo do else só é executado caso a condição do if tenha sido falsa.
O último print sempre é executado, pois ele está fora do bloco indentado do else.

Mais um exemplo, agora vamos usar o elif (abreviação de else if).

tenho_tempo = True
tenho_dinheiro = True

print 'tomando decisao'
if tenho_tempo and not tenho_dinheiro:
    print 'tenho tempo mas nao tenho dinheiro'
    print 'nao vou fazer o curso'
elif tenho_dinheiro and not tenho_tempo:
    print 'tenho dinheiro mas nao tenho tempo'
    print 'nao vou fazer o curso'
elif tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao vou fazer o curso'
print 'decisao tomada'

Fiquem a vontade para alterar os valores das variáveis (tenho_tempo, tenho_dinheiro) e ver os diferentes resultados. Lembrem-se de usar a primeira letra maiúscula ( True,False ), ou podem usar 1 ou 0.

tenho_tempo = 1
tenho_dinheiro = 1

print 'tomando decisao'
if tenho_tempo and not tenho_dinheiro:
    print 'tenho tempo mas nao tenho dinheiro'
    print 'nao vou fazer o curso'
elif tenho_dinheiro and not tenho_tempo:
    print 'tenho dinheiro mas nao tenho tempo'
    print 'nao vou fazer o curso'
elif tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao tenho tempo nem dinheiro'
    print 'nao vou fazer o curso'
print 'decisao tomada'


Agora vamos fazer algumas pequenas modificações para deixar esse "programa" mais próximo de um caso real, afinal no mundo real geralmente não trabalhamos diretamente com verdadeiros e falsos.
No exemplo a seguir foram adicionados alguns comentários, linhas que não são executadas pelo computador, são apenas para descrever o código, estas são inciadas pelo caractere #.

tempo_livre = 4
dinheiro = 400

tempo_curso = 1
custo_curso = 200

# se tempo livre maior ou igual ao tempo do curso,
# tenho_tempo eh verdadeiro
tenho_tempo = tempo_livre >= tempo_curso

# se dinheiro maior ou igual ao custo do curso,
# tenho dinheiro eh verdadeiro
tenho_dinheiro = dinheiro >= custo_curso

if tenho_tempo and not tenho_dinheiro:
    print 'tenho tempo mas nao tenho dinheiro'
    print 'nao vou fazer o curso'
elif tenho_dinheiro and not tenho_tempo:
    print 'tenho dinheiro mas nao tenho tempo'
    print 'nao vou fazer o curso'
elif tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao tenho tempo nem dinheiro'
    print 'nao vou fazer o curso'
print 'decisao tomada'

Obrigado!

terça-feira, 14 de fevereiro de 2017

Novo Blog de Tecnologia

Um novo blog de tecnologia está sendo criado por um amigo, Guilherme Cruz.
O blog no começo, mas pelo que conheço o autor, promete muito!!!

O Guilherme é Mestre em Ciência da Computação, desenvolvedor Ruby on Rails e pelo que me parece por seu blog está se aventurando com GO.

Blog do Guilherme
http://gcruz.com.br/

Alguns Posts:
Primeiras dicas em Go
Conexões SQL em Go

Obrigado!



terça-feira, 10 de janeiro de 2017

Curso de Bootstrap

Estava eu de bobeira navegando pela internet e me deparei mais uma vez com um anuncio de curso online grátis.
Logo imaginei, "deve ser um curso só com uma pequena introdução que fica convidando você para um curso pago durante a maior parte do tempo". Porém fui surpreendido, parabéns Keven Jesus.
O curso da uma boa visão dos recursos disponíveis no framework CSS Bootstrap, seguem os links:


Site do curso:
http://www.bootstraptotal.com.br/

"Mini Curso"
http://www.bootstraptotal.com.br/rwd-aula-01/

Curso Completo
https://www.youtube.com/playlist?list=PLd4yfya-3PIomj2O-W0s9A-0i1ThWJncj

segunda-feira, 22 de agosto de 2016

Semana TI Univem

O minicurso de "Introdução ao Desenvolvimento WEB com Python e DJango" está de volta, agora na Semana de TI do UNIVEM, na sexta-feira (16/09) às 19:30.

Quem sofre com a infra de seus projetos não pode perder o minicurso do Otávio Santos "Docker para Desenvolvedores" no sábado (17/09) às 9:00.

Veja uma nova foma de pensar em programação com Leonardo Lima da Persys "Programação Reativa no Java/Android" segunda-feira (12/09) às 21:30 com continuação na terça-feira (13/09) também às 21:30.

Confira a Programação SemanaTI.

Para quem gosta do Blog Vida de Programador não perca na quarta-feira (14/09) às 19:30 a palestra de Andre Noel "Como perder seus melhores programadores: Dicas práticas".

Para mais informações clique aqui.

Obrigado!