📚 Lógica de Programação

Revisão — Portugol Studio

5 tópicos · exemplos práticos · 7 exercícios

O que é algoritmo?

Uma sequência finita, ordenada e sem ambiguidade de passos para resolver um problema. Todo programa começa com um algoritmo bem definido.

Pense em uma receita de bolo: tem ingredientes (entradas), passos em ordem (processamento) e o bolo pronto (saída).

Características obrigatórias

Finito Deve terminar em algum momento.

Definido Cada passo tem apenas uma interpretação.

Eficaz Resolve o problema corretamente.

Com entradas/saídas Recebe dados e produz resultados.

Estrutura de um programa em Portugol Studio

programa { funcao inicio () { // seu código fica aqui dentro escreva("Olá, mundo!") } }
No Portugol Studio todo programa começa com programa e a execução inicia na função inicio().

Os três blocos da lógica

Conceito

Sequência passos em ordem

Seleção decisões (se/senão)

Repetição laços (para/enquanto)

Em Portugol

// linha a linha se / senao para / enquanto

Saída de dados — escreva()

Exibe informações na tela para o usuário.

programa { funcao inicio () { escreva("Bem-vindo ao sistema!") escreva("\n") // pula linha escreval("Esta linha já pula sozinha") } }
escreva() fica na mesma linha. escreval() pula a linha automaticamente ao final.

Entrada de dados — leia()

Lê o que o usuário digita e guarda em uma variável.

programa { funcao inicio () { inteiro idade cadeia nome escreva("Digite seu nome: ") leia(nome) escreva("Digite sua idade: ") leia(idade) escreval("Olá, " + nome + "!") escreval("Você tem " + idade + " anos.") } }

Concatenação na saída

Use o operador + para juntar texto e variáveis dentro do escreva().

real media = 8.5 escreval("Sua média é: " + media) // Saída: Sua média é: 8.5
A variável precisa estar declarada antes de ser usada no escreva() ou leia().

Declarando variáveis em Portugol Studio

A declaração sempre vem no início da função, antes de qualquer comando.

tipo nome_da_variavel tipo nome_da_variavel = valor_inicial // exemplos: inteiro idade = 17 real altura = 1.75 cadeia nome = "Ana" caracter letra = 'A' logico aprovado = verdadeiro

Tipos de dados disponíveis

Palavra-chaveO que armazenaExemplo de valor
inteiroNúmeros inteiros (sem vírgula)10, -3, 0
realNúmeros com vírgula (decimais)3.14, 7.5, -0.5
cadeiaTexto (uma ou mais palavras)"Olá mundo"
caracterUm único caractere'A', '9', '@'
logicoVerdadeiro ou falsoverdadeiro, falso

Constantes

Valores que não mudam durante o programa. Declaradas com a palavra const.

const real PI = 3.14159 const inteiro MAX_ALUNOS = 40

Regras de nomenclatura

Deve começar com letra ou _ (nunca com número).

Sem espaços — use _ para separar palavras.

Sem acentos ou caracteres especiais.

// correto inteiro idade_aluno real salario_mensal // errado inteiro 1ano // começa com número real salário // tem acento cadeia meu nome // tem espaço

Operadores aritméticos

OperadorOperaçãoExemplo
+Adiçãoa + b
-Subtraçãoa - b
*Multiplicaçãoa * b
/Divisãoa / b
%Resto da divisão10 % 3 → 1

se … senao

Executa um bloco se a condição for verdadeira, outro se for falsa.

programa { funcao inicio () { real nota escreva("Digite sua nota: ") leia(nota) se (nota >= 7.0) { escreval("Aprovado!") } senao { escreval("Reprovado.") } } }

se encadeado (senao se)

Para testar múltiplas condições em sequência.

se (nota >= 9.0) { escreval("Conceito A") } senao se (nota >= 7.0) { escreval("Conceito B") } senao se (nota >= 5.0) { escreval("Conceito C") } senao { escreval("Reprovado") }

Operadores relacionais e lógicos

Relacionais

Op.Significado
==igual a
!=diferente de
>maior que
<menor que
>=maior ou igual
<=menor ou igual

Lógicos

Op.Significado
eE (AND) — ambos verdadeiros
ouOU (OR) — um verdadeiro
naoNÃO (NOT) — inverte
se (idade >= 18 e tem_rg) se (x > 0 ou y > 0) se (nao aprovado)

escolha … caso (switch)

Útil quando se testa uma variável contra vários valores fixos.

inteiro opcao leia(opcao) escolha (opcao) { caso 1: escreval("Cadastrar") pare caso 2: escreval("Listar") pare caso 3: escreval("Sair") pare caso contrario: escreval("Opção inválida") }
Não esqueça o pare em cada caso — sem ele, o programa continua executando os casos seguintes!

para — repetição com contador

Use quando você sabe exatamente quantas vezes vai repetir.

programa { funcao inicio () { inteiro i para (i = 1; i <= 5; i++) { escreval("Contagem: " + i) } } } // Saída: Contagem: 1, 2, 3, 4, 5
A estrutura para tem três partes: (início ; condição ; incremento).

enquanto — condição no início

Testa a condição antes de executar. Pode não executar nenhuma vez se a condição já começar falsa.

programa { funcao inicio () { inteiro numero escreva("Digite um número positivo: ") leia(numero) enquanto (numero <= 0) { escreval("Valor inválido! Tente novamente.") leia(numero) } escreval("Número aceito: " + numero) } }
A variável de controle deve ser atualizada dentro do enquanto, senão o laço nunca termina (laço infinito).

faca … enquanto — condição no fim

Executa o bloco pelo menos uma vez, depois testa a condição.

programa { funcao inicio () { inteiro opcao faca { escreval("1 - Jogar") escreval("2 - Sair") escreva("Escolha: ") leia(opcao) } enquanto (opcao != 2) } }
Ideal para menus — o menu sempre aparece pelo menos uma vez antes de verificar se o usuário quer sair.

Comparativo das três estruturas

EstruturaCondição testadaMín. de execuçõesQuando usar
paraNo início0Sabe quantas vezes repetir
enquantoNo início0Condição incerta, pode não executar
faca enquantoNo fim1Deve executar ao menos uma vez
Questão 1 de 7