Capítulo 01: Introdução à Lógica, Algoritmos e Setup do Portugol Studio

🎯 Objetivo da Aula

Nesta aula inicial, você iniciará sua jornada no Pensamento Computacional e na Lógica de Programação Estruturada. O Portugol Studio adota uma sintaxe muito próxima de linguagens industriais como C, C++, Java, C# e JavaScript, utilizando blocos delimitados por chaves { } e funções formais.

Ao final desta aula, você será capaz de:

  1. Compreender o conceito formal de Algoritmo e como os computadores processam instruções sequenciais.
  2. Reconhecer e dominar o esqueleto básico de um programa no Portugol Studio (programa { funcao inicio() { } }).
  3. Utilizar o comando escreva() combinado com os Caracteres de Escape \n (quebra de linha) e \t (tabulação).
  4. Executar e testar seus programas utilizando o atalho Shift + F6 ou o botão Executar.

📥 Material de Apoio e Código-Fonte da Aula:


🏢 O Cenário Prático (Seu Desafio)

Situação: Você acaba de ingressar na equipe de tecnologia e logística da transportadora FastLog. O pátio central de triagem precisa de uma mensagem padronizada no painel digital para orientar os motoristas terceirizados sobre os procedimentos de segurança assim que eles estacionam na portaria.

Missão: Você deve construir o Painel Digital de Boas-Vindas FastLog, garantindo que o nome da empresa, o setor e as instruções de identificação sejam impressos de forma clara, organizada e profissional no console.


🧠 Fundamentos: A Teoria Traduzida

1. O que é um Algoritmo?

Um Algoritmo é uma sequência finita, ordenada e não ambígua de instruções que orientam o computador a realizar uma tarefa ou resolver um problema.

Pense no algoritmo como o manual de procedimentos operacionais de uma empresa aérea ou transportadora:

  • Cada instrução é executada estritamente de cima para baixo, uma linha após a outra.
  • Se uma instrução for omitida ou colocada na ordem errada, o sistema apresentará comportamento falho.
graph TD
    A[Início: Chegada na Portaria] --> B[1. Ler Placa do Caminhão]
    B --> C[2. Checar Cadastro no Banco]
    C --> D{Cadastro Regular?}
    D -- "Sim (Verdadeiro)" --> E[3. Liberar Acesso à Doca]
    D -- "Não (Falso)" --> F[3. Encaminhar para a Guarita]
    E --> G[Fim do Algoritmo]
    F --> G
    
    style D fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
    style E fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
    style F fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff

2. A Estrutura Canônica do Portugol Studio

Todo programa no Portugol Studio é envolvido pelo bloco programa e possui uma função principal chamada inicio():

1
2
3
4
5
6
7
8
programa 
{
	// A função inicio() é o ponto de entrada obrigatório do programa
	funcao inicio() 
	{
		escreva("Olá Mundo! Bem-vindo ao Portugol Studio.\n")
	}
}

O Poder das Chaves { }:
As chaves { (abre) e } (fecha) definem o início e o término de um bloco de código. Cada chave aberta deve ter sua respectiva chave de fechamento.


3. Caracteres de Escape: Formatando Textos no Console

CaractereFunçãoExemplo de CódigoEfeito Visual
\nPula para a próxima linha (New Line).escreva("Linha 1\nLinha 2")Quebra o texto em duas linhas.
\tInsere um espaço de tabulação (Tab).escreva("Item:\tPreço:")Cria um espaçamento em colunas.
\"Exibe aspas duplas literais no texto.escreva("Empresa \"FastLog\"")Mostra: Empresa "FastLog"

Repetindo \t para alinhar colunas de tamanhos diferentes
Um único \t pode não ser suficiente para alinhar textos de tamanhos bem diferentes (ex: “Expedição” e “Frotas”). Nesses casos, use \t\t (dois tabs seguidos) nas palavras mais curtas, para que todas as colunas terminem alinhadas visualmente no console.


4. 🌐 Quadro Comparativo de Sintaxe

ConceitoPortugol StudioC / C++JavaPython
Início Principalfuncao inicio()int main()public static void main()(Execução direta)
Delimitadores{ e }{ e }{ e }(Indentação)
Imprimir Textoescreva("Texto")printf("Texto");System.out.println("Texto");print("Texto")
Comentário de Linha// Comentário// Comentário// Comentário# Comentário

📖 Exemplo Guiado: Painel de Inicialização da Portaria

Código do Programa:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
programa 
{
	funcao inicio() 
	{
		escreva("==========================================\n")
		escreva("\tFASTLOG TRANSPORTES & LOGÍSTICA\n")
		escreva("\tPainel de Controle - Versão 3.0\n")
		escreva("==========================================\n\n")
		escreva("Status do Terminal: [ONLINE - OPERACIONAL]\n")
		escreva("Aguardando leitura de crachá de acesso...\n")
	}
}

✅ Resultado Esperado no Console (Shift + F6):

1
2
3
4
5
6
7
==========================================
	FASTLOG TRANSPORTES & LOGÍSTICA
	Painel de Controle - Versão 3.0
==========================================

Status do Terminal: [ONLINE - OPERACIONAL]
Aguardando leitura de crachá de acesso...

🛠️ Prática Obrigatória 1: Crachá Digital de Operador

Passo 1: Construindo o Layout

No Portugol Studio, crie um novo arquivo (Ctrl + N). Construa um programa que exiba a identificação funcional do colaborador da FastLog com moldura dupla em #:

  • Linha 1: Moldura superior com #
  • Linha 2: Nome da Empresa (FASTLOG LOGÍSTICA S.A.)
  • Linha 3: Nome do Colaborador (Operador: Carlos Eduardo)
  • Linha 4: Setor Operacional (Depto: Expedição Noturna)
  • Linha 5: Moldura inferior com #

✅ Resultado Esperado (Prática 1):

1
2
3
4
5
##########################################
#        FASTLOG LOGÍSTICA S.A.          #
#  Operador: Carlos Eduardo              #
#  Depto: Expedição Noturna              #
##########################################

🛠️ Prática Obrigatória 2: Protocolo de Segurança do Galpão

Crie o programa protocolo_seguranca.por exibindo os 4 passos obrigatórios para entrada no armazém utilizando o caractere de escape \n:

  1. [1] Uso obrigatório de EPI (Botina com bico de aço e colete refletivo)
  2. [2] Conferência de crachá funcional com foto
  3. [3] Velocidade máxima no pátio: 20 km/h
  4. [4] Proibido fumar nas imediações do galpão de inflamáveis

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_SeuNome_SeuSobrenome.por.
  2. No Portugol Studio, pressione Shift + F6 e certifique-se de que o texto aparece sem erros no console.
  3. No Microsoft Teams, envie na tarefa “Portugol Cap 01 - Introdução e Algoritmos”.
  4. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica & Engenharia de Software

Você acabou de aplicar o conceito de Instruções Sequenciais e Formatação de Saída. Em ambientes de desenvolvimento profissional (como consoles de servidores em nuvem AWS e terminais Linux), o domínio dos caracteres de escape é fundamental para construir logs limpos e legíveis.


🔥 Desafio de Fixação: Organograma em Colunas com Tabulação (\t)

Utilize o caractere de tabulação \t para criar uma tabela no console com 3 colunas: ID, SETOR e RESPONSÁVEL.


🔑 Gabarito de Código Completo

Prática 1:

1
2
3
4
5
6
7
8
9
programa {
	funcao inicio() {
		escreva("##########################################\n")
		escreva("#        FASTLOG LOGÍSTICA S.A.          #\n")
		escreva("#  Operador: Carlos Eduardo              #\n")
		escreva("#  Depto: Expedição Noturna              #\n")
		escreva("##########################################\n")
	}
}

Prática 2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
programa {
	funcao inicio() {
		escreva("=== PROTOCOLO DE SEGURANÇA NO PÁTIO ===\n")
		escreva("[1] Uso obrigatório de EPI (Botina e colete)\n")
		escreva("[2] Conferência de crachá com foto\n")
		escreva("[3] Velocidade máxima no pátio: 20 km/h\n")
		escreva("[4] Proibido fumar nas imediações\n")
		escreva("=======================================\n")
	}
}

Desafio:

1
2
3
4
5
6
7
8
9
programa {
	funcao inicio() {
		escreva("ID\tSETOR\t\tRESPONSÁVEL\n")
		escreva("------------------------------------\n")
		escreva("01\tExpedição\tMarcos Silva\n")
		escreva("02\tAlmoxarifado\tBeatriz Lima\n")
		escreva("03\tFrotas\t\tRoberto Firmino\n")
	}
}

📝 Atividade Extra: Questionário de Fixação (Caderno)

Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.

  1. O que é um Algoritmo, segundo a definição apresentada no capítulo?
  2. Qual é a estrutura básica obrigatória que envolve todo programa em Portugol Studio, incluindo o nome da função de ponto de entrada?
  3. Qual atalho de teclado é utilizado para executar e testar um programa no Portugol Studio?
  4. Para que serve o caractere de escape \n dentro do comando escreva()?
  5. Para que serve o caractere de escape \t?
  6. Como se exibe aspas duplas literais dentro de um texto em Portugol (qual caractere de escape deve ser usado)?
  7. No quadro comparativo de sintaxe do capítulo, qual é o comando equivalente a escreva("Texto") na linguagem C/C++?
  8. Que par de símbolos delimita o início e o término de um bloco de código no Portugol Studio?
  9. Na Prática Obrigatória 1 (Crachá Digital de Operador), quais informações deveriam ser exibidas dentro da moldura dupla de #?
  10. Segundo o Checkpoint de Lógica, por que o domínio dos caracteres de escape é importante em ambientes profissionais como consoles de servidores em nuvem?