Upload
diego-rodrigues
View
506
Download
3
Embed Size (px)
Citation preview
Lógica de ProgramaçãoDom Pedro II
Eduardo BloisiMBA em Gestão da Informação – Unifacs
Bacharel em Ciência da Computação – UnifacsMCP, CSM
Linguagem de Programação
Viabiliza na prática um algoritmo. Possui um conjunto de instruções para
implementar um algoritmo.A partir do código implementado pela
linguagem, são gerados os programas de computador.
Conjunto de instruções de um determinado programa de computador = código-fonte.
Linguagens de Programação
Como o código-fonte se torna um programa executável ? Compilador.
Linguagens de máquina: O nível mais baixo de execução de um programa. Alto desempenho Difícil implementação
Linguagem de montagem: assembly. Intermediária entre linguagem de máquina e linguagem de alto nível.
Linguagens de alto nível. Se aproxima da linguagem humana Um comando equivale a vários comandos de linguagem de máquina.
Linguagem de Máquina
Sequência binária (0s e 1s) Uma operação de soma pode ser representada
como: 10100100. Difícil implementação e facilidade para erros. Código-fonte longo e de difícil manutenção. Alto desempenho por ser possível otimizar a
implementação em relação a linguagens de alto nível.
Linguagem de Montagem
Conhecida como assembly.Representa um avanço em relação a
linguagem de máquina, pois já possui comando mnemônicos.
Uma operação de soma seria representada como: ADD 1,1
É o código intermediário das linguagens de programação antes do código de máquina.
Compilador
Um compilador é um programa de computador que transformar um código fonte em um código objeto.
As etapas do processo de compilação: Escrita do código fonte. Análise léxica: identifica os caracteres do código fonte. Análise sintática: Verifica se as instruções estão corretas. Geração do código assembly. Geração do código de máquina.
Compilador
Código fonte
Análise Léxica
Análise Sintática
Código intermediário
Código em linguagem de máquina
Algoritmos
Conceito: Sequência lógica de instruções para resolução de um problema. Serve como linguagem intermediária entre a linguagem humana e as linguagens de programação.
Representação: Através de narrativa, fluxograma ou pseudocódigo (conhecido como portugol).
Algoritmos
Devem ser claros e objetivos.Declarações curtas.Não devem deixar dúvidas.São formados por frases com uma ação.
Algoritmo - Desenvolvendo
Devemos pensar de forma lógica e sequenciada. Implementando algoritmos para problemas práticos:
1. Trocar uma lâmpada Pegar uma escada. Posicionar a escada embaixo da lâmpada. Buscar uma lâmpada nova. Subir na escada. Retirar a lâmpada queimada. Colocar a lâmpada nova.
Algoritmo - Desenvolvendo
E se a lâmpada não estivesse queimada ? 2 . Trocar a Lâmpada
Teste condicional: Pegar uma escada. Posicionar a escada embaixo da lâmpada. Buscar uma lâmpada nova. Acionar o interruptor. Se a lâmpada não acender, então
• Subir na escada.• Retirar a lâmpada queimada.• Colocar a lâmpada nova.
Algoritmo - Desenvolvendo
Otimizando o código: 3 . Trocar a lâmpada
Acionar o interruptor Se a lâmpada não acender, então
Pegar uma escada Posicionar a escada embaixo da lâmpada Buscar uma lâmpada nova Subir na escada Retirar a lâmpada queimada colocar a lâmpada nova
Algoritmos - Desenvolvendo
E se a lâmpada nova estiver queimada ? 4. Trocar a lâmpada
Acionar o interruptor Se a lâmpada não acender então
Pegar a escada Posicionar a escada embaixo da lâmpada Pegar a lâmpada nova Subir na escada Retirar a lâmpada queimada Colocar a lâmpada nova Se a lâmpada não acender então
• Retirar a lâmpada queimada• Colocar outra lâmpada nova
Algoritmos - Desenvolvendo
A quarta versão não está finalizada 5.Trocar a lâmpada Acionar o interruptor Se a lâmpada não acender então
Pegar uma escada Colocar a escada embaixo da lâmpada Buscar uma lâmpada nova Subir na escada Retirar a lâmpada queimada Colocar a lâmpada nova Enquanto a lâmpada não acender faça
• Retirar a lâmpada queimada• Colocar outra lâmpada nova
Elementos dos Algoritmos
Tipos de Dados Numérico, Literal e Lógico
Constantes: Dados que não sofrem alteração ao longo do programa.
Variáveis: Dados que podem sofrer modificação ao longo do programa. Identificadores (nomes) de variáveis. Tipo de variáveis. Declaração de variáveis. Atribuição de variáveis.
Elementos dos Algoritmos
Variáveis precisam ser declaradas com o tipo a ser utilizado:var a declaração var indica a relação de variáveis
ano: inteiro tipo numérico inteiro
salario: real tipo numérico realmatriculado: caractere tipo literal caracterenome: cadeia tipo literal cadeia
aprovado: lógico tipo lógico
Expressões
Aritméticas: Operadores: +, -, * e /. Operandos: constantes ou variáveis.
Lógicas: Operadores: relacionais (=, <>, >, <, >=, <=, <>) e os
lógicos (não, e, ou). Tabela lógica.
Atribuição
Armazena um determinado valor em uma variável. variavel_numerica <- 5 variavel_literal <- ‘nome do aluno’ Exemplos:
varano: inteirosalario: realmatriculado: caracterenome: cadeiaaprovado: lógico
atribuindo ...
ano <- 2012salario < - 3000matriculado <- ´S´nome < - ´Eduardo´Aprovado < - verdadeiro
Atribuição
O valor a ser armazenado pode ser o conteúdo de outra variável, desde que sejam do mesmo tipo.Exemplo:varano: inteiroano_letivo: inteiro
ano < - 2012 a variável ano recebe o valor 2012ano_letivo <- ano a variável ano_letivo tem o seu valor modificado para o
mesmo valor da variável ano que é 2012 As atribuições entre variáveis devem ser feitas com
atenção para não perder o valor das mesmas indevidamente durante a execução do programa.
Entrada e Saída
O comando leia permite atribuir uma entrada de dados a uma variável: Leia(salario)O valor que o usuário informar, será atribuído a variável salario.
O comando escreva permite exibir o valor de variáveis e constantes: Escreva(‘O salário é ’, salario) Na tela será mostrado O salário é <valor da variável salario>
Comentários (chaves)
Desenvolvendo
Com os elementos básicos já vistos, podemos criar um algoritmo. Exemplo 1.1: Criar um algoritmo para receber dois números
inteiros, somá-los e apresentar o resultado na tela.
programa soma_dois_numerosvara, b, c: inteiroinicio
leia aleia bc <- a +bescreva c
fim
Estrutura Condicional
Desvio condicional simplesse <condição> então
Instruções
fim_seInstruções
As instruções compreendidas entre o bloco se ... fim_se serão executadas somente se a condição do desvio for verdadeira.
Estrutura Condicional
Desvio condicional simplesExemplo:a <- 5b <- 6se (b>a) então escreva (b é maior que a)fim_sec <- 10
Estrutura Condicional
Desvio condicional compostose <condição> então
Instruçõessenão
instruçõesfim_se
Instruções
As instruções compreendidas entre o bloco se ... senão serão executadas somente se a condição do desvio for verdadeira.
Caso a condição seja falsa, serão executadas apenas as instruções entre o senão e o fim_se.
Estrutura Condicional
Desvio condicional compostoExemplo:
a <- 10b <- 7se (b>a) então escreva (b é maior que a)else escreva (b é menor que a)fim_sec <- 10