12
Prof. Alceu Britto Slides cedidos por Prof. Edson J. R. Justino (PUCPR) Aula Teórica 02 Algoritmos e Programação Introdução ao Conceito de Algoritmo e Programação Estruturada O Conceito de Algoritmo e as Estruturas Básicas de Controle Enquanto “existir um quadrado livre e não tenha vencido (ou perdido) o jogo” “espere a jogada do oponente, continue depois” Se “existe um quadrado livre” então Se “o centro estiver livre” então “jogue no centro” senão Se “o oponente tem dois quadrados quaisquer em linha com o terceiro desocupado” então “jogue neste quadrado desocupado” senão Se “há algum canto livre” então “jogue neste canto” Fim-se Fim-se Fim-se Fim-se Fim-enquanto

Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Prof. Alceu Britto

Slides cedidos por Prof. Edson J. R. Justino (PUCPR)

Aula Teórica 02

Algoritmos e

Programação

Introdução ao Conceito de Algoritmo e Programação Estruturada

� O Conceito de Algoritmo e as Estruturas Básicas de Controle

Enquanto “existir um quadrado livre e não tenha vencido

(ou perdido) o jogo”

“espere a jogada do oponente, continue depois”

Se “existe um quadrado livre” então

Se “o centro estiver livre” então

“jogue no centro”

senão Se “o oponente tem dois quadrados

quaisquer em linha com o terceiro

desocupado” então

“jogue neste quadrado desocupado”

senão Se “há algum canto livre” então

“jogue neste canto”

Fim-se

Fim-se

Fim-se

Fim-se

Fim-enquanto

Page 2: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� O conceito central da programação e da ciência da

computação é o de algoritmo

� Programar é basicamente construir algoritmos

� A programação estruturada é vista como a técnica de construir e formular algoritmos de uma forma

sistemática

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Exemplo de Algoritmo 1- Somar três

números

� Passo 1 – Receber os três números.

� Passo 2 – Somar os três números.

� Passo 3 – Mostrar o resultado obtido.

Page 3: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Exemplo de Algoritmo 2 – Fazer um sanduíche� Passo 1 – Pegar o pão.

� Passo 2 – Cortar o pão ao meio.

� Passo 3 – Pegar a maionese.

� Passo 4 – Passar a maionese no pão.

� Passa 5 – Pegar e cortar alface e tomate.

� Passo 6 – Colocar alface e tomate no pão.

� Passo 7 – Pegar o hambúrguer.

� Passo 8 – Fritar o hambúrguer.

� Passo 9 – Colocar o hambúrguer no pão.

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Exemplo de Algoritmo 3 – Trocar uma lâmpada� Passo 1 – Pegar uma Lâmpada nova.

� Passo 2 – Pegar uma escada.

� Passo 3 – Posicionar a escada embaixo da lâmpada queimada.

� Passo 4 – Subir na escada com a lâmpada nova na mão.

� Passo 5 – Retirar a lâmpada queimada.

� Passo 6 – Colocar a lâmpada nova.

� Passo 7 – Descer da escada.

� Passo 8 – Testar o interruptor.

� Passo 9 – Guardar a escada.

� Passo 10 – Jogar a lâmpada velha no lixo (reciclagem).

Page 4: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Exemplo de Algoritmo 4 – Ir para a escola� Passo 1 – Acordar cedo.

� Passo 2 – Ir ao Banheiro.� Passo 3 – Abrir o armário para escolher uma

roupa.

� Passo 4 – Se o tempo estiver quente, pegar uma camiseta e calça jeans; caso contrário, pegar um agasalho e calça jeans.

� Passo 5 – Vestir a roupa escolhida.� Passo 6 – Tomar café.

� Passo 7 – Pegar uma condução.

� Passo 8 – Descer próximo à escola.

Introdução ao Conceito de Algoritmo e

Programação Estruturada

“Mas eu realizo essas atividades de maneira diferente!”

Na maioria das vezes um mesmo problema pode apresentar soluções diferentes, mas o mesmo resultado

“Podem existir vários algoritmos para resolver o mesmo problema!”

Page 5: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Num algoritmo podemos distinguir claramente

dois aspectos complementares: um aspecto estático e um aspecto dinâmico.

� A formulação de um algoritmo geralmente consiste em

um texto contendo comandos (instruções) que devem ser

executados numa ordem prescrita, evidentemente

estático

� Por outro lado, este texto apenas não nos interessa, mas

sim os efeitos que sua execução pode evocar,

evidentemente dinâmicos

Somar 1 + 1

Apresentar resultado2

estático dinâmico

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Qual é o padrão de comportamento utilizado

para gerar a seqüência?

1, 5, 9, 13, 17, 21, 25, ...

Um algoritmo é a descrição de um padrão de comportamento,

expressado em termos de um repertório bem definido e finito de

ações primitivas, das quais damos por certo que elas podem ser

executadas.

Page 6: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Introdução ao Conceito de Algoritmo e

Programação Estruturada

� Método para a construção de algoritmos� Para construir qualquer tipo de algoritmo são necessários

os passos seguintes:○ Ler atentamente o enunciados do problema, destacando os

pontos mais importantes;

○ Definir os dados de entrada, ou seja, quais dados serão fornecidos;

○ Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela transformação dos dados de entrada em dados de saída;

○ Definir os dados de saída, quais dados serão gerados depois do processamento;

○ Construir o algoritmo seguindo um dos padrões de representação estruturada;

○ Testar o algoritmo utilizando simulações.

Programação Estruturada

� Basicamente, a programação estruturada ou algoritmo estruturado consiste numa metodologia de projeto de programas visando:

� Facilitar a escrita dos programas;

� Facilitar a leitura ( entendimento) dos programas;

� Permitir a verificação a priori dos programas;

� Facilitar a manutenção e modificação dos programas.

O maior problema em grandes sistemas de O maior problema em grandes sistemas de software software reside na reside na

enorme complexidade desses sistemas.enorme complexidade desses sistemas.

Page 7: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Algoritmo Estruturado

� Tipos de Algoritmos� Os três tipos mais usados de algoritmos são:

Descrição narrativa, fluxograma e pseudocódigo ou portugol.

� Descrição Narrativa○ A descrição narrativa consiste em analisar o enunciado

do problema e escrever o procedimento de solução, utilizando linguagem natural.

� Vantagem: não é necessário aprender nenhum conceito novo;

� Desvantagem: a linguagem natural abre espaço para várias interpretações, dificultando a transcrição desse algoritmo para um programa.

Algoritmo Estruturado

Enquanto “existir um quadrado livre e não tenha vencido (ou perdido) o jogo” “espere a

jogada do oponente, continue depois” Se

“existe um quadrado livre” então Se “o centro

estiver livre” então “jogue no centro” senão Se“o oponente tem dois quadrados quaisquer em

linha com o terceiro desocupado” então “jogue

neste quadrado desocupado” senão Se “há

algum canto livre” então “jogue neste canto”.

��DescriDescriçção Narrativaão Narrativa

Page 8: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Algoritmo Estruturado

� Fluxograma

○ O fluxograma consiste em analisar o

enunciado do problema e escrever o

procedimento de solução, utilizando símbolos gráficos predefinidos.

� Vantagem: elementos gráficos facilitam a

compreensão do problema;

� Desvantagem: é necessário aprender a simbologia e

seu uso pode gerar diagramas excessivamente

complexos.

Algoritmo Estruturado

SSíímbolo utilizado para indicar o inmbolo utilizado para indicar o iníício e o fim do cio e o fim do

algoritmoalgoritmo

Indica o sentido do fluxoIndica o sentido do fluxo

SSíímbolo utilizado para indicar cmbolo utilizado para indicar cáálculoslculos

SSíímbolo utilizado para indicar entra de dadosmbolo utilizado para indicar entra de dados

SSíímbolo utilizado para indicar sambolo utilizado para indicar saíída de dadosda de dados

SSíímbolo utilizado para indicar tomada de mbolo utilizado para indicar tomada de

decisãodecisão

Page 9: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Algoritmo Estruturado

� Exemplo de Algoritmo 1- Somar três números

� Passo 1 – Receber os

três números.

� Passo 2 – Somar os

três números.

� Passo 3 – Mostrar o

resultado obtido.

Fluxograma

Algoritmo Estruturado

� Exemplo de Algoritmo 2 – Fazer um sanduíche� Passo 1 – Pegar o pão.� Passo 2 – Cortar o pão ao meio.� Passo 3 – Pegar a maionese.

� Passo 4 – Passar a maionese no pão.

� Passa 5 – Pegar e cortar alface e tomate.

� Passo 6 – Colocar alface e tomate no pão.

� Passo 7 – Pegar o hambúrguer.� Passo 8 – Fritar o hambúrguer.� Passo 9 – Colocar o hambúrguer

no pão.

Fluxograma

Page 10: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Algoritmo Estruturado

� Exemplo de Algoritmo 3 – Trocar uma lâmpada� Passo 1 – Pegar uma Lâmpada

nova.� Passo 2 – Pegar uma escada.

� Passo 3 – Posicionar a escada embaixo da lâmpada queimada.

� Passo 4 – Subir na escada com a lâmpada nova na mão.

� Passo 5 – Retirar a lâmpada queimada.

� Passo 6 – Colocar a lâmpada nova.

� Passo 7 – Descer da escada.� Passo 8 – Testar o interruptor.� Passo 9 – Guardar a escada.� Passo 10 – Jogar a lâmpada velha

no lixo (reciclagem).

Fluxograma

Algoritmo Estruturado

� Exemplo de Algoritmo 4 – Ir para a escola� Passo 1 – Acordar cedo.

� Passo 2 – Ir ao Banheiro.

� Passo 3 – Abrir o armário para escolher uma roupa.

� Passo 4 – Se o tempo estiver quente, pegar uma camiseta e calça jeans; caso contrário, pegar um agasalho e calça jeans.

� Passo 5 – Vestir a roupa escolhida.

� Passo 6 – Tomar café.

� Passo 7 – Pegar uma condução.

� Passo 8 – Descer próximo àescola.

Fluxograma

Page 11: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Algoritmo Estruturado

� Pseudocódigo ou Portugol

○ O pseudocódigo ou portugol consiste em

analisar o enunciado do problemas e escrever

o procedimento de solução, utilizando regras predefinidas (sintáticas e estruturais).

� Vantagem: a passagem do algoritmo para qualquer

linguagem de programação é quase imediata, basta

conhecer a sintaxe da linguagem de programação;

� Desvantagem: é necessário aprender as regras do

pseudocódigo.

Algoritmo EstruturadoEnquanto “existir um quadrado livre e não tenha

vencido (ou perdido) o jogo”

“espere a jogada do oponente, continue depois”

Se “existe um quadrado livre” então

Se “o centro estiver livre” então

“jogue no centro”

senão Se “o oponente tem dois quadrados

quaisquer em linha com o terceiro

desocupado” então

“jogue neste quadrado desocupado”

senão Se “há algum canto livre” então

“jogue neste canto”

Fim-se

Fim-se

Fim-se

Fim-se

Fim-enquanto

Page 12: Algoritmos e Programaçãoalceu/ab/Aulas/slides%2002/Aula%20Te%f3rica%2002/... · Ler atentamente o enunciados do problema, destacando os pontos mais importantes; Definir os dados

Exercícios

1) Escreva um algoritmo para descrever como você faz para ir de casa para a Universidade .

2) Desenhe um fluxograma do algoritmo da questão 1.

3) O que você entende por aspectos estáticos e dinâmicos de um algoritmo.

4) O que é um algoritmo?5) O que é um algoritmo estruturado?

6) Quais as formas de representação dos algoritmos?