Buscar

Comp-p2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Algoritmos, fluxogramas e
pseudo-código
Cap.2:
Projeto de Algoritmos
2
Sumário
< Problemas e algoritmos
< Desenho de algoritmos/programas
< Passos na construção de algoritmos
< Método Cartesiano de Dividir-Para-Conquistar
< Características fundamentais de um algoritmo
< Representação de algoritmos
< Fluxogramas e programação visual
< Estruturas de controle de fluxo: sequência, seleção e repetição
< Programação estruturada
3
Problemas & Algoritmos
n Para resolver um problema no computador é necessário que seja
primeiramente encontrada uma maneira de descrever este
problema de uma forma clara e precisa.
n É preciso que encontremos uma sequência de passos que permitam
que o problema possa ser resolvido de maneira automática e
repetitiva. Esta sequência de passos é chamada de algoritmo.
n A noção de algoritmo é central para toda a computação.
n A criação de algoritmos para resolver os problemas é uma das
maiores dificuldades dos iniciantes em programação em
computadores. 
4
Problema:
Como fazer um bolo?
Uma receita é uma descrição de um conjunto de
passos ou ações que fazem a combinação de um
conjunto de ingredientes com vista a obter um
produto gastronômico particular.
Farinha de Trigo
Ovos
Manteiga
Açúcar
receitaFermento Leite
5
Algoritmo:
Como fazer um bolo?
Algoritmo (receita de bolo):
1) Bater duas claras em neve;
2) Adicionar duas gemas;
3) Adicionar um xícara de açúcar;
4) Adicionar duas colheres de manteiga;
5) Adicionar uma xícara de leite de coco;
6) Adicionar farinha e fermento;
7) Colocar numa forma e levar ao forno em fogo brando.
Farinha de Trigo
Ovos
Manteiga
Açúcar
InstruçõesFermento Leite
Um algoritmo opera sobre um
conjunto de entradas (farinha
ovos, fermento, etc. no caso do
bolo) de modo a gerar uma
saída que seja útil (ou agradável)
para o utilizador (o bolo pronto).
6
Desenho de
algoritmos/programas
n De um modo geral, pode-se considerar que um algoritmo é uma descrição,
passo-a-passo, de uma metodologia que leva à resolução de um problema ou
à execução de uma tarefa.
n A programação consiste na descrição precisa desse algoritmo, segundo uma
linguagem ou terminologia específica.
n Deve-se ter em consideração que existem três fases distintas na
elaboração de programas:
n a análise do problema (especificação do problema, análise de requisitos,
pressupostos, etc.)
n a concepção do algoritmo
n a tradução desse algoritmo na linguagem de programação
PROBLEMA ALGORITMO PROGRAMA
7
Passos na construção de
algoritmos
n Compreender o problema
n Identificar os dados de entrada
n Identificar os dados de saída
n Determinar o que é preciso para transformar dados de entrada em dados de
saída:
n usar a estratégia do dividir-para-conquistar
n observar regras e limitações
n identificar todas as acções a realizar
n eliminar ambiguidades
n Construir o algoritmo
n Testar o algoritmo
n Executar o algoritmo
8
Método Cartesiano
de Dividir-Para-Conquistar
n Também é o conhecido por método descendente (top-down method) ou
método de refinamento passo-a-passo
n Este método consiste em dividir um problema em partes menores (ou sub-
problemas) de modo a que seja mais fácil a sua resolução.
Exemplo: Fazer suco de laranja?
ß Lavar laranja;
ß Partir laranja ao meio;
ß Espremer laranja;
ß Filtrar o suco;
ß Servir o suco.
n Passo-a-passo, significa que cada passo é completado antes que o próximo
comece.
Exemplo: é impossível “ver novela” antes de executar por inteiro o passo
anterior de “ligar a TV”
9
Características fundamentais
de um algoritmo
Um algoritmo deve ter 5 características fundamentais:
n Finitude:um algoritmo deve sempre terminar após um número finito de passos.
n Definição: cada passo de um algoritmo deve ser precisamente definido. As ações
devem ser definidas rigorosamente e sem ambiguidades.
n Entradas: um algoritmo deve ter zero ou mais entradas, isto é quantidades que lhe
são fornecidas antes do algoritmo iniciar.
n Saídas: um algoritmo deve ter uma ou mais saídas, isto é quantidades que tem
uma relação específica com as entradas.
n Eficiência:Um algoritmo deve ser eficiente. Isto significa que todas as operações
devem ser suficientemente básicas de modo que possam ser em princípio
executadas com precisão em um tempo finito por um ser humano usando papel e
lápis.
NOTA: Pode haver mais do que um algoritmo para resolver um problema.
Por exemplo, para ir de casa até o trabalho, posso escolher diversos 
meios de transportes em função do preço, conforto, rapidez, etc..
10
Representações de algoritmos
n Linguagem Natural
Os algoritmos são expressos diretamente em linguagem natural (e.g. o
português como no exemplo do bolo).
n Fluxograma (ou Diagrama de Fluxo)
Esta é um representação gráfica que emprega formas geométricas
padronizadas para indicar as diversas ações e decisões que devem ser
executadas para resolver o problema.
n Pseudo-linguagem
Emprega uma linguagem intermediária entre a linguagem natural e uma
linguagem de programação para descrever os algoritmos.
Não existe consenso entre os especialistas sobre qual é a melhor maneira de representar um algoritmo. 
Atualmente a maneira mais comum de representar algoritmos é através de uma pseudo-linguagem ou 
pseudo-código. Esta forma de representação tem a vantagem de o algoritmo seja escrito de 
uma forma que está próxima de uma linguagem de programação de computadores.
11
Código natural:
cálculo do zero da equação ax+b=0
1. Início de programa
2. ler a, b
3. se a é diferente de 0 então
calcula o valor de x (ax+b=0)
imprimir valor de x
 senão
imprimir ¨Não há zero”
4. Fim de programa
12
Fluxograma:
cálculo do zero da equação ax+b=0
Início
Ler a
Ler b
a≠0
Imprime “Não 
existe zero”
x=-b/a
Imprime 
valor de x
Fim
Sim
Não
13
Pseudo-código:
cálculo do zero da equação ax+b=0
1. Início de programa
2. ler a, b
3. se a≠0 então
x=-b/a
imprimir valor de x
 senão
imprimir ¨Não há zero”
 fim de se
4. Fim de programa
14
Código C:
cálculo do zero da equação ax+b=0
#include <stdio.h>
#include <math.h> 
main()
{
float a, b;
printf("Entre com os coeficientes da equacao.\n");
scanf("%f %f", &a, &b);
if (a != 0)
{
x = -b/a;
printf(”O valor de x = %f\n”,x);
}
else
printf(”Não exite zero”);
}
15
Fluxogramas & programação
visual
n Representação gráfica de um algoritmo.
n Programação visual: é a utilização de diagramas na programação.
n Descrevem o fluxo de um algoritmo através de um conjunto de figuras
geométricas padronizadas ligadas por setas de fluxo.
início e fim de fluxograma
entrada e saída de dados
teste e decisão
outras instruções
conector na mesma página
conector para outra página
inicialização
teste e atualização
16
Possibilidades para o fluxo de
informação:
estruturas de controle
Os dados podem ser processados:
n em sequência (e.g. blocos)
n após seleção de uma via num ponto de bifurcação, cada via
conduzindo a um processamento distinto (e.g. if, if-else, switch)
n por repetição, o que faz com que os dados entrem em ciclos de
processamento até atingirem uma condição de parada . Acaso, a
condição de parada nunca seja atingida, o programa entra em
ciclo infinito e nunca para.
17
Sequência
instrução
instrução
{…}
18
Sequência c/ conexões
{…}
1
1
2
2
1ª página 2ª página
19
Seleção parcial/total com 2-vias
instrução
TRUE
FALSE
? instrução
TRUEFALSE
?instrução
if
if-else
20
Seleção parcial c/ 3-vias
TRUE
FALSE
?
instrução
TRUEFALSE
?instrução
if-if-else
21
Seleção total c/ 3-vias
TRUE
?
instrução
TRUEFALSE
?instrução
FALSE
instrução
if-if-else-else
22
Seleção c/ n-vias
?
TRUE
FALSE
?
FALSE
TRUEFALSE
?
TRUE
1 4
2
3
if-else-if-else-if-else
23
Seleção c/ n-vias
instrução
?
instrução instrução instrução
switch
24
Repetição c/ teste no início
while
instrução
TRUE
FALSE
?
25
Repetição c/ teste no fim
do-while
instrução
TRUE
FALSE
?
26
Repetição
c/ número fixo de ciclos
for
instrução
TRUE
FALSE
?
27
Programação estruturada
1.Correspondência entre fluxograma e programa;
2. Uso das 3 estruturas fundamentais de controle: 
Sequência-Seleção-Repetição;
3. As estruturas usadas devem ter um início e um fim;
4. Programa escrito com identação (realce), espaços em branco e
comentários para facilitar a leitura do mesmo;
5. Eliminação das transferências incondicionais (os gotos do Fortran);
6. Desenho descendente e segmentação em módulos;
7. Construção de módulos de tamanho adequado;
8. Declaração do domínio (escopo) de ação das variáveis locais (dentro das
funções) e globais (o programa inteiro);
9. Documentação do programa.
FIM

Outros materiais