18
2010
Aprenda a programar #7 | Algoritmos – Condicionais
Estrutura condicional…
Vejamos…
Se “o Flamengo vencer” entao
…. “ele será campeão da libertadores”
fimse
=D
Sim, na vida, as vezes nos deparamos em situações na qual precisamos escolher algo somente se outra coisa acontecer…
Chamamos isso de condição.
Nos algoritmos, também utilizaremos isto, como vocês notaram no começo do post, o que utilizei ali, foi uma estrutura condicional. Observem bem, o que está em negrito, as palavras se, entao, fimse. Elas serão importantíssimas em nosso algoritmo…
então, poderia basicamente dizer que em um algoritmo a sintaxe seria a seguinte:
se <condição> entao
…. <ações a serem realizadas se a condição for verdadeira> //pode ser uma ou mais
fimse
Eu sei que o computador não entenderia se eu colocasse simplesmente “ele será campeão da libertadores”, então como ficaria isso em um algoritmo?
Esse foi um exemplo bem didático, mas em portugol, seria mais ou menos o seguinte:
se (vencedor = “Flamengo”) entao
…. escreva(“Flamengo será o campeão da Libertadores!!!”)
fimse
Esses “….” antes da ação, é necessário?
Não, esses quatro pontos, é um artifício que estou usando aqui no blog para indicar que ali, existe um espaço ou uma tabulação, já que se eu simplesmente der o espaço aqui no blog, ele não irá interpretar e ficará como se não houvesse nada…
Então para que esse espaço?
Esse espaço, é o que chamamos de identação, que além de ser uma questão de ética entre os programadores, ele vai servir para que seu código tenha uma melhor aparência, e fique mais fácil para entendê-lo e dar manutenção.
Entendi essa parte… mas e se a condição for falsa?
“Se você não mandar o computador fazer nada, ele nada fará!” (by eu)
Nesse caso, podemos fazer nosso algoritmo de duas maneiras:
1 – utilizar dois condicionais SE.
Um exemplo bem didático e de fácil entendimento:
- se dinheiro >= 30 entao
- …. ir_ao_cinema <- verdadeiro
- …. assistir_tv <- falso
- fimse
- se dinheiro < 30 entao
- …. ir_ao_cinema <- falso
- …. assistir_tv <- verdadeiro
- fimse
e a segunda opção, que é bem melhor e de mais agradável leitura…
- se dinheiro >= 30 entao
- …. ir_ao_cinema <- verdadeiro
- …. assistir_tv <- falso
- senao
- …. ir_ao_cinema <- falso
- …. assistir_tv <- verdadeiro
- fimse
Observem que agora na linha quatro, apareceu uma palavrinha nova para nós… O senao…
Para que serve o senao?
O senao, será executado sempre que o resultado do “se” for falso.
No exemplo acima, o interpretador fez uma pergunta, “o dinheiro é maior ou igual a 30?”
Caso fosse, a variavel “ir_ao_cinema” receberia o valor verdadeiro, e a variável “assistir_tv” receberia o valor falso.
Se o dinheiro não fosse maior que 30, ou seja, caso ele fosse menor, o valor recebido das variáveis “ir_ao_cinema” e “assistir_tv” seriam outros.
Fácil não?
Agora, um algoritmo facin facin, para que vocês entendam por vez, como funciona a estrutura condicional se.
Como desafio de hoje…
Tentem entender o algoritmo acima sem copia-lo no VisualG. E caso não tenham conseguido entender, pode postar nos comentários que explicarei linha por linha
E mais dois desafios extras… =)
- Faça um algoritmo que receba um número e mostre uma mensagem caso este número seja maior que 10.
- Faça um algoritmo que receba um número, e informe se este número está no intervalo de 100 a 200.
Abraços galera, e até o próximo post!

Artigo criado por















var
num1:inteiro
inicio
escreval(“—————————JOGUINHO DO DUNO————————-”)
escreval(“Digite um número e saiba se ele esta o intervalo de 100 a 200″)
leia(num1)
se (num1>=100)e(num1<=200) entao
escreval("O número digitado esta entre 100 a 200! ")
senao
escreval("O número digitado não esta entre 100 a 200")
fimse
Obrigado,
Duno
[Reply]
Não sei se ta certo mais acho q é isso daí no exercício 2:
var
num: inteiro
inicio
escreva(“digite um numero:”)
leia(num)
se(num>=100)entao
se(num<=200)entao
escreva("o número está entre 100 e 200")
se(num200)entao
escreva1(“o número não está entre 100 e 200″)
fimse
fimse
fimse
fimse
[Reply]
Bruno Barbosa Reply:
October 27th, 2011 at 10:41
ali no lugar do se(num200) você deveria usar senao… Faz o teste =)
[Reply]
o meu ficou assim:
algoritmo “numeros entre 100 e 200″
var
numero:inteiro
inicio
escreva(“Digite um número qualquer: “)
leia(numero)
se (numero>=100) e (numero<=200) entao
escreval("Esse número",numero, " está entre 100 e 200. 0BRIGADO!")
senao
escreval("Esse número",numero, " não está entre 100 e 200. TENTE OUTRA VEZ!")
fimse
fimalgoritmo
[Reply]
Olha cara, excepcional o seu trabalho mesmo, voce conseguiu me fazer intender o que professor nunca consiguiu velho, muuuito bom o post, estou espalhando no msn, orkut e divulgando esse site aqui, é de mais o que voce esta fazendo muito obrigado mesmo, e até agora nem uma duvida, consegui intender direitinho, e intendi mesmo, cada sinal, cada coisinha, eu to sabendo a função de cada uma, e isso chega da um prazer porque o simples fato de dominar isso, é muito bom, Obrigado e Sucesso pra voce Bruno.
[Reply]
Bruno Barbosa Reply:
November 7th, 2011 at 10:11
Opa,
Muito obrigado Junior Guilherme, são comentários assim que nos motivam e explicam por que eu gosto de escrever para internet e ajudar meus colegas =D
Abraços.
[Reply]
Valeu, fiz igual aos companheiros.
Não encontrei outra forma.
Obrigado.
[Reply]
O primeiro fiz assim:
algoritmo “mensagem”
var
num : inteiro
inicio
escreva (“Digite um número: “)
leia (num)
se num > 10 entao
escreva (“O número “,num,” é maior que 10.”)
fimse
se num = 10 entao
escreva (“O número “,num,” é igual a 10.”)
fimse
se num < 10 entao
escreva ("O número ",num," é menor que 10.")
fimse
fimalgoritmo
[Reply]
Olá fiz este mais não fez o que eu queria qual o pro ?
algoritmo “Troca”
// Função :
// Autor :
// Data : 07/11/2011
// Seção de Declarações
var
num: inteiro
inicio
escreva(“Por Favor digite um numero entre 100 e 200 “)
leia(num)
Se (num=200) entao
escreva(“Ta doido não conhece nem numeros!!”)
Escreval (“Tenta De novo Doido”)
fimse
Se (num >100) e (num < 200) entao
escreva("Valeu !!!!")
fimse
// Seção de Comandos
fimalgoritmo
[Reply]
Obrigada pelas aulas, tem me ajudado muito. Meu professor sabe pra ele, mas não consegue explicar de modo com que entendamos.
Vê se aprendi direito esse conceito do “se, senao”:
var
time,libert: caractere
inicio
// Seção de Comandos
time <- "Sao Paulo"
Escreval ("Qual o time que você gostaria que fosse campeão da Libertadores?")
Leia (libert)
se (time=libert) entao
Escreval ("Bom palpite, esse time já é veterano da Libertadores")
senao
Escreval ("Rá rá rá! Essa foi boa!!! Rá rá rá!")
fimse
fimalgoritmo
[Reply]
Bruno Barbosa Reply:
November 28th, 2011 at 23:32
Olá Cris, está certinho!
Apenas atente para a caixa alta em alguns comandos específicos da linguagem como “Escreva” e “Leia”. O ideal é usar caixa baixa (“escreva”, “leia”), pois em outras linguagens de programação isso pode ocasionar um erro.
A sintaxe do “se.. senao” está correta, há apenas um erro de lógica: Já passou o tempo do São Paulo… de 2013 para frente só vai dar mengão na libertadores hahahahha
Brincadeiras a parte, obrigado pela visita e pelo comentário.
Abraços.
[Reply]
algoritmo “Maior ou menos de idade”
// Função : Ler o nome e a idade de uma pessoa
// Autor : Estela Costa
// Data : 29/12/2011
// Seção de Declarações
var
idade: inteiro
nome: literal
inicio
// Seção de Comandos
escreva (“Seu nome:”, nome)
leia(nome)
escreva (“Sua idade;”,idade)
leia(idade)
se (idade > 18) entao
escreva (nome, ” é maior de idade.”)
senao
escreva (nome, ” é menor de idade.”)
fimse
fimalgoritmo
[Reply]
Alessandro Reply:
January 4th, 2012 at 11:30
Bom dia Estela…
seu algoritimo tem um erro mínimo, seria talvez uma falta de atenção ao invés de um erro. Você está delcarando o conteúdo da variável, antes mesmo dela receber uma valor pra guardar.
// Seção de Comandos
escreva (“Seu nome:”, nome<==)
leia(nome)
escreva (“Sua idade;”,idade<==)
leia(idade)
funcionará melhor se vc colocar assim:
// Seção de Comandos
escreva (“Seu nome:”)
leia(nome)
escreva (“Sua idade: ”)
leia(idade)
Abçs.
[Reply]
Nossa meu super massa gostei muito do blog parabens so tenho 10 anos e vo fazer ciencia da computaçao consegui fazer o primeiro exercicio to muuuuito feliz VLW MESMOO
[Reply]
Bruno Barbosa Reply:
January 23rd, 2012 at 15:25
Olá Gabriel,
Parabéns pela iniciativa, é assim mesmo que se começa!
Um forte abraço.
Sucesso! =)
[Reply]
O primeiro exercicio
var
num: inteiro
inicio
escreva(“Digite um número: “,num)
leia(num)
se num > 10 entao
escreva(“Este número é maior que 10″)
senao
fimse
[Reply]
Tipo da hora mesmo!
to aprendendo
muito Obrigada….
Bjuss
[Reply]
Bruno Barbosa Reply:
February 2nd, 2012 at 11:15
Fico feliz que você esteja aproveitando o conteúdo dos posts…
Um forte abraço.
^^
[Reply]
nao entendi poderia me explicar???
[Reply]
Bruno Barbosa Reply:
February 6th, 2012 at 08:34
O que exatamente você não entendeu Gabi?
[Reply]
gabriela Reply:
February 7th, 2012 at 00:20
tudo hihi ! por isso gostaria que me explica-se por favor
[Reply]
O meu ficou assim:
algoritmo “Intervalo 100 a 200″
// Função : Verifica se o número inserido pelo usuário está no intervalo de 100 a 200
// Autor : DF
// Data : 11/02/2012
// Seção de Declarações
var
numero: real
inicio
// Seção de Comandos
escreva(“Digite um número: “)
leia(numero)
se(numero >=100) e (numero <= 200) entao
escreva("Seu número está no intervalo entre 100 e 200.")
senao
escreva("Seu número está fora do intervalo de 100 a 200.")
fimse
fimalgoritmo
[Reply]
Ae não ta dando certo, já bati cabeça mais não consigo, se puder dar uma ajuda.
var
Num:inteiro
inicio
// Seção de Comandos
escreval(“Digite um número e te direi se ele é maior ou menor que 10 “)
leia(num)
se num > 10 entao
escreval(“O número digitado foi “, num, ” e ele é maior do que 10″)
se num < 10
escreval("O número digitado foi ", num, "e ele é menor do que 10")
fimse
se num = 10
escreval("O número digitado foi igual a 10")
fimalgoritmo
[Reply]
“Se você não mandar o computador fazer nada, ele nada fará!” (by eu)
kkkkkkkkkkkkkkkkkkkk. #euri
[Reply]
Bruno, não tenho palavras pra te agradeçer por esse maravilhoso conhecimento adquirido através da sua pessoa.
[Reply]
Bruno Barbosa Reply:
March 9th, 2012 at 09:09
Opa,
Só sua visita e comentário já são suficientes amigão =D
Divulgar o blog à seus amigos é um plus! hehehe
Abraços.
[Reply]
Bruno, não sei em que estou errando. Estou digitando seu exemplo, mas não está dando certo, uma linha fica em azul no programa após eu digitar o numero. O que pode estar acontecendo?
algoritmo “Calcule a área do circulo”
// Função :
// Autor :
// Data : 3/11/2012
// Seção de Declarações
var
Area, Raio: real
inicio
// Seção de Comandos
Escreval (“Entre com o raio do circulo”)
Leia (Raio)
Se Raio > 0 entao
Area <- PI*(Raio^2)
Escreva ("A área do circulo de raio "), Raio, " é ", Area)
fimse
Se raio <= 0 entao
Escreva ("Raio não pode ser nulo ou negativo!")
fimse
fimalgoritmo
[Reply]
Bruno Barbosa Reply:
March 12th, 2012 at 14:51
Tenta remover o espaço entre a instrução Leia e os parênteses… leia() ao invés de leia ()
Se der certo, me avisa aqui.
Abraços.
[Reply]
Marcos Roberto Reply:
March 12th, 2012 at 20:23
Agora deu certo. Alem desse, encontrei outro erro. Agora está completo.
algoritmo “Calcule a área do circulo”
// Função :
// Autor :
// Data : 3/11/2012
// Seção de Declarações
var
Area, Raio: real
inicio
// Seção de Comandos
Escreval (“Entre com o raio do circulo”)
Leia(Raio)
Se Raio > 0 entao
Area <- PI*(Raio^2)
Escreva ("A área do circulo de raio "), Raio, " é ", Area)
fimse
Se raio <= 0 entao
Escreva ("Raio não pode ser nulo ou negativo!")
fimse
finalgoritmo
[Reply]
algoritmo “Execicio 1 – Aula #7″
// Função :
// Autor :
// Data : 3/12/2012
// Seção de Declarações
var
numero: inteiro
inicio
// Seção de Comandos
Escreval (“Entre com um numero”)
leia(numero)
Se numero >= 10 entao
Escreva (“Numero maior que 10. Não Permitido.”)
fimse
se numero =100) e (numero<=200) entao
Escreva ("Numero corredo")
senao
Escreva ("Digitou o numero errado companheiro!")
fimse
fimalgoritmo
[Reply]
o se indica uma condição, o então um resultado a partir dessa condição….. mas o senão o que exatamente ele faz….
valeu bruno seu blog esta muito bom
[Reply]
Caro Professor Bruno e colegas, por favor, me ajudem no raciocínio para a elaboração do seguinte algoritmo:
Fazer um algoritmo para converter para a moeda Nacional(real) um certo valor dado em dólares americanos. Sendo que não se deve considerar os centavos, apenas a parte inteira.
Eu fiz assim:
D,cota : inteiro
Escreval ( “Digite um certo valor dado em Dólares:” )
Leia (D)
Escreval (” Digite o valor da Cotação do dia:”)
Leia (Cota)
Escreval ( D, “Dólares, equivalem a”, D*cota, “Reais)
Porém, como devo fazer para desconsiderar os centavos e considerar apenas a parte inteira?
[Reply]
Primeiramente queria te parabenisar pelas aulas são muito boas mesmo
comecei hoje a ver as aulas to pegando bem mas
to com um problema sempre que o comando é leia aparece uma caixa de dialogo dizendo que “se esperava ‘)’.” não entendo
grato desde já.
continue com o bom trabalho
[Reply]
Estou tendo uma dificuldade gigantesca em fazer uma programção (aula didatica) não sei algoritmo e tenho que elaborar um conversor de moedas que suporte 3 moedas alem do real, em pseucodigo, narrativa e fluxograma de blocos ate achei na net algo parecido mas queria entender a logica e não ficar somente copiando. Nunca fiz mas preciso aprender e meu professro, por eu ter entrado depois na escola não me ajuda. Alguem poderia me auxiliar a construir isto?
Muito obrigado
Marcos
[Reply]
uma duvida…pode se usar fimse mas de uma vez
axei que so se usava no antes do finalgoritmo
[Reply]
// Faça um algoritmo que receba um número, e informe se este número está no intervalo de 100 a 200.
algoritmo “SeEntaoSenao”
var
num: real
inicio
escreva (“digite um número: “)
leia (num)
se (num>=100) e (num<=200) entao
escreva (num, " está dentro do intervalo entre 100 e 200")
senao
escreva (num, " está fora do intervalo entre 100 e 200")
fimse
fimalgoritmo
OBS: funcionou que é uma belezura… "PARA NOSSA ALEGRIA!" rsrsrsrsrsr
[Reply]
var
num:Real
inicio
Escreva(“Informe um número: “)
Leia(num)
Se num > 10 entao
Escreva (“O número “,num,” é maior que 10″)
senao
Escreva (“O número “,num,” não é maior que 10″)
fimse
fimalgoritmo
[Reply]
“No reino Marmoca, para que uma donzela possa se casar, ela deve ter 3 pretendentes. Um destes deverá passar no teste de adivinhação para se tornar o noivo. Acreditava-se que amor era uma questão de sorte. Neste teste, a donzela escolhe um número qualquer. Após, cada pretendente tem uma chance para acertar o número escolhido pela donzela. Casa-se com a donzela o primeiro pretendente que acertar o número escolhido por ela. Caso nenhum dos pretendentes acerte o numero escolhido, a donzela deve ficar solteira por pelo menos mais um ano”.
Faça um algoritmo para auxiliar no teste de adivinhação. Este deve permitir a digitação do numero escolhido pela donzela, os nomes e os números escolhidos por cada pretendente. Ao final, deve ser mostrada uma mensagem indicando se a donzela irá se casar ou não. Caso ela se case, informe o número do pretendente que se tornará noivo.
BOA NOITE ! poderia me explicar como fasso esse algoritmo uma dica obrigado!
[Reply]
“No reino Marmoca, para que uma donzela possa se casar, ela deve ter 3 pretendentes. Um destes deverá passar no teste de adivinhação para se tornar o noivo. Acreditava-se que amor era uma questão de sorte. Neste teste, a donzela escolhe um número qualquer. Após, cada pretendente tem uma chance para acertar o número escolhido pela donzela. Casa-se com a donzela o primeiro pretendente que acertar o número escolhido por ela. Caso nenhum dos pretendentes acerte o numero escolhido, a donzela deve ficar solteira por pelo menos mais um ano”.
Faça um algoritmo para auxiliar no teste de adivinhação. Este deve permitir a digitação do numero escolhido pela donzela, os nomes e os números escolhidos por cada pretendente. Ao final, deve ser mostrada uma mensagem indicando se a donzela irá se casar ou não. Caso ela se case, informe o número do pretendente que se tornará noivo.
Algoritmo teste de adivinhação
Var
Donzela:inteiro
candidato1:inteiro
candidato2:inteiro
candidato3:inteiro
Inicio
Escreval (“donzela entre com o seu numero”)
Leia (donzela)
Escreval (“candidato1 entre com o seu numero”)
Leia( canditato1)
Escreval(“candidato 2 entre com o seu numero “)
Leia (candidato 2)
Escreval (“candidato 3entre com o seu numero”)
Leia (candidato3)
Se candidato1 adivinhar o numero então
Escreval(“parabéns você acertou!”)
Senão
Escreval (“você errou!”)
Fimse
Se candidato2 adivinhar o numero então
Escreval (“parabéns você acertou!)
Senão
Escreval(“você errou!”)
Fimse
Se candidato 3 adivinhar o número então
Escreval(“você acertou!”)
Senao
Escreval(“você errou!”)
Fimse
fimalgoritmo
bruno boa noite sou novo por aqui estou com uma duvida entao pesquisei e achei esse site e vi q vc quando pode da uma força estou com dificuldades em algoritmo estou no 1° semestre esse algorimo que postei esta certo vc poderi me da uma ajuda?no principio tinha pedido para vc fazer mais eu fiz e queria ver se acertei obrigado!
[Reply]
Bruno Barbosa Reply:
May 4th, 2012 at 10:20
Olá Lucas,
A lógica é essa mesmo, mas notei erros de sintaxe no seu algoritmo:
em:
…
Escreval(“candidato 2 entre com o seu numero “)
Leia (candidato 2)
…
no “leia”, a variável candidato2 está com um espaço entre o nome e o número, remova esse espaço.
Nos condicionais, você não deve utilizar: “se candidatoX adivinhar o numero entao”
use:
se candidatoX = donzela entao:
Qualquer dúvida só postar nos comentários.
Abraços.
[Reply]
lucas Reply:
May 12th, 2012 at 00:11
muito obrigado bruno valeu mesmo
[Reply]
var
nome,categoria:caractere
idade:inteiro
peso:real
inicio
// Seção de Comandos
escreval(“digite o nome do atleta”)
leia(nome)
escreval(“digite a idade do atleta”)
leia(idade)
escolha idade
caso 7,8
categoria<-" pre-infantil"
caso 9,10
categoria<-" infantil"
caso 11,12
categoria<-" sub-13"
outrocaso
categoria<-" acima ou abaixo"
fimescolha
escreval("categoria" , categoria )
escreval("digige o peso do atleta")
leia(peso1)
se (peso28)entao
escreval(“categoria ligeiro”)
fimse
fimse
fimescolha
fimalgoritmo
BRUNO, MUITO OBRIGADO POR COMPARTILHAR SEUS CONHECIMENTOS COM AQUELES QUE NAO TIVERAM A OPORTUNIDADE DE APRENDER EM SUA ÉPOCA, COMO FOI MEU CASO.
ESTOU TENTANDO MONTAR UM ALGORITIMO ONDE O ATLETA INFORMA NOME, IDADE E PESO, E O PROGRAMA POSSA MOSTRAR QUAL SUA CATEGORIA, PORÉM QND O PESO É >28 NADA ACONTECE! OND ESTOU ERRANDO? GRATO
[Reply]
BRUNO, UMA PEQUENA CORREÇÃO EM MEU COMENTÁRIO ANTERIOR, POIS QND COLEI ALGO DEU ERRADO leia (peso1) o original esta: leia(peso)
se (peso28) o original esta: se(peso>28)
vou colar novamente:
inicio
// Seção de Comandos
escreval(“digite o nome do atleta”)
leia(nome)
escreval(“digite a idade do atleta”)
leia(idade)
escolha idade
caso 7,8
categoria<-" pre-infantil"
caso 9,10
categoria<-" infantil"
caso 11,12
categoria<-" sub-13"
outrocaso
categoria<-" acima ou abaixo"
fimescolha
escreval("categoria" , categoria )
escreval("digige o peso do atleta")
leia(peso)
se (peso28)entao
escreval(“categoria ligeiro”)
fimse
fimse
fimescolha
fimalgoritmo
Me mostre onde estou errando!
Grato!
[Reply]
Minhas Resoluções
Exercício 01
algoritmo “verificar se o número é maior que 10″
var
a: inteiro
inicio
escreval (“digite um numero: “)
leia(a)
se (a > 10)entao
escreval (“é maior que 10″)
senao
escreval (“não é maior que 10″)
fimse
fimalgoritmo
Exercício 02
algoritmo “verificar se um númeor está entre 100 e 200″
var
a: inteiro
inicio
escreval (“digite um numero: “)
leia(a)
se (a > 100) e (a <200) entao
escreval ("Está entre de 100 a 200")
senao
escreval ("não está entre de 100 a 200")
fimse
fimalgoritmo
Muito obrigado pelo material!!! É de grande ajuda, pois eu não sabia programar em visualg, somente em Pseudo Código.
Leandro- Aluno da FATEC Zona Leste
[Reply]
valeu muito obrigado
[Reply]