lógica de programação 1
TRANSCRIPT
![Page 1: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/1.jpg)
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
![Page 2: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/2.jpg)
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.
![Page 3: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/3.jpg)
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.
![Page 4: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/4.jpg)
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.
![Page 5: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/5.jpg)
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.
![Page 6: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/6.jpg)
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.
![Page 7: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/7.jpg)
Compilador
Código fonte
Análise Léxica
Análise Sintática
Código intermediário
Código em linguagem de máquina
![Page 8: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/8.jpg)
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).
![Page 9: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/9.jpg)
Algoritmos
Devem ser claros e objetivos.Declarações curtas.Não devem deixar dúvidas.São formados por frases com uma ação.
![Page 10: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/10.jpg)
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.
![Page 11: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/11.jpg)
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.
![Page 12: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/12.jpg)
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
![Page 13: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/13.jpg)
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
![Page 14: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/14.jpg)
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
![Page 15: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/15.jpg)
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.
![Page 16: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/16.jpg)
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
![Page 17: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/17.jpg)
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.
![Page 18: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/18.jpg)
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
![Page 19: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/19.jpg)
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.
![Page 20: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/20.jpg)
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)
![Page 21: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/21.jpg)
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
![Page 22: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/22.jpg)
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.
![Page 23: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/23.jpg)
Estrutura Condicional
Desvio condicional simplesExemplo:a <- 5b <- 6se (b>a) então escreva (b é maior que a)fim_sec <- 10
![Page 24: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/24.jpg)
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.
![Page 25: Lógica de programação 1](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559e63461a28ab986d8b4823/html5/thumbnails/25.jpg)
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