introdução a algoritmos computação i profa. ms. viviane guimarães ribeiro prof. rodrigo de maio...

Post on 22-Apr-2015

107 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

3

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

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

Formas de representação

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

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

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

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

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

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

10

Principais formas geométricas usadas em fluxogramas:

Início e fim do fluxograma

Operação de entrada de dados

Fluxograma Convencional

11

Operação de atribuição

Operação de saída de dados

Operação de decisão

Fluxograma Convencional

12

Fluxograma Convencional

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

14

Forma geral:

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

<corpo do algoritmo>Fim.

Pseudocódigo

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

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

17

<Comando 1>

<Comando 2>

<Comando 3>

Estrutura Seqüencial

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

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

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

21

Estrutura de Decisão - Se

22

Se <condição>Então

<Comando 1>Senão

<Comando 2>Fim_se

Estrutura de Decisão - Se

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

24

Estrutura de Decisão - Escolha

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

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

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

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

29

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

Comando

Estrutura de Repetição

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

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

32

<Condição> Comando.V.

.F.

Estrutura de Repetição

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

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

35

<Condição>

Comando

.V.

.F.

Estrutura de Repetição

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

top related