SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
Algoritmos e Linguagem
    de Programação
     Professor: Mauro Jansen



      Parte 1 - Introdução


             09/2012
Algoritmos e Ling.de Programação
Prof. Mauro               Introdução             2
Lógica
 A Lógica estuda os processos válidos e
 gerais pelos quais atingimos a verdade [...]
 É a ciência das leis do pensamento.
 Palavra criada pelo filósofo grego Aristóteles (séc. IV
 a.C.) para estudar o pensamento humano e distinguir
 interferências e argumentos certos e errados

      É a ciência dos argumentos, ou seja, ela
      trata das conclusões a que chegamos a
      partir das evidências que as sustentam

                   Algoritmos e Ling.de Programação
   Prof. Mauro                 Introdução                  3
Lógica: sistema lógico
 Sistema lógico é um conjunto de
 axiomas e regras de inferência que visam
 formalizar o raciocínio válido, dedutivo ou
 indutivo
   Axioma: hipótese, sentença ou proposição
   não provada mas considerada como óbvia ou
   de consenso inicial para formulação de uma
   teoria
   Inferência: é o processo pelo qual se chega a
   uma proposição, com base em axiomas

                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             4
Lógica: Dedução
 Dedução caracteriza-se por apresentar
 conclusões que devem ser verdadeiras caso
 todas as premissas sejam verdadeiras.
 Exemplo
   Todo ser humano é mortal.
                                                Premissas
   Pedro é um ser humano.
   Portanto, Pedro é mortal.                         Conclusão


                 O pensamento dedutivo
                  parte do geral para o
                        particular.


                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução                         5
Lógica: Indução
 Indução: o pensamento indutivo consiste em
 partir de premissas particulares, na busca de
 uma lei geral.
 Exemplo
   O ferro conduz eletricidade.
                                   O pensamento indutivo
   O ferro é um metal.            parte do particular para o
                                            geral.
   O ouro conduz eletricidade.
   O ouro é um metal.
   O cobre conduz eletricidade.
   O cobre é um metal.
   Logo: os metais conduzem eletricidade.

                    Algoritmos e Ling.de Programação
   Prof. Mauro                  Introdução                     6
Algoritmos e Ling.de Programação
Prof. Mauro               Introdução             7
Algoritmo
 Sequência ordenada de passos (instruções) necessários
 para a resolução de um problema ou processo.
 Procedimento passo a passo para resolução de um
 problema

 Exemplos de possíveis problemas do mundo real
 solucionáveis com algoritmos:
   Resolver uma operação matemática seguindo passos até chegar
   ao resultado final
   Assar uma pipoca no forno microondas
   Tomar medicamentos seguindo orientações médicas
   Cozinhar seguindo receitas culinárias

                    Algoritmos e Ling.de Programação
   Prof. Mauro                  Introdução                       8
Algoritmo (exemplo)
   Receita de pipoca de microondas caseira
  1. Em um prato refratário com tampa, coloque um ou
     mais “punhados” (mão cheia) de milho de pipoca
     comum
  2. Acrescente 1 colher de sopa de água para cada
     “punhado” de milho colocado anteriormente
  3. Coloque o prato refratário no microondas, com a
     tampa, por mais ou menos 5 minutos
  4. Aguarde esfriar
  5. Retire o prato do microondas
                                          Adaptado de http://tudogostoso.uol.com.br



                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução                                         9
Dados e Informações
 Dados: são os fatos em sua ordem primária.
    Matéria prima (bruta)
    Ex: preço de venda, nota, horas trabalhadas
 Informação: parte utilizável dos dados, que
 pode ser armazenada, transmitida ou permitir a
 dedução de novas informações.
    Produto final (acabado, lapidado)
    Ex: orçamento, resultado acadêmico, folha de
    pagamento

INFORMAÇÃO                  DADO                      CONHECIMENTO


                   Algoritmos e Ling.de Programação
   Prof. Mauro                 Introdução                            10
Processamento de dados
 Qualquer trabalho de manipulação de dados que tenha
 como finalidade obter resultados previamente
 estabelecidos de modo a resolver determinado problema
 Tem 3 partes principais: ENTRADA, PROCESSAMENTO e
 SAÍDA
   Envolve TRANSMISSÃO, ARMAZENAMENTO, RECUPERAÇÃO,
   COMPARAÇÃO, COMBINAÇÃO de informações



ENTRADA           PROCESSAMENTO                      SAÍDA




                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução                     11
Dados de entrada e saída
 Ao tentar resolver um problema, devemos
 identificar alguns dados que auxiliarão na sua
 resolução.
   Dados de Entrada: dão suporte à solução do
   problema. Ponto de partida.
   Dados de Saída: resultados esperados após
   solução.
 Através de um algoritmo os dados de entrada
 podem ser processados e teremos a solução
 do problema, que gerará uma saída de dados

                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             12
Instrução e lógica de programação
  Instrução: Informação que indica ao
  computador uma ação elementar a
  executar
  Lógica de programação diz respeito à
  dedução de uma sequência de instruções
  tal que, fornecidos os dados de entrada,
  alcançaremos como saída a solução do
  problema inicialmente concebido, por meio
  da execução das instruções
                  Algoritmos e Ling.de Programação
    Prof. Mauro               Introdução             13
(Um pouco mais sobre algoritmos:
Conceitos, características, importância e passos para criação)




                     Algoritmos e Ling.de Programação
 Prof. Mauro                     Introdução                      14
Conceitos
  “Algoritmo é uma seqüência de passos que visa atingir um
                                    objetivo bem definido”
                                                        (FORBELLONE, 1999)

“Algoritmo é uma seqüência de passos que deve ser seguida
                          para a realização de uma tarefa”
                                                          (ASCENCIO, 1999)

      “Algoritmos são regras formais para a obtenção de um
       resultado ou da solução de um problema, englobando
                        fórmulas de expressões aritméticas”
                                                          (MANZANO, 1997)

                     Algoritmos e Ling.de Programação
     Prof. Mauro                 Introdução                             15
Conceitos

  “Um algoritmo é uma lista de instruções que,
    quando executadas, transformam dados de
     entrada até a saída. As instruções são um
      conjunto finito de etapas que podem ser
     executadas, numa ordem precisa, por um
   mecanismo determinista. Quando estas etapas
  são efetivamente executadas , a execução deve
          terminar após um tempo finito.”
                                                    (HOLLOWAY, 2006)



                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução                                16
Características de um algoritmo
 Ter fim;
 Não dar margem a dupla interpretação;
 Capacidade de receber dados do mundo
 exterior;
 Poder gerar informações de saída para o
 mundo externo ao ambiente do algoritmo;
 Ser efetivo;


                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             17
Importância dos algoritmos
   “A noção de algoritmo é básica para toda a
        programação de computadores”.
  [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer
                                                                         programming”




     “O conceito central da programação e da
      ciência da computação é o conceito de
                    algoritmo”.
  [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e
   responsável pela criação de linguagens de programação como ALGOL, PASCAL e
                                                                        MODULA-2]



                              Algoritmos e Ling.de Programação
    Prof. Mauro                           Introdução                                      18
Passos para escrever um algoritmo
  Segundo ASCENCIO e CAMPOS (2002), os passos
  para a construção de algoritmos são os seguintes:
    Ler atentamente o enunciado, destacando os pontos
    mais importantes;
    Definir os dados de entrada;
    Definir o processamento;
    Definir os dados de saída;
    Construir o algoritmo uma das técnicas descritas a
    seguir;
    Testar o algoritmo realizando simulações.



                   Algoritmos e Ling.de Programação
    Prof. Mauro                Introdução                19
Algoritmos e Ling.de Programação
Prof. Mauro               Introdução             20
Responda:
 Quais são os raciocínios lógicos básicos e qual a dinâmica
 dos mesmos?
 Qual a importância da lógica para a criação de algoritmos
 e programação?
 O que é um algoritmo? Dê exemplos.
 O que são dados e informações?
 Qual o princípio básico do processamento de dados?
 O que é uma instrução? Dê exemplos.
 Quais são as características de um algoritmo?
 Qual a importância dos algoritmos?
 Cite os passos básicos para criar algoritmos.


                    Algoritmos e Ling.de Programação
   Prof. Mauro                  Introdução               21
Resolva:
 Um homem está à margem de um rio com
 uma raposa, uma dúzia de galinhas e um
 saco de milho. Ele pretende atravessar o
 rio com a sua carga numa canoa que só
 comporta ele e uma das suas cargas. Ele
 não pode deixar a raposa com as galinhas,
 nem as galinhas com o milho. Qual a
 sequência da passos (algoritmo) para
 atravessar o rio e chegar à outra margem
 com a raposa, as galinhas e o milho?
                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             22
Algoritmo da travessia do rio
 Solução sem detalhes:
   Leva a galinha
   Volta
   Leva a raposa
   Volta com a galinha
   Deixa a galinha e Leva o milho
   Volta
   Leva o milho
   Volta
   Leva a galinha




                      Algoritmos e Ling.de Programação
   Prof. Mauro                    Introdução             23
Algoritmo da travessia do rio
 Solução com detalhes:
    INICIO
    Pega a galinha e entra na canoa
    Atravessa o rio até o lado destino, levando a galinha
    Deixa a galinha no lado destino
    Atravessa o rio de volta ao lado origem
    Desce da canoa, pega a raposa que está no lado origem e entra na canoa
    Atravessa o rio até o lado destino, levando a raposa
    Desce da canoa, deixa a raposa e pega a galinha
    Entra na canoa e atravessa o rio de volta ao lado origem, trazendo a galinha
    Desce da canoa, deixa a galinha e pega o milho
    Entra na canoa e atravessa o rio até o lado destino, levando o milho
    Deixa o milho e atravessa o ria de volta ao lado origem
    Desce da canoa, pega a galinha que está no lado origem e entra na canoa
    Atravessa o rio até o lado destino, levando a galinha
    FIM

                            Algoritmos e Ling.de Programação
    Prof. Mauro                         Introdução                                 24
Escreva os algoritmos:
 Escreva a sequência de passos (algoritmo)
 necessários para:
   Calcular a área de um retângulo
   Escovar os dentes
   Fritar um ovo




                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             25
(Aonde queremos chegar com os algoritmos)




                     Algoritmos e Ling.de Programação
Prof. Mauro                      Introdução             26
Linguagem de máquina
       O computador, nativamente, só entende uma
       linguagem: a linguagem (ou código) de máquina,
       que é uma linguagem que:
          Tem grau de dificuldade acentuado
          Requer do programador um conhecimento da
          arquitetura interna do hardware
       Exemplo de programa em código de máquina:
C000   10111111
C001   00000000
C002   01110100         C000:C100   BF 00 74 68 51 66 56 57-1E 06 53 66 50 E8 BC 00
C003   01101000         C000:C110   8B D9 D1 E1 16 5E 8E DE-8E C6 83 C5 02 8B C5 83
...                     C000:C120   ED 16 8B F5 8B FD 2B F9-8B E8 B9 0C 00 FC F3 A5



                                      Algoritmos e Ling.de Programação
          Prof. Mauro                             Introdução                          27
Linguagens de programação (LP’s)
  As linguagens de programação existem para
  tornar a programação mais próxima da nossa
  linguagem natural
    Maior facilidade
    Maior produtividade
             Código de máquina X linguagem de alto nível:




                         Algoritmos e Ling.de Programação
    Prof. Mauro                      Introdução             28
Linguagens de programação (LP’s)
  Exemplo de programa em uma linguagem
  de programação (Pascal):
          (*
                 Programa CONTADOR – conta de 1 a 10
          *)
          Var
             c: integer;
          Begin
             for c:=1 to 10 do
                writeln(c);
             writeln(‘Fim!’);
          End.



                          Algoritmos e Ling.de Programação
   Prof. Mauro                        Introdução             29
Linguagens de programação (LP’s)
  São programas (softwares) usados para criar
  outros programas.
  Transformam um conjunto de instruções de uma
  linguagem acessível em instruções da linguagem
  do computador (linguagem de máquina)
  Exemplos: •Pascal               •C
                  •Delphi                                 •C++
                  •Visual Basic                           •C#
                  •Java                                   •PHP
                  •PHP                                    •Javascript

                       Algoritmos e Ling.de Programação
    Prof. Mauro                    Introdução                           30
Características das LP’s
  Rigidez sintática:
    Idioma limitado e construções bem definidas
    A ordem dos termos ou uma vírgula a mais ou a
    menos faz diferença (a sintaxe deve ser seguida à
    risca)
  Rigidez semântica: não pode haver
  ambiguidades.
    O computador não tem idéia do que executa e nem
    inteligência para analisar a ordem
    Você deve ser bem claro em relação ao que quer que
    o computador execute
                   Algoritmos e Ling.de Programação
    Prof. Mauro                Introdução               31
Características das LP’s
  Rigidez semântica - exemplo ilustrativo na
  língua portuguesa:
    A frase “A velhinha ouviu o barulho da janela.”
    pode ser interpretada de três maneiras:
          A velhinha ouviu o barulho produzido pela janela
          A velhinha estava junto à janela e ouviu o barulho
          A velhinha ouviu o barulho que veio através da
          janela
    Nesse caso, há pouca rigidez semântica

                       Algoritmos e Ling.de Programação
    Prof. Mauro                    Introdução              32
Tipos de linguagens de programação
  Quanto ao nível de abstração (facilidade de
  aprendizado)
    Alto nível
    Médio nível
    Baixo nível
  Quanto à forma de execução
    Compiladas
    Interpretadas

                    Algoritmos e Ling.de Programação
    Prof. Mauro                 Introdução             33
Nível de abstração das LPs
 Abstração: habilidade de concentrar nos
 aspectos essenciais de um contexto
 qualquer, ignorando características menos
 importantes ou acidentais
   Contexto em questão: máquina
   Está diretamente relacionada à facilidade de
   aprendizado e uso de uma linguagem de
   programação


                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             34
Nível de abstração das LPs
 Alto nível: separa os detalhes da
 máquina. É mais próxima da linguagem
 humana
 Médio nível: separa os detalhes da
 máquina, mas permite o acesso aos
 mesmos
 Baixo nível: diretamente relacionadas
 com a arquitetura do hardware

                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             35
Nível de abstração das LPs
                 Homem / linguagem humana
                           Linguagens de alto nível:
                 ASP, C/C++, C#, Pascal/Object Pascal, Java,
                  PHP, Python, Tcl, Basic/Visual Basic, Delphi



                         Linguagens de médio nível:
                                  C, C++


                         Linguagens de baixo nível:
                     Assembly e Linguagem de máquina

                               MÁQUINA

                             Algoritmos e Ling.de Programação
   Prof. Mauro                           Introdução              36
Linguagem compilada – visão geral
   Linguagem compilada
       Converte o programa na linguagem de alto
       nível (programa fonte) para a linguagem de
       máquina (programa executável ou arquivo do
       tipo APLICATIVO)
       Funcionamento:
Programa                                 Código                             Programa
                    Compilador                                 Linkeditor
  fonte                                  objeto                             executável



                                                              bibliotecas
                                 Algoritmos e Ling.de Programação
      Prof. Mauro                            Introdução                                  37
Linguagem compilada - elementos
 Programa fonte: (ou código fonte) instruções e
 símbolos de uma linguagem de programação
 escritos de forma lógica e ordenada, com o
 objetivo de comandar um computador na
 execução de uma função
   Normalmente são arquivos com extensão definida pela
   LP: .C , .PAS , .JAVA , .PHP , etc
 Compilador: (ou tradutor) programa que traduz
 um programa fonte em uma linguagem para um
 código objeto ou linguagem de mais baixo nível
 Código objeto: (ou código intermediário).
 Código resultante da compilação. Ainda não é
 executável diretamente pelo computador.
                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução             38
Linguagem compilada - elementos
 Linkeditor: (ou ligador) programa que liga os
 objetos gerados pelo compilador, criando o
 arquivo executável
 Bibliotecas: conjuntos de sub-programas, ou
 objetos previamente existentes que serão
 (re)utilizados na criação do programa executável
 Programa executável: arquivo final, que pode
 ser executado pelo computador através do
 sistema operacional
   Normalmente são arquivos com a extensão .EXE ou
   .COM

                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução              39
Linguagem compilada - exemplos
 Delphi
 Pascal/Object Pascal
 C
 Visual Basic
 Assembler, etc.




                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             40
Linguagem interpretada – visão geral
  Linguagem interpretada
     Executa os comandos sem converter para a
     linguagem de máquina (não gera programa
     executável)
                      Programa  Interpretador
     Funcionamento:     fonte     (executa)

           Ou:
                                                                Interpretador
Programa                                Código                       ou
                   Compilador                                  Máquina virtual
  fonte                                 objeto
                                                                  (executa)


                            Algoritmos e Ling.de Programação
     Prof. Mauro                        Introdução                               41
Linguagem interpretada – exemplos:
  Java
  HTML
  ASP
  PHP
  Javascript




                  Algoritmos e Ling.de Programação
    Prof. Mauro               Introdução             42
Ambientes de desenvolvimento
 São ambientes de desenvolvimento que integram
 diversas ferramentas para a criação de
 programas em uma linguagem de programação
 Também chamados de IDE´s (Integrated
 Development Environment)
 Exemplo de ferramentas encontradas nos IDE´s:
   Editor de textos adequado para a programação
   Ajuda (Help) on-line
   Compilador, linkeditor e depurador integrados
   Ferramentas para desenho de janelas (formulários)

                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução               43
Desenvolvimento de software
 Segue um ciclo de vida
   Análise: definição do QUÊ o programa deverá
   fazer
   Projeto: definição de COMO o programa
   executará seu objetivo
   Implementação: codificação (criação de um
   ou mais programas em uma linguagem)
   Testes: testes isolados e de integração


                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             44
Programação de computadores
 O que preciso saber para programar?
   Noções de algoritmos e lógica de programação
   Conhecer a estrutura, comandos e símbolos da
   linguagem de programação escolhida
   Para linguagens de baixo nível, conhecer a
   arquitetura do hardware
   Prática... Muita prática



                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             45
Atividade: Questionário 2
 Qual a linguagem nativa do computador e qual as
 características da mesma?
 O que são linguagens de programação? Cite exemplos.
 Quais as características das linguagens de programação?
 Como classificam-se as linguagens de programação
 quanto ao: (dê exemplos de cada grupo)
   Grau de dificuldade
   Modo de execução
 Explique o funcionamento dos diferentes tipos de LPs




                         Algoritmos e Ling.de Programação
   Prof. Mauro                       Introdução             46
(Estruturas básicas para criação e representação de algoritmos)




                      Algoritmos e Ling.de Programação
  Prof. Mauro                     Introdução                      47
Estruturação de algoritmos
 São formas possíveis de resolução e
 representação de algoritmos
   Resolução
         Sequencial
         Condicional
         Repetição
   Representação
         Linguagem natural / descrição narrativa
         Fluxograma
         Diagrama de Chapin
         Pseudocódigo


                        Algoritmos e Ling.de Programação
   Prof. Mauro                      Introdução             48
Estruturas de resolução
 Ao buscar uma solução de um problema
 criando um algoritmo, sempre teremos
 pelo menos uma das seguintes estruturas:
   Resolução Sequencial: sequência linear de
   instruções, uma após a outra
   Resolução Condicional: existência de
   “condições” para executar algumas instruções.
   Resolução com Repetição: algumas instruções
   precisam ser executadas várias vezes.


                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             49
Estruturas de representação
 Linguagem natural / descrição narrativa
 Fluxograma
 Diagrama de Chapin
 Pseudocódigo




                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             50
Linguagem natural
 Apesar de ser possível escrever algoritmos
 para pessoas usando a linguagem natural,
 ela não é adequada para a construção de
 algoritmos para o computador
 Não tem características das LP´s:
   Não têm rigidez sintática:
         Traga caneta azul ou preta.
         Traga caneta (Azul ou preta)
   Não tem rigidez semântica:
         A velhinha ouviu o barulho da janela

                      Algoritmos e Ling.de Programação
   Prof. Mauro                    Introdução             51
Linguagem natural x LP´s
 Ao decidir entra a linguagem natural ou as
 LP´s, temos um impasse, pois:
   A linguagem natural não é adequada por não
   ter rigidez sintática e semântica
         Torna-se impossível para o computador processar
   A linguagem de programação não é adequada
   por ter rigidez sintática e semântica
         Torna-se difícil para o programador iniciante
 Então, precisamos de outras alternativas...

                      Algoritmos e Ling.de Programação
   Prof. Mauro                    Introdução               52
Fluxograma
 São representações gráficas de algoritmos:
   Formas geométricas para representar o início,
   término e as instruções a serem executadas
   Setas para indicar o fluxo das ações
 Alguns símbolos representam situações
 especiais dos algoritmos:
   Tomadas de decisão e desvios
   Repetição


                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             53
Fluxograma: símbolos básicos

           Início e término do algoritmo


           Setas indicam o fluxo da execução


           Instrução (entrada, saída, armazenamento ou
           processamento de dados)


             Tomada de decisão com possível desvio do fluxo




                         Algoritmos e Ling.de Programação
   Prof. Mauro                       Introdução               54
Fluxograma: exemplo
Algoritmo em forma de                       Início
fluxograma, para
solicitar dois números e
                                    Leia num1, num2
mostrar qual o maior:

                             sim                                não
                                      Num1>num2?


                     Maior     num1                      Maior        num2




                                       Escreva Maior


                                              Fim
                             Algoritmos e Ling.de Programação
       Prof. Mauro                       Introdução                          55
Fluxograma
 Vantagens:
   Facilidade proporcionada para compreensão do
   funcionamento
   Facilmente entendível por pessoas visuais
 Desvantagens:
   Não é uma representação prática: a correção implica
   em alterar vários desenhos
   Inadequado para algoritmos complexos e longos
 Inadequado para uso como ferramenta principal
 Recomendável apenas para representar a idéia
 geral de um algoritmo ou como “ensaio” para
 criação da solução

                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução                 56
Diagrama de Chapin
 Criado por Ned Chapin a partir de
 trabalhos de Nassi-Shneidermann
 Apresenta uma visão hierárquica e
 estruturada da lógica do programa




                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             57
Diagrama de Chapin: exemplo
Algoritmo referente ao problema do maior número,
representado em diagrama de Chapin:


                    Leia num1, num2
                        num1>num2
        sim                             não
          maior num1       maior     num2
            Escreva “O maior é: ”,maior
                       Fim


                      Algoritmos e Ling.de Programação
      Prof. Mauro                 Introdução             58
Pseudocódigo
 Forma para a representação de algoritmos rica
  em detalhes, como a definição dos tipos das
        variáveis usadas no algoritmo.


 Assemelha-se à forma como os programas são escritos.
 Para traduzir o pseudocódigo para uma linguagem de
 programação, basta conhecer o vocabulário e regras
 sintáticas da linguagem.
 Busca a rigidez sintática e semântica, porém sem o
 detalhamento exigido nas linguagens de programação

                   Algoritmos e Ling.de Programação
    Prof. Mauro                Introdução               59
Pseudocódigo – estrutura básica
 Estudaremos o pseudocódigo com mais
 detalhes posteriormente. Por enquanto,
 conheceremos apenas a estrutura básica
 de um pseudocódigo:
        Algoritmo <nome do Algoritmo>
        Variáveis
           <lista de variáveis>
        Início
           <bloco de comandos>
        Fim

                  Algoritmos e Ling.de Programação
   Prof. Mauro                Introdução             60
Pseudocódigo - exemplo
 Pseudocódigo referente ao problema do
 maior número:
          Algoritmo Maior
          Var num1, num2, maior: inteiro:
          Inicio
             Leia(num1,num2);
             se (num1>num2) então
                maior    num1;
             senão
                maior    num2;
             fimse;
             escreva(maior);
          Fim


                      Algoritmos e Ling.de Programação
   Prof. Mauro                    Introdução             61
Atividade – questionário:
 Quais as estruturas básicas de resolução
 de problemas com algoritmos?
 Quais as formas de representação de
 algoritmos?
   Qual a característica, vantagens e
   desvantagens de cada uma delas?
   Qual a mais adequada para representação de
   algoritmos?
 Construa um fluxograma para somar dois
 números e mostrar o resultado
                 Algoritmos e Ling.de Programação
   Prof. Mauro               Introdução             62

Mais conteúdo relacionado

Mais procurados

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmosAdilio Tavares
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais111111119
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosMessias Batista
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programaçãoElaine Cecília Gatto
 

Mais procurados (20)

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e Lógicos
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 

Destaque

Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosMauro Pereira
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psMauro Pereira
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Lista de exercicios 01 introdução
Lista de exercicios 01 introduçãoLista de exercicios 01 introdução
Lista de exercicios 01 introduçãoMauro Pereira
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03thomasdacosta
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)Alex Camargo
 
Lista de exercicios 02 hardware
Lista de exercicios 02 hardwareLista de exercicios 02 hardware
Lista de exercicios 02 hardwareMauro Pereira
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosWesley R. Bezerra
 

Destaque (17)

Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Introdução a estrutura de dados
Introdução a estrutura de dadosIntrodução a estrutura de dados
Introdução a estrutura de dados
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l ps
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Lista de exercicios 01 introdução
Lista de exercicios 01 introduçãoLista de exercicios 01 introdução
Lista de exercicios 01 introdução
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Algoritmos Aula 01
Algoritmos Aula 01Algoritmos Aula 01
Algoritmos Aula 01
 
Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Transmissão serial e paralela
Transmissão serial e paralelaTransmissão serial e paralela
Transmissão serial e paralela
 
Lista de exercicios 02 hardware
Lista de exercicios 02 hardwareLista de exercicios 02 hardware
Lista de exercicios 02 hardware
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 

Semelhante a Algoritmos e lp parte 1-introdução

Aula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoAula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoSérgio Souza Costa
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programaçãomafsistemas
 
Apresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptxApresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptxscoffee633
 
Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Lógica e algoritmos
Lógica e algoritmosLógica e algoritmos
Lógica e algoritmosJocelma Rios
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009starley lobo
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computadorSérgio Souza Costa
 
Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01Gabriel Demétrio
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosJocelma Rios
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasMessias Batista
 

Semelhante a Algoritmos e lp parte 1-introdução (20)

Aula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoAula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computação
 
Aula01
Aula01Aula01
Aula01
 
Aula01
Aula01Aula01
Aula01
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Apresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptxApresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptx
 
Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 01 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
Algoritmos com java script
Algoritmos com java scriptAlgoritmos com java script
Algoritmos com java script
 
Lógica e algoritmos
Lógica e algoritmosLógica e algoritmos
Lógica e algoritmos
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computador
 
Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
 

Mais de Mauro Pereira

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesMauro Pereira
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadoresMauro Pereira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de NumeracaoMauro Pereira
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Mauro Pereira
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesMauro Pereira
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitosMauro Pereira
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantesMauro Pereira
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamentoMauro Pereira
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Mauro Pereira
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosMauro Pereira
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...Mauro Pereira
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquiteturaMauro Pereira
 
Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Mauro Pereira
 

Mais de Mauro Pereira (20)

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redes
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadores
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantes
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolos
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquitetura
 
Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)
 

Algoritmos e lp parte 1-introdução

  • 1. Algoritmos e Linguagem de Programação Professor: Mauro Jansen Parte 1 - Introdução 09/2012
  • 2. Algoritmos e Ling.de Programação Prof. Mauro Introdução 2
  • 3. Lógica A Lógica estuda os processos válidos e gerais pelos quais atingimos a verdade [...] É a ciência das leis do pensamento. Palavra criada pelo filósofo grego Aristóteles (séc. IV a.C.) para estudar o pensamento humano e distinguir interferências e argumentos certos e errados É a ciência dos argumentos, ou seja, ela trata das conclusões a que chegamos a partir das evidências que as sustentam Algoritmos e Ling.de Programação Prof. Mauro Introdução 3
  • 4. Lógica: sistema lógico Sistema lógico é um conjunto de axiomas e regras de inferência que visam formalizar o raciocínio válido, dedutivo ou indutivo Axioma: hipótese, sentença ou proposição não provada mas considerada como óbvia ou de consenso inicial para formulação de uma teoria Inferência: é o processo pelo qual se chega a uma proposição, com base em axiomas Algoritmos e Ling.de Programação Prof. Mauro Introdução 4
  • 5. Lógica: Dedução Dedução caracteriza-se por apresentar conclusões que devem ser verdadeiras caso todas as premissas sejam verdadeiras. Exemplo Todo ser humano é mortal. Premissas Pedro é um ser humano. Portanto, Pedro é mortal. Conclusão O pensamento dedutivo parte do geral para o particular. Algoritmos e Ling.de Programação Prof. Mauro Introdução 5
  • 6. Lógica: Indução Indução: o pensamento indutivo consiste em partir de premissas particulares, na busca de uma lei geral. Exemplo O ferro conduz eletricidade. O pensamento indutivo O ferro é um metal. parte do particular para o geral. O ouro conduz eletricidade. O ouro é um metal. O cobre conduz eletricidade. O cobre é um metal. Logo: os metais conduzem eletricidade. Algoritmos e Ling.de Programação Prof. Mauro Introdução 6
  • 7. Algoritmos e Ling.de Programação Prof. Mauro Introdução 7
  • 8. Algoritmo Sequência ordenada de passos (instruções) necessários para a resolução de um problema ou processo. Procedimento passo a passo para resolução de um problema Exemplos de possíveis problemas do mundo real solucionáveis com algoritmos: Resolver uma operação matemática seguindo passos até chegar ao resultado final Assar uma pipoca no forno microondas Tomar medicamentos seguindo orientações médicas Cozinhar seguindo receitas culinárias Algoritmos e Ling.de Programação Prof. Mauro Introdução 8
  • 9. Algoritmo (exemplo) Receita de pipoca de microondas caseira 1. Em um prato refratário com tampa, coloque um ou mais “punhados” (mão cheia) de milho de pipoca comum 2. Acrescente 1 colher de sopa de água para cada “punhado” de milho colocado anteriormente 3. Coloque o prato refratário no microondas, com a tampa, por mais ou menos 5 minutos 4. Aguarde esfriar 5. Retire o prato do microondas Adaptado de http://tudogostoso.uol.com.br Algoritmos e Ling.de Programação Prof. Mauro Introdução 9
  • 10. Dados e Informações Dados: são os fatos em sua ordem primária. Matéria prima (bruta) Ex: preço de venda, nota, horas trabalhadas Informação: parte utilizável dos dados, que pode ser armazenada, transmitida ou permitir a dedução de novas informações. Produto final (acabado, lapidado) Ex: orçamento, resultado acadêmico, folha de pagamento INFORMAÇÃO DADO CONHECIMENTO Algoritmos e Ling.de Programação Prof. Mauro Introdução 10
  • 11. Processamento de dados Qualquer trabalho de manipulação de dados que tenha como finalidade obter resultados previamente estabelecidos de modo a resolver determinado problema Tem 3 partes principais: ENTRADA, PROCESSAMENTO e SAÍDA Envolve TRANSMISSÃO, ARMAZENAMENTO, RECUPERAÇÃO, COMPARAÇÃO, COMBINAÇÃO de informações ENTRADA PROCESSAMENTO SAÍDA Algoritmos e Ling.de Programação Prof. Mauro Introdução 11
  • 12. Dados de entrada e saída Ao tentar resolver um problema, devemos identificar alguns dados que auxiliarão na sua resolução. Dados de Entrada: dão suporte à solução do problema. Ponto de partida. Dados de Saída: resultados esperados após solução. Através de um algoritmo os dados de entrada podem ser processados e teremos a solução do problema, que gerará uma saída de dados Algoritmos e Ling.de Programação Prof. Mauro Introdução 12
  • 13. Instrução e lógica de programação Instrução: Informação que indica ao computador uma ação elementar a executar Lógica de programação diz respeito à dedução de uma sequência de instruções tal que, fornecidos os dados de entrada, alcançaremos como saída a solução do problema inicialmente concebido, por meio da execução das instruções Algoritmos e Ling.de Programação Prof. Mauro Introdução 13
  • 14. (Um pouco mais sobre algoritmos: Conceitos, características, importância e passos para criação) Algoritmos e Ling.de Programação Prof. Mauro Introdução 14
  • 15. Conceitos “Algoritmo é uma seqüência de passos que visa atingir um objetivo bem definido” (FORBELLONE, 1999) “Algoritmo é uma seqüência de passos que deve ser seguida para a realização de uma tarefa” (ASCENCIO, 1999) “Algoritmos são regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas” (MANZANO, 1997) Algoritmos e Ling.de Programação Prof. Mauro Introdução 15
  • 16. Conceitos “Um algoritmo é uma lista de instruções que, quando executadas, transformam dados de entrada até a saída. As instruções são um conjunto finito de etapas que podem ser executadas, numa ordem precisa, por um mecanismo determinista. Quando estas etapas são efetivamente executadas , a execução deve terminar após um tempo finito.” (HOLLOWAY, 2006) Algoritmos e Ling.de Programação Prof. Mauro Introdução 16
  • 17. Características de um algoritmo Ter fim; Não dar margem a dupla interpretação; Capacidade de receber dados do mundo exterior; Poder gerar informações de saída para o mundo externo ao ambiente do algoritmo; Ser efetivo; Algoritmos e Ling.de Programação Prof. Mauro Introdução 17
  • 18. Importância dos algoritmos “A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming” “O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2] Algoritmos e Ling.de Programação Prof. Mauro Introdução 18
  • 19. Passos para escrever um algoritmo Segundo ASCENCIO e CAMPOS (2002), os passos para a construção de algoritmos são os seguintes: Ler atentamente o enunciado, destacando os pontos mais importantes; Definir os dados de entrada; Definir o processamento; Definir os dados de saída; Construir o algoritmo uma das técnicas descritas a seguir; Testar o algoritmo realizando simulações. Algoritmos e Ling.de Programação Prof. Mauro Introdução 19
  • 20. Algoritmos e Ling.de Programação Prof. Mauro Introdução 20
  • 21. Responda: Quais são os raciocínios lógicos básicos e qual a dinâmica dos mesmos? Qual a importância da lógica para a criação de algoritmos e programação? O que é um algoritmo? Dê exemplos. O que são dados e informações? Qual o princípio básico do processamento de dados? O que é uma instrução? Dê exemplos. Quais são as características de um algoritmo? Qual a importância dos algoritmos? Cite os passos básicos para criar algoritmos. Algoritmos e Ling.de Programação Prof. Mauro Introdução 21
  • 22. Resolva: Um homem está à margem de um rio com uma raposa, uma dúzia de galinhas e um saco de milho. Ele pretende atravessar o rio com a sua carga numa canoa que só comporta ele e uma das suas cargas. Ele não pode deixar a raposa com as galinhas, nem as galinhas com o milho. Qual a sequência da passos (algoritmo) para atravessar o rio e chegar à outra margem com a raposa, as galinhas e o milho? Algoritmos e Ling.de Programação Prof. Mauro Introdução 22
  • 23. Algoritmo da travessia do rio Solução sem detalhes: Leva a galinha Volta Leva a raposa Volta com a galinha Deixa a galinha e Leva o milho Volta Leva o milho Volta Leva a galinha Algoritmos e Ling.de Programação Prof. Mauro Introdução 23
  • 24. Algoritmo da travessia do rio Solução com detalhes: INICIO Pega a galinha e entra na canoa Atravessa o rio até o lado destino, levando a galinha Deixa a galinha no lado destino Atravessa o rio de volta ao lado origem Desce da canoa, pega a raposa que está no lado origem e entra na canoa Atravessa o rio até o lado destino, levando a raposa Desce da canoa, deixa a raposa e pega a galinha Entra na canoa e atravessa o rio de volta ao lado origem, trazendo a galinha Desce da canoa, deixa a galinha e pega o milho Entra na canoa e atravessa o rio até o lado destino, levando o milho Deixa o milho e atravessa o ria de volta ao lado origem Desce da canoa, pega a galinha que está no lado origem e entra na canoa Atravessa o rio até o lado destino, levando a galinha FIM Algoritmos e Ling.de Programação Prof. Mauro Introdução 24
  • 25. Escreva os algoritmos: Escreva a sequência de passos (algoritmo) necessários para: Calcular a área de um retângulo Escovar os dentes Fritar um ovo Algoritmos e Ling.de Programação Prof. Mauro Introdução 25
  • 26. (Aonde queremos chegar com os algoritmos) Algoritmos e Ling.de Programação Prof. Mauro Introdução 26
  • 27. Linguagem de máquina O computador, nativamente, só entende uma linguagem: a linguagem (ou código) de máquina, que é uma linguagem que: Tem grau de dificuldade acentuado Requer do programador um conhecimento da arquitetura interna do hardware Exemplo de programa em código de máquina: C000 10111111 C001 00000000 C002 01110100 C000:C100 BF 00 74 68 51 66 56 57-1E 06 53 66 50 E8 BC 00 C003 01101000 C000:C110 8B D9 D1 E1 16 5E 8E DE-8E C6 83 C5 02 8B C5 83 ... C000:C120 ED 16 8B F5 8B FD 2B F9-8B E8 B9 0C 00 FC F3 A5 Algoritmos e Ling.de Programação Prof. Mauro Introdução 27
  • 28. Linguagens de programação (LP’s) As linguagens de programação existem para tornar a programação mais próxima da nossa linguagem natural Maior facilidade Maior produtividade Código de máquina X linguagem de alto nível: Algoritmos e Ling.de Programação Prof. Mauro Introdução 28
  • 29. Linguagens de programação (LP’s) Exemplo de programa em uma linguagem de programação (Pascal): (* Programa CONTADOR – conta de 1 a 10 *) Var c: integer; Begin for c:=1 to 10 do writeln(c); writeln(‘Fim!’); End. Algoritmos e Ling.de Programação Prof. Mauro Introdução 29
  • 30. Linguagens de programação (LP’s) São programas (softwares) usados para criar outros programas. Transformam um conjunto de instruções de uma linguagem acessível em instruções da linguagem do computador (linguagem de máquina) Exemplos: •Pascal •C •Delphi •C++ •Visual Basic •C# •Java •PHP •PHP •Javascript Algoritmos e Ling.de Programação Prof. Mauro Introdução 30
  • 31. Características das LP’s Rigidez sintática: Idioma limitado e construções bem definidas A ordem dos termos ou uma vírgula a mais ou a menos faz diferença (a sintaxe deve ser seguida à risca) Rigidez semântica: não pode haver ambiguidades. O computador não tem idéia do que executa e nem inteligência para analisar a ordem Você deve ser bem claro em relação ao que quer que o computador execute Algoritmos e Ling.de Programação Prof. Mauro Introdução 31
  • 32. Características das LP’s Rigidez semântica - exemplo ilustrativo na língua portuguesa: A frase “A velhinha ouviu o barulho da janela.” pode ser interpretada de três maneiras: A velhinha ouviu o barulho produzido pela janela A velhinha estava junto à janela e ouviu o barulho A velhinha ouviu o barulho que veio através da janela Nesse caso, há pouca rigidez semântica Algoritmos e Ling.de Programação Prof. Mauro Introdução 32
  • 33. Tipos de linguagens de programação Quanto ao nível de abstração (facilidade de aprendizado) Alto nível Médio nível Baixo nível Quanto à forma de execução Compiladas Interpretadas Algoritmos e Ling.de Programação Prof. Mauro Introdução 33
  • 34. Nível de abstração das LPs Abstração: habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais Contexto em questão: máquina Está diretamente relacionada à facilidade de aprendizado e uso de uma linguagem de programação Algoritmos e Ling.de Programação Prof. Mauro Introdução 34
  • 35. Nível de abstração das LPs Alto nível: separa os detalhes da máquina. É mais próxima da linguagem humana Médio nível: separa os detalhes da máquina, mas permite o acesso aos mesmos Baixo nível: diretamente relacionadas com a arquitetura do hardware Algoritmos e Ling.de Programação Prof. Mauro Introdução 35
  • 36. Nível de abstração das LPs Homem / linguagem humana Linguagens de alto nível: ASP, C/C++, C#, Pascal/Object Pascal, Java, PHP, Python, Tcl, Basic/Visual Basic, Delphi Linguagens de médio nível: C, C++ Linguagens de baixo nível: Assembly e Linguagem de máquina MÁQUINA Algoritmos e Ling.de Programação Prof. Mauro Introdução 36
  • 37. Linguagem compilada – visão geral Linguagem compilada Converte o programa na linguagem de alto nível (programa fonte) para a linguagem de máquina (programa executável ou arquivo do tipo APLICATIVO) Funcionamento: Programa Código Programa Compilador Linkeditor fonte objeto executável bibliotecas Algoritmos e Ling.de Programação Prof. Mauro Introdução 37
  • 38. Linguagem compilada - elementos Programa fonte: (ou código fonte) instruções e símbolos de uma linguagem de programação escritos de forma lógica e ordenada, com o objetivo de comandar um computador na execução de uma função Normalmente são arquivos com extensão definida pela LP: .C , .PAS , .JAVA , .PHP , etc Compilador: (ou tradutor) programa que traduz um programa fonte em uma linguagem para um código objeto ou linguagem de mais baixo nível Código objeto: (ou código intermediário). Código resultante da compilação. Ainda não é executável diretamente pelo computador. Algoritmos e Ling.de Programação Prof. Mauro Introdução 38
  • 39. Linguagem compilada - elementos Linkeditor: (ou ligador) programa que liga os objetos gerados pelo compilador, criando o arquivo executável Bibliotecas: conjuntos de sub-programas, ou objetos previamente existentes que serão (re)utilizados na criação do programa executável Programa executável: arquivo final, que pode ser executado pelo computador através do sistema operacional Normalmente são arquivos com a extensão .EXE ou .COM Algoritmos e Ling.de Programação Prof. Mauro Introdução 39
  • 40. Linguagem compilada - exemplos Delphi Pascal/Object Pascal C Visual Basic Assembler, etc. Algoritmos e Ling.de Programação Prof. Mauro Introdução 40
  • 41. Linguagem interpretada – visão geral Linguagem interpretada Executa os comandos sem converter para a linguagem de máquina (não gera programa executável) Programa Interpretador Funcionamento: fonte (executa) Ou: Interpretador Programa Código ou Compilador Máquina virtual fonte objeto (executa) Algoritmos e Ling.de Programação Prof. Mauro Introdução 41
  • 42. Linguagem interpretada – exemplos: Java HTML ASP PHP Javascript Algoritmos e Ling.de Programação Prof. Mauro Introdução 42
  • 43. Ambientes de desenvolvimento São ambientes de desenvolvimento que integram diversas ferramentas para a criação de programas em uma linguagem de programação Também chamados de IDE´s (Integrated Development Environment) Exemplo de ferramentas encontradas nos IDE´s: Editor de textos adequado para a programação Ajuda (Help) on-line Compilador, linkeditor e depurador integrados Ferramentas para desenho de janelas (formulários) Algoritmos e Ling.de Programação Prof. Mauro Introdução 43
  • 44. Desenvolvimento de software Segue um ciclo de vida Análise: definição do QUÊ o programa deverá fazer Projeto: definição de COMO o programa executará seu objetivo Implementação: codificação (criação de um ou mais programas em uma linguagem) Testes: testes isolados e de integração Algoritmos e Ling.de Programação Prof. Mauro Introdução 44
  • 45. Programação de computadores O que preciso saber para programar? Noções de algoritmos e lógica de programação Conhecer a estrutura, comandos e símbolos da linguagem de programação escolhida Para linguagens de baixo nível, conhecer a arquitetura do hardware Prática... Muita prática Algoritmos e Ling.de Programação Prof. Mauro Introdução 45
  • 46. Atividade: Questionário 2 Qual a linguagem nativa do computador e qual as características da mesma? O que são linguagens de programação? Cite exemplos. Quais as características das linguagens de programação? Como classificam-se as linguagens de programação quanto ao: (dê exemplos de cada grupo) Grau de dificuldade Modo de execução Explique o funcionamento dos diferentes tipos de LPs Algoritmos e Ling.de Programação Prof. Mauro Introdução 46
  • 47. (Estruturas básicas para criação e representação de algoritmos) Algoritmos e Ling.de Programação Prof. Mauro Introdução 47
  • 48. Estruturação de algoritmos São formas possíveis de resolução e representação de algoritmos Resolução Sequencial Condicional Repetição Representação Linguagem natural / descrição narrativa Fluxograma Diagrama de Chapin Pseudocódigo Algoritmos e Ling.de Programação Prof. Mauro Introdução 48
  • 49. Estruturas de resolução Ao buscar uma solução de um problema criando um algoritmo, sempre teremos pelo menos uma das seguintes estruturas: Resolução Sequencial: sequência linear de instruções, uma após a outra Resolução Condicional: existência de “condições” para executar algumas instruções. Resolução com Repetição: algumas instruções precisam ser executadas várias vezes. Algoritmos e Ling.de Programação Prof. Mauro Introdução 49
  • 50. Estruturas de representação Linguagem natural / descrição narrativa Fluxograma Diagrama de Chapin Pseudocódigo Algoritmos e Ling.de Programação Prof. Mauro Introdução 50
  • 51. Linguagem natural Apesar de ser possível escrever algoritmos para pessoas usando a linguagem natural, ela não é adequada para a construção de algoritmos para o computador Não tem características das LP´s: Não têm rigidez sintática: Traga caneta azul ou preta. Traga caneta (Azul ou preta) Não tem rigidez semântica: A velhinha ouviu o barulho da janela Algoritmos e Ling.de Programação Prof. Mauro Introdução 51
  • 52. Linguagem natural x LP´s Ao decidir entra a linguagem natural ou as LP´s, temos um impasse, pois: A linguagem natural não é adequada por não ter rigidez sintática e semântica Torna-se impossível para o computador processar A linguagem de programação não é adequada por ter rigidez sintática e semântica Torna-se difícil para o programador iniciante Então, precisamos de outras alternativas... Algoritmos e Ling.de Programação Prof. Mauro Introdução 52
  • 53. Fluxograma São representações gráficas de algoritmos: Formas geométricas para representar o início, término e as instruções a serem executadas Setas para indicar o fluxo das ações Alguns símbolos representam situações especiais dos algoritmos: Tomadas de decisão e desvios Repetição Algoritmos e Ling.de Programação Prof. Mauro Introdução 53
  • 54. Fluxograma: símbolos básicos Início e término do algoritmo Setas indicam o fluxo da execução Instrução (entrada, saída, armazenamento ou processamento de dados) Tomada de decisão com possível desvio do fluxo Algoritmos e Ling.de Programação Prof. Mauro Introdução 54
  • 55. Fluxograma: exemplo Algoritmo em forma de Início fluxograma, para solicitar dois números e Leia num1, num2 mostrar qual o maior: sim não Num1>num2? Maior num1 Maior num2 Escreva Maior Fim Algoritmos e Ling.de Programação Prof. Mauro Introdução 55
  • 56. Fluxograma Vantagens: Facilidade proporcionada para compreensão do funcionamento Facilmente entendível por pessoas visuais Desvantagens: Não é uma representação prática: a correção implica em alterar vários desenhos Inadequado para algoritmos complexos e longos Inadequado para uso como ferramenta principal Recomendável apenas para representar a idéia geral de um algoritmo ou como “ensaio” para criação da solução Algoritmos e Ling.de Programação Prof. Mauro Introdução 56
  • 57. Diagrama de Chapin Criado por Ned Chapin a partir de trabalhos de Nassi-Shneidermann Apresenta uma visão hierárquica e estruturada da lógica do programa Algoritmos e Ling.de Programação Prof. Mauro Introdução 57
  • 58. Diagrama de Chapin: exemplo Algoritmo referente ao problema do maior número, representado em diagrama de Chapin: Leia num1, num2 num1>num2 sim não maior num1 maior num2 Escreva “O maior é: ”,maior Fim Algoritmos e Ling.de Programação Prof. Mauro Introdução 58
  • 59. Pseudocódigo Forma para a representação de algoritmos rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo. Assemelha-se à forma como os programas são escritos. Para traduzir o pseudocódigo para uma linguagem de programação, basta conhecer o vocabulário e regras sintáticas da linguagem. Busca a rigidez sintática e semântica, porém sem o detalhamento exigido nas linguagens de programação Algoritmos e Ling.de Programação Prof. Mauro Introdução 59
  • 60. Pseudocódigo – estrutura básica Estudaremos o pseudocódigo com mais detalhes posteriormente. Por enquanto, conheceremos apenas a estrutura básica de um pseudocódigo: Algoritmo <nome do Algoritmo> Variáveis <lista de variáveis> Início <bloco de comandos> Fim Algoritmos e Ling.de Programação Prof. Mauro Introdução 60
  • 61. Pseudocódigo - exemplo Pseudocódigo referente ao problema do maior número: Algoritmo Maior Var num1, num2, maior: inteiro: Inicio Leia(num1,num2); se (num1>num2) então maior num1; senão maior num2; fimse; escreva(maior); Fim Algoritmos e Ling.de Programação Prof. Mauro Introdução 61
  • 62. Atividade – questionário: Quais as estruturas básicas de resolução de problemas com algoritmos? Quais as formas de representação de algoritmos? Qual a característica, vantagens e desvantagens de cada uma delas? Qual a mais adequada para representação de algoritmos? Construa um fluxograma para somar dois números e mostrar o resultado Algoritmos e Ling.de Programação Prof. Mauro Introdução 62