Você está na página 1de 7

AGRUPAMENTO DE ESCOLAS HENRIQUES NOGUEIRA

CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE


SISTEMAS INFORMÁTICOS
2020/2021

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO


MÓDULO 1 – INTRODUÇÃO À PROGRAMAÇÃO E ALGORITMIA

Desvio Condicional Aninhado (SE…ENTÃO…SENÃO…SE)

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)

   MEDIA <- (N1 + N2) / 2


   se (media >= 7) entao
     escreval ("Aprovado")
   senao
        se (media >= 5) entao
           escreval ("Recuperação")
        senao
          escreval ("Reprovado")
        fimse
   fimse
   escreva ("A média é ", MEDIA)
fimalgoritmo

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:

escolha <variável / expressão)


   caso <valor1>
comandos a executar
   caso <valor2>
comandos a executar
   caso <valor3>
comandos a executar
   outrocaso
comandos-padrão
fimescolha
Exemplo de uso do comando Caso – Exibindo uma mensagem de acordo com uma letra escolhida:
var
   x: literal
inicio
   escreval (“Digite uma letra:”)
   leia (x)
   escolha x
     caso “a”
        escreva(“Você digitou a letra A”)
     caso “b”
       escreva(“Você digitou a letra B”)
     outrocaso
     escreva(“Você digitou uma outra letra”)
fimescolha
fimalgoritmo

Estruturas de Repetição (Loop) – ENQUANTO

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:

enquanto (condição_verdadeira) faça


instruções executadas enquanto condição testada for verdadeira
fimenquanto

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

Ao executarmos esse programa, obteremos o seguinte resultado:

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

Algoritmo "Registo de Disciplinas"


// Disciplina : Lógica de Programação
// Professor : Ana Almeida
// Data atual : 23/09/2020

Var
nome:caractere
numAlunos, freq: inteiro
nota: real

Inicio
escreval("Digite o nome da disciplina, ou fim para encerrar:")
leia(nome)

enquanto (nome <> "fim") faca


escreval("Escreva o número de alunos:")
leia(numAlunos)
escreval("Escreva a frequência da disciplina:")
leia(freq)
escreval("Escreva a nota mínima:")
leia(nota)

// 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

escreval("Digite o nome da disciplina, ou fim para encerrar:")


leia(nome)
fimenquanto
Fimalgoritmo

Estrutura de Repetição REPITA ATÉ

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