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.
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:
Escreva um algoritmo que leia dois números e um operador (+, -, *, /) e exiba o resultado da operação.
Crie um algoritmo que leia 4 notas, calcule a média e informe se o aluno foi aprovado (média >= 7).
Crie um algoritmo que leia um número e verifique se ele é par ou ímpar.
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.
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
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
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 é:
escreva
escreval
escreva: Exibe o texto ou valor na tela sem quebrar a linha após a saída. Ou seja, a próxima instrução de escreva ou escreval continuará na mesma linha.
escreval: Exibe o texto ou valor na tela com quebra de linha após a saída. Isso significa que a próxima instrução de escreva ou escreval será exibida na linha seguinte.
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.
escreva("Olá")
escreva(" Mundo!")
escreval(" Bem-vindo ao VisualG.")
escreval("Fim do exemplo.")
Essas diferenças são úteis para controlar a formatação da saída no console.
+
-
*
/
div
mod
=
<>
<
>
<=
>=
e
ou
não
leia
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.
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.
No VisualG, os tipos de dados principais são:
Inteiro
Real
Caractere
Logico
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.
var
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
Declare variáveis de cada tipo e atribua valores para praticar.
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
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
Crie expressões usando operadores diferentes e teste os resultados.
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
As estruturas de decisão permitem executar diferentes partes do código, dependendo de uma condição.
se...entao...senao
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
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
algoritmo "EstruturaSe" var nota: real inicio escreva("Digite a nota: ") leia(nota) se (nota >= 7) entao escreval("Aprovado") senao escreval("Reprovado") fimse fimalgoritmo
Verifique a faixa etária de uma pessoa usando se...entao...senao.
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
Estruturas de repetição são usadas para executar um bloco de código várias vezes.
enquanto...faca
para...ate...faca
repita...ate
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.
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.
enquanto
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
contador
1
(contador <= 10)
11
10
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.
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.
para
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
i
numero
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
Crie um loop que exiba a tabuada de um número.
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
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.
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.
repita
ate
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
1234
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
soma
0
(soma >= 100)
Esse programa garante que a soma dos valores inseridos seja sempre mostrada após atingir ou ultrapassar 50.
Funções retornam valores e procedimentos apenas executam ações.
funcao areaQuadrado(lado: real): real inicio retorne lado * lado fimfuncao
areaQuadrado
lado
real
retorne
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
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
Crie uma função para calcular a área de um círculo.
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
Leia
Escreva
Escreval
algoritmo "EntradaSaida" var nome: caractere inicio escreva("Digite seu nome: ") leia(nome) escreval("Olá, ", nome) fimalgoritmo
Crie um programa que leia o nome do usuário e o exiba com uma saudação.
algoritmo "SaudacaoUsuario" var nome: caractere inicio escreva("Digite seu nome: ") leia(nome) escreval("Olá, ", nome, "! Seja bem-vindo!") fimalgoritmo
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
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
Preencha um vetor com 4 elementos e exiba esses valores.
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
Preencha uma matriz 3x3 e exiba os valores.
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
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
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
Verifica se as entradas estão no formato correto para evitar erros no programa.
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
Crie um programa que valide se a idade inserida está na faixa permitida para participação em um evento (entre 18 e 65 anos).
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
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
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
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