Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação...

36
Introdução à Programação Ceça Moraes Março/10

Transcript of Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação...

Page 1: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Introdução à Programação

Ceça Moraes Março/10

Page 2: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Conteúdo

Algoritmos−Representação −Exercícios

Linguagens de ProgramaçãoCompiladorInterpretador

04/11/23

2

Page 3: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Algoritmo

Conjunto de regras que provê uma seqüência de operações para resolver um tipo de problema específico (Knuth, 1972)

Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema (Tremblay, 1983)

Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema (AURÉLIO)

04/11/23

3

Page 4: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Algoritmo

Formas de representação–Narrativa: uso de português–Fluxograma: símbolos gráficos para representar fases e componentes dos algoritmos

–Pseudocódigo: Definição de uma pseudo-linguagem de programação, cujos comandos são em português

04/11/23

4

Page 5: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Algoritmo

Formas de representação

–Narrativa

–Fluxograma

–Pseudocódigo

04/11/23

5

Page 6: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

AlgoritmoDescrição Narrativa

Receita de bolo:1. Misture os ingredientes2. Bata os ingredientes em uma vasilha3. Unte a forma com manteiga4. Despeje a mistura na forma5. Se houver coco ralado

• então despeje-o sobre a mistura6. Leve a forma ao forno7. Enquanto não corar

• deixe a forma no forno8. Retire do forno9. Deixe esfriar

04/11/23

6

Page 7: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

AlgoritmoDescrição Narrativa

Troca de pneus:1. Afrouxar ligeiramente as porcas2. Suspender o carro3. Retirar as porcas e o pneu4. Colocar o pneu reserva5. Apertar as porcas6. Abaixar o carro7. Dar o aperto final nas porcas

04/11/23

7

Page 8: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

AlgoritmoDescrição Narrativa

Obter o status de um aluno:

1. Obter as suas 2 notas de provas2. Calcular a média aritmética3. Se a média for maior que 7

• o aluno foi aprovado• senão ele foi reprovado

04/11/23

8

Page 9: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar uma Lâmpada

Sequenciação1. pegar uma escada2. posicionar a escada embaixo da

lâmpada3. buscar uma lâmpada nova4. subir na escada5. retirar lâmpada velha6. colocar lâmpada nova

04/11/23

9

Page 10: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar uma Lâmpada

SE estiver queimada = Decisão1. pegar uma escada2. posicionar a escada embaixo da

lâmpada3. buscar uma lâmpada nova4. acionar o interruptor5. se a lâmpada não acender, então

5.1 subir na escada5.2 retirar lâmpada queimada5.3 colocar lâmpada nova

04/11/23

10

Page 11: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar uma Lâmpada

SE estiver queimada v2 = (decisão) evitar pegar escada e lâmpada1. acionar o interruptor;2. se a lâmpada não acender, então

2.1 pegar uma escada2.2 posicionar a escada embaixo da

lâmpada2.3 buscar uma lâmpada nova2.4 subir na escada2.5 retirar lâmpada queimada2.6 colocar lâmpada nova

04/11/23

11

Page 12: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar uma Lâmpada...SE estiver queimada v3 = (decisão) Re-teste após a troca1. acionar o interruptor2. se a lâmpada não acender, então

2.1 pegar uma escada2.2 posicionar a escada embaixo da lâmpada2.3 buscar uma lâmpada nova2.4 subir na escada2.5 retirar lâmpada queimada2.6 colocar lâmpada nova2.7 acionar o interruptor2.8 se a lâmpada não acender, então

– retirar lâmpada queimada– colocar lâmpada nova

.....

04/11/23

12

Repetir várias

vezes!!!

Page 13: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar uma Lâmpada...SE estiver queimada v4 = Repetição!!1. acionar o interruptor2. se a lâmpada não acender, então

2.1 pegar uma escada2.2 posicionar a escada embaixo da lâmpada2.3 buscar uma lâmpada nova2.4 subir na escada2.5 retirar lâmpada queimada2.6 colocar lâmpada nova2.7 acionar o interruptor2.8 enquanto a lâmpada não acender,

faça:– retirar lâmpada queimada– colocar lâmpada nova– acionar o interruptor

04/11/23

13

Page 14: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar 10 Lâmpadas...SE estiverem queimadas (v1)1. acionar o interruptor do primeiro soquete2. se a lâmpada não acender, então

2.1 pegar uma escada2.2 posicionar a escada embaixo da lâmpada2.3 buscar uma lâmpada nova2.4 subir na escada2.5 retirar lâmpada queimada2.6 colocar lâmpada nova2.7 acionar o interruptor2.8 enquanto a lâmpada não acender, faça:

– retirar lâmpada queimada– colocar lâmpada nova– acionar o interruptor

3. acionar o interruptor do segundo soquete4. ....

04/11/23

14

Page 15: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Trocar 10 Lâmpadas...SE estiverem queimadas (v2)1. acionar o interruptor do primeiro soquete2. Enquanto número de soquetes for menor ou igual a 10

faça 2.1 se a lâmpada não acender, então

2.1.1 pegar uma escada2.1.2 posicionar a escada embaixo da lâmpada2.1.3 buscar uma lâmpada nova2.1.4 subir na escada2.1.5 retirar lâmpada queimada2.1.6 colocar lâmpada nova2.1.7 acionar o interruptor2.1.8 enquanto a lâmpada não acender, faça:

» retirar lâmpada queimada» colocar lâmpada nova» acionar o interruptor

2.2 acionar o interruptor do segundo soquete

04/11/23

15

Page 16: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

ExercíciosDescrição Narrativa

Descreva os seguintes algoritmos

1. Passos para chegar a UFRPE e assistir aula de introdução a programação.

2. Passos para comprar um DVD pela internet

04/11/23

16

Page 17: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

ExercíciosDescrição Narrativa

3. Tendo como exemplo os algoritmos desenvolvidos para solucionar o problema da troca de lâmpadas, elabore algoritmos com os passos necessários para trocar um pneu furado em cada as seguintes situações:1. Trocar o pneu traseiro esquerdo2. Trocar o pneu traseiro esquerdo e, antes, verificar se

o pneu reserva está em condições de uso3. Verificar se existe algum pneu furado; se houver,

verificar o pneu reserva e, então, trocar o pneu correto.

Para cada algoritmo faça um refinamento do anterior, introduzindo novas ações e alterando o fluxo de execução de forma compatível com as situações apresentadas

04/11/23

17

Page 18: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Algoritmo

Formas de representação–Narrativa

–Fluxograma

–Pseudocódigo

04/11/23

18

Page 19: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

AlgoritmoFluxograma

Fluxograma : – Representação gráfica de algoritmos onde

formas geométricas diferentes implicam ações (instruções, comandos) distintos

Símbolos

04/11/23

19

Page 20: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

11/0

4/23

Ler o primeiro número – N1

Ler o segundo número – N2

N2 = 0 ?

D = N1/N2

FluxogramaDivisão de Dois

Números

Início

Fim

Exibir em vídeo “Não é permitido divisão por zero”

Exibir D em vídeo

VF

Page 21: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

04/1

1/23

21

início

ir para o primeiro soquete

soquetesrestantes <= 10

acionar o interruptor

pegar uma escada

posicionar escada

buscar lâmpada nova

acionar o interruptor

nãoacendeu?

subir na escada

retirar a lâmpada queimada

colocar lâmpada nova

acionar o interruptor

nãoacendeu?

retirar a lâmpada queimada

colocar lâmpada nova

ir ao próximo soquete

fim

F

F

F

V

V

V

FluxogramaTroca de 10 lâmpadas

Page 22: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Texto x GráficosGráfica (Fluxograma )– Vantagens

• Maior clareza no fluxo de execução• Linguagem visual

– Desvantagens• Requer conhecimento de convenções gráficas• Mais trabalhoso em decorrência de seus

desenhos• Dificuldade para fazer correções

Textuais– Apresenta mais vantagens, desde que se tomem

alguns cuidados:• Riqueza gramatical de nossa língua pode levar

a ambigüidades• A frase “O pregador foi grampeado durante o

conserto” tem vários sentidos diferentes quando pronunciada

• Para resolver, utilizaremos um conjunto restrito de regras, conhecido como pseudo-código

04/11/23

22

Page 23: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

ExercíciosFluxograma

Construa fluxogramas para os seguintes algoritmos–Calcular a área de um retângulo

(AREA = BASE x ALTURA)

–Verificar se o individuo é maior de idade ou não (maior de 18 anos)

04/11/23

23

Page 24: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Algoritmo

Formas de representação–Narrativa

–Fluxograma

–Pseudocódigo

04/11/23

24

Page 25: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

AlgoritmoPseudo-código

Programa para calcular um número multiplicado por 2:

algoritmo "dobro"

var NUM, DOBRO : inteiro

inicio escreval("digite um número:") leia (NUM) DOBRO <- 2 * NUM escreval ("O dobro do número é:", DOBRO)

fimalgoritmo

04/11/23

25

Page 26: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Algoritmo Pseudo-código

Principais Comandos– Atribuição (= ou := ou ) : Utilizado para

guardar um valor em uma variável• total = 0• SOMA SOMA + 1• mensagem := “Erro de Digitação !”

– Entrada de Dados : Utilizado para ler dados do usuário, de dispositivos externos• leia(Idade)• leia(‘d:\arquivo.txt’)

– Saída de dados : Utilizado para exibir dados• escreva(Idade)

• escreval(‘d:\arquivo.txt’)

04/11/23

26

Page 27: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Linguagens de Programação

Uma linguagem de programação é um vocabulário e um conjunto de regras usadas para escrever programas de computador

Divididas em três tipos, com relação à similaridade com a linguagem humana:– Linguagem de máquina

–Linguagem Simbólica e– Linguagem de Alto Nível

04/11/23

27

Page 28: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Linguagens de ProgramaçãoLinguagem de Máquina

É linguagem de mais baixo nível de entendimento pelo ser humano e a

única entendida pelo processador (UCP)

Constituída inteiramente de números (0’s e 1’s)

Uma instrução típica em linguagem de máquina seria algo como:– 0100 1111 1010

04/11/23

28

Page 29: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Linguagens de ProgramaçãoLinguagem Simbólica

Assembly:– linguagem de nível imediatamente acima da linguagem de máquina.

– Possui a mesma estrutura e conjunto de instruções que a linguagem de máquina, porém permite que o programador utilize nomes (mnemônicos) e símbolos em lugar

de númerosA conversão da linguagem simbólica para a linguagem de máquina se chama montagem, e é feita por um programa chamado montador (assembler).

04/11/23

29

Page 30: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Linguagens de ProgramaçãoLinguagem Simbólica

Exemplo de instrução:ADD A, BMOV AX, 6

Classificada como linguagem de

segunda geração

Assim como a linguagem de máquina, é

considerada uma linguagem de baixo nível

04/11/23

30

Page 31: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Linguagens de ProgramaçãoLinguagem de Alto Nível

linguagens de programação que possuem uma estrutura e palavras-chave que são

mais próximas da linguagem humana

– C, C++, Java, Python, etc ...

Programas escritos nessas linguagens são convertidos para a linguagem de baixo nível através de um programa denominado compilador ou de um interpretador

04/11/23

31

Page 32: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Linguagens de ProgramaçãoLinguagem de Alto Nível

Exemplo de instrução de uma linguagem de alto nível:– if (A>10) then A=A-7;

04/11/23

32

Page 33: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Compilador

Compilação : transformação de um programa em código fonte para linguagem de máquina – programa em código fonte = programa

escrito pelo programador (source language)

– programa em linguagem de máquina = programa executável (target language)

http://pt.wikipedia.org/wiki/Compilador

04/11/23

33

Page 34: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

11/0

4/23

Compilador

Page 35: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Interpretador

Executa instruções em uma determinada linguagem:– Traduz o código fonte em uma

representação intermediária e o executa imediatamente

Python, Matlab, Java, etc.

Principal desvantagem: Eficiência

04/11/23

35

Page 36: Introdução à Programação Ceça Moraes Março/10. Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 5/8/2014.

Perguntas???

04/1

1/23

36