36
Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

Embed Size (px)

Citation preview

Page 1: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

Introdução a Algoritmos

Computação I

Profa. Ms. Viviane Guimarães Ribeiro

Prof. Rodrigo de Maio Almeida

Page 2: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

2

Conceito de Algoritmo

Á especificação de seqüência ordenada de passos que deve ser seguida para a realização de um tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo.

Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalha passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa nada mais é que um algoritmo escrito numa forma compreensível pelo computador.

Page 3: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

3

Dentre as formas de representação de algoritmos mais conhecidas sobressaltam:

• Descrição Narrativa;• Fluxograma Convencional;• Pseudocódigo (Portugol).

Formas de representação

Page 4: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

4

Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. Exemplos:

• Receita de bolo;• Troca de um pneu furado;• Cálculo da média de um aluno....

Descrição Narrativa

Page 5: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

5

1. Afrouxar ligeiramente as porcas;2. Suspender o carro;3. Retirar as porcas e o pneu;4. Colocar o pneu reserva;5. Apertar as porcas;6. Abaixar o carro;7. Dar o aperto final nas porcas.

OBS: instruções sujeitas a diferentes interpretações.

Descrição Narrativa

Page 6: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

6

Escreva a Descrição Narrativa para cada situação abaixo:

1-José acorda atrasado; ao sair apressado com seu carro provoca um acidente, chocando-se com um ônibus. Há um problema importante para ser tratado em sua seção, naquela manhã. José precisa avisar seu chefe sobre o acontecido.

2- Maria precisa ensinar sua filhinha a tomar banho sozinha.

Descrição Narrativa

Page 7: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

7

3- O professor de matemática precisa calcular a média de um aluno. Para tanto ele precisa levar em consideração 4 notas do aluno.

4- Carlos precisa calcular a área de uma sala. Sabe-se que a sala é retangular.

Descrição Narrativa

Page 8: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

8

É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintas.

Tal propriedade facilita o entendimento das idéias contidas nos algoritmos e justifica sua popularidade.

Fluxograma Convencional

Page 9: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

9

Esta forma é menos imprecisa que a Descrição Narrativa e, no entanto, não se preocupa com detalhes de implementação do programa, como o tipo de variáveis usadas.

Fluxograma Convencional

Page 10: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

10

Principais formas geométricas usadas em fluxogramas:

Início e fim do fluxograma

Operação de entrada de dados

Fluxograma Convencional

Page 11: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

11

Operação de atribuição

Operação de saída de dados

Operação de decisão

Fluxograma Convencional

Page 12: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

12

Fluxograma Convencional

Page 13: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

13

Esta forma de representação de algoritmos é mais rica em detalhes, como a definição dos tipos das variáveis usadas.

Na verdade, esta representação é suficiente para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta.

Pseudocódigo

Page 14: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

14

Forma geral:

Algoritmo <nome do algoritmo><declaração de variáveis><subalgoritmos>Início

<corpo do algoritmo>Fim.

Pseudocódigo

Page 15: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

15

Algoritmo Media;Var N1, N2, M : real;Início

Escreva (“Entre com 2 númros: ”);Leia (N1, N2);M (N1+N2)/2;Se (M >= 7) Então

Escreva (“Aprovado”); Senão

Escreva (“Reprovado”);Fim_se

Fim

Pseudocódigo

Page 16: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

16

Na estrutura seqüencial os comandos de um algoritmo são executados numa seqüência pré-estabelecida. Cada comando é executado somente após o término do comando anterior.

Em termos de fluxograma, a estrutura seqüencial é caracterizada por um único fluxo de execução no diagrama. Ex:

Estrutura Seqüencial

Page 17: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

17

<Comando 1>

<Comando 2>

<Comando 3>

Estrutura Seqüencial

Page 18: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

18

Em pseudocódigos, a estrutura seqüencial caracteriza-se por um conjunto de comandos dispostos ordenadamente.

...<Comando 1><Comando 2><Comando 3>...

Estrutura Seqüencial

Page 19: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

19

Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica.

A classificação das estruturas de decisão é feita de acordo com o número de condições que devem ser testadas para que se decida qual o caminho a ser seguido. Têm-se 2 tipos de estrutura de decisão:

• Se;• Escolha.

Estrutura de Decisão

Page 20: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

20

Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado desta avaliação for verdadeiro (.V.), então um determinado conjunto de instruções (comandos compostos) é executado. Caso contrário, ou seja, quando o resultado da avaliação for falso (.F.), um comando diferente é executado.

Estrutura de Decisão - Se

Page 21: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

21

Estrutura de Decisão - Se

Page 22: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

22

Se <condição>Então

<Comando 1>Senão

<Comando 2>Fim_se

Estrutura de Decisão - Se

Page 23: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

23

Este tipo de estrutura é uma generalização da estrutura Se, onde somente uma condição era avaliada e dois caminhos podiam ser seguidos. Na estrutura de decisão do tipo Escolha pode haver uma ou mais condições a serem testadas e um comando composto diferente associado a cada uma destas.

Estrutura de Decisão - Escolha

Page 24: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

24

Estrutura de Decisão - Escolha

Page 25: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

25

Escolha (variável)Caso <valor_1>

<Comando 1>Caso <valor_2>

<Comando 2>.....

Caso <valor_n><Comando n>

Senão <Comando n + 1>

Fim_escolha

Estrutura de Decisão - Escolha

Page 26: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

26

São muito comuns as situações em que se deseja repetir um determinado trecho de um programa um certo número de vezes. Por exemplo, pode-se citar o caso em que se deseja realizar um mesmo processamento para conjuntos de dados diferentes.

A classificação das estruturas de repetição é feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado.

Estrutura de Repetição

Page 27: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

27

A estrutura de repetição divide-se em:

• Laços contados: quando se conhece previamente quantas vezes o comando no interior da construção será executado;

• Laços condicionais: quando não se conhece de antemão o número de vezes que o conjunto de comandos no interior do laço será repetido, pelo fato de o mesmo estar amarrado a uma condição sujeita a modificações pelas instruções do interior do laço.

Estrutura de Repetição

Page 28: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

28

Laços Contados

Este tipo de laço nada mais é que uma estrutura dotada de mecanismos para contar o número de vezes que o corpo do laço é executado.

Para <var> de <início> até <fim> incr de <inc> faça

<comando> Fim_para

Estrutura de Repetição

Page 29: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

29

<Var> = <inicio>,<fim>, <inc>

Comando

Estrutura de Repetição

Page 30: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

30

Laços Condicionais

São aqueles cujo conjunto de comandos em seu interior é executado até que uma determinada condição seja satisfeita.Divide-se em:

• Enquanto;• Repita.

Estrutura de Repetição

Page 31: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

31

Laços Condicionais - Enquanto

Ao início da construção Enquanto a condição é testada. Se seu resultado for falso, então o comando composto no seu interior não é executado e a execução prossegue normalmente pela instrução seguinte ao Fim_enquanto. Se a condição for verdadeira o comando no interior da estrutura é executado e ao seu termino retorna-se ao teste da condição. Assim, o processo acima será repetido enquanto a condição testada for verdadeira.

Estrutura de Repetição

Page 32: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

32

<Condição> Comando.V.

.F.

Estrutura de Repetição

Page 33: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

33

Enquanto <condição> faça

<comando>

Fim_enquanto

Uma vez dentro do corpo do laço, a execução somente abandonará o mesmo quando a condição for falsa.

Estrutura de Repetição

Page 34: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

34

Laços Condicionais - Repita

O comando é executado uma vez. A seguir, a condição é testada: se ela for falsa, o comando composto é executado novamente e este processo é repetido até que a condição seja verdadeira, quando então a execução prossegue pelo comando imediatamente seguinte ao final da construção.

Estrutura de Repetição

Page 35: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

35

<Condição>

Comando

.V.

.F.

Estrutura de Repetição

Page 36: Introdução a Algoritmos Computação I Profa. Ms. Viviane Guimarães Ribeiro Prof. Rodrigo de Maio Almeida

36

Repita

<comando>

até que <condição>

Esta construção difere da construção Enquanto pelo fato de o comando composto ser executado uma ou mais vezes (pelo menos uma vez), ao passo que na construção Enquanto o comando é executado zero ou mais vezes (possivelmente nenhuma).

Estrutura de Repetição