Aula 1 aed - lógica de programação

25
Algoritmos e Estruturas de Dados Aula 1 07/08/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 1: Apresentação da Disciplina Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP

Transcript of Aula 1 aed - lógica de programação

Page 1: Aula 1   aed - lógica de programação

Algoritmos e Estruturas de Dados

Aula 1

07/08/2012

Profª Ms. Engª Elaine Cecília Gatto

Unidade 1: Apresentação da Disciplina

Curso de Bacharelado em Engenharia de Computação

Universidade do Sagrado Coração – USC

Bauru/SP

Page 2: Aula 1   aed - lógica de programaçã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

Page 3: Aula 1   aed - lógica de programação

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

Page 4: Aula 1   aed - lógica de programação

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

Page 5: Aula 1   aed - lógica de programação

Exemplo

• Algoritmo para troca de uma lampada queimada.

1. Remova a lâmpada queimada

2. 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

Page 6: Aula 1   aed - lógica de programação

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

Page 7: Aula 1   aed - lógica de programação

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

Page 8: Aula 1   aed - lógica de programação

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

Page 9: Aula 1   aed - lógica de programação

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

Page 10: Aula 1   aed - lógica de programação

Estrutura condicional

Se condição

Então

Comandos 1

Senão

Comandos 2

10

Page 11: Aula 1   aed - lógica de programação

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

Page 12: Aula 1   aed - lógica de programação

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

Page 13: Aula 1   aed - lógica de programação

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

Page 14: Aula 1   aed - lógica de programação

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

Page 15: Aula 1   aed - lógica de programação

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

Page 16: Aula 1   aed - lógica de programação

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 = 7 Y = 2 Z = -5

X = -3 Y = 0 Z = 1

Page 17: Aula 1   aed - lógica de programação

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

Page 18: Aula 1   aed - lógica de programação

Prioridades

Parenteses mais internos

pot rad sqr

* / div mod

+ -

Exemplo:

pot(5,2) – 4/2 + rad(1+3*5)/2

pot(5,2) – 4/2 + rad(1+15)/2

pot(5,2) – 4/2 + rad(16)/2

25 – 4/2 + rad(16)/2

25 – 2 + 4/2

25 – 2 + 2

23 + 2

25

18

Page 19: Aula 1   aed - lógica de programação

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

Page 20: Aula 1   aed - lógica de programação

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 = 8

V

Operadores Lógicos:

20

Operador Função

Não ( ~ ) Negação

E ( ^ ) Conjunção

Ou ( v ) Disjunção

Page 21: Aula 1   aed - lógica de programaçã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ão e ou

Prioridades entre todos os parênteses: Parênteses mais internos Operadores aritméticos Operadores relacionais Operadores lógicos

Page 22: Aula 1   aed - lógica de programação

Exemplos

d = sqr(b) – 4 * a * c

2 < 5 e 15 / 3 = 5

2 < 5 e 5 = 5

V e V

V

22

∆ = 𝑏2 − 4𝑎𝑐

Page 23: Aula 1   aed - lógica de programação

Exemplos

não V ou pot(3,2) / 3 < 15 - 35 mod 7

nã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

Page 24: Aula 1   aed - lógica de programação

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

Page 25: Aula 1   aed - lógica de programação

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 – C

b) rod( - 2 * C ) div 4

c) ( ( 20 div 3 ) div 3 ) pot( 2, 8) / 2

d) ( 30 mod 4 * pot (3,3) ) * ( -1 )

e) pot( - C, 2 ) + ( D * 10 ) / A

f) Rad( pot( A, B/A) ) + C * D

25