Apr
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…

  1. Crie um algoritmo que leia 2 números e mostrem o resultado.
  2. 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!


Receba nossos artigos em seu Email!


Digite o seu email abaixo:

Posts Relacionados:

Sobre o Autor: Bruno Barbosa

Bruno Barbosa cursa Análise e Desenvolvimento de Sistemas, é programador Python, Desenvolvedor Web, usuário Linux e entusiasta de Software Livre. Utiliza no dia-a-dia Python, Zope/Plone e o framework web2py para desenvolvimento de aplicações web. Me siga também no Twitter.

114 Comments + Add Comment

  • 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:

    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:

    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:

    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:

    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:

    AhAUhuha bacana!

    Parabéns Roger!

    [Reply]

    Everaldo Ferreira Reply:

    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:

    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:

    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:

    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:

    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]

Deixe o sua opinião abaixo

Nossos posts no seu Email

Informe seu email abaixo para receber nossas atualizações.

Hospedagem

Facebook

Destaques

QuebraLink - Decodifica e inverte links Aprender Algoritmos Dicas Ubuntu Otimização de Sites

Sites Legais

Banner MeuPinguim

Vida de Programador Dicas em Geral - Dicas sobre Informática, Tecnologia e Inclusão Digital Ubuntu Dicas Infológico