aula 1 programing
TRANSCRIPT
-
8/18/2019 Aula 1 Programing
1/27
Aula 1: Noções de programação estruturada
Daniel O. Cajueiro1,
2
Departamento de Economia (UnB)
Daniel O. Cajueiro Programação estruturada
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
2/27
Linguagens de programação
Nosso curso focará nas chamadas linguagens de programação dealto ńıvel: Fortran, C, C++, Matlab, Python...Por que?
Portabilidade: Pode ser executado em várias máquinasdiferentes
Facilidade de desenvolvimento
Daniel O. Cajueiro Programação estruturada
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
3/27
O que é um programa?
Um programa é uma sequência de instruções que diz o que ocomputador deve fazer.Basicamente, essas instruções incluem:
Entrada e sáıda de dados
Repetição de tarefas (loop for ou while)
Execução condicional
Daniel O. Cajueiro Programação estruturada
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
4/27
Hello World!?
Existe uma certa tradição do primeiro programa em uma nova
linguagem ser o “Hello World”
Daniel O. Cajueiro Programação estruturada
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
5/27
# Python
print ’Hello World’
Daniel O. Cajueiro Programação estruturada
http://find/
-
8/18/2019 Aula 1 Programing
6/27
// C++
#include
int main(){
std::cout
-
8/18/2019 Aula 1 Programing
7/27
O que é um algoritmo?
É uma receita que especifica uma sequência exata de passos
para resolver uma categoria de problemas.Muitos exemplos interessantes....
Daniel O. Cajueiro Programação estruturada
http://goforward/http://find/http://goback/
-
8/18/2019 Aula 1 Programing
8/27
O que é um algoritmo? - continuação
O que é um algoritmo interessante?
Resolve um problema importante
É útil em muitas situaçõesÉ escaĺavel
É belo
Daniel O. Cajueiro Programação estruturada
http://goforward/http://find/http://goback/
-
8/18/2019 Aula 1 Programing
9/27
Exemplos de algoritmos...
Indexação de páginas de internet (page rank)
Criptografia
Algoritmos para correção de erros
Reconhecimento de padrões
Consistência de bases de dados
Computação humana
Daniel O. Cajueiro Programação estruturada
http://goforward/http://find/http://goback/
-
8/18/2019 Aula 1 Programing
10/27
Valores e tipos
Valores são sequências de letras ou números
Valores podem ser de vários tipos diferentes.
Daniel O. Cajueiro Programação estruturada
http://goforward/http://find/http://goback/
-
8/18/2019 Aula 1 Programing
11/27
Variáveis
Uma variável é um nome que se refere a um valor.
Operações comuns nesse contexto são definir uma variável eatribuir um valor a uma variável.
Daniel O. Cajueiro Programação estruturada
# Python
http://find/
-
8/18/2019 Aula 1 Programing
12/27
# Python
d=5
Daniel O. Cajueiro Programação estruturada
// C++
http://find/
-
8/18/2019 Aula 1 Programing
13/27
// C++
int d = 5
Daniel O. Cajueiro Programação estruturada
http://find/
-
8/18/2019 Aula 1 Programing
14/27
Operadores e expressões
Operadores são śımbolos que representam uma operação.
Expressões são combinações de valores, variáveis e operadores
Daniel O. Cajueiro Programação estruturada
# Python
http://find/
-
8/18/2019 Aula 1 Programing
15/27
# Python
count=count+1
theSum=x+y
z=x*y
Daniel O. Cajueiro Programação estruturada
http://goforward/http://find/http://goback/
-
8/18/2019 Aula 1 Programing
16/27
Funções
São sequências de operaões que implementam computações.Você deve abusar de funções, pois torna o seu programa mais claro,menor (pois remove código repetido), modular e bem desenhado.
Daniel O. Cajueiro Programação estruturada
# Python
http://find/
-
8/18/2019 Aula 1 Programing
17/27
# Python
import math
logx= math.log10(x)
Daniel O. Cajueiro Programação estruturada
# Python: How may I create a new function?
http://find/
-
8/18/2019 Aula 1 Programing
18/27
# Python: How may I create a new function?
def my_python():
print "Python is beautiful"
def pow_caju(x):
return x*x
if __name__ == ’__main__’:
print pow_caju(5)
my_python()
Daniel O. Cajueiro Programação estruturada
Fl d E ˜
http://goforward/http://find/http://goback/
-
8/18/2019 Aula 1 Programing
19/27
Fluxo de Execução
É a ordem em que as operações são executadas em um programa.Isso é importante, pois você só pode chamar uma variável oufunção depois que ela for definida.
Daniel O. Cajueiro Programação estruturada
E d i´ i
http://find/
-
8/18/2019 Aula 1 Programing
20/27
Escopo de variáveis
Variáveis podem ser locais ou globais. [De uma forma geral,
evitamos definir variáveis globais]
Daniel O. Cajueiro Programação estruturada
# Python
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
21/27
y
globalY=100 # This is a global variable
def pow_caju(x):# y is a local variable
y=x*x
return y
if __name__ == ’__main__’:
print pow_caju(5)
Daniel O. Cajueiro Programação estruturada
C di i i
http://find/
-
8/18/2019 Aula 1 Programing
22/27
Condicionais
Te permitem o controle do fluxo de execução dependendo dos
resultados intermediários do seu programa.
Daniel O. Cajueiro Programação estruturada
# Python
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
23/27
def odd_or_even(x):
if(x%2==0):
print "Even"else:
print "Odd"
if __name__ == ’__main__’:
x=5odd_or_even(x)
Daniel O. Cajueiro Programação estruturada
Iteracão
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
24/27
Iteraçao
Uma das tarefas que um computador faz muito bem sem ficarchateado é fazer atividades repetidas.As duas estruturas mais comuns são:
Estruturas do tipo For
Estruturas do tipo While
Daniel O. Cajueiro Programação estruturada
# How to evaluate the nth number of the Fibonacci sequence
http://find/http://goback/
-
8/18/2019 Aula 1 Programing
25/27
def fibonacci(n):
if(n==1):
print "1st Fibonacci number is", 0elif (n==2):
print "2nd Fibonacci number is", 1
else:
fib2=0
fib1=1for i in range(3,n+1):
print "i: ",i
fib=fib2+fib1
fib2=fib1
fib1=fib
print "nth Fibonacci number is", fib
if __name__ == ’__main__’:
fibonacci(5)
Daniel O. Cajueiro Programação estruturada
# How to know if a number is prime
http://find/
-
8/18/2019 Aula 1 Programing
26/27
import numpy as np
def is_prime(n):
prime=Truecount = 2
sqrtn=np.floor(np.sqrt(n))
while(prime and count
-
8/18/2019 Aula 1 Programing
27/27
Exercıcios
1. Faça um programa para calcular a n!.2. Implemente um programa para fatorar um número inteiro.3. Ache a soma de todos os múltiplos de 3 e 5 menores que 1000.Existe uma solução mais interessante que essa você possivelmenteapresentou?
4. Ache a soma de todos os elementos da série de Fibonacci paresque não excedem 4 milhões. Existe uma solução mais interessanteque essa você possivelmente apresentou?5. Os fatores primos de 13195 são 5, 7, 13 e 29. Qual o maiorprimo fator de 600851475143? Existe uma solução maisinteressante que essa você possivelmente apresentou?
Daniel O. Cajueiro Programação estruturada
http://find/