P ARADIGMAS DE L INGUAGENS C ONCEITOS B ÁSICOS Prof. Thiago Pereira Rique [email protected]
Transcript of P ARADIGMAS DE L INGUAGENS C ONCEITOS B ÁSICOS Prof. Thiago Pereira Rique [email protected]
PARADIGMAS DE LINGUAGENS
CONCEITOS BÁSICOS
Prof. Thiago Pereira Rique
http://thiagorique.wordpress.com/
AGENDA
Algoritmos e programas Linguagens de programação Desenvolvimento de programas
ALGORITMOS E PROGRAMAS
Algoritmos
Conjunto finito de passos sequenciais que descrevem como resolver um determinado problema.
Informações de entrada, modificação da informação, informações de saída.
ALGORITMOS E PROGRAMAS
Exemplo: Receita de bolo:
Misture os ingredientes
Unte a forma com manteiga
Despeje a mistura na forma
Se houver coco ralado
então despeje sobre a mistura
Leve a forma ao forno
Enquanto não corar
deixe a forma no forno
Retire do forno
Deixe esfriar
ALGORITMOS E PROGRAMAS
Construção de algoritmos
Dividir-e-conquistar: divide-se sucessivamente o problema em subproblemas cada vez menores.
Exemplo:Trocar pneu de um carro
1. pegue o macaco2. levante o carro3. retire o pneu furado4. pegue o estepe5. coloque-o na roda6. aperte os parafusos7. abaixe o carro8. reaperte os parafusos
ALGORITMOS E PROGRAMAS
Construção de algoritmos Exemplo: Refinamento do passo 1.
Refinamento ou procedimento do passo 1
1.1 abra a mala
1.2 remova o macaco do porta-malas
1.3 coloque o macaco sob o carro, próximo ao pneu furado
1.4 desaperte os parafusos da roda
1.5 insira a manivela no macaco
1.6 coloque um calço sob o carro para impedi-lo de se mover
1.7 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
ALGORITMOS E PROGRAMAS
Construção de algoritmos
Qual o limite do refinamento?
Um algoritmo pode ser escrito de forma gráfica ou textual.
ALGORITMOS E PROGRAMAS
Formas de representação dos algoritmos
Descrição narrativa
Fluxograma convencional
Pseudocódigo
ALGORITMOS E PROGRAMAS
Descrição narrativa
Pouco usada na prática (permite equívocos).
Algoritmos expressos em linguagem natural.
ALGORITMOS E PROGRAMAS
Descrição narrativa
Exemplo:Calcular média de um aluno
Obter as suas 2 notas de provas
Calcular a média aritmética
Se a média for maior que 7,
o aluno foi aprovado,
senão
ele foi reprovado
ALGORITMOS E PROGRAMAS
Fluxograma convencional
Formas geométricas diferentes implicam ações distintas.
Não se preocupa com detalhes de implementação do programa.
ALGORITMOS E PROGRAMAS
Fluxograma convencional
Início e final do fluxograma
Operação de entrada de dados
Operação de saída de dados
Operação de atribuição
Decisão
ALGORITMOS E PROGRAMAS
Fluxograma convencional
Exemplo:
Início
N1, N2
"Aprovado"
MEDIA aaa(N1 + N2) / 2
MEDIA >= 7
"Reprovado"
Fim
.V. .F.
ALGORITMOS E PROGRAMAS
Pseudocódigo
Algoritmo escrito em português utilizando convenções próximas de uma linguagem de programação.
Forma de representação rica em detalhes.
Encontra bastante aceitação.
ALGORITMOS E PROGRAMAS
Pseudocódigo
Algoritmo <nome_do_algoritmo>
<declaração_de_variáveis>
<subalgoritmos>
Início
<corpo do algoritmo>
Fim
ALGORITMOS E PROGRAMAS
Pseudocódigo
Exemplo:Algoritmo Calculo_Media
Var N1, N2, MEDIA: real
Início
Leia N1, N2
MEDIA (N1 + N2) / 2
Se MEDIA >= 7 então
Escreva “Aprovado”
Senão
Escreva “Reprovado”
Fim_se
Fim
ALGORITMOS E PROGRAMAS
Programas
Conjunto de instruções executadas numa certa sequência de modo a resolver algum problema.
Formalização de um algoritmo em alguma linguagem de programação.
LINGUAGENS DE PROGRAMAÇÃO
Linguagens de programação
Conjunto limitado de instruções (vocabulário), associado a um conjunto de regras (sintaxe) que define como as instruções podem ser associadas.
Cada linguagem possui um conjunto único de palavras-chave ou palavras reservadas e uma sintaxe específica.
LINGUAGENS DE PROGRAMAÇÃO
De acordo com a sua similaridade com a linguagem humana:
Linguagem de máquina
Linguagem simbólica
Linguagem de alto nível
LINGUAGENS DE PROGRAMAÇÃO
Linguagem de máquina
Mais baixo nível de entendimento pelo ser humano e a única entendida pelo processador (UCP).
Instrução típica em linguagem de máquina: 0100 1111 1010
LINGUAGENS DE PROGRAMAÇÃO
Linguagem simbólica (Assembly)
Linguagem de nível imediatamente acima da linguagem de máquina.
Permite o uso de nomes (mnemônicos) e símbolos em lugar de números.
Linguagem simbólica para linguagem de máquina (Montador: Assembler).
Instrução típica em linguagem simbólica: MOV R1, R2 ADD R1, R2
LINGUAGENS DE PROGRAMAÇÃO
Linguagem de alto nível
Possui uma estrutura e palavras-chave mais próximas da linguagem humana.
Programas escritos em linguagem de alto nível são convertidos para linguagem de baixo nível através de uma programa denominado compilador ou de um interpretador.
Instrução típica em linguagem de alto nível: if (A > 10) then A := A – 7;
DESENVOLVIMENTO DE PROGRAMAS
Desenvolvimento de programas
É associado ao uso de ferramentas ou ambientes de desenvolvimento
Principais etapas: Geração de código-fonte Tradução do código-fonte Editores de ligação Depuradores
DESENVOLVIMENTO DE PROGRAMAS
Geração de código-fonte
Codificação em alguma linguagem de programação
Editores
DESENVOLVIMENTO DE PROGRAMAS
Tradução do código-fonte
O código-fonte não é executável.
É necessário que o código-fonte seja traduzido para o código de máquina.
Esta tradução (ou conversão) é realizada de forma automática graças à existência de ferramentas como os montadores (ou Assemblers) e os compiladores.
O código gerado por essas ferramentas é denominado código-objeto.
DESENVOLVIMENTO DE PROGRAMAS
Editores de ligação
Conhecidos como linkers
Rearranjar o código do programa, incorporando a ele todas as partes referenciadas no código original.
DESENVOLVIMENTO DE PROGRAMAS
Depuradores ou debuggers
Auxiliar o programador a eliminar a quantidade de “bugs”.