Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos
Conjunto predeterminado e bem definido de regras e processos destinados a soluo de um problema, com um nmero finito de etapas.
Algoritmos
Conceito central da programao e da Cincia da Computao Programar basicamente construir algoritmos Wirth: Programao Estruturada
Arte ou tcnica de construir e formular algoritmos de uma forma sistemtica
Algoritmos
Wirth: Programas
Formula Formulaes concretas de algoritmos abstratos, baseados em representa representaes e estruturas espec especficas de dados dados
Algoritmos Estruturas de Dados
Algoritmos
Conceito: (Guimares/Lajes)
a descrio de um padro de comportamento em termos de repertrio bem definido e finito de aes primitivas, das quais damos por certo que elas podem ser executadas.
Algoritmos
Algoritmo uma norma executvel para estabelecer um efeito desejvel
Exemplos:
Instrues de uso Indicaes de montagem Receitas de cozinha Partituras Musicais Cronograma de obra
Algoritmos
ESTADO ANTERIOR
Micro-ondas desligado Brinquedo Desmontado Sem almoo Sem msica Terreno Vazio Dados Folha de Pagamento
AO
ESTADO POSTERIOR
Micro-ondas utilizado Brinquedo Montado Almoo Especial Com msica Prdio Construdo Folhas de Pagamento Calculada
8
Algoritmos
Preparar batata frita
Separar batatas; Descascar batatas; Cortar batatas; Preparar leo; Fritar batatas; Servir batatas;
Algoritmos
Para desenvolver um algoritmo, necessrio:
Identificar quem (ou o que...) vai executar as aes Descrever as aes a serem executadas
10
Algoritmos
Quem (ou o que...) vai executar as aes?
Determinar linguagem e abstraes utilizadas Determinar aes primitivas Exemplo:
Construir edifcio: Proprietrio, Engenheiro, Mestre de Obras, Pedreiro...
11
Algoritmos
Descrever as aes a serem executadas utilizando as aes primitivas
Ordem das aes e indicao das decises a serem tomadas conforme os estados intermedirios (Algoritmo) Diviso em etapas intermedirias para melhor compreenso e gerenciamento do processo intermedirio
12
Algoritmos
Exemplos:
Construo do edifcio
Etapas: Fundao, Alvenaria, Cobertura... Aes primitivas: Pedreiro, Mestre de Obras, Engenheiro
13
Algoritmos
Linguagens de Programao:
O computador quem executa as ordens
O Computador uma mquina capaz de seguir uma certa espcie de algoritmos, chamados de programas Possui memria: Armazenar dados Possui CPU: Causar mudanas nos dados armazenados na memria Possuir perifricos de E/S: Comunicar-se com o mundo exterior
14
Algoritmos
Linguagens de Programao:
Identificar as aes primitivas
As aes primitivas so as oferecidas pelas linguagens de programao As aes primitivas, de uma forma geral, no so muito diferentes de uma linguagem para outra, j que as caractersticas do computador no mudam!
15
FERRAMENTAS
Ferramentas de Descrio de Algoritmos
Fluxograma Diagrama de Chapin Portugol
16
FLUXOGRAMAS
Diagrama de Blocos ou Fluxograma
Ferramenta tradicional para apresentao grfica de algoritmos de computao Utiliza smbolos grficos para representar aes e decises, e setas para indicar o fluxo do algoritmo
17
FLUXOGRAMA - SMBOLOS
INCIO/FIM
PROCESSO
Sentido do Fluxo
ENTRADA E SADA
DECISO
CONECTOR
18
EXEMPLO
Ler dois nmero e mostrar o maior, o menor e a soma dos nmeros, nesta ordem.
Imprima A, B, S
FIM
19
DIAGRAMA DE CHAPIN
Ned Chapin - Nassi & Shneiderman Tambm uma ferramenta grfica, que utiliza somente blocos concatenados indicando o fluxo do programa, de cima para baixo
20
10
Imprima A, B, S
Imprima B, A, S
21
PORTUGOL
Pseudolinguagem de programao onde as aes primitivas so expressas por comandos em portugus
22
11
PORTUGOL - BENEFCIOS
Aplica os conceitos da Programao Estruturada Possibilita o desenvolvimento independente da linguagem de programao, porm facilmente convertida para a linguagem
23
PORTUGOL - BENEFCIOS
Facilita a validao do algoritmo e a sua documentao de forma mais clara, por utilizar comando na nossa lngua portugus.
Possibilita concentrar-se no problema, e no na linguagem.
24
12
PORTUGOL - Estrutura
Nome { rea de definies } ... { rea de procedimentos } ... { rea de comandos } Inicio ... Fim.
25
PORTUGOL - EXEMPLO
Var; inteiro: A, B, S; Incio; Leia A,B; S:= A+B; Se A>B ento imprima A,B,S; seno imprima B,A,C; fim-se; fim.
26
13
PORTUGOL - EXEMPLO
Elementos da linguagem: sublinhados Smbolo de seqnciamento: ;
Estrutura de controle: seqncia simples Separa os comandos
27
SOLUO DE PROBLEMA
Utilizando FLUXOGRAMA Problema: Clculo da Mdia Escolar
Calcular a mdia anual de um aluno, recebendo as quatro notas bimestrais. Se a mdia for maior ou igual a 7, o aluno aprovado. Seno o aluno reprovado.
28
14
SOLUO DE PROBLEMAS
PASSO 1: Apresentar o problema
INCIO Calcular a mdia e determinar a aprovao do aluno FIM
29
SOLUO DE PROBLEMAS
PASSO 2: Detalhar entrada e sada
INCIO Entrar 4 Notas Calcular a mdia e determinar a aprovao do aluno Apresentar se Aprovado ou no FIM
30
15
SOLUO DE PROBLEMAS
PASSO 3: Refinar o problema
INCIO Calcular a mdia Entrar 4 Notas Sim No
Mdia >=7
Imprimir Aprovado
Imprimir Reprovado
FIM
31
SOLUO DE PROBLEMAS
PASSO 4: Detalhar utilizando variveis e aes primitivas
INCIO Ler N1,N2,N3,N4 Calcular M:=(N1+N2+N3+N4)/4 Sim M >=7 No
Imprimir Aprovado
Imprimir Reprovado
FIM
32
16
SOLUO DE PROBLEMA
Utilizando PORTUGOL Problema: Clculo da Mdia Escolar
Calcular a mdia anual de um aluno, recebendo as quatro notas bimestrais. Se a mdia for maior ou igual a 7, o aluno aprovado. Seno o aluno reprovado.
33
SOLUO DE PROBLEMA
Aes primitivas PORTUGOL - utilizadas neste problema:
Leia Atribua Se ... Ento ... Seno ... Fim-se Escreva
34
17
SOLUO DE PROBLEMA
PASSO 3: Refinar o problema
programa MDIA; Incio; entre 4 notas; calcule mdia; se mdia >= 7 ento mostre Aprovado; seno mostre Reprovado; fim-se; fim.
35
SOLUO DE PROBLEMA
PASSO 4: Detalhar utilizando variveis e aes primitivas
programa MDIA; var N1,N2,N3,N4 : real; MEDIA : real; Incio; leia N1, N2, N3, N4; MEDIA := (N1+N2+N3+N4)/4 se MDIA >= 7 ento escreva Aprovado; seno escreva Reprovado; fim-se; fim.
36
18
Exerccio 2
Clculo do salrio lquido do professor, dado o valor da hora-aula, o nmero de horas ministradas e o percentual do desconto de INSS
37
38
19
39
EXEMPLO - ALGORITMO
Tipo de Tringulo
20
PROBLEMA
Problema: Desenvolva o algoritmo para um programa que receba o tamanho dos trs lados de um tringulo e indique se este tringulo equiltero, issceles ou escaleno.
41
PASSOS
Passo 1: Entenda o Problema! Passo 2: Identifique as Entradas. Passo 3: Identifique as Sadas. Passo 4: Identifique as transformaes necessrias. Passo 5: Construa o fluxograma. Passo 6: Teste o algoritmo/fluxograma Passo 7: Converta para PORTUGOL Passo 8: Teste o algoritmo/Portugol
42
21
Eu preciso receber o tamanho dos lados do tringulo. Sem estes, no possvel eu resolver o problema! Assim, a entrada composta pelo tamanho dos trs lados do tringulo.
44
22
equiltero, issceles ou escaleno. Ou ento que os lados no so de um tringulo. Ou seja, o programa retornar uma das seguintes mensagens:
-
dos lados de um tringulo e inicialmente certificar-se de que estes tamanhos so vlidos, verificando se cada um destes lados menor que a soma dos dois outros lados. Se esta condio no for verificada, os lados dados no de um tringulo!
46
23
so iguais. Neste caso, o tringulo equiltero. Se s dois lados forem do mesmo tamanho, o tringulo issceles. Se porm nenhum dos lados forem iguais, o tringulo escaleno.
47
O fluxograma consiste na representao grfica das operaes do programa, indicando os fluxos das operaes executadas, deste o incio at o fim.
48
24
Fluxograma Conceitual
Utilize as expresses que voc usou ao descrever o problema, sem se preocupar com sua formulao matemtica. Enfoque sobre O QU ser feito.
49
Fluxograma Operacional
Converta as expresses conceituais em expresses matemticas, utilizando operadores aritmticos, relacionais e lgicos. Enfoque sobre COMO ser feito.
50
25
Incio
Incio
Ler A, B, C
um tringulo?
A=B e B=C ?
Mensagem = "Equiltero"
Mensagem = "Equiltero"
Mensagem = "Issceles"
Mensagem = "Escaleno"
Mensagem = "Issceles"
Mensagem = "Escaleno"
Escreva Mensagem
Escreva Mensagem
Fim
Fim
51
PROGRAMA Tipo_Triangulo; VAR A, B, C : REAL; Mensagem : LITERAL; INCIO LER A, B, C; SE ((A<B+C) .E. (B<A+C) .E. (C<A+B)) ENTO { Tringulo!} SE ((A=B) .E. (B=C)) ENTO {Todos os Lados Iguais.} Mensagem := EQUILTERO; SENO SE ((A=B).OU.(B=C).OU.(C=A)) ENTO {Dois Lados Iguais.} Mensagem := ISSCELES; SENO {Todos lados diferentes} Mensagem := ESCALENO; FIM-SE; FIM-SE; SENO Mensagem := No Tringulo; FIM-SE; ESCREVA Mensagem; FIM.
PORTUGOL
52
26