Medeiros Corporation Inc.

Artigo

Introdução ao VisualG

Introdução ao VisualG

Introdução ao VisualG

O que é o VisualG?

VisualG é uma ferramenta usada para desenvolver algoritmos em português, usando a linguagem de pseudocódigo. É amplamente utilizada em ambientes educacionais para introduzir lógica de programação.

1. Primeiros Passos no VisualG

Para começar a programar no VisualG, você deve abrir o ambiente e criar um novo algoritmo. Vamos usar a estrutura básica do VisualG:

algoritmo "NomeDoAlgoritmo"
var
// Declaração de variáveis
inicio
// Início do código
fimalgoritmo

Exemplo:

Explicação

5. Exercícios Práticos

5.1 Calculadora Simples

Escreva um algoritmo que leia dois números e um operador (+, -, *, /) e exiba o resultado da operação.

5.2 Média de Notas

Crie um algoritmo que leia 4 notas, calcule a média e informe se o aluno foi aprovado (média >= 7).

5.3 Número Par ou Ímpar

Crie um algoritmo que leia um número e verifique se ele é par ou ímpar.

Conclusão

Essa introdução apresentou os conceitos básicos do VisualG, incluindo variáveis, estruturas de decisão e loops. Com esses fundamentos, você pode criar seus próprios algoritmos e praticar lógica de programação.

5.1 Calculadora Simples

Este algoritmo lê dois números e um operador (+, -, *, /) e exibe o resultado da operação escolhida.

algoritmo "CalculadoraSimples"
var
    num1, num2, resultado: real
    operador: caractere
inicio
    escreva("Digite o primeiro número: ")
    leia(num1)
    escreva("Digite o operador (+, -, *, /): ")
    leia(operador)
    escreva("Digite o segundo número: ")
    leia(num2)
    
    se (operador = "+") entao
        resultado <- num1 + num2
    senao
        se (operador = "-") entao
            resultado <- num1 - num2
        senao
            se (operador = "*") entao
                resultado <- num1 * num2
            senao
                se (operador = "/") e (num2 <> 0) entao
                    resultado <- num1 / num2
                senao
                    escreval("Erro: Divisão por zero ou operador inválido!")
                    interrompa
                fimse
            fimse
        fimse
    fimse
    
    escreval("Resultado: ", resultado)
fimalgoritmo

5.2 Média de Notas

Este algoritmo calcula a média de quatro notas e informa se o aluno foi aprovado (média >= 7).

algoritmo "MediaDeNotas"
var
    nota1, nota2, nota3, nota4, media: real
inicio
    escreva("Digite a primeira nota: ")
    leia(nota1)
    escreva("Digite a segunda nota: ")
    leia(nota2)
    escreva("Digite a terceira nota: ")
    leia(nota3)
    escreva("Digite a quarta nota: ")
    leia(nota4)
    
    media <- (nota1 + nota2 + nota3 + nota4) / 4
    
    escreval("Média: ", media)
    
    se (media >= 7) entao
        escreval("Aluno aprovado.")
    senao
        escreval("Aluno reprovado.")
    fimse
fimalgoritmo

5.3 Número Par ou Ímpar

Este algoritmo verifica se um número é par ou ímpar.

algoritmo "ParOuImpar"
var
    numero: inteiro
inicio
    escreva("Digite um número: ")
    leia(numero)
    
    se (numero % 2 = 0) entao
        escreval("O número ", numero, " é par.")
    senao
        escreval("O número ", numero, " é ímpar.")
    fimse
fimalgoritmo
Essas são as resoluções para os exercícios práticos em VisualG! Eles cobrem operações básicas de cálculo, condições e loops para ajudar a reforçar a prática de lógica de programação.

o VisualG, a diferença entre escreva e escreval é:

Exemplo

algoritmo "ExemploEscrevaEscreval"
inicio
    escreva("Olá")
    escreva(" Mundo!")
    escreval(" Bem-vindo ao VisualG.")
    escreval("Fim do exemplo.")
fimalgoritmo
Saída

Olá Mundo! Bem-vindo ao VisualG.
Fim do exemplo.

Essas diferenças são úteis para controlar a formatação da saída no console.

1. Introdução ao VisualG e à Programação Estruturada

2. Tipos de Dados e Variáveis

3. Operadores

4. Estruturas de Decisão

5. Estruturas de Repetição (Loops)

6. Funções e Procedimentos

7. Manipulação de Dados

8. Vetores e Matrizes

9. Algoritmos de Ordenação e Busca

10. Tratamento de Erros e Validação de Dados

11. Desafios e Exercícios Práticos

12. Projetos Finais

13. Dicas de Prática e Recursos Extras


Essa apostila expandida cobriria os conceitos essenciais e avançados do VisualG, oferecendo uma base sólida para iniciantes e desafiando os alunos com exercícios mais complexos conforme avançam.

 

Apostila de VisualG

1. Introdução ao VisualG e à Programação Estruturada

VisualG é uma ferramenta que permite escrever algoritmos em português, ajudando a entender a lógica de programação antes de aprender uma linguagem de código. A programação estruturada segue um passo a passo de instruções e é uma base essencial para resolver problemas computacionais.


2. Tipos de Dados e Variáveis

2.1. Tipos de Dados

No VisualG, os tipos de dados principais são:

2.2. Variáveis

As variáveis são usadas para armazenar informações. No VisualG, usamos o comando var para declarar variáveis e definir o tipo de dado.

Exemplo de Declaração de Variáveis

algoritmo "ExemploTipos"

var
    idade: inteiro
    altura: real
    nome: caractere
    aprovado: logico
inicio
    idade <- 20
    altura <- 1.75
    nome <- "Fabrício de Medeiros"
    aprovado <- verdadeiro
fimalgoritmo

Exercício

Declare variáveis de cada tipo e atribua valores para praticar.

Solução
algoritmo "TiposDeDados"

var
    idade: inteiro
    altura: real
    nome: caractere
    aprovado: logico
inicio
    idade <- 25
    altura <- 1.68
    nome <- "Fabrício de Medeiros"
    aprovado <- verdadeiro
    escreval("Idade: ", idade)
    escreval("Altura: ", altura)
    escreval("Nome: ", nome)
    escreval("Aprovado: ", aprovado)
fimalgoritmo


3. Operadores

Exemplo

algoritmo "Operadores"

var
    a, b: inteiro
    resultado: logico
inicio
    a <- 10
    b <- 5
    resultado <- (a > b) e (b <> 0)
    escreval("Resultado lógico: ", resultado)
fimalgoritmo

Exercício

Crie expressões usando operadores diferentes e teste os resultados.

Solução
algoritmo "Operadores"

var
    a, b: inteiro
    resultadoLogico: logico
    resultadoAritmetico: inteiro
inicio
    a <- 10
    b <- 3
    resultadoAritmetico <- (a + b) * 2
    resultadoLogico <- (a > b) e (b <> 0)
    escreval("Resultado Aritmético: ", resultadoAritmetico)
    escreval("Resultado Lógico: ", resultadoLogico)
fimalgoritmo


4. Estruturas de Decisão

As estruturas de decisão permitem executar diferentes partes do código, dependendo de uma condição.

Sintaxe Condicional SE...ENTAO...SENAO

se (condição) entao
    // Código a ser executado se a condição for verdadeira
senao
    // Código a ser executado se a condição for falsa
fimse

Exemplo

algoritmo "Maioridade"

var
    idade: inteiro
inicio
    escreva("Digite sua idade: ")
    leia(idade)
    se (idade >= 18) entao
        escreval("Você é maior de idade.")
    senao
        escreval("Você é menor de idade.")
    fimse
fimalgoritmo

Exemplo

algoritmo "EstruturaSe"

var
    nota: real
inicio
    escreva("Digite a nota: ")
    leia(nota)
    se (nota >= 7) entao
        escreval("Aprovado")
    senao
        escreval("Reprovado")
    fimse
fimalgoritmo

Exercício

Verifique a faixa etária de uma pessoa usando se...entao...senao.

Solução

algoritmo "FaixaEtaria"

var
    idade: inteiro
inicio
    escreva("Digite sua idade: ")
    leia(idade)
    se (idade < 12) entao
        escreval("Criança")
    senao
        se (idade < 18) entao
            escreval("Adolescente")
        senao
            escreval("Adulto")
        fimse
    fimse
fimalgoritmo


5. Estruturas de Repetição (Loops)

Estruturas de repetição são usadas para executar um bloco de código várias vezes.

enquanto...faca

A estrutura enquanto...faca é usada para repetir um bloco de código enquanto uma condição é verdadeira. Ela verifica a condição no início do loop; se a condição for falsa desde o início, o bloco de código não será executado.

Sintaxe

enquanto (condição) faca
    // Código a ser executado
fimenquanto

O código dentro do bloco enquanto será repetido até que a condição se torne falsa.

Exemplo

Programa que exibe uma contagem de 1 a 10 usando a estrutura enquanto...faca.

algoritmo "Contagem"

var
    contador: inteiro
inicio
    contador <- 1
    enquanto (contador <= 10) faca
        escreval("Contador: ", contador)
        contador <- contador + 1
    fimenquanto
fimalgoritmo

Explicação

  1. Inicializamos a variável contador com o valor 1.
  2. A condição (contador <= 10) é verificada no início do loop. Enquanto essa condição for verdadeira, o código dentro do bloco enquanto será executado.
  3. A cada iteração, o valor de contador é incrementado em 1.
  4. Quando o contador atinge 11, a condição (contador <= 10) se torna falsa, e o loop é finalizado.
  5. Esse exemplo exibe os números de 1 a 10 na tela.

Sintaxe para...ate...faca

A estrutura para...ate...faca é ideal quando sabemos o número exato de repetições que queremos realizar. Ela permite definir uma variável de controle, um valor inicial e um valor final. A variável de controle é incrementada automaticamente a cada iteração.

Sintaxe

para variável de inicio ate fim faca
    // Código a ser executado
fimpara

O código dentro do bloco para será executado um número fixo de vezes, de acordo com o valor inicial e final definidos.

Exemplo

Programa que exibe a tabuada de um número usando a estrutura para...ate...faca.

algoritmo "Tabuada"

var
    numero, i: inteiro
inicio
    escreva("Digite um número: ")
    leia(numero)
    para i de 1 ate 10 faca
        escreval(numero, " x ", i, " = ", numero * i)
    fimpara
fimalgoritmo

Explicação

  1. O programa solicita que o usuário insira um número, que será usado para gerar a tabuada.
  2. A estrutura para...ate...faca cria uma variável de controle i, que começa em 1 e vai até 10.
  3. A cada iteração, o programa exibe o resultado da multiplicação de numero por i.
  4. Quando i atinge 10, o loop é finalizado, e a tabuada completa é exibida na tela.

Exemplo

Programa que exibe uma contagem de 1 a 10 usando a estrutura para...ate...faca.

algoritmo "Contador"

var
    i: inteiro
inicio
    para i de 1 ate 5 faca
        escreval("Número: ", i)
    fimpara
fimalgoritmo

Exercício

Crie um loop que exiba a tabuada de um número.

Solução

algoritmo "Tabuada"

var
    i, numero: inteiro
inicio
    escreva("Digite um número para a tabuada: ")
    leia(numero)
    para i de 1 ate 10 faca
        escreval(numero, " x ", i, " = ", numero * i)
    fimpara
fimalgoritmo

para...ate...faca

A estrutura repita...ate é utilizada para executar um bloco de código pelo menos uma vez, independentemente da condição. A condição de saída é verificada no final do bloco, o que garante que o código seja executado ao menos uma vez.

Sintaxe

repita
    // Código a ser executado
ate (condição)

O código dentro do bloco repita será executado repetidamente até que a condição dentro de ate seja verdadeira.

Exemplo

Programa que solicita ao usuário uma senha e repete a solicitação até que ele insira a senha correta.

algoritmo "VerificarSenha"

var
    senha: inteiro
inicio
    repita
        escreva("Digite a senha (dica: 1234): ")
        leia(senha)
    ate (senha = 1234)
    
    escreval("Senha correta! Acesso permitido.")
fimalgoritmo

Explicação

  1. O programa solicita que o usuário digite uma senha.
  2. Se a senha inserida for incorreta, o programa repete o pedido até que o usuário insira 1234.
  3. Quando a senha correta é digitada, o programa exibe uma mensagem de acesso permitido.

Exercício

Crie um programa que leia um número e some valores inteiros inseridos pelo usuário até que o valor da soma seja igual ou superior a 50. Exiba o valor final da soma após sair do loop.

algoritmo "SomaAte50"

var
    numero, soma: inteiro
inicio
    soma <- 0  // Inicializa a soma em 0
    
    repita
        escreva("Digite um número para somar: ")
        leia(numero)
        soma <- soma + numero  // Atualiza a soma com o número inserido
    ate (soma >= 50)
    
    escreval("A soma final é: ", soma)
fimalgoritmo

Explicação

  1. Inicializamos a variável soma com o valor 0.
  2. Usamos a estrutura repita...ate para garantir que o usuário insira pelo menos um número.
  3. A cada iteração, o programa solicita um número ao usuário e o adiciona à variável soma.
  4. O loop continua até que o valor de soma seja maior ou igual a 50.
  5. Quando a condição (soma >= 100) é satisfeita, o programa exibe a soma final e termina.

Esse programa garante que a soma dos valores inseridos seja sempre mostrada após atingir ou ultrapassar 50.


6. Funções e Procedimentos

Funções retornam valores e procedimentos apenas executam ações.

Exemplo de Função

funcao areaQuadrado(lado: real): real
inicio
    retorne lado * lado
fimfuncao

Explicação

Casos de Uso

Para utilizar a função, você pode chamá-la em um programa principal e exibir o resultado:

variavel lado, area: real

inicio
    escreva("Digite o valor do lado do quadrado: ")
    leia(lado)
    area <- areaQuadrado(lado)
    escreva("A área do quadrado é: ", area)
fimalgoritmo

Exemplo

algoritmo "AreaQuadrado"

// Declaração da função que calcula a área do quadrado
funcao calculoAreaQuadrado(lado: real): real

inicio
    retorne lado * lado
fimfuncao

// Programa principal
var
   lado, area: real

inicio
    escreva("Digite o valor do lado do quadrado: ")
    leia(lado)

    // Chama a função areaQuadrado para calcular a área
    area <- calculoAreaQuadrado(lado)

    escreva("A área do quadrado é: ", area)
fimalgoritmo

Exercício

Crie uma função para calcular a área de um círculo.

Solução

funcao areaCirculo(raio: real): real

inicio
    retorne 3.14159 * raio * raio
fimfuncao

algoritmo "AreaCirculo"

var
    raio, area: real
inicio
    escreva("Digite o raio do círculo: ")
    leia(raio)
    area <- areaCirculo(raio)
    escreval("Área do círculo: ", area)
fimalgoritmo


7. Manipulação de Dados (Entrada e Saída)

Exemplo

algoritmo "EntradaSaida"

var
    nome: caractere
inicio
    escreva("Digite seu nome: ")
    leia(nome)
    escreval("Olá, ", nome)
fimalgoritmo

Exercício

Crie um programa que leia o nome do usuário e o exiba com uma saudação.

Solução

algoritmo "SaudacaoUsuario"

var
    nome: caractere
inicio
    escreva("Digite seu nome: ")
    leia(nome)
    escreval("Olá, ", nome, "! Seja bem-vindo!")
fimalgoritmo

8. Vetores e Matrizes

Exemplo de Vetor

algoritmo "VetorSimples"

var
    notas: vetor[1..3] de real
    i: inteiro
inicio
    para i de 1 ate 3 faca
        escreva("Digite a nota ", i, ": ")
        leia(notas[i])
    fimpara
    escreval("Notas armazenadas.")
fimalgoritmo

Exemplo de Matriz

algoritmo "Matriz2x2"

var
    matriz: vetor[1..2, 1..2] de inteiro
    i, j: inteiro
inicio
    para i de 1 ate 2 faca
        para j de 1 ate 2 faca
            escreva("Digite o valor para matriz[", i, "][", j, "]: ")
            leia(matriz[i, j])
        fimpara
    fimpara
    
    escreval("Valores da matriz:")
    para i de 1 ate 2 faca
        para j de 1 ate 2 faca
            escreva(matriz[i, j], " ")
        fimpara
        escreval()
    fimpara
fimalgoritmo

Exercício 1

Preencha um vetor com 4 elementos e exiba esses valores.

Solução

algoritmo "Vetor4Elementos"

var
    notas: vetor[1..4] de real
    i: inteiro
inicio
    // Preenchendo o vetor
    para i de 1 ate 4 faca
        escreva("Digite o elemento ", i, ": ")
        leia(notas[i])
    fimpara

    // Exibindo os valores do vetor
    escreval("Elementos do vetor:")
    para i de 1 ate 4 faca
        escreva(notas[i], " ")
    fimpara
    escreval()
fimalgoritmo

Exercício 2

Preencha uma matriz 3x3 e exiba os valores.

Solução

algoritmo "Matriz3x3"

var
    matriz: vetor[1..3, 1..3] de inteiro
    i, j: inteiro
inicio
    // Preenchendo a matriz
    para i de 1 ate 3 faca
        para j de 1 ate 3 faca
            escreva("Digite o valor para matriz[", i, "][", j, "]: ")
            leia(matriz[i, j])
        fimpara
    fimpara
    
    // Exibindo os valores da matriz
    escreval("Valores da matriz:")
    para i de 1 ate 3 faca
        para j de 1 ate 3 faca
            escreva(matriz[i, j], " ")
        fimpara
        escreval()
    fimpara
fimalgoritmo


9. Algoritmos de Ordenação e Busca

Exemplo de Busca:

algoritmo "BuscaSequencial"

var
    numeros: vetor[1..5] de inteiro
    i, procurado: inteiro
    encontrado: logico
inicio
    // Supondo que o vetor já esteja preenchido
    procurado <- 7
    encontrado <- falso
    para i de 1 ate 5 faca
        se (numeros[i] = procurado) entao
            encontrado <- verdadeiro
            interrompa
        fimse
    fimpara
    se encontrado entao
        escreval("Número encontrado!")
    senao
        escreval("Número não encontrado.")
    fimse
fimalgoritmo

Exercício

Crie um programa que procure um valor específico em um vetor.

algoritmo "BuscaNoVetor"

var
    numeros: vetor[1..5] de inteiro
    i, procurado: inteiro
    encontrado: logico
inicio
    numeros[1] <- 10
    numeros[2] <- 20
    numeros[3] <- 30
    numeros[4] <- 40
    numeros[5] <- 50
    
    escreva("Digite o número que deseja buscar: ")
    leia(procurado)
    
    encontrado <- falso
    para i de 1 ate 5 faca
        se (numeros[i] = procurado) entao
            encontrado <- verdadeiro
            interrompa
        fimse
    fimpara
    
    se encontrado entao
        escreval("Número encontrado no vetor.")
    senao
        escreval("Número não encontrado no vetor.")
    fimse
fimalgoritmo


10. Tratamento de Erros e Validação de Dados

Verifica se as entradas estão no formato correto para evitar erros no programa.

Exemplo

algoritmo "ValidacaoEntrada"

var
    idade: inteiro
inicio
    escreva("Digite sua idade: ")
    leia(idade)
    se (idade > 0) e (idade < 120) entao
        escreval("Idade válida.")
    senao
        escreval("Idade inválida!")
    fimse
fimalgoritmo

Exercício

Crie um programa que valide se a idade inserida está na faixa permitida para participação em um evento (entre 18 e 65 anos).

Solução

algoritmo "ValidacaoEvento"
var
    idade: inteiro
inicio
    escreva("Informe sua idade para verificação do ingresso: ")
    leia(idade)
    
    se (idade >= 18) e (idade <= 65) entao
        escreval("Idade permitida! Você pode participar do evento.")
    senao
        se (idade < 18) entao
            escreval("Idade insuficiente! Permitido apenas para maiores de 18 anos.")
        senao
            escreval("Idade excedida! Permitido apenas para pessoas até 65 anos.")
        fimse
    fimse
fimalgoritmo


11. Desafios e Exercícios Práticos

Desafio 1

Crie um programa que exiba os números primos de 1 a 50.

algoritmo "NumerosPrimos"
var
    i, j: inteiro
    primo: logico
inicio
    para i de 2 ate 50 faca
        primo <- verdadeiro
        para j de 2 ate i - 1 faca
            se (i mod j = 0) entao
                primo <- falso
                interrompa
            fimse
        fimpara
        se primo entao
            escreval(i, " é primo.")
        fimse
    fimpara
fimalgoritmo

Desafio 2

Desenvolva um algoritmo para calcular a média de idades de um grupo de pessoas.

algoritmo "MediaIdades"
var
    i, total, idade, soma: inteiro
    media: real
inicio
    escreva("Digite o total de pessoas: ")
    leia(total)
    soma <- 0
    para i de 1 ate total faca
        escreva("Digite a idade da pessoa ", i, ": ")
        leia(idade)
        soma <- soma + idade
    fimpara
    media <- soma / total
    escreval("A média de idades é: ", media)
fimalgoritmo

Desafio 3

Crie um sistema de login que verifique a senha e permita ou não o acesso.

algoritmo "SistemaDeLogin"
var
    senha: caractere
inicio
    escreva("Digite a senha: ")
    leia(senha)
    se (senha = "12345") entao
        escreval("Acesso permitido.")
    senao
        escreval("Acesso negado.")
    fimse
fimalgoritmo

Explore, Contribua e Cresça Conosco!

Obrigado por ler o nosso artigo! Esperamos que você tenha encontrado informações valiosas e inspiradoras. Se você está empolgado para saber mais, temos uma vasta coleção de artigos sobre tópicos variados, desde tendências tecnológicas até insights sobre desenvolvimento de software. Não deixe de explorar nossas outras publicações!

Quer fazer parte da nossa comunidade?

Inscreva-se no nosso site para receber as últimas atualizações e novidades diretamente no seu e-mail. Seu cadastro é o primeiro passo para se conectar com uma rede de entusiastas e profissionais apaixonados pelo que fazem.

Tem algo a compartilhar?

Adoraríamos ouvir suas ideias, inovações e experiências! Sinta-se à vontade para escrever e enviar seus próprios artigos, códigos ou projetos. Sua contribuição é fundamental para enriquecer nosso conteúdo e ajudar outros leitores a crescer junto com você. Juntos, podemos criar um espaço de aprendizado e troca de conhecimento enriquecedor. Seu conhecimento e entusiasmo são o que fazem nossa comunidade especial.

Inscreva-se Agora | Compartilhe | Contribua com um Artigo
Continue explorando e seja parte da transformação!

Voltar