terça-feira, 16 de maio de 2017

Aula 07 - Python with Turtle

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: programar usando a "tartaruga" e criar desenhos!

Roteiro da aula: 

1. Entre em www.repl.it

2. Crie uma nova sessão, mas, atenção: no modo PYTHON WITH TURTLE e não Python 3

3. Copie e cole o código abaixo:

import turtle
turtle.speed(8)

#lado = (3 ** 0.5)*100
lado = 100
for i in range(4):
    turtle.color("red")
    turtle.forward(lado)
    turtle.left(90)
#turtle.left(90)

#turtle.up()
turtle.forward(50)
#turtle.down()
#turtle.home()
turtle.color("green")
turtle.circle(50)

Execute!

Uma circunferência verde inscrita em um quadrado vermelho, confirma?

Agora é sua vez! Experimente!


segunda-feira, 3 de abril de 2017

Aula 06 - Vetores

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: Vetores
Roteiro da aula: 

Não vamos perder tempo!

1. Entre no sítio www.repl.it .

Criando seu enésimo+1 programa! 

2. Uma guinada fenomenal no curso: vetores! O programa abaixo usa, pela primeira vez, um vetor. Matematicamente falando podemos chamar o vetor de uma matriz linha :)



print ("***** Usando listas/vetores *****")
minhaListaDePrimos = [2, 3, 5, 7, 11, 13]

#Em um vetor o primeiro elemento está na posição ZERO

print (minhaListaDePrimos[0])
print (minhaListaDePrimos[4])

print (minhaListaDePrimos[2:5]) #essa é curiosa!

print () #para pular uma linha

#imprimindo o vetor por completo de uma vez só!

print (minhaListaDePrimos)
print () #para pular uma linha

#obtendo o tamanho do vetor e imprimindo elemento
#por elemento

tamanhoDaLista=len(minhaListaDePrimos)
for i in range (tamanhoDaLista):
    print (minhaListaDePrimos[i])


Criando seu enésimo+1 programa! 

3. Execute o programa abaixo e descubra o que ele faz!
print ("***** Usando listas/vetores *****")
minhaListaDePrimos = [2, 3, 5, 7, 11, 13]

novoPrimo = int(input("Digite um número primo: "))
minhaListaDePrimos.append(novoPrimo)

print (minhaListaDePrimos)
print ()

posicao = int(input("Digite qual posicao do vetor deseja retirar: "))
minhaListaDePrimos.pop(posicao)
print (minhaListaDePrimos)
print ()

#essa função é bacana!
minhaListaDePrimosOrganizada = minhaListaDePrimos.sort()
print (minhaListaDePrimos)


Exercícios:

1. Adapte o programa acima para que ele solicite que o usuário digite números primos até que ele digite o número zero e encerre a entrada de dados. Só então imprima a lista.

2. Faça um programa que solicite o número de alunos de uma turma e, para cada aluno, solicite seu nome e sua nota. Nomes e notas devem ser armazenados em vetores distintos. Ao final imprima o nome do aluno e sua nota e também a média da sala.

3. Esse é broca. Faça um programa que solicite dez números, armazene-os num vetor e, em seguida, conte quantos valores diferentes foram informados.

4. A really big challenge... algoritmos de ordenação são realmente muito importantes em computação. Existem vários. O desafio é entender o algoritmo insertion sort. Observe que o programa já está feito. Depois de ler o texto, copie e cole o programa e execute. Aproveite para tentar entender o que é uma função.



sábado, 1 de abril de 2017

Aula 05 - Repetição usando for

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: Revisão

Roteiro da aula: 

Não vamos perder tempo!

1. Entre no sítio www.repl.it .

Criando seu enésimo programa! 

2. Crie um programa que pergunte ao usuário quantos números ele deseja imprimir. Armazene esse número na variável VarQuantidade

Para isso você precisa:
VarQuantidade = int(input(" ... "))

Execute o programa para verificar se não há nenhum erro de sintaxe até esse ponto.

3. Adapte o programa anterior colocando um comando de repetição "while" de modo que o programa permaneça perguntando até que o usuário digite um número entre 10 e 40 (inclusive)

Para isso você precisa:
VarQuantidade = (coloque algum valor menor que 10 aqui para forçar a entrada pela primeira vez!)
while (VarQuantidade < 10 or ... ):
          VarQuantidade = int(input(" ... "))

Execute o programa para verificar se não há nenhum erro de sintaxe até esse ponto.

4. Agora que você sabe até quanto deve imprimir, mande imprimir:

Para isso você precisa de algo do tipo (ou o primeiro ou o último vão "escapar", fique atento):

Para imprimir em ordem crescente:
for i in range (1, VarQuantidade, 1):
     print (i)

Para imprimir em ordem decrescente:
for i in range (VarQuantidade, 1, -1):
     print (i)


Pergunte ao usuário qual das opções ele deseja!

Exercícios selecionados das aulas anteriores: 

1. Imprimir apenas os números pares, em ordem decrescente a partir da entrada do usuário.

2. Imprimir apenas os números pares, em ordem crescente a partir do zero (inclusive o tal) até o valor informado pelo usuário.

3. Faça um programa para montar a tabuada (de 1 a 10) de um número informado pelo usuário.


4. Faça um programa para listar todos os divisores de um número.

segunda-feira, 13 de março de 2017

Problemas Olímpicos

Pequenos desafios para você se divertir!

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 


No site da OBI - Olimpíada Brasileira de Informática, promovida pelo Instituto de Computação (IC) da Unicamp, você encontra as provas passadas (inclusive com a possibilidade de submeter a solução que você desenvolveu). A seguir uma seleção de problemas para você se divertir!

OBI 2009 - Notas da prova

OBI 2010 - Cometa

OBI 2014 - A língua do P

sexta-feira, 3 de março de 2017

Aula 04 - Repetição usando For

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: Estruturas de repetição (for)

Roteiro da aula: 

Não vamos perder tempo!

1. Entre no sítio www.repl.it .

Criando seu enésimo programa! 

2. O programa abaixo acumula (soma) números inteiros a partir do zero até o valor informado pelo usuário. Observe quatro coisas importantes:

a) Na estrutura do for: 
A indentação (espaços no começo das linhas (Use a tecla TAB para indentar, neste exemplo usei dois espaços simples)

b) Na estrutura do for: 
Utilizei uma variável chamada i (é clássico em computação usar i e j como variáveis auxiliares em estruturas de repetição tipo for)

c) Na estrutura do for: 
A cada iteração o valor de i aumenta automaticamente, até atingir o valor da variável número

d) Os comentários usando #
Lembre-se: Não deixe de comentar!









Exemplo com "for aninhado"


print ('Imprime triângulo de números')
linha = int(input('Até qual número deseja? '))

for i in range(linha+1):
  for j in range(i):
    print (i, end=" ") #para não pular de linha
  print()              #para pular de linha


Criando seu enésimo+1 programa! 

3. Observe o programa abaixo e descubra o que ele faz!

Atenção absoluta para o significado dos três parâmetros do range!






Exercícios: 

1. Como na aula de while, mas agora usando for: imprimir apenas os números pares, em ordem decrescente a partir da entrada do usuário.

2. Como na aula de while, mas agora usando for: imprimir apenas os números pares, em ordem crescente a partir do zero (inclusive o tal) até o valor informado pelo usuário.

3. Faça um programa para montar a tabuada (de 1 a 10) de um número informado pelo usuário.


4. Usando dois comandos for aninhados (ou seja, "um dentro do outro"), faça um programa que gere a seguinte resposta:




5. A little challenge... Faça um programa para calcular o fatorial de um número informado pelo usuário.



quinta-feira, 2 de março de 2017

Aula 03 - Repetição usando While

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: Estruturas de repetição (while)

Roteiro da aula: 

Não vamos perder tempo!

1. Entre no sítio www.repl.it .

Criando seu quarto programa! 

2. O programa abaixo imprime números inteiros a partir de uma entrada do usuário até o zero. Observe quatro coisas importantes:

a) Na estrutura do while: 
A indentação (espaços no começo das linhas (Use a tecla TAB para indentar, neste exemplo usei espaço simples)

b) Na estrutura do while: 
O "igual" (usar apenas um = significa atribuir valor, não comparar valores)

c) Na estrutura do while: 
Os dois pontos no final da linha de repetição

d) Os comentários usando #
Lembre-se: Não deixe de comentar!


print ("***** Imprime números *****")
numero = int(input('Digite um numero: '))

while numero > 0:
   numero = numero - 1
   print(numero)


print('Cheguei!') 


Exercícios:

1. Adapte o programa acima para imprimir apenas os números pares, em ordem crescente a partir do zero (inclusive o tal) até o valor informado pelo usuário.

2. Adapte o programa acima para imprimir apenas os números pares, em ordem decrescente a partir da entrada do usuário.

3. Faça um programa para listar todos os divisores de um número.

4. Faça um programa que imprime a soma de todos os números pares entre dois números quaisquer (incluindo os tais, se for o caso!)

5. Retomando a fofura... Edite seu programa de equações de segundo grau e só calcule as raízes depois que o usuário informar o coeficiente "a" diferente de zero.

6. A little challenge... calcule o valor de Pi usando a fórmula de Leibniz. O artigo comenta sobre a lentidão da conversão da série!




quarta-feira, 1 de março de 2017

Aula 02 - Decisão usando IF

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: Estruturas de decisão e comentários em programas

Roteiro da aula: 

Não vamos perder tempo!

1. Entre no sítio www.repl.it .

Criando seu terceiro programa! 

2. O programa abaixo verifica se um número é par. Observe quatro coisas importantes:

a) Na estrutura do if: 
A indentação (espaços no começo das linhas (User a tecla TAB para indentar)

b) Na estrutura do if: 
O "duplo igual" (usar apenas um = significa atribuir valor, não comparar valores)

c) Na estrutura do if: 
Os dois pontos no final das linhas de decisão

d) Os comentários usando #
Comentar um programa contribui fortemente para o entendimento do mesmo, pelo próprio programador, no futuro. Não deixe de comentar!





Exercícios:

1. Faça um programa para elevar um número ao quadrado ou calcular sua raiz quadrada (coloque import math no início do programa para poder usar a função math.sqrt). O usuário deverá escolher a opção desejada no início (exemplo "opcao = int(input("Digite 1 para ...")

2. Esse é fofo. Faça um programa que solicite os coeficientes a, b e c de uma equação de segundo grau e a resolva. Se o resultado não for real imprimir a mensagem "A equação não possui soluções reais.".

3. Faça um programa que calcule o IMC de uma pessoa 
(IMC = massa em kg / altura em metros elevado ao quadrado) 
e informe a sua classificação segundo a tabela, disponível na Wikipédia.


Problemas Olímpicos
OBI 2009 - Notas da prova

OBI 2010 - Cometa

OBI 2014 - A língua do P

terça-feira, 28 de fevereiro de 2017

Aula 01 - Introdução

Introdução à programação usando Python

Professor Osmar Mantovani -  Valinhos - Turma 01 - 2017 

Objetivo da aula: apresentar a linguagem de programação Python e criar programas básicos com impressão de mensagens na tela e leitura de dados a partir do teclado.

Roteiro da aula: 
1. Crie uma conta no sítio www.repl.it .

2. Em Sessions, digite python3


Criando seu primeiro programa! 

Não vamos perder tempo!

3. Na linha 1 da janela da esquerda digite o comando

     print ("Hello world!")

4. Clique em "Run" e observe o resultado na janela da direita.

Parabéns! Você criou seu primeiro programa em python!


Criando seu segundo programa! 

5. Na linha 1 digite o comando

     numero = int(input("Digite um número inteiro! "))
     print ("Você digitou " + str(numero))     

6. Clique em "Run", entre com o dado solicitado pelo programa e observe o resultado na janela da direita.

Parabéns! Você criou seu segundo programa em python!


Exercícios

1. Escreva um programa que solicite dois números inteiros e imprima
   a) A soma (+) desses números 
   b) A diferença (-) entre esses números
   c) O valor absoluto (abs) da diferença desses números
   d) O produto (*) desses números
   e) O quociente (/) desses números
   f) A parte inteira do quociente desses números (//)
   g) O resto da divisão (%) desses números
   h) A potenciação (**) desses números


2. Escreva um programa que solicite um valor em quilômetros e o transforme em metros.

3. Escreva um programa que solicite o número de anos, meses e dias e calcule o total de dias correspondente.

4. Escreva um programa que solicite o número de horas, minutos e segundos e calcule o total de segundos correspondente.

5. Faça um programa que solicite um salário e uma porcentagem de aumento e, em seguida, escreva o novo salário com aumento.

6. Faça um programa que solicite um preço e uma porcentagem de desconto e, em seguida, escreva o novo preço com desconto.