Buscar

Algoritmos de Programação CAP 5

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 32 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 32 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 32 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 DE PROGRAMAÇÃO
CAPÍTULO 5 - ESTRUTURAS BÁSICAS DE 
CONTROLE
Rafael Alves Florindo
- -2
Objetivos do capítulo
Ao final deste capítulo, você será capaz de:
• Desenvolver algoritmos utilizando as estruturas de decisão em seus diversos formatos e utilizar operadores 
relacionais e lógicos, aplicando conceitos de operações aritméticas.
Tópicos de estudo
• Estrutura de decisão simples.
• Formato utilização.
• Execuções de decisões simples.
• Exemplo dirigido.
• Estrutura de decisão composta.
• Formato utilização.
• Execuções de decisões compostas.
• Exemplo dirigido.
• Estrutura de decisão aninhada.
• Formato utilização.
• Execuções de decisões aninhadas.
• Exemplo dirigido.
• Teste de mesa com decisões.
• O que é?
• Exercitando as estruturas de decisão.
• Exemplos dirigidos.
Contextualizando o cenário
Em um algoritmo ou em uma linguagem estruturada, o desenvolvedor se depara com um processo sequencial que
começa na primeira linha do código, passa pela seção de declarações de variáveis, depois, pela seção de instruções
e chega no fim do algoritmo. Todavia, nem sempre um algoritmo é sequencial, e o programador tem a necessidade
de um desvio de execução de suas instruções por meio de uma sequência de condição que, quando satisfeita, é
executada. Nesse caso, o programador dispõe de um recurso de decisão, que pode ser simples, composta ou
aninhada, que permitirá os desvios de fluxo de um algoritmo.
Além do teste condicional, será abordado o assunto de teste de mesa, que permite ao desenvolvedor testar a sua
aplicação no papel. Isso mesmo, no papel, sem uso de .software
Diante desse cenário, surge uma questão importante: como um teste de mesa, realizado no papel, pode validar
a execução de um algoritmo, seja ele sequencial, seja ele com tomadas de decisões?
5.1 Estrutura de decisão simples
A estrutura de decisão simples é a estrutura que testa apenas uma condição, isto é, efetua o teste apenas se a
condição for satisfeita, não testando o caso contrário. Com esse teste, já se está apto a tomar decisões durante o
tempo de execução do algoritmo ou, até mesmo, a classificar determinados valores de variáveis (FORBELLONE;
EBERSPACHER, 2005).
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
- -3
Pode-se tomar como exemplo quando se deseja saber se hoje vai chover (o interesse é apenas se vai chover) ou
quando se quer saber se um determinado número é maior que o outro (ignorando as outras respostas possíveis).
Se a condição a ser testada for falsa, o pseudocódigo assumirá a próxima linha após o fim se, isto é, nem executará
o conteúdo verdadeiro.
5.1.1 Formato e utilização
De acordo com Forbellone e Eberspacher (2005), a estrutura de decisão simples é a instrução < > e o <se-entao fimse
>. Utiliza-se da seguinte forma:
Em que:
A <condicao> é uma expressão que deverá retornar um valor de verdadeiro (V) ou de falso (F). Caso o resultado
dessa expressão seja verdadeiro, será executado uma linha ou um bloco de comandos que está dentro da
estrutura, conforme pode ser constatado na figura “Estrutura de decisão simples com uma instrução”.
Estrutura de decisão simples com uma instrução
De acordo com a figura “Estrutura de decisão simples com uma instrução”, caso seja falsa, a execução do programa
ignora o bloco de comando e a instrução <fimse> é executada, encerrando a execução, dando continuidade, na
linha seguinte, à estrutura de condição.
- -4
Caso seja necessário inserir mais do que uma linha dentro da condição, será necessário abrir um bloco de comando
com e , como se fosse o início e o fim de um algoritmo.inicio fim
Note que o fim da estrutura condicional possui um ponto e vírgula (;) indicando o fim de linha, e não um ponto (.),
como no fim do algoritmo.
5.1.2 Execução de decisões simples
Um exemplo: construa o algoritmo que leia um número positivo qualquer e informe se ele é maior que 10.
Note que nesse caso, foram ignorados os outros possíveis resultados, de igualdade ou menor, pois, aqui, assume-
se que só será verificado caso seja maior. Veja outro exemplo utilizando um valor lógico.
Exemplo: algoritmo para testar se a lâmpada está acesa.
- -5
Faça outros exemplos para aplicar os conceitos adquiridos.
5.1.3 Exemplo dirigido
1. Construa um algoritmo que leia dois valores inteiros, A e B, armazene a soma deles em uma terceira variável C, e,
caso o valor de A seja maior que B, incremente a variável C no seu dobro. Após a execução do algoritmo, imprima o
valor de C.
Dados de entrada: ler A e B.
Processamento: somar A e B e armazenar em C. Verificar se A é maior que B, se for, incrementar o dobro de C.
Saída: imprimir na tela o valor de C.
2. Construa um algoritmo que leia o nível máximo que uma caixa d'água pode suportar e a quantidade de litros que
uma residência consome. Deve-se verificar se o consumo da residência ultrapassou o limite d’água da caixa. Se
sim, verifique quantas caixas foram utilizadas. Sabendo-se que o custo por ter ultrapassado o limite é de R$ 50,00
por caixa, quanto custou para o dono da residência?
- -6
Valor de entrada: ler o nível máximo que uma caixa d'água pode suportar e a quantidade de litros que a residência
consumiu.
Processamento: verificar a quantidade gasta de caixas d’águas. Se ultrapassar o limite da caixa, aplica-se uma
multa de R$ 50,00 por caixa.
Saída: imprimir a quantidade de caixas e o valor da multa, se houver.
Neste tópico, foi abordada a estrutura de condição simples, que testa apenas um lado da condição. Contudo, nem
sempre isso é o suficiente. Assim, é preciso testar o segundo lado, que se encontra na estrutura condicional
composta.
PAUSA PARA REFLETIR
É possível, com a estrutura de condição simples, testar uma condição com os dois lados, ou seja,
o verdadeiro ou falso?
- -7
5.2 Estrutura de decisão composta
Enquanto a estrutura de decisão simples testa apenas o lado verdade da condição, a estrutura de decisão
composta testa os dois lados, ou seja, testa se o resultado lógico é verdadeiro (V) ou falso (F) (FORBELLONE;
EBERSPACHER, 2005). Conforme pode-se observar na figura “Estrutura de decisão composta”, você está sendo
colocado em teste: pode escolher um caminho ou outro. Os caminhos estão indicados por setas em que a seta de
cor vermelha é o caminho do “se” e a seta verde é o caminho do “senao”.
Vendo por um outro ponto de vista: se está chovendo, pega-se o guarda-chuva para sair de casa, caso contrário,
não se pega o guarda-chuva para sair de casa. Nesse caso, deve-se utilizar a estrutura de condição e o se-entao
.senao
Note que o valor lógico (V) será sair de casa com o guarda-chuva e o valor lógico (F) será sair de casa sem o guarda-
chuva.
5.2.1 Formato e utilização
De acordo com Forbellone e Eberspacher (2005), a estrutura de decisão composta é a instrução < >, <se-entao senao
> e o < >, e é utilizada da seguinte forma:fimse
- -8
Em que:
A <condição> é uma expressão que deverá retornar um valor de verdadeiro (V) ou de falso (F). Caso o resultado
dessa expressão seja verdadeiro, será executada uma linha ou um bloco de comandos que está dentro da
estrutura, conforme pode ser constatado na figura “Estrutura de decisão composta com uma instrução”.
Estrutura de decisão composta com uma instrução
De acordo com a figura “Estrutura de decisão composta com uma instrução”, caso seja falsa, a execução do
programa passará a executar o conjunto de instruções do <senao>. Quando ele terminar, passará para o <fimse>
encerrando a execução, dando continuidade, na linha seguinte, à estrutura de condição.
Caso seja necessário inserir mais do que uma linha dentro da condição, será necessário abrir um bloco de comando
com e , como se fosse o inicio e o fim de um algoritmo.inicio fim
- -9
Note que o fim possui um ponto e vírgula (;), indicando o fim de linha também, e não um ponto (.), como no fim do
algoritmo.
A estrutura de decisão composta auxilia o desenvolvedor na agilidade dos testes, uma vez que, inserida uma
condição, testa-se ela é verdadeira, caso contrário, será falsa. Caso não tivesse a estruturacondicional composta,
seria preciso fazer duas estruturas simples.
5.2.2 Execução de decisões compostas
Veja um exemplo com a estrutura de decisão composta: construa um algoritmo que leia um número positivo
qualquer e informe se ele é maior que 10 ou menor que 10.
PAUSA PARA REFLETIR
Será que, se for possível saber as variáveis de saída de um problema computacional, é possível
fazer um planejamento reverso, ou seja, criar as entradas e o processamento?
- -10
A prática dos algoritmos faz enxergar que é possível adquirir conhecimento, pois, apenas lendo, não se vai muito
longe. Sendo assim, veja mais um exemplo.
Exemplo: faça um algoritmo que leia um número inteiro pelo teclado e verifique se ele é par ou ímpar.
Nesse exemplo, utilize o operador MOD, que pega o resto da divisão entre dois números.
Como você viu nos exemplos, nos próximos tópicos, será aplicado o conhecimento adquirido em forma de
exercícios dirigidos.
5.2.3 Exemplo dirigido
1. Construa um algoritmo que leia duas variáveis inteiras, X e Y, efetuando a adição entre os valores lidos. Depois,
verifique se o valor da soma ultrapassou ou ficou igual ao número 15. Se ultrapassou, some mais 10 e imprima o
resultado em tela, caso contrário, subtraia 9.
Valor de entrada: ler duas variáveis X e Y.
Processamento: efetuar a adição entre os valores lidos, depois verificar se o valor da soma ultrapassou ou ficou
igual ao número 15. Se ultrapassou, somar mais 10 e imprimir o resultado em tela, caso contrário, somar 9.
Saída: imprimir o resultado em tela.
- -11
2. Construa um algoritmo que determine se um candidato foi aprovado no teste seletivo para a entrada em uma
multinacional, sendo que a sua nota é uma somatória de provas (conhecimento geral, conhecimento específico e
prática). Para o candidato passar para segunda etapa, ele deve obter uma média superior ou igual a 8. Se
aprovado, o aluno passará para a segunda fase do teste seletivo, caso contrário, vai para o fim de lista.
Dados de entrada: leitura das notas das provas de conhecimento geral, conhecimento específico e prática.
Processamento: somatório das notas das provas de conhecimento geral, conhecimento específico e prática. Se for
maior que 8, está aprovado, caso contrário, fim de lista.
Saída: se foi aprovado ou se foi para o fim da lista.
- -12
3. Construa um algoritmo que tenha como entrada o valor de compra e a forma de pagamento. Se for à vista, dar
10% de desconto, caso contrário, poderá ser parcelado em até cinco vezes, mas o preço subirá 15%.
Dados de entrada: valor de compra, tipo de pagamento, dependendo do número de parcelas.
Processamento: cálculo do pagamento à vista, do pagamento parcelado e quantidade de parcelas.
Saída: valor final da compra e o valor da cada parcela.
- -13
Você finalizou o bloco das estruturas condicionais simples (que testa o lado verdadeiro) e compostas (que testa
ambos os lados), com a realização de diversos exemplos. A partir de uma estrutura de condição bem elaborada, é
possível ter um ganho de desempenho satisfatório na execução do código-fonte.
PAUSA PARA REFLETIR
Será que é possível negar uma condição, ou seja, para a condição ser satisfeita, ela deve ser
falsa?
- -14
5.3 Estrutura de decisão aninhada
Em programação, é muito comum existir a necessidade de uma terceira condição dentro de uma estrutura
condicional composta, mas, e aí? O que fazer? Forbellone e Eberspacher (2005) dizem que é possível a utilização
não só de três condições, mas de mais condições dentro de uma estrutura . Existem situações emse-entao-senao
que os processos para a tomada de uma decisão acabam formando uma espécie de cascata, na qual cada caminho
é um conjunto de ações. Nesses casos, pode-se recorrer à utilização de várias estruturas se-entao-senao,
embutidas umas dentro das outras.
5.3.1 Formato e utilização
Para utilizar a estrutura aninhada, deve-se seguir a sintaxe:
Em que:
A <condicao1> é a expressão principal que deverá retornar um valor de verdadeiro (V) ou de falso (F) e, caso o
resultado dessa expressão seja verdadeiro, executará uma linha ou um bloco de comandos que está dentro da
estrutura. É possível colocar outras instruções de se-entao-senao dentro dessa. O mesmo ocorre quando a
<condicao1> não é satisfeita. Nesse caso, pode-se colocar outras instruções de se-entao-senao dentro dela, como
pode ser constatado na figura “Estrutura de decisão aninhada com uma instrução”.
- -15
Estrutura de decisão aninhada com uma instrução
5.3.2 Execução de Decisões Aninhadas
Veja um exemplo com a estrutura de decisão aninhada: crie um algoritmo que leia um número positivo qualquer e
informe se ele é maior, menor ou igual a 10.
- -16
Note que a estrutura aninhada possui um diferencial sobre a estrutura condicional composta, uma vez que ela
permite testar novamente uma condição dentro da outra, especialmente no lado falso das condições primárias.
5.3.3 Exemplo dirigido
1. Faça um algoritmo que leia três variáveis inteiras e determine o maior valor entre as três variáveis.
Dados de entrada: ler três variáveis inteiras.
Processamento: fazer comparação entre as três variáveis, a fim de saber qual é a maior. Nesse caso, teste a
primeira condição e, caso ela seja satisfeita, imprima que A é maior. Caso contrário, teste a segunda condição e, se
a segunda for satisfeita, imprima que B é maior. Caso contrário, se B nem A são maiores, só resta C ser a maior.
Nesse caso, não há necessidade de testar novamente.
Saída: Quem é o maior número?
- -17
2. Construa um algoritmo que leia quatro notas bimestrais de um aluno e indique se ele está aprovado, em exame
ou reprovado, mediante os requisitos:
Aprovado: acima de 6 e, inclusive, 6. 
Exame: entre 4 e 6 e, inclusive, 4.
Reprovado: demais casos.
Nesse caso, realize a soma das notas para, depois, fazer o cálculo da média. Porém, caso deseje fazer tudo em um
só cálculo, também é possível. Teste se (média >= 6), se for, imprima na tela, aprovado. Caso contrário, teste se
(média >= 4) e (média < 6). Se estiver dentro desse intervalo, solicite a nota de exame e teste novamente com uma
estrutura de decisão simples (exame >= 6), e imprima aprovado. Caso o aluno não esteja em exame no teste
anterior, imprima reprovado.
- -18
3. Crie um algoritmo que leia três lados de um triângulo e imprima na tela tal qual a sua classificação, sendo:
isósceles, escaleno ou equilátero.
Para resolver esse exercício, primeiro, é preciso recorrer à Geometria para verificar a classificação.
Isósceles: é um triângulo que possui dois lados de mesma medida.
Escaleno: as medidas dos três lados do triângulo são diferentes.
Equilátero: é todo triângulo em que os três lados são iguais.
Após saber esses dados, ficou mais fácil.
- -19
Você finalizou o bloco das condições, mas caso tenha ficado dúvidas, retome o começo do capítulo para que possa
prosseguir com o aprendizado de Teste de Mesa com decisões.
PAUSA PARA REFLETIR
Será que é possível codificar todas as nossas regras de negócios apenas com condições com-
postas ou em todas devem-se utilizar aninhadas?
- -20
5.4. Teste de Mesa com decisões
Agora que você já praticou exercícios de decisões, chegou a hora de verificar se os algoritmos estão funcionando.
Para isso, utilize a técnica de Teste de Mesa, que é muito usada pelos programadores.
5.4.1 O que é?
Após a elaboração de um algoritmo, é necessário colocá-lo em prova, ou seja, deve-se testá-lo realizando todas as
simulações possíveis com o propósito de verificar se o algoritmo está ou não correto. Essa prova é chamada de
Teste de Mesa e permite a simulação completa, passo a passo, de todo o processo de um algoritmo, utilizando uma
técnica não computacional, mas apenas um papel e uma caneta.
O grande objetivo de um Teste de Mesa é acompanhar o desenvolvimento de um algoritmo, passo a passo,
verificando o estado de todas as variáveis em cada instrução durante ou após o término do algoritmo.
Não existe uma convenção específica para a aplicação do Teste de Mesa. Sendo assim, os testes seguirão algunspassos. Clique nos ícones e confira.
• 
1. Enumerar cada linha do algoritmo.
• 
2. Criar uma tabela, em que em cada coluna deverá conter uma variável.
•
3. Cada linha da tabela conterá os conteúdos das variáveis do algoritmo e o número da 
linha executada.
•
•
•
- -21
• 
4. Executar, passo a passo, o algoritmo.
Para reforçar, na figura, você confere o passo a passo de um Teste de Mesa.
•
- -22
Passo a passo para a aplicação do Teste de Mesa
Ao executar um Teste de Mesa, deve-se ignorar todas as impressões e algumas instruções básicas, tais como:
algoritmo, var, inicio, fim, fimse, fimpara, ate, fimenquanto. Isto é, trabalha-se com atribuições, leituras e
expressões.
Veja um exemplo de Teste de Mesa bem simples, que não envolve estrutura de condição.
Exemplo: crie um algoritmo que some dois valores inteiros e armazene a sua soma em uma terceira variável, que
será impressa em tela. Após, realize o Teste de Mesa.
- -23
Para realizar esse algoritmo, é preciso criar três variáveis do tipo inteiro, sendo: valor1 e valor2 e resultado (linha 3),
que armazenará a soma de valor1 com valor2 (linha 9).
Após a construção do algoritmo, é preciso criar uma tabela em que, na primeira coluna, coloca-se o número da
linha executada e nas outras colunas coloca-se uma variável.
Executando o algoritmo, passa-se linha a linha. A primeira parada é na linha 3, em que foram declaradas as
variáveis. Sendo assim, registra-se na tabela o número da linha e o nome das variáveis.
Depois, a próxima parada é na linha 6, que contém a leitura da variável valor1 pelo usuário. Suponha que o usuário
informou o valor 10.
Após a execução dessa linha, pare novamente, agora, na linha 8, que contém a leitura da variável valor1 pelo
usuário. Suponha que o usuário informou o valor 5.
- -24
A próxima parada no algoritmo da sequência é na linha 9, na qual se tem uma expressão aritmética, utilizando o
operador de soma entre as variáveis valor1 e valor2 (resultado <- valor1 + valor2).
Fazendo o Teste de Mesa, você terá a certeza de que o algoritmo foi validado, ou seja, foi colocado em prova e
passou por todos os possíveis testes. Note que o exemplo utilizado é um exemplo didático bem simples, mas que
se você praticar poderá avançar com os estudos.
5.4.2 Exercitando as estruturas de decisões
Agora você exercitará alguns algoritmos que envolvem estrutura de decisão. Nesta seção, eles serão colocados em
prova.
Exemplo 1: crie um algoritmo para controlar a temperatura do ambiente. Se ele estiver acima de 25 graus, liga-se o
ar-condicionado em 22 graus.
Para fazer esse algoritmo, deve-se primeiro entender o que se pede. Nesse caso, é notável que se utiliza uma
estrutura de decisão, mas qual? O exemplo pede que se for acima de 25 graus, é preciso fazer algo, mas não diz
claramente o caso contrário. Assim, tem-se uma estrutura de decisão simples.
DICA
Recomenda-se realizar o teste de mesa em todos os exemplos no decorrer dos tópicos, bem
como os exemplos dirigidos, pois, no decorrer das práticas, com certeza, você conseguirá
interpretar com mais agilidade os problemas computacionais que forem postos em prova.
- -25
Após construir o algoritmo, cria-se uma tabela na qual na primeira coluna, coloca-se o número da linha executada.
Nas outras colunas, as variáveis.
Executando o algoritmo, passa-se linha a linha e a primeira parada é na linha 3. Nela, foram declaradas as variáveis.
Sendo assim, registra-se, na tabela, o número da linha e o nome das variáveis. Continuando a execução do
algoritmo, a linha 6 realiza a entrada do valor da temperatura. Nesse caso, insere-se a temperatura de 27 graus. A
próxima linha a ser executada é a 7 e, nela, há uma estrutura de decisão, se (temperatura > 25). Note que, aqui, esse
teste é representado em uma coluna separada na tabela e, na outra coluna, a ação a ser executada, que, caso o
valor seja verdadeiro, coloca-se qual é a próxima ação a ser executada (neste exemplo será temperatura <- 22). Por
fim, na linha 8, a variável temperatura recebe grau 22, devido ao valor lógico da condição ser verdadeira,
permitindo a entrada dentro da estrutura.
Exemplo 2: Faça um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre se essa pessoa tem
idade para exercer o seu direito de votar (a partir de 16 anos). Caso seja válido, informe que ela deve votar, caso
contrário, informe que ela não precisa votar.
Para fazer esse algoritmo, deve-se, primeiro, entender o que se pede: realizar a leitura do ano de nascimento de
uma pessoa, armazenar em uma variável e detectar a sua idade. Para isso, é preciso saber o ano atual e armazená-
lo em uma outra variável. Com posse dessas duas variáveis, é possível calcular a idade em anos de uma pessoa e,
posteriormente, armazenar essa informação em uma terceira variável. Após esse cálculo, deve-se realizar um teste
condicional com a idade da pessoa para verificar se ela vota ou não. Nesse caso, é preciso uma estrutura de
decisão composta. Veja o algoritmo resultante:
- -26
Após a construir o algoritmo e executá-lo, passa-se linha a linha. A primeira parada é na linha 3, na qual foram
declaradas as variáveis. Registra-se, na tabela, o número da linha e o nome das variáveis. Continuando a execução
do algoritmo, tem-se a linha 6, que realiza a entrada do valor do ano de nascimento. Aqui, insere-se o ano 1982. A
próxima linha a ser executada é a 8, que realiza a entrada do valor do ano atual e, nesse caso, insere-se o ano 2018.
A próxima linha a ser executada é a 9. Nela, é realizado o cálculo da idade, que resultou em 36 anos. A próxima
linha é a 10, na qual há uma estrutura de decisão se (idade >= 16). Representa-se esse teste em uma coluna
separada na tabela, para, na outra coluna, ser representada a ação a ser executada. Nessa ação, caso o valor seja
verdadeiro, coloca-se qual é a próxima ação que será executada, isto é, verdadeira. Por fim, a linha 11 imprime
“Votar” na tela.
Exemplo 3: Uma escola de natação para crianças está se preparando para mais um ano de treinos. Foi decidido
solicitar um sistema no qual é informada a idade do aluno para, assim, incluí-lo na turma correta, mediante as
situações a seguir:
• idade superior a 5 anos e menor que 8, Infantil A;•
- -27
• idade superior a 8 anos e menor que 11, Infantil B;
• idade superior a 11 anos e menor que 13, Juvenil A.
Para fazer esse algoritmo, deve-se primeiro entender o que se pede. No caso, realizar a leitura da idade da criança,
armazená-la em uma variável e, posteriormente, realizar um teste condicional com a idade da criança. Mediante as
situações colocadas, veja o algoritmo resultante.
Após construir o algoritmo, é preciso executá-lo passo a passo. A primeira parada é na linha 3, na qual foi declarada
a variável. Sendo assim, registra-se, na tabela, o número da linha e o nome da variável. Continuando a execução do
algoritmo, tem-se a linha 6, que realiza a entrada da idade da criança. Nesse caso, insere-se a idade de 9 anos.
Como há várias decisões, coloca-se cada condição em uma coluna. Contudo. A próxima linha a ser executada é a 7,
na qual há a primeira estrutura de decisão, (idade >= 5) e (idade < 8). Note que a idade informada não se encontra
dentro desse intervalo. Assim, torna-se falsa e executa-se o caso contrário da linha 9. Entrando no senão, tem-se
outra condição se (idade >=8) e (idade < 11). Nessa, tem-se a idade da criança dentro desse intervalo. Nas outras
condições, será colocado um traço, por não terem sido executadas neste Teste de Mesa.
•
•
- -28
O Teste de Mesa ajuda a confrontar os resultados de todas as possíveis entradas de um sistema. Sendo assim, é
amplamente recomendado que se faça esse teste, a fim de avaliar as entradas para que não haja surpresas, como
resultados falsos na tela do usuário. Esses resultados podem angariar prejuízos alarmantes, se não forem bem
tratados.
5.4.3 Exemplos dirigidos
1. Sabendo que Rafael tem 36 anos e Murilo tem 6, faça um pseudocódigo que verifique a idade dos dois amigos e
exiba o nome do maisvelho na tela.
Nesse algoritmo, deve-se realizar uma condição que verifique quem é mais velho. Se você tem as idades, você
propõe a primeira condição, sendo que o primeiro é maior que o segundo. Se não for, pode ser menor ou, ainda,
igual.
- -29
2. No supermercado do senhor Laerte, toda vez que se inicia um novo ano, é necessário realizar um balanço do que
sobrou de mercadorias. Isso porque existe um furo no sistema atual que não atualiza a saída do controle de
estoque do produto, ou seja, ele não sabe quantos e quais produtos possui no estoque e na prateleira. Suas
compras são realizadas pelo seu conhecimento de quantos produtos vende em determinadas épocas do ano.
Sendo assim, ele contratou um programador iniciante, para realizar a manutenção em seu código, de forma que,
ao efetuar a venda, o seu algoritmo será chamado e receberá o código, a quantidade do produto e a quantidade de
estoque daquele produto. Se existir produto, efetuará sua baixa em estoque, atribuindo verdade à venda. Caso
contrário, se não houver produto suficiente, atribuirá falso à venda do produto. Considere que o balanço já foi
realizado e o controle da quantidade de produtos está atualizado.
Sabendo que a partir de agora o controle de estoque do senhor Laerte será controlado e o banco está atualizado,
preocupe-se apenas com a baixa em estoque. Sendo assim, receba o código e a quantidade de produtos que está
sendo vendida. Para isso, será necessário realizar uma estrutura de decisão composta, para verificar se há a
quantidade de produto em estoque, fazendo (quantidadeEstoque > quantidadeSaida). Se verdadeiro, a variável
venda receberá 1, caso contrário, a variável venda receberá 0.
Faça o Teste de Mesa para colocar em prática a manutenção.
- -30
3. Cláudio é dono de uma empresa que presta serviço de TI (Tecnologia da Informação) no Brasil e quer dar um
brinde maior de fim de ano a todos os seus funcionários que cumpriram pelo menos uma meta durante o ano. Esse
brinde será um agrado de 80% sem descontos, ou seja, líquido, sobre o salário atual bruto. Dessa forma, você
deverá construir um programa que leia o salário líquido de um funcionário e se ele cumpriu a meta. Se sim, calcule
o agrado e presenteie-o, caso contrário, o agrado será uma cesta básica.
Aqui vamos realizar a leitura do salário líquido e se ele cumpriu a meta (meta=1). Se sim, calcula-se o salário brinde
com a fórmula (salarioBrinde<-(salarioLiquido*80)/100;), caso contrário, imprime-se a mensagem da cesta básica.
- -31
Você chegou ao fim de mais um tópico. Aqui, foi estudado o conteúdo de Teste de Mesa nos mais diversos
pseudocódigos. No próximo tópico, será oferecida uma proposta de atividade, para que você possa trazer os testes
para o seu cotidiano.
Proposta de atividade
Reforce seu aprendizado com o exercício sugerido a seguir. A atividade não é avaliativa, mas é uma boa
oportunidade para testar seus conhecimentos e fixar o conteúdo estudado no capítulo.
Agora é a hora de recapitular tudo o que você aprendeu neste capítulo! Elabore um pseudocódigo para uma
decisão que ocorre no seu dia a dia e, nesse, realize um Teste de Mesa, colocando diversos valores. Não use apenas
- -32
aqueles que você sabe que estão certos, mas os que possivelmente, resultarão em erro. Nesse ponto, retorne ao
algoritmo e corrija os possíveis equívocos, destacando as principais ideias abordadas ao longo do capítulo. Ao
produzir o pseudocódigo e o Teste de Mesa, considere as leituras básicas e complementares realizadas.
Recapitulando
Você concluiu mais uma etapa de aprendizagem sobre algoritmos em pseudocódigo. Neste capítulo foi estudada a
importante estrutura de decisão que é composta por: decisão simples (se-entao), que testa apenas o lado
verdadeiro da condição; composta (se-entao-senao), que testa os dois lados da condição; estrutura aninhada (se-
senao-se), que possibilita realizar um cascateamento de condições. Você também viu que é possível utilizar
operadores lógicos e relacionais para permitir o acesso aos blocos condicionais. Um dos operadores que é
amplamente utilizado é o operador de negação.
A partir dos exemplos e exercícios realizados, foi possível internalizar alguns conceitos importantes sobre cada tipo
de estrutura. Alia-se a isso a prática incorporada, que permite ao aluno um enriquecimento maior sobre o assunto.
Essas estruturas são utilizadas corriqueiramente, como levantar da cama e ir para o trabalho, tomar banho ou não,
dentre outras. Dentro de um sistema, as condições vão muito além de “tomar banho ou não”. Elas são empregadas
desde as simples autenticações de sistemas até as mais refinadas validações que se perdem umas dentro das
outras, tais como: financeiras, médicas, aeronáuticas etc.
Outro assunto de grande importância, trabalhado exaustivamente neste capítulo foi o “Teste de Mesa”, recurso
capaz de provar que o algoritmo está correto ou incorreto. Ele é muito utilizado pelos desenvolvedores de software
com o objetivo de testar a sua criação, colocando todos os possíveis valores a fim de validar todos os possíveis
valores de entrada, garantindo uma melhor confiabilidade do sistema. Nesse ponto, a partir de um Teste de Mesa,
é possível chegar ao programa, ou seja, como se fosse realizada uma engenharia reversa, voltando ao ponto inicial.
Agora, cabe a você praticar muitos pseudocódigos. Não fique preso(a) apenas a este livro. Você deve buscar mais
informações nas referências deste seu livro, no plano de ensino e com pessoas conhecedoras do assunto.
Compartilhe as ideias com os demais colegas de turma almejando formar um novo conhecimento.
Referências
ASCENCIO, A. F. G.; CAMPOS, E. A. V. . Fundamentos da Programação de Computadores 5.ed. São Paulo: Prentice
Hall, 2010.
DEITEL, H. M.; DEITEL, P. J. como programar. 5. ed. São Paulo: Pearson Prentice Hall, 2006.C++: 
FORBELLONE, A. L. V.; EBERSPACHER, H. F. : a construção de algoritmos e estrutura de Lógica de Programação
dados. 3. ed. São Paulo: Pearson Prentice Hall, 2005.
MANZANO, J. A. N. G. : linguagem C. 7. ed. São Paulo: Érica, 2005.Estudo Dirigido de Algoritmos
TANENBAUM, A. S.; BOS, H. . 4. ed. São Paulo: Pearson Education do Brasil, 2016.Sistemas Operacionais Modernos
	Objetivos do capítulo
	Tópicos de estudo
	Contextualizando o cenário
	5.1 Estrutura de decisão simples
	5.1.1 Formato e utilização
	5.1.2 Execução de decisões simples
	5.1.3 Exemplo dirigido
	5.2 Estrutura de decisão composta
	5.2.1 Formato e utilização
	5.2.2 Execução de decisões compostas
	5.2.3 Exemplo dirigido
	5.3 Estrutura de decisão aninhada
	5.3.1 Formato e utilização
	5.3.2 Execução de Decisões Aninhadas
	5.3.3 Exemplo dirigido
	5.4. Teste de Mesa com decisões
	5.4.1 O que é?
	5.4.2 Exercitando as estruturas de decisões
	5.4.3 Exemplos dirigidos
	Proposta de atividade
	Recapitulando
	Referências

Outros materiais