Você está na página 1de 38

Fluxogramas

Aula 4

Alison Zille Lopes


Introdução
• Devido principalmente a sua fácil legibilidade
e simplicidade, muitos autores elegem
determinadas formas geométricas para a
representação gráfica de comandos e
intruções (fluxograma).
• A seguir serão apresentados os simbolos mais
comuns, entretanto, a representação de um
determinado comando pode variar de acordo
com o autor.
2
Introdução
Terminal Indica início e fim do fluxo do
programa
Seta de fluxo de dados Indica o sentido do fluxo de dados.
Serve para conectar os blocos
existentes.

Entrada de dados Indica que serão recebidas


informações através do teclado.

Processamento Indica a realização de cálculos,


atribuições ou qualquer
manipulação de dados.

Exibir na tela Indica que as informações serão


exibidas na tela.

Desvio Condicional Indica tomada de decisão. Divide o


fluxo do programa em dois
caminhos. 3
Introdução
Conector Serve para identificar o limite de um
laço de repetição.
Repetição com variável Usado especificamente para o
de controle comando de repetição.

Repetição com teste Usado especificamente para o


lógico no início comando de repetição.

Repetição com teste Usado para o comando de repetição


lógico no final com teste lógico no final.

Declaração Usado para as declarações de


variáveis, tipos e constates.

4
Introdução

Condição
não sim
Instruções a
Instruções a serem
serem Instruções a serem
executadas quando
processadas executadas quando a
a condição é
condição é falsa
verdadeira

Instruções a
serem
processadas

Sequência Bifurcação (Seleção Condicional)

5
Introdução
Inicialização;
Condição; Repita
Incremento;

Instruções a serem Condição


processadas

Instruções a serem
processadas

Laço Contado (Prefixado) Laço Não-prefixado

6
Resoluções Sequênciais
Enunciado:
Um trabalhador, ao retornar para casa após sua
costumeira jornada de trabalho, tem o pneu traseiro
direito de seu carro furado. Ele possui estepe cheio e
ferramentas necessárias para a troca.

7
Resoluções Sequênciais
Início

Posto o estepe
Retirada do estepe
e ferramentas

Parafusado o estepe
Afrouxada nos
parafusos

Abaixado o carro
Carro suspendido Guardar pneu
furado e
ferramentas
Parafusos apertados
Retirado o pneu
furado Fim
Resoluções Sequênciais
• O simbolo exibir na tela pode mostrar ao
usuário textos e variáveis.

“A soma é “,
SOMA

9
Resoluções Sequênciais
• O texto entre aspas será exibido ao usuário da
mesma forma que foi informado no
fluxograma.

• Quando uma palavra é utilizada neste símbolo


e ela não está entre aspas, é assumido que
esta palavra representa uma variável, ou seja,
ela representa um endereço de memória que
guarda algum valor, seja ele de que tipo for.
10
Resoluções Sequênciais
• Em determinada situação, são solicitados dois números, os
quais devem ser somados e o valor encontrado deve ser
exibido

“Informe o
“A soma é “,
Início segundo
soma
valor”

“Informe o
primeiro Fim
valor2
valor”

soma =
valor1
valor1+valor2
11
Resoluções Sequênciais
• É solicitada, a um motorista recém-chegado de uma viagem, a
quantidade de quilômetros por ele percorrida. O motorista
informa a solicitado e você deverá informar a ele a quantos
metros se refere à quantidade de quilômetros.
metros =
Início quilometragem *
1000

“Informe a “A quilometragem
quilometragem” informada
representa: “
metros

quilometragem
Fim
12
Resoluções Condicionais
• Elaborar um programa que efetue o cálculo do
reajuste do salário de um funcionário.
Considere que o funcionário deverá receber
um reajuste de 15% caso seu salário seja
menor que 500. Se o salário for maior ou igual
a 500, porem menor ou igual a 1000, seu
reajuste será 10%. Caso seja maior que 1000,
o reajuste deverá ser de 5%. Exiba o salário
anterior e o com reajuste
13
Resoluções Condicionais
Início
sim reajuste = salario *
salario<500
15/100
“Informe o
salário do não
funcionário”

(salario >= 500 ) E sim reajuste = salario *


(salario <= 1000) 10/100
salario
não

reajuste = salario *
5/100

“Salário anterior:
”, salario, “ salarionovo = salario
Fim Novo salário: “, + reajuste
salarionovo 14
Resoluções Condicionais
• São solicitados a uma pessoa, em
determinada situação, dois valores numéricos
inteiros. Uma vez que estes valores tenham
sido fornecidos, você deverá efetuar a soma
dos mesmos e, sendo este resultado maior
que 10, informe-o a quem solicitou.

15
Resoluções Condicionais
Início
soma = valor1 +
“Informe o valor2
primeiro
valor”

sim “Resultado
soma > 10 é:”, soma
valor1

não
“Informe o
segundo
valor”

valor2 Fim
16
Resoluções Condicionais
• Uma determinada loja está fazendo promoções de
vendas e, no momento em que um cliente se dirige
ao caixa com suas compras, seu programa deverá
verificar a qual percentual de desconto esse cliente
tem direito. Para desempenhar bem essa tarefa, é
oferecido uma tabela de desconto baseada no valor
da compra do cliente. Veja:
– Compra até R$ 100,00 receberá 5% de desconto;
– Compra maior que R$ 100,00, porém inferior a R$ 200,00, o desconto
será de 10%;
– Se a compra for superior ou igual a R$ 200,00, o desconto será de 20%.

17
Resoluções Condicionais
Início
sim
valor <= 100 desconto = 5
“Informe o
valor da não
compra”
(valor> 100) E sim
(valor < 200)
desconto = 10

valor
não

desconto = 20

“Valor conta:”, valor,


“Valor desconto:”, vlrdesconto = valor *
vkrdesconto, “Valor desconto/100
Fim com desconto:”, (valor
– vlrdesconto) 18
Resolução com Repetição Contada
• Sendo informado para um único aluno quatro
notas e seus respectivos pesos, efetue o
calculo da média ponderada e informe a
média obtida pelo aluno. A média ponderada
é obtida através da soma entre o produtos de
nota e peso, dividindo este resultado pela
soma dos pesos.

19
Resolução com Repetição Contada
denominador = Início
denominador + peso
i = 0,
media =
numerador = 0, não
(numerador/deno
numerador = denominador = 0;
minador)
numerador + (nota * i<4; i ++
peso) sim

“Informe a “A média
nota” ponderada
peso é”, media

“Informe o Fim
peso” nota

20
Resolução com repetição contada
• Esse exemplo é clássico. Solicita ao usuário
quatro vezes uma nota e seu respectivo peso
para cálculo de uma média ponderada, que
tem sua fórmula representada por:

(nota1* peso1) + (nota2* peso2) + (nota3* peso3) + (nota4* peso4)


media _ ponderada =
( peso1+ peso2 + peso3 + peso4)

21
Teste de Mesa
• Para verificarmos a lógica de um fluxograma, é
preciso fazer um teste chamado Teste de Mesa
ou Teste de Programa. Seria a simulação da
execução do programa. Este teste permite
identificar a existência de erros de lógica, quer
sejam eles no fluxograma ou em qualquer
outra ferramenta utilizada.

22
Teste de Mesa
Dados N números, imprima a média deles. Os
números negativos não poderão fazer parte da
média a ser calculada.

23
Teste de Mesa
Início
“Informe o
valor:” valor
“Informe a
quantidade de
números que
fornecerá” soma = soma + valor
valor >= 0
positivos = positivos + 1 sim

n não
sim

i = 0, “A média dos
soma= 0, números
positivos = 0; positivos é”,
i<n; i ++ media
media =
não soma/positivos
Fim 24
Como fazer um Teste de Mesa
1. Cria-se uma coluna para cada variável e uma
coluna para saída de dados;

n i valor soma positivos media

2. Depois anota-se nas linhas cada mudança de


estado em variável ou tela;

25
Como fazer um Teste de Mesa
n i valor soma positivos media
n 4

i = 0,
soma= 0, n i valor soma positivos media
positivos = 0; 4 0 0 0
i<n; i ++

n i valor soma positivos media


valor
4 0 10 0 0

26
Como fazer um Teste de Mesa
sim soma = soma + valor
valor >= 0
positivos = positivos + 1

n i valor soma positivos media


4 0 10 10 1

i = 0,
soma= 0, sim
positivos = 0; valor
i<n; i ++

n i valor soma positivos media


4 0 10 10 1
4 1
27
Como fazer um Teste de Mesa
i = 0,
soma= 0, não media =
positivos = 0; soma/positivos
i<n; i ++

n i valor soma positivos media


4 0 10 10 1
4 1 15 25 2
4 2 -5 25 2
4 3 5 30 3 10

28
Como fazer um Teste de Mesa
Início

“O maior valor
i = 0, maior= 0,
não existente nos
i<10;
10 informados
i ++
é”, maior
sim Fim

“Informe o
valor:”

valor > maior

sim
valor

não
maior = valor
29
Como fazer um Teste de Mesa
i (i<10) valor (valor>maior) maior

0 Sim 0
1 Sim 1
1 Sim 10 Sim 10
2 Sim 3 Não 10
3 Sim 12 Sim 12
4 Sim 5 Não 12
5 Sim 7 Não 12
6 Sim 14 Sim 14
7 Sim 9 Não 14
8 Sim 11 Não 14
9 Sim 13 Não 14
10 Não 14 30
Resoluções com Repetição com
Teste Condicional no Início
• Dada uma lista de compras, com o código,
quantidade e preço de produtos, sendo que o
último produto tem o código 999, elabore um
algoritmo que calcule o valor total da compra,
o total de itens e a quantidade total de
volumes que foram comprados.

31
Resoluções com Repetição com
Teste Condicional no Início
Enquanto
Início (codigo!=999)
não “O total da
codigo= 0 sim compra é”,
quantidade total
“Informe a
quantidade”
total= 0 “A
“Informe
quantidade
o preço” preco de itens é”,
itens = 0 itens
total = total +
itens = itens+1
(preco* “A
quantidade) quantidade
volume = 0
volumes = de volumes
volumes + é” volumes
quantidade
“Informe
código do Fim
codigo produto”
32
Resoluções com Repetição com
Teste Condicional no Início
Desenvolva um algoritmo que leia uma lista
de números inteiros. A leitura desta lista será
terminada pelo número 0 (zero). Ao final, o
algoritmo deverá mostrar a média aritmética
de todos os números positivos lidos, a soma
total (independente de ser positivo ou
negativo), menor e maior número. Atenção: a
média não deve levar em conta o número 0
(zero)
33
Resoluções com Repetição com
Teste Condicional no Início
Início soma = soma +
numero maior = numero
soma = 0; Fim não
media = 0; “Informe
i=0; um numero sim
número” > maior
positivos = 0;
menor, maior,
“Informe media, soma numero <
um não menor
numero
número”
sim
media = media /
numero positivos menor = numero

não numero > 0


maior = numero Enquanto não
menor = numero (numero!=0)
sim
sim media = media + numero;
34
positivos++;
Resoluções com Repetição com
Teste Condicional no Final
• Dada uma lista de compras, com o código,
quantidade e preço de produtos, sendo que o
último produto tem o código 999, elabore um
algoritmo que calcule o valor total da compra,
o total de itens e a quantidade total de
volumes que foram comprados.

35
Resoluções com Repetição com
Teste Condicional no Início
Início
quantidade
“O total da
compra é”,
total= 0 “Informe total
o preço” preco
“A
itens = 0 total = total + quantidade
itens = itens+1
(preco* de itens é”,
quantidade) itens
volume = 0
volumes =
volumes + “A
repita quantidade quantidade
“Informe
de volumes
código do
codigo é” volumes
“Informe a produto”
quantidade” Fim
sim Até não
36
(codigo==999)
Resoluções com Repetição com
Teste Condicional no Fim
Foi feita uma pesquisa de audiência de canal de TV em várias
casas de um certo bairro de sua cidade. Para cada casa
visitada, é fornecido o número do canal (5, 7, 10 ou 12) e o
número de pessoas que o estavam assistindo naquela casa
(assume-se que cada casa tenha uma única TV) Fazer um
algoritmo que:
a) Leia um número indeterminado de dados, sendo que a flag para
término corresponde ao número de canal 0 (zero);
b) Calcule e escreva a porcentagem de audiência de cada emissora;
c) Informe o percentual de pessoas que estavam assistindo canais que
não estavam na lista de canais da pesquisa.

Assuma que, no momento em que o canal 0 (zero) for digitado, a


quantidade de pessoas informada também será 0 (zero).
37
Resolções com Repetição com
Teste Condicional no Fim
sim
Início
repita Até (codigo==999)

c5=0; c7=0; cx = totpax-


c10=0;c12=0; sim (c5+c7+c10+c12)
totpax=0; canal==5 c5=c5+qtde

não
p5=c5*100/totpax;
p7=c7*100/totpax;
sim p10=c10*100/totpax;
“Quantas
canal==7 c5=c5+qtde p12=c12*100/totpax;
pessoas
existem na px=cx*100/totpax;
casa?”
não

sim
qtde canal==10 c5=c5+qtde p5, p7, p10,
p12, px;

“Qual canal não


estão totpax=totpax+qtde
assistindo?” sim
canal==12 c5=c5+qtde Fim

canal
não 38

Você também pode gostar