Aula 1 Programing

Embed Size (px)

Citation preview

  • 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/