SlideShare ist ein Scribd-Unternehmen logo
1 von 116
Downloaden Sie, um offline zu lesen
Introdução ao conhecimento de
     algoritmos e prática de
          programação



    Giovani Bolzan Cogo {giovanibcogo@gmail.com}
       Acadêmico de Engenharia de computação
    Universidade Federal do Pampa – campus Bagé
Sumário
 ●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   2
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   3
Introdução ao conceito de algoritmos




               O que seria um algoritmo?




28/05/2011           Giovani Bolzan Cogo   4
Introdução ao conceito de algoritmos



    Definição: um algoritmo é um conjunto de instruções
 sequênciais que tem como objetivo solucionar um certo
 problema.




28/05/2011            Giovani Bolzan Cogo             5
Introdução ao conceito de algoritmos



    Definição: um algoritmo é um conjunto de instruções
 sequênciais que tem como objetivo solucionar um certo
 problema.

     Em outras palavras, um algoritmo é basicamente uma
 sequência de passos/comandos que constituem uma rotina
 lógica que efetua alguma operação desejada.



28/05/2011            Giovani Bolzan Cogo             6
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   7
Algoritmos como vemos no cotidiano




    Usamos algoritmos mesmo sem percebê-los. Eles fazem
 parte do nosso dia-a-dia e quem intera com ele somos nós.




28/05/2011              Giovani Bolzan Cogo              8
Algoritmos como vemos no cotidiano




    Usamos algoritmos mesmo sem percebê-los. Eles fazem
 parte do nosso dia-a-dia e quem intera com ele somos nós.

    Por exemplo, qual seria o algoritmo para a troca de uma
 lâmpada?




28/05/2011              Giovani Bolzan Cogo               9
Algoritmos como vemos no cotidiano




       A implementação mais intuitiva e básica seria:

 1- tirar lâmpada usada




28/05/2011                   Giovani Bolzan Cogo        10
Algoritmos como vemos no cotidiano




       A implementação mais intuitiva e básica seria:

 1- tirar lâmpada usada

 2- colocar lâmpada nova




28/05/2011                   Giovani Bolzan Cogo        11
Algoritmos como vemos no cotidiano




                                  Figura 1: Algoritmo de como
                                  trocar uma lâmpada em forma
                                  de fluxograma

28/05/2011         Giovani Bolzan Cogo                      12
Algoritmos como vemos no cotidiano



       Já uma visão mais aguçada do problema envolveria:

 1- Checar se a lâmpada funciona




28/05/2011                 Giovani Bolzan Cogo             13
Algoritmos como vemos no cotidiano



       Já uma visão mais aguçada do problema envolveria:

 1- Checar se a lâmpada funciona
 2- Subir em alguma superfície rígida e suportável




28/05/2011                 Giovani Bolzan Cogo             14
Algoritmos como vemos no cotidiano



       Já uma visão mais aguçada do problema envolveria:

 1- Checar se a lâmpada funciona
 2- Subir em alguma superfície rígida e suportável
 3- Remover lâmpada estragada




28/05/2011                 Giovani Bolzan Cogo             15
Algoritmos como vemos no cotidiano



       Já uma visão mais aguçada do problema envolveria:

 1- Checar se a lâmpada funciona
 2- Subir em alguma superfície rígida e suportável
 3- Remover lâmpada estragada
 4- Inserir lâmpada nova




28/05/2011                 Giovani Bolzan Cogo             16
Algoritmos como vemos no cotidiano



       Já uma visão mais aguçada do problema envolveria:

 1- Checar se a lâmpada funciona
 2- Subir em alguma superfície rígida e suportável
 3- Remover lâmpada estragada
 4- Inserir lâmpada nova
 5- Testar lâmpada nova



28/05/2011                 Giovani Bolzan Cogo             17
Algoritmos como vemos no cotidiano




    Enfim para quase tudo há um algoritmo que solucione os
 problemas que queremos.




28/05/2011              Giovani Bolzan Cogo              18
Algoritmos como vemos no cotidiano




        Poderíamos chavear uma gaveta com a chave dentro?




28/05/2011                 Giovani Bolzan Cogo              19
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   20
Linguagens de programação




    Agora introduzidos    ao      conceito     de   linguagens   de
 programação.




28/05/2011               Giovani Bolzan Cogo                      21
Linguagens de programação




     Primeiramente, devemos entender o significado do termo
 linguagem.




28/05/2011              Giovani Bolzan Cogo               22
Linguagens de programação




     Primeiramente, devemos entender o significado do termo
 linguagem.
     Uma linguagem abrange um conjunto de palavras que, de
 uma forma arranjada (definida por regras), contêm um
 significado coerente.




28/05/2011              Giovani Bolzan Cogo               23
Linguagens de programação



    Temos como exemplo mais utilizado a linguagem natural
 que é utilizada para a comunicação entre 2 ou mais pessoas.




28/05/2011              Giovani Bolzan Cogo                24
Linguagens de programação



    Temos como exemplo mais utilizado a linguagem natural
 que é utilizada para a comunicação entre 2 ou mais pessoas.

    Mais exemplos:
 Linguagem binária
 Linguagem assembly
 Linguagem de programação




28/05/2011              Giovani Bolzan Cogo                25
Linguagens de programação



     As linguagens de programação possuem uma classificação
 quanto à similaridade entre a linguagem de máquina e a
 linguagem natural. Quanto mais se assemelha à linguagem
 natural, a linguagem de programação é dita de alto nível. No
 caso de ela se assemelhar mais à linguagem de máquina, é
 dita de baixo nível.
     Ou seja, quanto mais abstrato é o entendimento de uma
 linguagem, mais alto nível é.


28/05/2011               Giovani Bolzan Cogo                26
Linguagens de programação




    Iremos utilizar a linguagem Python, por motivos de simples
 entendimento e curto tempo de resposta quanto à produção, e
 que será mais detalhada adiante.




28/05/2011               Giovani Bolzan Cogo                 27
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   28
Bases de programação




    A programação obviamente segue o mesmo fluxo do
 conceito de algoritmo:

             entrada → processamento → saída.




28/05/2011             Giovani Bolzan Cogo        29
Bases de programação




 Operadores lógicos:

 •   and     (conjunção)
 •

 •




28/05/2011                 Giovani Bolzan Cogo   30
Bases de programação




 Operadores lógicos:

 • and       (conjunção)
 • or        (disjunção)
 •




28/05/2011                 Giovani Bolzan Cogo   31
Bases de programação




 Operadores lógicos:

 • and       (conjunção)
 • or        (disjunção)
 • not       (negação)




28/05/2011                 Giovani Bolzan Cogo   32
Bases de programação



 Operadores aritméticos:

 •   +       (adição)
 •

 •

 •

 •

 •




28/05/2011                 Giovani Bolzan Cogo   33
Bases de programação



 Operadores aritméticos:

 • +         (adição)
 • -         (subtração)
 •

 •

 •

 •




28/05/2011                 Giovani Bolzan Cogo   34
Bases de programação



 Operadores aritméticos:

 • +         (adição)
 • -         (subtração)
 • *         (multiplicação)
 •

 •

 •




28/05/2011                 Giovani Bolzan Cogo   35
Bases de programação



 Operadores aritméticos:

 • +         (adição)
 • -         (subtração)
 • *         (multiplicação)
 • /         (divisão)
 •

 •




28/05/2011                 Giovani Bolzan Cogo   36
Bases de programação



 Operadores aritméticos:

 • +         (adição)
 • -         (subtração)
 • *         (multiplicação)
 • /         (divisão)
 • %         (resto divisão)
 •




28/05/2011                 Giovani Bolzan Cogo   37
Bases de programação



 Operadores aritméticos:

 • +         (adição)
 • -         (subtração)
 • *         (multiplicação)
 • /         (divisão)
 • %         (resto divisão)
 • ^ ou **   (exponenciação)


28/05/2011                 Giovani Bolzan Cogo   38
Bases de programação



 Operadores relacionais:

 •   <       (menor)
 •

 •

 •

 •

 •




28/05/2011                 Giovani Bolzan Cogo   39
Bases de programação



 Operadores relacionais:

 • <         (menor)
 • <=        (menor ou igual)
 •

 •

 •

 •




28/05/2011                  Giovani Bolzan Cogo   40
Bases de programação



 Operadores relacionais:

 • <         (menor)
 • <=        (menor ou igual)
 • >         (maior)
 •

 •

 •




28/05/2011                  Giovani Bolzan Cogo   41
Bases de programação



 Operadores relacionais:

 • <         (menor)
 • <=        (menor ou igual)
 • >         (maior)
 • >=        (maior ou igual)
 •

 •




28/05/2011                  Giovani Bolzan Cogo   42
Bases de programação



 Operadores relacionais:

 • <         (menor)
 • <=        (menor ou igual)
 • >         (maior)
 • >=        (maior ou igual)
 • ==        (igual)
 •




28/05/2011                  Giovani Bolzan Cogo   43
Bases de programação



 Operadores relacionais:

 • <         (menor)
 • <=        (menor ou igual)
 • >         (maior)
 • >=        (maior ou igual)
 • ==        (igual)
 • !=        (diferente)


28/05/2011                  Giovani Bolzan Cogo   44
Bases de programação




 Operador de atribuição:

 •     = ou ← ou :=         (atribuição)




28/05/2011                 Giovani Bolzan Cogo   45
Bases de programação


 Blocos

      Blocos de intrução são definidos para separação de
 instruções, ou seja, para definir quais instruções devem ser
 executadas naquele instante. Eles podem ser utilizados como
 { } (C) ou como identação (Python).




28/05/2011               Giovani Bolzan Cogo                46
Bases de programação


 Blocos

      Blocos de intrução são definidos para separação de
 instruções, ou seja, para definir quais instruções devem ser
 executadas naquele instante. Eles podem ser utilizados como
 { } (C) ou como identação (Python).
      Também há os blocos de comemtários que são delimitados
 por caracteres definidos por cada linguagem e que são
 utilizados para serem ignorados no momento da execução do
 código.

28/05/2011               Giovani Bolzan Cogo                47
Bases de programação

 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.




28/05/2011               Giovani Bolzan Cogo                 48
Bases de programação
 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.
    Eles podem ser:

 • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ.
 ('1')
 •

 •

 •

 •

 •

28/05/2011                 Giovani Bolzan Cogo                    49
Bases de programação
 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.
    Eles podem ser:

 • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ.
 ('1')
 • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π')

 •

 •

 •

 •

28/05/2011                 Giovani Bolzan Cogo                    50
Bases de programação
 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.
    Eles podem ser:

 • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ.
 ('1')
 • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π')

 • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ')

 •

 •

 •

28/05/2011                  Giovani Bolzan Cogo                    51
Bases de programação
 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.
    Eles podem ser:

 • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ.
 ('1')
 • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π')

 • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ')

 • boolean: tipo binário: verdadeiro ou falso.

 •

 •

28/05/2011                  Giovani Bolzan Cogo                    52
Bases de programação
 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.
    Eles podem ser:

 • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ.
 ('1')
 • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π')

 • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ')

 • boolean: tipo binário: verdadeiro ou falso.

 • array: sequência de valores ordenados. ([0,5,8,2])

 •

28/05/2011                  Giovani Bolzan Cogo                    53
Bases de programação
 Tipos de dados

    Conforme a necessidade, utiliza-se alguns tipos de dados a
 serem manipulados.
    Eles podem ser:

 • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ.
 ('1')
 • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π')

 • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ')

 • boolean: tipo binário: verdadeiro ou falso.

 • array: sequência de valores ordenados. ([0,5,8,2])

 • string: sequência de caracteres. ('abcd','b8t*%0')

28/05/2011                  Giovani Bolzan Cogo                    54
Bases de programação




 Constantes

     São dados definidos inicialmente e não passíveis de
 alteração ao decorrer do código.




28/05/2011             Giovani Bolzan Cogo             55
Bases de programação



 Variáveis

    Ao decorrer do código, precisamos processar dados e
 estes precisam ser gravados em algum local.




28/05/2011            Giovani Bolzan Cogo             56
Bases de programação



 Variáveis

     Ao decorrer do código, precisamos processar dados e
 estes precisam ser gravados em algum local.
     Aí que as variáveis entram. São recursos que armazenam
 tipos de dados manipulados pelo código.




28/05/2011              Giovani Bolzan Cogo               57
Bases de programação




 Variável local

    É o tipo de variável que está presente dentro de alguma
 função no código e ela só é válida para processos dentro
 daquela função.




28/05/2011              Giovani Bolzan Cogo               58
Bases de programação




 Variável global

     É o tipo de variável que está predomina no código inteiro. É
 válida em qualquer parte do código e pode ser manipulada a
 qualquer momento.




28/05/2011                Giovani Bolzan Cogo                   59
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   60
Laços condicionais




    Quando chega-se a um momento em que se deve tomar
 uma decisão, podemos usar um laço condicional para executar
 ou não um bloco de instruções.




28/05/2011              Giovani Bolzan Cogo                61
Laços condicionais




    Quando chega-se a um momento em que se deve tomar
 uma decisão, podemos usar um laço condicional para executar
 ou não um bloco de instruções.
    Por exemplo, voltando ao caso da lâmpada, caso ela esteja
 funcionando, não há necessidade de trocá-la. [figura1]




28/05/2011               Giovani Bolzan Cogo                62
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   63
Laços repetitivos



    Quando algo pode ser repetitivamente executado,
 podemos utilizar um laço repetitivo para não ter que fazê-lo de
 modo corrente e investir muitas linhas de código numa tarefa
 simples.




28/05/2011                Giovani Bolzan Cogo                  64
Laços repetitivos



    Quando algo pode ser repetitivamente executado,
 podemos utilizar um laço repetitivo para não ter que fazê-lo de
 modo corrente e investir muitas linhas de código numa tarefa
 simples.
    Por exemplo, se eu colocasse uma lâmpada nova e
 queimada, deveria trocá-la novamente até que fosse instalada
 uma lâmpada que funcione.



28/05/2011                Giovani Bolzan Cogo                  65
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos - recursividade
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   66
Recursividade

    Quando encontramos situações em que uma função é
 chamada por ela mesma, dizemos que esta é uma função
 recursiva.

                         funct = [x,y,funct]

       Por exemplo, cálculo do número de Fibonacci:




28/05/2011                  Giovani Bolzan Cogo       67
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   68
Interação usuário-máquina




    Um programa deve seguir uma funcionalidade. Se esta
 funcionalidade requerer que o programa tenha uma interação
 com o usuário, isso deve ser feito de modo muito claro.




28/05/2011              Giovani Bolzan Cogo               69
Interação usuário-máquina



    Dizemos que isso seriam ações de entrada e saída de
 dados.




28/05/2011            Giovani Bolzan Cogo             70
Interação usuário-máquina



    Dizemos que isso seriam ações de entrada e saída de
 dados.
    Cada vez que inserimos um valor no programa, queremos
 que ele faça os devidos procedimentos e nos retorne os
 resultados.




28/05/2011             Giovani Bolzan Cogo              71
Interação usuário-máquina



    Dizemos que isso seriam ações de entrada e saída de
 dados.
    Cada vez que inserimos um valor no programa, queremos
 que ele faça os devidos procedimentos e nos retorne os
 resultados.
    Por exemplo, uma calculadora. Inserimos os valores e a
 função desejada e ela informa o valor final.



28/05/2011              Giovani Bolzan Cogo              72
Interação usuário-máquina



    Dentre as interações clássicas* entre usuário e máquina
 destacam-se os dispositivos periféricos que classificam-se
 entre de entrada e de saída.




28/05/2011              Giovani Bolzan Cogo               73
Interação usuário-máquina



    Dentre as interações clássicas* entre usuário e máquina
 destacam-se os dispositivos periféricos que classificam-se
 entre de entrada e de saída.
    Por exemplo, a tela e as saídas de som são dispositivos de
 saída, enquanto que o teclado e o mouse são disposotivos de
 entrada.




28/05/2011               Giovani Bolzan Cogo                 74
Interação usuário-máquina



    Dentre as interações clássicas* entre usuário e máquina
 destacam-se os dispositivos periféricos que classificam-se
 entre de entrada e de saída.
    Por exemplo, a tela e as saídas de som são dispositivos de
 saída, enquanto que o teclado e o mouse são disposotivos de
 entrada.
 * tecnologia touch screen




28/05/2011                   Giovani Bolzan Cogo             75
Interação usuário-máquina




    Já no código, podemos basicamente esclarecer isso como
 formas de leituras e escritas, em que leitura seria uma função
 para o programa “ouvir” o usuário e capturar as informações
 por ele inseridas e escrita seria o modo de como o programa
 leva informações ao usuário.




28/05/2011                Giovani Bolzan Cogo                 76
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   77
Exemplo “olá mundo!”

 Em Python:                     Em C:
 print “ola mundo!”             # include <stdio.h>
                                int main (void){
                                printf (“ola mundo!”);
                                return 0;}




28/05/2011            Giovani Bolzan Cogo                78
Exemplo “olá mundo!”




       Vídeo-tutorial do código “Olá mundo!” em linguagem C.




28/05/2011                 Giovani Bolzan Cogo                 79
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   80
Bases da linguagem Python




    Variáveis em Pyhton não necessitam serem declaradas
 predefinidademente como em muitas outras linguagens. A
 qualquer momento no decorrer da implementação do código,
 pode-se criar uma variável e também não é necessário rotular
 um tipo para ela, pois são flexíveis quanto ao tipo.




28/05/2011               Giovani Bolzan Cogo                81
Bases da linguagem Python




    A inserção de bibliotecas acontece antes de qualquer linha
 de código e de forma:

 import biblioteca




28/05/2011               Giovani Bolzan Cogo                 82
Bases da linguagem Python




       Os blocos de instruções são definidos por identação.




28/05/2011                  Giovani Bolzan Cogo               83
Bases da linguagem Python



    As funções são delimitadas pela palavra reservada def e
 deve aparentar como:

 def (x,y):
    …
    return valor




28/05/2011              Giovani Bolzan Cogo               84
Bases da linguagem Python




     A partir das funções raw_input() and print() pode-se ler do
 teclado e escrever na tela, respectivamente, os valores
 informados por parâmetro.




28/05/2011                Giovani Bolzan Cogo                  85
Bases da linguagem Python

 Como no exemplo “Ola             Se quiséssemos adquirir um
 mundo!”, a função print foi      valor enviado pelo usuário,
 apresentada:                     usaríamos o raw_input:


 print(“ola mundo!”)              a=raw_input("digite   valor
                                  X: ")




28/05/2011              Giovani Bolzan Cogo                 86
Bases da linguagem Python

 A função print() aceita seus      A função raw_input() imprime
 argumentos repassando-os          seu argumento em tela e
 para a tela. Assim, se            espera por entrada de dados.
 pusermos algo entre aspas,
                                   Ex.: aux = raw_input('digite
 esta será uma string a ser        valor: ')
 impressa. Se pusermos uma
 expressão matemática, seu         # Agora a variável aux conterá valor
 resultado será impresso.          que o usuário digitar em forma de
                                   string.   Obs.:     se    quisermos
 Ex.: print(7+5)                   transformar este valor em real,
                                   poderemos fazer float(aux).
 $ 12
28/05/2011               Giovani Bolzan Cogo                          87
Bases da linguagem Python



 Laços condicionais:

       if ( condicao ):                     if ( condicao1 ):
            …                                    ...
       else:                                elif ( condicao2 ):
            …                                    …
                                            else:
                                                 ...


28/05/2011                Giovani Bolzan Cogo                     88
Bases da linguagem Python




 Laços repetitivos:

       while ( condicao ):
          ...




28/05/2011                   Giovani Bolzan Cogo   89
Bases da linguagem Python




 Definição de funções:

       def funcao ( parametros ):
          ...




28/05/2011                   Giovani Bolzan Cogo   90
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.




28/05/2011            Giovani Bolzan Cogo            91
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores




28/05/2011                   Giovani Bolzan Cogo                 92
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i




28/05/2011                   Giovani Bolzan Cogo                 93
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j




28/05/2011                   Giovani Bolzan Cogo                 94
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j
 lst.append(aux): insere parametro aux no fim da lista




28/05/2011                   Giovani Bolzan Cogo                 95
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j
 lst.append(aux): insere parametro aux no fim da lista
 lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista




28/05/2011                    Giovani Bolzan Cogo                     96
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j
 lst.append(aux): insere parametro aux no fim da lista
 lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista
 lst.remove('alfa'): remove o elemento 'alfa'



28/05/2011                    Giovani Bolzan Cogo                     97
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j
 lst.append(aux): insere parametro aux no fim da lista
 lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista
 lst.remove('alfa'): remove o elemento 'alfa'
 lst.index(3.14159): retorna a posição na lista do valor 3.14159


28/05/2011                  Giovani Bolzan Cogo                       98
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j
 lst.append(aux): insere parametro aux no fim da lista
 lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista
 lst.remove('alfa'): remove o elemento 'alfa'
 lst.index(3.14159): retorna a posição na lista do valor 3.14159
 lst.sort(): ordena a lista

28/05/2011                  Giovani Bolzan Cogo                       99
Bases da linguagem Python
 Lista: lst = [ intens ]
     É um array, ou seja, uma sequênia de elementos de
 qualquer tipo.

 lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores
 lst[i]: retorna o elemento na posição i
 lst[i:j]: retorna os elementos da posição i até a posição j
 lst.append(aux): insere parametro aux no fim da lista
 lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista
 lst.remove('alfa'): remove o elemento 'alfa'
 lst.index(3.14159): retorna a posição na lista do valor 3.14159
 lst.sort(): ordena a lista
 lst.reverse(): inverte a ordem da lista
28/05/2011                  Giovani Bolzan Cogo                   100
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   101
Exercícios práticos




                  Agora, mãos à obra!




28/05/2011            Giovani Bolzan Cogo   102
Exercícios práticos

    Escrever as expressões algébricas computacionais para as
 expressões abaixo:

 a)      f =ax−
                      4 3
                      3
                        x


         f =
                x
 b)             3


                1
 c)      f=
               3 x2



 d)      f =e x 2 a e x




 e)          f =xy


28/05/2011                  Giovani Bolzan Cogo           103
Exercícios práticos

    Escrever as expressões algébricas computacionais para as
 expressões abaixo:

 a)      f =ax−
                      4 3
                      3
                        x   f = a*x – (4/3)*x*x*x            ou   f = a*x - (4/3)*x**3
         f =
                x
 b)             3           f = sqrt(x)/3
                1
 c)      f=
               3 x2         f = 1 / (3 x*x)    ou   f = 1/(3x**2)

 d)      f =e x 2 a e x
                            f = exp(x) + 2*a*exp(x)               ou   f = (1+2*a)*2.71**x

 e)          f =xy          f = x**y
28/05/2011                             Giovani Bolzan Cogo                               104
Exercícios práticos



       Implementar um código que imprima “ 2 + 3 = 5 ” na tela.




28/05/2011                  Giovani Bolzan Cogo                   105
Exercícios práticos



       Implementar um código que imprima “ 2 + 3 = 5 ” na tela.

 Resposta:

 print(“ 2 + 3 = ”,2+3)                 a=2
                                        b=3
                                        c=a+b
                                        print(a,“+”,b,“=”,c)



28/05/2011                  Giovani Bolzan Cogo                   106
Exercícios práticos


    Implementar um código que calcule e retorne a média entre
 3 notas.




28/05/2011               Giovani Bolzan Cogo               107
Exercícios práticos


    Implementar um código que calcule e retorne a média entre
 3 notas.

 Resposta:

 n1=4.8
 n2=6.5
 n3=7.0
 print((n1+n2+n3)/3)


28/05/2011               Giovani Bolzan Cogo               108
Exercícios práticos


     Implementar um código que solicite ao usuário um número
 inteiro e retorne se ele é par ou ímpar.




28/05/2011              Giovani Bolzan Cogo               109
Exercícios práticos


     Implementar um código que solicite ao usuário um número
 inteiro e retorne se ele é par ou ímpar.

 Resposta:

 n = raw_input(“digite numero inteiro: ”)
 if (n%2 == 0):
   print (“par”)
 else:
   print (“impar”)


28/05/2011              Giovani Bolzan Cogo               110
Exercícios práticos


     Implementar um código que solicite ao usuário um número
 inteiro e retorne sua tabuada (1 → 10).




28/05/2011              Giovani Bolzan Cogo               111
Exercícios práticos


     Implementar um código que solicite ao usuário um número
 inteiro e retorne sua tabuada (1 → 10).

 Resposta:

 n = raw_input(“digite numero inteiro: ”)
 i = 0
 while (i<=10):
   print (n,“*”,i,“=”,n*i)



28/05/2011              Giovani Bolzan Cogo               112
Exercícios práticos

   Implementar um código que retorne o fatorial de um
 número solicitado ao usuário.




28/05/2011            Giovani Bolzan Cogo          113
Exercícios práticos

   Implementar um código que retorne o fatorial de um
 número solicitado ao usuário.

 Resposta:

 def fatorial(n):
   if n <= 1:
     return 1
   else:
     return n*fatorial(n-1)
 n=raw_input('digite numero inteiro: ')
 print(fatorial(int(n)))
28/05/2011            Giovani Bolzan Cogo          114
●   Introdução ao conceito de algoritmos
 ●   Algoritmos como vemos no cotidiano
 ●   Linguagens de programação
 ●   Bases de programação
 ●   Laços condicionais
 ●   Laços repetitivos
 ●   Interação usuário-máquina
 ●   Exemplo “Olá mundo!”
 ●   Bases da linguagem Python
 ●   Exercícios práticos
 ●   Bibliografia
28/05/2011                       Giovani Bolzan Cogo   115
Bibliografia



 ● Cechinel, C.; Ferrari, F. Introdução a algoritmos e programação v2.2
 Unipampa; 2008.
 ● Tonet, B.; Koliver, C. Introdução aos algoritmos NAPRO/UCS.

 ● Apostila de algoritmos CFET Campos; 2007.

 ●  Silva, J. L. Introdução à linguagem de programação Python. Com
 aplicações ao cálculo científico ; 2008.
 ● Ferrari, F. Computação científica com Python; 2010.




28/05/2011                   Giovani Bolzan Cogo                     116

Weitere ähnliche Inhalte

Andere mochten auch

Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos João moreira
 
Enumeração Caminhos - Algoritmo Grafos
Enumeração Caminhos - Algoritmo GrafosEnumeração Caminhos - Algoritmo Grafos
Enumeração Caminhos - Algoritmo Grafosthiagoprocaci
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Um algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículosUm algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículosPaulo Remoli
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Pedro Guerreiro
 
Análise de Algoritmos - Programação Dinâmica
Análise de Algoritmos - Programação DinâmicaAnálise de Algoritmos - Programação Dinâmica
Análise de Algoritmos - Programação DinâmicaDelacyr Ferreira
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting AlgorithmsMichel Alves
 
Classes de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilClasses de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilGuilherme Coelho
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoDelacyr Ferreira
 
Algoritmos de jogos
Algoritmos de jogosAlgoritmos de jogos
Algoritmos de jogosiaudesc
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPDelacyr Ferreira
 
Computação quântica
Computação quânticaComputação quântica
Computação quânticadieotavio
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas MínimasDiego Cavalca
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosDelacyr Ferreira
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoDelacyr Ferreira
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPMarcos Castro
 

Andere mochten auch (20)

Transformada Rápida de Fourier
Transformada Rápida de FourierTransformada Rápida de Fourier
Transformada Rápida de Fourier
 
Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos
 
Enumeração Caminhos - Algoritmo Grafos
Enumeração Caminhos - Algoritmo GrafosEnumeração Caminhos - Algoritmo Grafos
Enumeração Caminhos - Algoritmo Grafos
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Um algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículosUm algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículos
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014
 
Análise de Algoritmos - Programação Dinâmica
Análise de Algoritmos - Programação DinâmicaAnálise de Algoritmos - Programação Dinâmica
Análise de Algoritmos - Programação Dinâmica
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting Algorithms
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Classes de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilClasses de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícil
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Algoritmos de jogos
Algoritmos de jogosAlgoritmos de jogos
Algoritmos de jogos
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Computação quântica
Computação quânticaComputação quântica
Computação quântica
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de Grafos
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMP
 

Ähnlich wie Introdução ao conhecimento de algoritmos e prática de programação - Giovani Cogo

Lógica de Programação - Unimep/Pronatec - Aula01
Lógica de Programação - Unimep/Pronatec - Aula01Lógica de Programação - Unimep/Pronatec - Aula01
Lógica de Programação - Unimep/Pronatec - Aula01André Phillip Bertoletti
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptPatricaNascimento1
 
VisualAlg - Criando algoritmos
VisualAlg - Criando algoritmosVisualAlg - Criando algoritmos
VisualAlg - Criando algoritmosvilmardesouza
 
Algoritmos visualg
Algoritmos visualgAlgoritmos visualg
Algoritmos visualgDiego Sales
 
1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II
1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II
1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação IISandraLima53391
 
Apostila algorítimos
Apostila algorítimosApostila algorítimos
Apostila algorítimosLuis Luisao
 
Apostila algorítimos
Apostila algorítimosApostila algorítimos
Apostila algorítimosMarcos Nori
 
Apostila de Introdução a Programação
Apostila de Introdução a ProgramaçãoApostila de Introdução a Programação
Apostila de Introdução a ProgramaçãoThiago Reis da Silva
 
apostila sobre Algoritmos
apostila sobre Algoritmosapostila sobre Algoritmos
apostila sobre AlgoritmosDenise Carmo
 
Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1Daniela Calixto
 
Visualg introdução aos algoritmos
Visualg introdução aos algoritmosVisualg introdução aos algoritmos
Visualg introdução aos algoritmosLuciano Júnior
 
Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?Igor Macaubas
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 

Ähnlich wie Introdução ao conhecimento de algoritmos e prática de programação - Giovani Cogo (20)

Lógica de Programação - Unimep/Pronatec - Aula01
Lógica de Programação - Unimep/Pronatec - Aula01Lógica de Programação - Unimep/Pronatec - Aula01
Lógica de Programação - Unimep/Pronatec - Aula01
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
 
VisualAlg - Criando algoritmos
VisualAlg - Criando algoritmosVisualAlg - Criando algoritmos
VisualAlg - Criando algoritmos
 
Algoritmos visualg
Algoritmos visualgAlgoritmos visualg
Algoritmos visualg
 
1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II
1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II
1_ aula_3.pdf ensino Fundamental - Tecnologia e Inovação II
 
Apostila algorítimos
Apostila algorítimosApostila algorítimos
Apostila algorítimos
 
Apostila algorítimos
Apostila algorítimosApostila algorítimos
Apostila algorítimos
 
Apostila algoritimos
Apostila algoritimosApostila algoritimos
Apostila algoritimos
 
Linguagem visualg2.0
Linguagem visualg2.0Linguagem visualg2.0
Linguagem visualg2.0
 
Apostila de Introdução a Programação
Apostila de Introdução a ProgramaçãoApostila de Introdução a Programação
Apostila de Introdução a Programação
 
Apostila visualg
Apostila visualgApostila visualg
Apostila visualg
 
Algoritimo1
Algoritimo1Algoritimo1
Algoritimo1
 
apostila sobre Algoritmos
apostila sobre Algoritmosapostila sobre Algoritmos
apostila sobre Algoritmos
 
Visual g
Visual gVisual g
Visual g
 
Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1
 
Visualg introdução aos algoritmos
Visualg introdução aos algoritmosVisualg introdução aos algoritmos
Visualg introdução aos algoritmos
 
Introducao POO.pdf
Introducao POO.pdfIntroducao POO.pdf
Introducao POO.pdf
 
Apostila visualg (1)
Apostila visualg (1)Apostila visualg (1)
Apostila visualg (1)
 
Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?Globo.com - Porque amamos open-source?
Globo.com - Porque amamos open-source?
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 

Mehr von Tchelinux

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Tchelinux
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeTchelinux
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Tchelinux
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeTchelinux
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Tchelinux
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Tchelinux
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeTchelinux
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeTchelinux
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...Tchelinux
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...Tchelinux
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Tchelinux
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.Tchelinux
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Tchelinux
 

Mehr von Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 

Introdução ao conhecimento de algoritmos e prática de programação - Giovani Cogo

  • 1. Introdução ao conhecimento de algoritmos e prática de programação Giovani Bolzan Cogo {giovanibcogo@gmail.com} Acadêmico de Engenharia de computação Universidade Federal do Pampa – campus Bagé
  • 2. Sumário ● Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 2
  • 3. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 3
  • 4. Introdução ao conceito de algoritmos O que seria um algoritmo? 28/05/2011 Giovani Bolzan Cogo 4
  • 5. Introdução ao conceito de algoritmos Definição: um algoritmo é um conjunto de instruções sequênciais que tem como objetivo solucionar um certo problema. 28/05/2011 Giovani Bolzan Cogo 5
  • 6. Introdução ao conceito de algoritmos Definição: um algoritmo é um conjunto de instruções sequênciais que tem como objetivo solucionar um certo problema. Em outras palavras, um algoritmo é basicamente uma sequência de passos/comandos que constituem uma rotina lógica que efetua alguma operação desejada. 28/05/2011 Giovani Bolzan Cogo 6
  • 7. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 7
  • 8. Algoritmos como vemos no cotidiano Usamos algoritmos mesmo sem percebê-los. Eles fazem parte do nosso dia-a-dia e quem intera com ele somos nós. 28/05/2011 Giovani Bolzan Cogo 8
  • 9. Algoritmos como vemos no cotidiano Usamos algoritmos mesmo sem percebê-los. Eles fazem parte do nosso dia-a-dia e quem intera com ele somos nós. Por exemplo, qual seria o algoritmo para a troca de uma lâmpada? 28/05/2011 Giovani Bolzan Cogo 9
  • 10. Algoritmos como vemos no cotidiano A implementação mais intuitiva e básica seria: 1- tirar lâmpada usada 28/05/2011 Giovani Bolzan Cogo 10
  • 11. Algoritmos como vemos no cotidiano A implementação mais intuitiva e básica seria: 1- tirar lâmpada usada 2- colocar lâmpada nova 28/05/2011 Giovani Bolzan Cogo 11
  • 12. Algoritmos como vemos no cotidiano Figura 1: Algoritmo de como trocar uma lâmpada em forma de fluxograma 28/05/2011 Giovani Bolzan Cogo 12
  • 13. Algoritmos como vemos no cotidiano Já uma visão mais aguçada do problema envolveria: 1- Checar se a lâmpada funciona 28/05/2011 Giovani Bolzan Cogo 13
  • 14. Algoritmos como vemos no cotidiano Já uma visão mais aguçada do problema envolveria: 1- Checar se a lâmpada funciona 2- Subir em alguma superfície rígida e suportável 28/05/2011 Giovani Bolzan Cogo 14
  • 15. Algoritmos como vemos no cotidiano Já uma visão mais aguçada do problema envolveria: 1- Checar se a lâmpada funciona 2- Subir em alguma superfície rígida e suportável 3- Remover lâmpada estragada 28/05/2011 Giovani Bolzan Cogo 15
  • 16. Algoritmos como vemos no cotidiano Já uma visão mais aguçada do problema envolveria: 1- Checar se a lâmpada funciona 2- Subir em alguma superfície rígida e suportável 3- Remover lâmpada estragada 4- Inserir lâmpada nova 28/05/2011 Giovani Bolzan Cogo 16
  • 17. Algoritmos como vemos no cotidiano Já uma visão mais aguçada do problema envolveria: 1- Checar se a lâmpada funciona 2- Subir em alguma superfície rígida e suportável 3- Remover lâmpada estragada 4- Inserir lâmpada nova 5- Testar lâmpada nova 28/05/2011 Giovani Bolzan Cogo 17
  • 18. Algoritmos como vemos no cotidiano Enfim para quase tudo há um algoritmo que solucione os problemas que queremos. 28/05/2011 Giovani Bolzan Cogo 18
  • 19. Algoritmos como vemos no cotidiano Poderíamos chavear uma gaveta com a chave dentro? 28/05/2011 Giovani Bolzan Cogo 19
  • 20. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 20
  • 21. Linguagens de programação Agora introduzidos ao conceito de linguagens de programação. 28/05/2011 Giovani Bolzan Cogo 21
  • 22. Linguagens de programação Primeiramente, devemos entender o significado do termo linguagem. 28/05/2011 Giovani Bolzan Cogo 22
  • 23. Linguagens de programação Primeiramente, devemos entender o significado do termo linguagem. Uma linguagem abrange um conjunto de palavras que, de uma forma arranjada (definida por regras), contêm um significado coerente. 28/05/2011 Giovani Bolzan Cogo 23
  • 24. Linguagens de programação Temos como exemplo mais utilizado a linguagem natural que é utilizada para a comunicação entre 2 ou mais pessoas. 28/05/2011 Giovani Bolzan Cogo 24
  • 25. Linguagens de programação Temos como exemplo mais utilizado a linguagem natural que é utilizada para a comunicação entre 2 ou mais pessoas. Mais exemplos: Linguagem binária Linguagem assembly Linguagem de programação 28/05/2011 Giovani Bolzan Cogo 25
  • 26. Linguagens de programação As linguagens de programação possuem uma classificação quanto à similaridade entre a linguagem de máquina e a linguagem natural. Quanto mais se assemelha à linguagem natural, a linguagem de programação é dita de alto nível. No caso de ela se assemelhar mais à linguagem de máquina, é dita de baixo nível. Ou seja, quanto mais abstrato é o entendimento de uma linguagem, mais alto nível é. 28/05/2011 Giovani Bolzan Cogo 26
  • 27. Linguagens de programação Iremos utilizar a linguagem Python, por motivos de simples entendimento e curto tempo de resposta quanto à produção, e que será mais detalhada adiante. 28/05/2011 Giovani Bolzan Cogo 27
  • 28. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 28
  • 29. Bases de programação A programação obviamente segue o mesmo fluxo do conceito de algoritmo: entrada → processamento → saída. 28/05/2011 Giovani Bolzan Cogo 29
  • 30. Bases de programação Operadores lógicos: • and (conjunção) • • 28/05/2011 Giovani Bolzan Cogo 30
  • 31. Bases de programação Operadores lógicos: • and (conjunção) • or (disjunção) • 28/05/2011 Giovani Bolzan Cogo 31
  • 32. Bases de programação Operadores lógicos: • and (conjunção) • or (disjunção) • not (negação) 28/05/2011 Giovani Bolzan Cogo 32
  • 33. Bases de programação Operadores aritméticos: • + (adição) • • • • • 28/05/2011 Giovani Bolzan Cogo 33
  • 34. Bases de programação Operadores aritméticos: • + (adição) • - (subtração) • • • • 28/05/2011 Giovani Bolzan Cogo 34
  • 35. Bases de programação Operadores aritméticos: • + (adição) • - (subtração) • * (multiplicação) • • • 28/05/2011 Giovani Bolzan Cogo 35
  • 36. Bases de programação Operadores aritméticos: • + (adição) • - (subtração) • * (multiplicação) • / (divisão) • • 28/05/2011 Giovani Bolzan Cogo 36
  • 37. Bases de programação Operadores aritméticos: • + (adição) • - (subtração) • * (multiplicação) • / (divisão) • % (resto divisão) • 28/05/2011 Giovani Bolzan Cogo 37
  • 38. Bases de programação Operadores aritméticos: • + (adição) • - (subtração) • * (multiplicação) • / (divisão) • % (resto divisão) • ^ ou ** (exponenciação) 28/05/2011 Giovani Bolzan Cogo 38
  • 39. Bases de programação Operadores relacionais: • < (menor) • • • • • 28/05/2011 Giovani Bolzan Cogo 39
  • 40. Bases de programação Operadores relacionais: • < (menor) • <= (menor ou igual) • • • • 28/05/2011 Giovani Bolzan Cogo 40
  • 41. Bases de programação Operadores relacionais: • < (menor) • <= (menor ou igual) • > (maior) • • • 28/05/2011 Giovani Bolzan Cogo 41
  • 42. Bases de programação Operadores relacionais: • < (menor) • <= (menor ou igual) • > (maior) • >= (maior ou igual) • • 28/05/2011 Giovani Bolzan Cogo 42
  • 43. Bases de programação Operadores relacionais: • < (menor) • <= (menor ou igual) • > (maior) • >= (maior ou igual) • == (igual) • 28/05/2011 Giovani Bolzan Cogo 43
  • 44. Bases de programação Operadores relacionais: • < (menor) • <= (menor ou igual) • > (maior) • >= (maior ou igual) • == (igual) • != (diferente) 28/05/2011 Giovani Bolzan Cogo 44
  • 45. Bases de programação Operador de atribuição: • = ou ← ou := (atribuição) 28/05/2011 Giovani Bolzan Cogo 45
  • 46. Bases de programação Blocos Blocos de intrução são definidos para separação de instruções, ou seja, para definir quais instruções devem ser executadas naquele instante. Eles podem ser utilizados como { } (C) ou como identação (Python). 28/05/2011 Giovani Bolzan Cogo 46
  • 47. Bases de programação Blocos Blocos de intrução são definidos para separação de instruções, ou seja, para definir quais instruções devem ser executadas naquele instante. Eles podem ser utilizados como { } (C) ou como identação (Python). Também há os blocos de comemtários que são delimitados por caracteres definidos por cada linguagem e que são utilizados para serem ignorados no momento da execução do código. 28/05/2011 Giovani Bolzan Cogo 47
  • 48. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. 28/05/2011 Giovani Bolzan Cogo 48
  • 49. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. Eles podem ser: • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ. ('1') • • • • • 28/05/2011 Giovani Bolzan Cogo 49
  • 50. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. Eles podem ser: • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ. ('1') • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π') • • • • 28/05/2011 Giovani Bolzan Cogo 50
  • 51. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. Eles podem ser: • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ. ('1') • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π') • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ') • • • 28/05/2011 Giovani Bolzan Cogo 51
  • 52. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. Eles podem ser: • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ. ('1') • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π') • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ') • boolean: tipo binário: verdadeiro ou falso. • • 28/05/2011 Giovani Bolzan Cogo 52
  • 53. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. Eles podem ser: • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ. ('1') • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π') • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ') • boolean: tipo binário: verdadeiro ou falso. • array: sequência de valores ordenados. ([0,5,8,2]) • 28/05/2011 Giovani Bolzan Cogo 53
  • 54. Bases de programação Tipos de dados Conforme a necessidade, utiliza-se alguns tipos de dados a serem manipulados. Eles podem ser: • integer: valor inteiro, ou seja, negativo, positivo ou nulo ϵ Ζ. ('1') • real/float: valor real, ou seja, qualquer x ϵ R. ('0.4','π') • character: caracter unitário, valor que ocupa 1 espaço. ('a',' ') • boolean: tipo binário: verdadeiro ou falso. • array: sequência de valores ordenados. ([0,5,8,2]) • string: sequência de caracteres. ('abcd','b8t*%0') 28/05/2011 Giovani Bolzan Cogo 54
  • 55. Bases de programação Constantes São dados definidos inicialmente e não passíveis de alteração ao decorrer do código. 28/05/2011 Giovani Bolzan Cogo 55
  • 56. Bases de programação Variáveis Ao decorrer do código, precisamos processar dados e estes precisam ser gravados em algum local. 28/05/2011 Giovani Bolzan Cogo 56
  • 57. Bases de programação Variáveis Ao decorrer do código, precisamos processar dados e estes precisam ser gravados em algum local. Aí que as variáveis entram. São recursos que armazenam tipos de dados manipulados pelo código. 28/05/2011 Giovani Bolzan Cogo 57
  • 58. Bases de programação Variável local É o tipo de variável que está presente dentro de alguma função no código e ela só é válida para processos dentro daquela função. 28/05/2011 Giovani Bolzan Cogo 58
  • 59. Bases de programação Variável global É o tipo de variável que está predomina no código inteiro. É válida em qualquer parte do código e pode ser manipulada a qualquer momento. 28/05/2011 Giovani Bolzan Cogo 59
  • 60. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 60
  • 61. Laços condicionais Quando chega-se a um momento em que se deve tomar uma decisão, podemos usar um laço condicional para executar ou não um bloco de instruções. 28/05/2011 Giovani Bolzan Cogo 61
  • 62. Laços condicionais Quando chega-se a um momento em que se deve tomar uma decisão, podemos usar um laço condicional para executar ou não um bloco de instruções. Por exemplo, voltando ao caso da lâmpada, caso ela esteja funcionando, não há necessidade de trocá-la. [figura1] 28/05/2011 Giovani Bolzan Cogo 62
  • 63. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 63
  • 64. Laços repetitivos Quando algo pode ser repetitivamente executado, podemos utilizar um laço repetitivo para não ter que fazê-lo de modo corrente e investir muitas linhas de código numa tarefa simples. 28/05/2011 Giovani Bolzan Cogo 64
  • 65. Laços repetitivos Quando algo pode ser repetitivamente executado, podemos utilizar um laço repetitivo para não ter que fazê-lo de modo corrente e investir muitas linhas de código numa tarefa simples. Por exemplo, se eu colocasse uma lâmpada nova e queimada, deveria trocá-la novamente até que fosse instalada uma lâmpada que funcione. 28/05/2011 Giovani Bolzan Cogo 65
  • 66. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos - recursividade ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 66
  • 67. Recursividade Quando encontramos situações em que uma função é chamada por ela mesma, dizemos que esta é uma função recursiva. funct = [x,y,funct] Por exemplo, cálculo do número de Fibonacci: 28/05/2011 Giovani Bolzan Cogo 67
  • 68. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 68
  • 69. Interação usuário-máquina Um programa deve seguir uma funcionalidade. Se esta funcionalidade requerer que o programa tenha uma interação com o usuário, isso deve ser feito de modo muito claro. 28/05/2011 Giovani Bolzan Cogo 69
  • 70. Interação usuário-máquina Dizemos que isso seriam ações de entrada e saída de dados. 28/05/2011 Giovani Bolzan Cogo 70
  • 71. Interação usuário-máquina Dizemos que isso seriam ações de entrada e saída de dados. Cada vez que inserimos um valor no programa, queremos que ele faça os devidos procedimentos e nos retorne os resultados. 28/05/2011 Giovani Bolzan Cogo 71
  • 72. Interação usuário-máquina Dizemos que isso seriam ações de entrada e saída de dados. Cada vez que inserimos um valor no programa, queremos que ele faça os devidos procedimentos e nos retorne os resultados. Por exemplo, uma calculadora. Inserimos os valores e a função desejada e ela informa o valor final. 28/05/2011 Giovani Bolzan Cogo 72
  • 73. Interação usuário-máquina Dentre as interações clássicas* entre usuário e máquina destacam-se os dispositivos periféricos que classificam-se entre de entrada e de saída. 28/05/2011 Giovani Bolzan Cogo 73
  • 74. Interação usuário-máquina Dentre as interações clássicas* entre usuário e máquina destacam-se os dispositivos periféricos que classificam-se entre de entrada e de saída. Por exemplo, a tela e as saídas de som são dispositivos de saída, enquanto que o teclado e o mouse são disposotivos de entrada. 28/05/2011 Giovani Bolzan Cogo 74
  • 75. Interação usuário-máquina Dentre as interações clássicas* entre usuário e máquina destacam-se os dispositivos periféricos que classificam-se entre de entrada e de saída. Por exemplo, a tela e as saídas de som são dispositivos de saída, enquanto que o teclado e o mouse são disposotivos de entrada. * tecnologia touch screen 28/05/2011 Giovani Bolzan Cogo 75
  • 76. Interação usuário-máquina Já no código, podemos basicamente esclarecer isso como formas de leituras e escritas, em que leitura seria uma função para o programa “ouvir” o usuário e capturar as informações por ele inseridas e escrita seria o modo de como o programa leva informações ao usuário. 28/05/2011 Giovani Bolzan Cogo 76
  • 77. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 77
  • 78. Exemplo “olá mundo!” Em Python: Em C: print “ola mundo!” # include <stdio.h> int main (void){ printf (“ola mundo!”); return 0;} 28/05/2011 Giovani Bolzan Cogo 78
  • 79. Exemplo “olá mundo!” Vídeo-tutorial do código “Olá mundo!” em linguagem C. 28/05/2011 Giovani Bolzan Cogo 79
  • 80. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 80
  • 81. Bases da linguagem Python Variáveis em Pyhton não necessitam serem declaradas predefinidademente como em muitas outras linguagens. A qualquer momento no decorrer da implementação do código, pode-se criar uma variável e também não é necessário rotular um tipo para ela, pois são flexíveis quanto ao tipo. 28/05/2011 Giovani Bolzan Cogo 81
  • 82. Bases da linguagem Python A inserção de bibliotecas acontece antes de qualquer linha de código e de forma: import biblioteca 28/05/2011 Giovani Bolzan Cogo 82
  • 83. Bases da linguagem Python Os blocos de instruções são definidos por identação. 28/05/2011 Giovani Bolzan Cogo 83
  • 84. Bases da linguagem Python As funções são delimitadas pela palavra reservada def e deve aparentar como: def (x,y): … return valor 28/05/2011 Giovani Bolzan Cogo 84
  • 85. Bases da linguagem Python A partir das funções raw_input() and print() pode-se ler do teclado e escrever na tela, respectivamente, os valores informados por parâmetro. 28/05/2011 Giovani Bolzan Cogo 85
  • 86. Bases da linguagem Python Como no exemplo “Ola Se quiséssemos adquirir um mundo!”, a função print foi valor enviado pelo usuário, apresentada: usaríamos o raw_input: print(“ola mundo!”) a=raw_input("digite valor X: ") 28/05/2011 Giovani Bolzan Cogo 86
  • 87. Bases da linguagem Python A função print() aceita seus A função raw_input() imprime argumentos repassando-os seu argumento em tela e para a tela. Assim, se espera por entrada de dados. pusermos algo entre aspas, Ex.: aux = raw_input('digite esta será uma string a ser valor: ') impressa. Se pusermos uma expressão matemática, seu # Agora a variável aux conterá valor resultado será impresso. que o usuário digitar em forma de string. Obs.: se quisermos Ex.: print(7+5) transformar este valor em real, poderemos fazer float(aux). $ 12 28/05/2011 Giovani Bolzan Cogo 87
  • 88. Bases da linguagem Python Laços condicionais: if ( condicao ): if ( condicao1 ): … ... else: elif ( condicao2 ): … … else: ... 28/05/2011 Giovani Bolzan Cogo 88
  • 89. Bases da linguagem Python Laços repetitivos: while ( condicao ): ... 28/05/2011 Giovani Bolzan Cogo 89
  • 90. Bases da linguagem Python Definição de funções: def funcao ( parametros ): ... 28/05/2011 Giovani Bolzan Cogo 90
  • 91. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. 28/05/2011 Giovani Bolzan Cogo 91
  • 92. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores 28/05/2011 Giovani Bolzan Cogo 92
  • 93. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i 28/05/2011 Giovani Bolzan Cogo 93
  • 94. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j 28/05/2011 Giovani Bolzan Cogo 94
  • 95. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j lst.append(aux): insere parametro aux no fim da lista 28/05/2011 Giovani Bolzan Cogo 95
  • 96. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j lst.append(aux): insere parametro aux no fim da lista lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista 28/05/2011 Giovani Bolzan Cogo 96
  • 97. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j lst.append(aux): insere parametro aux no fim da lista lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista lst.remove('alfa'): remove o elemento 'alfa' 28/05/2011 Giovani Bolzan Cogo 97
  • 98. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j lst.append(aux): insere parametro aux no fim da lista lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista lst.remove('alfa'): remove o elemento 'alfa' lst.index(3.14159): retorna a posição na lista do valor 3.14159 28/05/2011 Giovani Bolzan Cogo 98
  • 99. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j lst.append(aux): insere parametro aux no fim da lista lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista lst.remove('alfa'): remove o elemento 'alfa' lst.index(3.14159): retorna a posição na lista do valor 3.14159 lst.sort(): ordena a lista 28/05/2011 Giovani Bolzan Cogo 99
  • 100. Bases da linguagem Python Lista: lst = [ intens ] É um array, ou seja, uma sequênia de elementos de qualquer tipo. lst = ['a', 3, 3.14159, 'abc'] : cria lista com estes valores lst[i]: retorna o elemento na posição i lst[i:j]: retorna os elementos da posição i até a posição j lst.append(aux): insere parametro aux no fim da lista lst.insert(1,'alfa'): insere a string 'alfa' na posição 1 da lista lst.remove('alfa'): remove o elemento 'alfa' lst.index(3.14159): retorna a posição na lista do valor 3.14159 lst.sort(): ordena a lista lst.reverse(): inverte a ordem da lista 28/05/2011 Giovani Bolzan Cogo 100
  • 101. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 101
  • 102. Exercícios práticos Agora, mãos à obra! 28/05/2011 Giovani Bolzan Cogo 102
  • 103. Exercícios práticos Escrever as expressões algébricas computacionais para as expressões abaixo: a) f =ax− 4 3 3 x f = x b) 3 1 c) f= 3 x2 d) f =e x 2 a e x e) f =xy 28/05/2011 Giovani Bolzan Cogo 103
  • 104. Exercícios práticos Escrever as expressões algébricas computacionais para as expressões abaixo: a) f =ax− 4 3 3 x f = a*x – (4/3)*x*x*x ou f = a*x - (4/3)*x**3 f = x b) 3 f = sqrt(x)/3 1 c) f= 3 x2 f = 1 / (3 x*x) ou f = 1/(3x**2) d) f =e x 2 a e x f = exp(x) + 2*a*exp(x) ou f = (1+2*a)*2.71**x e) f =xy f = x**y 28/05/2011 Giovani Bolzan Cogo 104
  • 105. Exercícios práticos Implementar um código que imprima “ 2 + 3 = 5 ” na tela. 28/05/2011 Giovani Bolzan Cogo 105
  • 106. Exercícios práticos Implementar um código que imprima “ 2 + 3 = 5 ” na tela. Resposta: print(“ 2 + 3 = ”,2+3) a=2 b=3 c=a+b print(a,“+”,b,“=”,c) 28/05/2011 Giovani Bolzan Cogo 106
  • 107. Exercícios práticos Implementar um código que calcule e retorne a média entre 3 notas. 28/05/2011 Giovani Bolzan Cogo 107
  • 108. Exercícios práticos Implementar um código que calcule e retorne a média entre 3 notas. Resposta: n1=4.8 n2=6.5 n3=7.0 print((n1+n2+n3)/3) 28/05/2011 Giovani Bolzan Cogo 108
  • 109. Exercícios práticos Implementar um código que solicite ao usuário um número inteiro e retorne se ele é par ou ímpar. 28/05/2011 Giovani Bolzan Cogo 109
  • 110. Exercícios práticos Implementar um código que solicite ao usuário um número inteiro e retorne se ele é par ou ímpar. Resposta: n = raw_input(“digite numero inteiro: ”) if (n%2 == 0): print (“par”) else: print (“impar”) 28/05/2011 Giovani Bolzan Cogo 110
  • 111. Exercícios práticos Implementar um código que solicite ao usuário um número inteiro e retorne sua tabuada (1 → 10). 28/05/2011 Giovani Bolzan Cogo 111
  • 112. Exercícios práticos Implementar um código que solicite ao usuário um número inteiro e retorne sua tabuada (1 → 10). Resposta: n = raw_input(“digite numero inteiro: ”) i = 0 while (i<=10): print (n,“*”,i,“=”,n*i) 28/05/2011 Giovani Bolzan Cogo 112
  • 113. Exercícios práticos Implementar um código que retorne o fatorial de um número solicitado ao usuário. 28/05/2011 Giovani Bolzan Cogo 113
  • 114. Exercícios práticos Implementar um código que retorne o fatorial de um número solicitado ao usuário. Resposta: def fatorial(n): if n <= 1: return 1 else: return n*fatorial(n-1) n=raw_input('digite numero inteiro: ') print(fatorial(int(n))) 28/05/2011 Giovani Bolzan Cogo 114
  • 115. Introdução ao conceito de algoritmos ● Algoritmos como vemos no cotidiano ● Linguagens de programação ● Bases de programação ● Laços condicionais ● Laços repetitivos ● Interação usuário-máquina ● Exemplo “Olá mundo!” ● Bases da linguagem Python ● Exercícios práticos ● Bibliografia 28/05/2011 Giovani Bolzan Cogo 115
  • 116. Bibliografia ● Cechinel, C.; Ferrari, F. Introdução a algoritmos e programação v2.2 Unipampa; 2008. ● Tonet, B.; Koliver, C. Introdução aos algoritmos NAPRO/UCS. ● Apostila de algoritmos CFET Campos; 2007. ● Silva, J. L. Introdução à linguagem de programação Python. Com aplicações ao cálculo científico ; 2008. ● Ferrari, F. Computação científica com Python; 2010. 28/05/2011 Giovani Bolzan Cogo 116