Академический Документы
Профессиональный Документы
Культура Документы
Existem situações nas quais é necessário verificar condições de teste sucessivas, onde uma ação será
executada caso um conjunto anterior de ações seja satisfeito. Podemos usar para resolver esse tipo de
problemas uma estrutura denominada Desvio Condicional Aninhado, que nada mais é do que o
encadeamento de estruturas de decisão compostas em um algoritmo. Também chamamos a esse tipo de
estrutura de Desvio Condicional Encadeado, por este motivo.
Sintaxe:
se (condição 1) então
instruções caso condição 1 retorne verdadeiro
senão
se (condição 2) então
instruções caso condição 2 retorne verdadeiro
senão
instruções caso condição 2 retorne falso
fimse
fimse
Exemplo: o programa deve solicitar duas notas de um aluno, e calcular a média dessas notas. Caso a média
calculada seja maior ou igual a 7, o programa deve emitir a mensagem “Aprovado”; se a média for menor do
que 5, a mensagem a ser exibida é “Reprovado”. Porém, se a média do aluno ficar entre 5 e 7, deve ser
exibida a mensagem “Recuperação”. Em todos os casos deve ser ecoada no ecrã a média calculada.
Var
N1, N2 : inteiro
MEDIA : real
inicio
escreval ("Digite a primeira nota:")
leia (N1)
escreval ("Digite a segunda nota:")
leia (N2)
Note que o encadeamento pode ser feito em múltiplos níveis, bastando para isso acrescentar mais
blocos se .. senão à estrutura. Isso pode tornar o código um tanto quanto complexo, e há outras estruturas
em lógica que podem simplificar esse tipo de operação, como o comando Caso.
O comando caso é utilizado para que seja possível escolher uma opção dentre várias existentes, eliminando
a necessidade de se usar diversos Se..Então encadeados.
A sintaxe pode variar um pouco de uma linguagem para outra, e no VisualG você a usará assim:
Em muitos casos é necessário repetir um trecho de um programa diversas vezes. Nesse caso podemos usar
um “loop” que efetue essa repetição de código quantas vezes forem necessárias.
Os loops são chamados também de laços de repetição. Existem várias estruturas que podem ser utilizadas
para criar loops em programação. Nesta lição iremos estudar a estrutura Enquanto.
Estrutura de Repetição Enquanto
Essa estrutura realiza um teste lógico no início do loop, e cada vez que o teste retorna o valor
verdadeiro, os comandos associados ao laço são executados.
Quando o teste devolver falso, o laço é encerrado e o processamento volta para o fluxo principal do
programa.
Sintaxe:
Exemplo:
Vamos escrever um pequeno programa para imprimir no ecrã os números de 1 a 10, usando estrutura de
repetição enquanto:
var
num : inteiro
início
num <- 1
enquanto (num <= 10) faca
escreval (num)
num <- num + 1
fimenquanto
fimalgoritmo
Enquanto” o valor da variável num for menor ou igual a 10, será impresso na ecrã o valor dessa variável, e
na sequência seu valor é incrementado pela instrução num <- num + 1.
Exemplo 02
Crie um programa que “cadastre” e imprima no ecrã em forma de relatório os seguintes dados das
disciplinas de uma escola:
nome da disciplina
número de alunos matriculados
frequência de aprovação
nota mínima para aprovação do aluno
O programa deve permitir entrar com esses dados para quantas disciplinas for desejado, e deve ser
encerrado ao ser digitada a palavra fim.
Resolução
Var
nome:caractere
numAlunos, freq: inteiro
nota: real
Inicio
escreval("Digite o nome da disciplina, ou fim para encerrar:")
leia(nome)
// Gerando o Relatório:
escreval()
escreval("---------------------------------")
escreval("Disciplina: " + nome)
escreval("Número de Alunos: ", numAlunos)
escreval("Frequência mínima: ", freq)
escreval("Nota para aprovação: ", nota)
escreval("---------------------------------")
escreval()
// Fim do Relatório
Continuando nosso estudo de estruturas de repetição em lógica de programação, veremos nesta lição a
estrutura REPITA ATÉ.
Trata-se de uma estrutura que efetua um teste lógico no final do loop, em vez de no início, como a
estrutura enquanto.
Essa estrutura lembra a estrutura enquanto, porém, executa o conjunto de instruções programado ao menos
uma vez antes de verificar a condição testada; no laço enquanto, a condição é testada antes de executar o
bloco de códigos, o que significa que há a chance desse bloco nunca ser executado – se a condição de teste
devolver falso logo no primeiro teste.
Com o REPITA ATÉ o conjunto de instruções é executado enquanto a condição testada devolver Falso.
Sintaxe
repita
Instruções executadas enquanto condição falsa
até (condição seja verdadeira)
Exemplo
Imprimir no ecrã os números de 1 a 10, agora usando estrutura de repetição “repita…até” (código para o
VisualG):
Var
num : inteiro
Inicio
num <- 1
repita
escreval (num)
num <- num + 1
ate (num > 10)
Fimalgoritmo