27
2010
Aprenda a programar #4 | Algoritmos – Estrutura do Portugol
Bem vindos algoritmizeiros (acabei de inventar essa expressão =x) a mais um post da série Aprenda a Programar.
Hoje, iremos nos aprofundar um pouco mais na pseudo-linguagem portugol, e a partir de agora será necessário para um melhor acompanhamento, que todos já tenham o VisualG instalado na máquina.
Se você é marinheiro de primeira viagem, de uma olhada nos outros posts da série:
Aprenda a programar #1 / Aprenda a programar #2 / Aprenda a programar #3
Então vamos ao que interessa!
Estrutura do portugol…
Todo e qualquer algoritmo, terá sempre um Nome, Declaração de variáveis, Início e Fim. Na estrutura abaixo:
Algoritmo “nome-do-seu-algoritmo”
VAR
nome-da-var: tipo
nome-da-var2: tipo
INICIO
|
|
|
|
FIMALGORITMO
Ok, entendi o “Nome” “Início” e “Fim” mas…
O que é declaração de variáveis?
A declaração de variáveis, é uma parte obrigatória no portugol, assim como em outras linguagens de programação como C por exemplo.
Ela é necessária para que o interpretador entenda que aquela palavra é uma variável, além de ser útil em muitos casos, para que não dê um erro em seu programa futuramente devido a um erro de digitação, acusando de imediato onde está o erro.
Na estrutura do Portugol, dentro da seção VAR, declaramos a variável da seguinte maneira:
Nome-da-var: tipo
ex:
meunome: caractere
Ainda sobre a questão de variáveis, não vou entrar em muitos detalhes, pois as mesmas foram explicadas no post anterior.
Vamos então criar nosso primeiro programa…!
Na tela Inicial do VisualG, já temos a estrutura de nosso portugol pronta, como expliquei no início do post.
algoritmo “olá mundo”
var
inicio
escreva(“Olá Mundo!”)
fimalgoritmo
Não entendi nada! o que é esse “escreva“?
O escreva é uma palavra reservada do portugol, como expliquei no Aprenda a programar #3.
Sua função é escrever na tela o texto entre ” ” (aspas)
Se você está utilizando o visualg, ao digitar este código e apertar F9, o código será executado, e você verá que estará escrito na tela apenas a frase: Olá Mundo!
E porquê não há nada no campo das variáveis?
Porque ainda não utilizamos nenhuma.
No código acima, como vocês podem ver, foi utilizado apenas um minúsculo pedaço do que podemos fazer em portugol.
No algoritmo a seguir, vamos fazer o uso da função leia() e de variáveis.
algoritmo “leianumero”
var
num: inteiro
inicio
escreva(“Digite um número: “)
leia(num)
escreva(“O número digitado é: “, num)
fimalgoritmo
Entendendo o algoritmo…
Foi declarado a variável num, como inteiro. Ou seja, poderá receber qualquer número não-fracionário (-2, -3, -20, 0, 1, 2, 40, 18…)
Em seguida, o algoritmo irá solicitar ao usuário que digite um número, escrevendo na tela a seguinte frase: Digite um número:
Se vocês notarem, há um espaço após os : e antes da “, isso é necessário para que o cursor dê o espaço desejado.
Como falei em um post anterior da série, o computador não é inteligente, ou seja, você tem que explicar tudo a ele, passo a passo.
o leia(num) irá aguardar com o cursor na tela até que o usuário digite um número inteiro e tecle enter.
O num é a variável que declaramos no início do algoritmo, lembram?
E finalmente, o resultado.
escreva(“O número digitado é: “, num)
É importante notar, que no escreva, tudo o que estiver entre aspas, vai ser tratado como um texto qualquer, então para retornarmos o conteúdo de uma variável, fechamos primeiro as aspas, colocamos uma vírgula e digitamos o nome da variável, para só então fechar o parenteses.
Testem o algoritmo acima no VisualG, e vejam o resultado.
Treinem mais um pouco…
Galera, que tal treinar mais um pouco…
- Crie um algoritmo que leia 2 números e mostrem o resultado.
- Crie um algoritmo que leia o nome e a idade de alguém, e mostre na tela o que foi digitado.
Dica: no exercício 2, terá que ser declarado duas variáveis, uma do tipo inteiro e outra do tipo caractere. Se houver dúvidas, de uma olhada no post anterior.
Depois de criar o algoritmo, entrem na filosofia do Software Livre, compartilhe seu código conosco!
Porque não postar seu código nos comentários para ajudar quem tem dúvidas? Existem diversas maneiras de chegar a uma solução a partir de um algoritmo!
Dúvidas?!?!?
Postem nos comentários, que eu, o pedro e todos os leitores que souberem concerteza irão te ajudar!
Abraços e até o próximo post!1!

Artigo criado por












Resultado Primeiro Exercício
var
num1, num2: inteiro
inicio
// Seção de Comandos
escreval (“Digite um primeiro número:”)
leia(num1)
escreval (“Digite um segundo número:”)
leia(num2)
escreval (“O primeiro número digitado foi”, num1)
escreval (“O segundo número digitado foi”,num2)
fimalgoritmo
[Reply]
Resultado Segundo Exercício:
Algoritimo: Leia Dados
var
nome:literal
idade:inteiro
inicio
escreva(“Digite o seu nome:”)
leia(nome)
escreva(“Digite sua idade:”)
leia(idade)
escreva(“Seu nome é “,nome)
escreva(” e sua idade é”,idade)
fimalgoritmo
[Reply]
John Reply:
September 11th, 2011 at 07:50
Fiz o algoritmo de uma outra maneira:
algoritmo “APRENDIZADO”
var
idade: inteiro
nome: caractere
inicio
escreva(“Digite sua idade: “)
leia(idade)
escreva(“Digite seu nome: “)
leia(nome)
escreva(“Seu nome é: “, nome,” e sua idade é: “, idade)
fimalgoritmo
[Reply]
Parabens pelo siteeee!! Mtooooooooooooooo bom!!!
To adorando (=
[Reply]
mto bom e mto pratico esses tutoriais,boa sorte e parabens…
[Reply]
Valew bruno..ajudando demais na minha facul….
seu metodo é muito eficiente para o ensino!!!!
obrigado msm!!!
[Reply]
Obrigado pelos tutoriais. =)
[Reply]
Olá pessoal.
Sou da área de humanas e resolvi, agora, entrar no curso de Sistemas para Internet. Alguém poderia me indicar um caminho para quem NÃO SABE NADA da algoritmo mas tem muito desejo de aprender? Esta disciplina no curso está “pegando”. Obrigada pela dica.
[Reply]
Excelentes aulas, muito didáticas.
Olha se deu certo:
algoritmo “leia”
var
nome: caractere
num: inteiro
inicio
escreva(“Nome do site que te ensinou tudo o que você sabe sobre algoritmos: “)
leia (nome)
escreva(“Nota que você dá para o site: “)
leia(num)
escreva(“O site “, nome, ” é nota “, num)
fimalgoritmo
Pra mim, nome=algoritmizando.com e num=10.
[Reply]
Everaldo Ferreira Reply:
November 5th, 2011 at 01:06
Muito boa essa.
[Reply]
algoritmo “Idade”
var
ano,idade,atual:inteiro
nome:caracter
inicio
Escreval(“Digite o ano atual”)
Leia(atual)
Escreval(“Digite o ano que você nasceu”)
Leia(ano)
Escreval(“A seguir sua idade”)
idade<-(ano-atual)
Escreval(idade)
Escreval(" Digite seu nome")
Leia(nome)
fimalgoritmo
[Reply]
Alessandro Reply:
January 4th, 2012 at 08:30
Bom dia!
Um pequeno adendo. o correto no seu algorítimo seria IDADE <- ATUAL-ANO
mas é assim mesmo que funciona, teoria da tentativa e acerto.
abçs.
[Reply]
Muito bom este site, obrigado por compartilhar seus conhecimento.
Fiz os dois testes e deu certo, porém logo após o 1º resultado , já vinha o 2º sem espaço, como eu faco, ou é assim mesmo que aparece?
Desde já agradeço
Att
Alexandre
[Reply]
Bruno Barbosa Reply:
September 18th, 2011 at 13:42
Usa escreval(“texto”) que após a menagem ele pula uma linha…
[Reply]
Cara, pela primeira vez estou conseguindo entender algo após inúmeras tentativas e buscas na internet!!! realmente o site/curso está de parabéns!!! Excelente!!!!!!!!
[Reply]
fiz um pra minha mulher da um look awe
var
num: inteiro
nome: caracter
nome2: caracter
inicio
escreva(“Escreva seu nome: “)
leia(nome)
escreva(“Escreva Sua Idade: “)
leia(num)
escreva(“Escreva o nome do seu marido: “)
leia(nome2)
escreva(“Seu nome é: “, nome)
escreva(” e sua idade é “, num)
escreva(” e o “, nome2, ” te AMA MUITO SAbia?”)
fimalgoritmo
[Reply]
Bruno Barbosa Reply:
October 5th, 2011 at 11:15
AhAUhuha bacana!
Parabéns Roger!
[Reply]
Everaldo Ferreira Reply:
November 5th, 2011 at 01:07
Minha mulher gostou demais dessa.
[Reply]
Olá pessoal,
e não esquecendo que para por mais de uma variavel colóca-se o sinal “,”
de vírgula.
por exemplo:
var
num1, numm2: inteiro
abraços pra todos.
Henrique rodrigues.
[Reply]
Tem como me ajudar nos seguintes exercícios? Sou iniciante no curso de Desenv. de Sistemas e preciso resolve-los.
1. Uma escola deseja saber se existem alunos matriculados simultaneamente nos cursos de Informática e Química. Fazer um algoritmo que leia o número de matrícula de 15 alunos do curso de Informática em um vetor e 15 matrículas de alunos de Química em outro vetor. Apresente os alunos que estão cursando simultaneamente os cursos.
2. Fazer um algoritmo que leia uma frase, calcule e mostre:
a) A quantidade de palavras digitadas
b) A quantidade de letras
c) A quantidade de vírgulas e pontos.
[Reply]
Muito bom o compartilhamento de conhecimentos. Sou iniciante no curso de Desenv. de Sistemas e preciso resolver esses exercícios. Tem como me ajudar?
1. Uma escola deseja saber se existem alunos matriculados simultaneamente nos cursos de Informática e Química. Fazer um algoritmo que leia o número de matrícula de 15 alunos do curso de Informática em um vetor e 15 matrículas de alunos de Química em outro vetor. Apresente os alunos que estão cursando simultaneamente os cursos.
2. Fazer um algoritmo que leia uma frase, calcule e mostre:
a) A quantidade de palavras digitadas
b) A quantidade de letras
c) A quantidade de vírgulas e pontos.
[Reply]
E ae galera. Tudo bem?
Primeiramente parabéns aos autores do site. Nota 1000!!
Fiz um algoritmo e fiquei com uma dúvida, basicamente está pegando dados e depois mostrando na tela, mas coloquei 3 linhas de saída das informações e invés do resultado sair em 3 linhas diferentes está saindo tudo em uma linha só. Como faço para fazer com saia o resultado um embaixo do outro?
Obrigado. Abraços.
[Reply]
Bruno Barbosa Reply:
October 27th, 2011 at 10:40
Olá Paulo.
Basta você usar escreval(“texto”) ao invés de apenas escreva(“texto”)
Abraços.
[Reply]
E ae galera. Tudo bem?
Primeiramente parabéns aos autores do site. Nota 1000!!
Fiz um algoritmo e fiquei com uma dúvida, basicamente está pegando dados e depois mostrando na tela, mas coloquei 3 linhas de saída das informações e invés do resultado sair em 3 linhas diferentes está saindo tudo em uma linha só. Como faço para fazer com saia o resultado um embaixo do outro?
Obrigado. Abraços.
algoritmo “zepp001″
// Função : Descrever a mulher que você gostaria de ter
// Autor : PhZeppeliN
// Data : 18/10/2011
// Seção de Declarações
var
zpNOME:caracter
zpIDADE,zpPESO:inteiro
zpCINTURA,zpBUSTO,zpALTURA:numerico
inicio
// Seção de Comandos
escreva(“Digite o nome dela: “)
leia(zpNOME)
escreva(“Digite a idade: “)
leia(zpIDADE)
escreva(“Digite a altura: “)
leia(zpALTURA)
escreva(“Digite o peso: “)
leia(zpPESO)
escreva(“Digite a cintura: “)
leia(zpCINTURA)
escreva(“Digite o busto: “)
leia(zpBUSTO)
escreva(“A “,zpNOME,” tem “,zpIDADE,” anos de idade e pesa”,zpPESO,” quilos.”)
escreva(“E ainda tem “,zpALTURA,”m de altura,”,zpBUSTO,” de busto e”,zpCINTURA,” de cintura.”)
escreva(“Essa é gostosa!!”)
fimalgoritmo
[Reply]
Parabens Gostei muito do site, aprendi muita coisa..
Continuem postando novas dicas e tutoriais.
Muito bacana!
[Reply]
algoritmo “leia nome e idade”
var
idade: inteiro
nome: caractere
inicio
// Seção de Comandos
escreva(“Digite seu nome: “)
leia(nome)
escreva(“Digite sua idade: “)
leia(idade)
escreval(“Seu nome é: “, nome)
escreval(“Sua idade é: “, idade)
fimalgoritmo
[Reply]
Agora estou gostando, tem até alguns exemplos para testar. Obrigado.
[Reply]
fiz assim, mas tem um problema e gostaria q me ajudassem…
quando eu termino de escrever aperto f9 e aparece o número 2(o primeiro número) aperto enter e dá um erro assim:
O visualg encontrou um problema na linha 12:
esperava um espressão do tipo inteiro
Conteúdo da linha: leia(num1)
Gostaria de saber o q tem de errado com o num1
meu algoritmo:
algoritmo “leianumero”
// Função :
// Autor :
// Data : 04/12/2011
// Seção de Declarações
var
num1, num2: inteiro
inicio
// Seção de Comandos
escreval(“2″)
leia(num1)
escreval(“1″)
leia(num2)
escreval(“O numero é “, num1)
escreval(“o outro é “, num2)
fimalgoritmo
[Reply]
Bruno Barbosa Reply:
December 5th, 2011 at 08:48
O problema deve estar no número que você está passando ao programa quando ele pede. Verifica se está colocando um número inteiro e tenta novamente.
Abraços.
[Reply]
Muito bom o site, mas eu tenho a mesma dúvida que o Fernando acima citou.
Sempre dá o erro “esperava um espressão do tipo inteiro”, alguém pode me dizer porque? porque? porque? já quebrei a cabeça e nada! =/
Eu sei o que é número inteiro e estou colocando, mas não saio do lugar.
Estou tentando fazer com esse algorítimo
var
num1, num2: inteiro
inicio
// Seção de Comandos
escreval (“Digite um primeiro número:”)
leia(num1)
escreval (“Digite um segundo número:”)
leia(num2)
escreval (“O primeiro número digitado foi”, num1)
escreval (“O segundo número digitado foi”,num2)
fimalgoritmo
[Reply]
Meu Exercício 1:
algoritmo “Digite dois números”
var
num1, num2:inteiro
inicio
// Seção de Comandos
escreva(“Digite um número: “)
leia(num1)
escreva(“Digite outro número: “)
leia(num2)
escreva(“Os dois números digitados são: “,num1, num2)
fimalgoritmo
[Reply]
Meu Exercício 2 é:
algoritmo “Nome e Idade”
var
idade:inteiro
nome:caractere
inicio
// Seção de Comandos
escreva(“Digite seu nome: “)
leia(nome)
escreva(“Digite sua idade: “)
leia(idade)
escreva(“Seu nome é “,nome,” e sua idade é “,idade,” anos”)
fimalgoritmo
[Reply]
Exercício 1:
algoritmo “soma”
// Função : Somar dois números inteiros
// Autor : Estela Costa
// Data : 29/12/2011
// Seção de Declarações
var
num1, num2, soma: inteiro
inicio
// Seção de Comandos
leia(num1)
leia(num2)
soma <- (num1+num2)
escreva ("a soma é:",soma)
fimalgoritmo
[Reply]
algoritmo “Nome e 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)
escreva (“Seu nome é: “, nome, ” e você tem”, idade, ” anos. O tempo passa rápido, né?”)
fimalgoritmo
[Reply]
Excelente iniciativa…muito legal, ótimo para quem quer conhecer um mundo atrás do monitor ;D
[Reply]
Parabens pelo site, iniciativa admiravel!!
Estou inciando em programação agora, com python,
seu tutorial esta ajudando muito.
Obrigado
[Reply]
Bruno Barbosa Reply:
January 13th, 2012 at 09:19
Python? Excelente escolha na linguagem Paulo! Também programo em Python =)
Tiver dúvidas sobre os posts, só deixar um comentário.
Abraços.
[Reply]
Parabéns muito bacana o site…
var
nome:caracter
idade:inteiro
inicio
// Seção de Comandos
escreva(“Digite seu nome:”)
leia(nome)
escreva(“Digite sua idade:”)
leia(idade)
escreval(“Seu nome é: “, nome)
escreval(“Sua idade é: “, idade)
Fimalgoritmo
[Reply]
Bom pessoal to gostando muito destes tutoriais, mas alguem sabe como fazer uma quebra linha no final meu algoritimo ficou assim:
algoritmo “Numeros”
// Função : Exercício 01
// Autor : Alexsander Rocha
// Data : 27/01/2012
// Seção de Declarações
var
num: inteiro
num2: inteiro
inicio
// Seção de Comandos
escreva(“digite um Número:”)
leia (num)
escreva(“digite outro Número:”)
leia (num2)
escreva(“seu primeiro número é:”,num)
escreva(“seu segundo número é:”,num2)
fimalgoritmo
[Reply]
Bruno Barbosa Reply:
January 30th, 2012 at 08:24
Para quebra de linha, basta você usar “escreval” (com ‘L’ no final) ao invés de “escreva”.
Abraços.
[Reply]
algoritmo “Algoritmizando”
var
ano:inteiro
nome:caractere
idade:inteiro
mae:caractere
pai:caractere
inicio
//Seção de Comandos
escreva(“Escreva o ano em que voce nasceu: “)
leia(ano)
escreva(“Como voce se chama mesmo? “)
leia(nome)
escreva(“E quantos anos voce tem? “)
leia(idade)
escreva(“Como se chama sua mãe? “)
leia(mae)
escreva(“E como se chama seu pai? “)
leia(pai)
escreva(“Então, voce nasceu em”,ano,”, voce se chama “,nome,”, voce tem”,idade,” anos, sua mãe se chama “,mae,”, e seu pai se chama “,pai)
fimalgoritmo
[Reply]