LÓGICA DE PROGRAMAÇÃOProf.ª Ms. Eng.ª Elaine Cecília GattoAlgoritmos e Estruturas de DadosEngenharia de ComputaçãoUniversidade Sagrado Coração
Lógica de programação• Significa o uso correto das leis de pensamento, da “ordem
de razão” e de processos de raciocínio e simbolização formais na programação de computadores, objetivando racionalidade e o desenvolvimento de técnias que cooperem para produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar.
• Programação: é responsável pela instrução do computador do que e de como um problema deve ser resolvido.
• Algoritmo: é uma sequencia ordenada e sem ambiguidade de passos que visam atingir um objetivo bem definido e, consequentemente levam à solução de um problema. 2
Lógica de programação
• Em um algoritmo, é importante salientarmos:• Deve descrever exatamente quais são as instruções
que devem ser executadas e em que sequencia;• Eficiente: resolve o problema com o mínimo de
recursos;• Eficaz: consegue resolver o problema em qualquer
situação. Todas as situações de exceção, que possa alterar o comportamento do algoritmo devem ser especificados e tratados.
3
Como construir um algoritmo
4
Problema
Análise Preliminar
Solução
Teste de qualidade Alteração
Produto Final
Entenda o problema com a maior precisão possível
Desenvolva um algoritmo para resolver o problema
Execute o algoritmo para vários testes cujos resultados sejam conhecidos Algoritmo pronto para ser
aplicado – implementado
Se o resultado não for satisfatório, altere o algoritmo e teste novamente
Exemplo • Algoritmo para troca de uma lampada queimada.
1. Remova a lâmpada queimada2. Coloque um a nova lâmpada
• Detalhando ou refinando os passos:• Vamos trocar uma lâmpada de rosquear. Se a lâmpada está
queimada não é necessário fazer o teste se está ou não funcionando. Temos uma lâmpada em casa igual àquela que queimou – voltagem e potência. Temos uma lâmpada para trocar pela outra. Temos uma escada para auxiliar na troca.
• Sempre enumerar os passos a serem executados.• Primeiro fazer a grosso modo e depois detalhar. 5
Exemplo
1.1. Coloque uma escada embaixo da lâmpada queimada.1.2. Suba na escada até alcançar a lâmpada queimada.1.3. Gire a lâmpada queimada no sentido anti-horário até que ela se solte.2.1. Escolha uma nova lâmpada da mesma potência/vontagem da queimada.2.2. Posicional a lâmpada nova no soquete.2.3. Gire a lâmpada no sentido horário, até que ela se firme.2.4. Desça da escada.
6
Exemplo • Ordenando os passos:
1.1. Coloque uma escada embaixo da lâmpada queimada.2.1. Escolha uma nova lâmpada da mesma potência/vontagem da queimada.1.2. Suba na escada até alcançar a lâmpada queimada.1.3. Gire a lâmpada queimada no sentido anti-horário até que ela se solte.2.2. Posicional a lâmpada nova no soquete.2.3. Gire a lâmpada no sentido horário, até que ela se firme.2.4. Desça da escada. 7
Detalhando mais ainda os passos – versão 1
1. Coloque uma escada embaixo da lâmpada queimada.2. Escolha uma lâmpada nova.3. Enquanto a potência/voltagem não for a mesma da queimada.• Descarte a lâmpada escolhida.• Escolha outra lâmpada.
4. Suba um degrau da escada.5. Enquanto não possa alcançar a lâmpada queimada• Suba um degrau da escada.
6. Gire a lâmpada no sentido anti-horário.7. Enquanto a lâmapda nao estiver livre do soquete
• Gire a lâmpada no sentido anti-horário.8. Posicione a nova lâmpada no soquete.9. Gire a lâmpada no sentido horário.10. Enquanto a lâmpada não estiver firme no soquete.• Gire a lâmpada no sentido horário.
11. Desça da escada.
8
Detalhando mais ainda os passos – versão 2
1. Coloque uma escada embaixo da lâmpada queimada.2. Escolha uma lâmpada nova.3. Enquanto a potência/voltagem não for a mesma da queimada.• Descarte a lâmpada escolhida.• Escolha outra lâmpada.
4. Suba um degrau da escada.5. Enquanto não possa alcançar a lâmpada queimada• Suba um degrau da escada.
6. Gire a lâmpada no sentido anti-horário.7. Enquanto a lâmapda nao estiver livre do soquete
• Gire a lâmpada no sentido anti-horário.8. Posicione a nova lâmpada no soquete.9. Gire a lâmpada no sentido horário.10. Enquanto a lâmpada não estiver firme no soquete.• Gire a lâmpada no sentido horário.
11. Desça um degrau da escada.12. Enquanto não possa alcançar o chão.
• Desça um degrau da escada.
9
Estrutura condicional
Se condiçãoEntão
Comandos 1Senão
Comandos 2
10
Tipos de dados• O objetivo principal de qualquer computador é a resolução de
problemas através da manipulação de dados, que podem ser de vários tipos.
• Tipos primitivos: tipos de dados básicos utilizados na construção de algoritmos.• Inteiro: informação pertencente ao conjunto dos números
inteiros. Exemplo: -10, 0, 5, 100.• Real: informação pertencente ao conjunto dos números reais.
Exemplo: 5.2 (tem que usar ponto e não vírgula), -3.93, 0.0, 7.• Caracter: informação composta por um conjunto de caracteres
alfanuméricos. Exemplo: ‘a’, ‘ABC’, “F10B5’, ‘$?!5’.• Lógico: informação que pode receber (assumir) apenas dois
valores possíveis: verdadeiro (V) ou falso (F). 11
Tipos de dados• Constante: um dados é constante quando não se modifica
durante a execução do algoritmo (programa). Pode ser de qualquer tipo primitivo.
• Variáveis: um dado é variável quando possui um conteúdo (valor) que pode variar durante a execução de algoritmo (programa).
• Embora a variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Toda variável é conhecida no algoritmo por um nome ou identificador. Ele é formado por uma única letra ou então por uma letra seguida de letras ou dígitos. Exemplo: X, Y, Z, salário, ano, etc.
12
Observações• O cálculo – em computação – é feito com dados, geralmente
são números, porém podem ser caracteres. O computador faz cálculos, o programa executa as instruções que damos. Dados são jogados dentro da variável ou constante.
• Tipos primitivos são utilizados no algoritmo, porque já vem definido na linguagem. A maioria das linguagens utilizam os quatro tipos de dados.
• Tipo inteiro: números dos conjuntos dos números inteiros, positivos, negativos e nulos.
• Números naturais: só números inteiros positivos.• Tipo real: mais abrangentes, casas decimais. A casa decimal é
representada por ponto e não vírgula. 13
Observações• Os números inteiros está contido no conjunto dos números
reais. • O caracter tem que vir com apóstrofo – ou aspas simples –
‘ABC’ – cadeia de caracteres.• Tipo lógico: ou é verdadeiro ou é falso. Por exemplo: x = 7 > 2,
então x = V.• Tipo constante: espaço de memória onde o dado é jogado e
não muda o valor. Exemplo: pi = 3.14.• Variável: espaço de memória do computador onde é guardado
um dado e pode ser alterado.• Cada espaço tem um nome obrigatoriamente. Três espaços de
memória para três variáveis. 14
Observações • Se chama variável porque os valores podem se alterar. Só
precisa saber o nome da variável. • Geralmente a variável terá um nome parecido com o
programa – nome sugestivo. • O DOS só reconhece 8 digítos – caracteres. • O tamanho do espaço – ou seja, bytes de memória – vai variar
conforme o tipo das variáveis.• O número máximo para os números inteiros são (faixa de
valores): -32.756 a 32.756.
15
Observações
Memória
7 -3 X
2 0 Y
-5 1 Z
16
O 7 é apagado e substituído por -3. Só podemos guardar um valor em cada espaço.
X = 7Y = 2Z = -5
X = -3Y = 0Z = 1
Expressões aritméticas• São expressões em que os operadores são aritméticos e os
operandos são constantes e/ou variáveis numéricos.
17
Operadores Aritméticos
Operador Função
+ Adição
- Subtração
* Multiplicação
/ Divisão
Operadores Aritméticos
Operador Função
pot(x,y) Potenciação. Ex: pot(2,3) = 8
rad(x,y) Radiciação. Ex: rad(4) = 2
sqrt(x) sqrt(4)
mod Resto da divisão. Ex: 9 mod 4 = 1
div Quociente da divisão. Ex: 9 div 4 = 2
sqr(x) Quadrado de x. Ex: sqr(4) = 16
Prioridades
Parenteses mais internospot rad sqr* / div mod+ - Exemplo:
pot(5,2) – 4/2 + rad(1+3*5)/2pot(5,2) – 4/2 + rad(1+15)/2
pot(5,2) – 4/2 + rad(16)/225 – 4/2 + rad(16)/2
25 – 2 + 4/225 – 2 + 2
23 + 225
18
Expressões lógicas• São expressões cujos operadores são lógicos, ou relacionais e
cujos operandos são relações, constantes e/ou variáveis do tipo lógico.
• Operadores relacionais: são utilizados para realizar comparações entre dois valores do mesmo tipo. Estes valores podem ser constantes, variáveis ou expressões aritméticas.
19
Operador Função
= Igual a
> Maior que
< Menor que
> = Maior ou igual a
< = Menor ou igual a
< > Diferente
Expressões lógicas• O resultado obtidode uma expressão realcional é sempre um
valor lógico – V ou F. Exemplo: 2 * 4 = 24 / 3
8 = 8V
Operadores Lógicos:
20
Operador Função
Não ( ~ ) Negação
E ( ^ ) Conjunção
Ou ( v ) Disjunção
Tabelas verdade• Sejam p e q proposições:
21
Negação
p não p
V F
F V
Conjunção
p q p e q
F F F
F V F
V F F
V V V
Disjunção
p q p ou q
F F F
F V V
V F V
V V V
O resultado de uma expressão lógica é sempre um valor lógico – V ou F.
Prioridades:
nãoe ou
Prioridades entre todos os parênteses:
Parênteses mais internosOperadores aritméticosOperadores relacionaisOperadores lógicos
Exemplos
d = sqr(b) – 4 * a * c
2 < 5 e 15 / 3 = 52 < 5 e 5 = 5V e VV
22
∆=𝑏2−4 𝑎𝑐
Exemplos
não V ou pot(3,2) / 3 < 15 - 35 mod 7não V ou 9 / 3 < 15 - 35 mod 7 (operadores atitméticos)
não V ou 3 < 15 - 35 mod 7 (operadores atitméticos)não V ou 3 < 15 - 0 (operadores relacionais)
não V ou 3 < 15 (operadores relacionais)não V ou V (operadores lógicos)
F ou V (operadores lógicos)V
23
Exemplos
não ( 5 < > 10 / 2 ou V e 2 – 5 > 5 – 2 ou V )não ( 5 < > 5 ou V e 3 > 3 ou V )
não ( F ou V e F ou V )não ( V e F ou V )
não ( F ou V )não ( V )
F
24
Exercícios • Supondo A, B e C são variáveis do tipo inteiro, com valores
iguais a5, 10 e -8, respectivamente, e uma variável D de 1,5, quais os resultados das expressões aritméticas a seguir?
a) 2 * A mod 3 – Cb) rod( - 2 * C ) div 4c) ( ( 20 div 3 ) div 3 ) pot( 2, 8) / 2d) ( 30 mod 4 * pot (3,3) ) * ( -1 )e) pot( - C, 2 ) + ( D * 10 ) / Af) Rad( pot( A, B/A) ) + C * D
25
Top Related