</AULA 01>

Algoritmos e Lógica de Programação

Fundamentos e Estruturas Iniciais

Portugol
Linguagem C
Python

O que é um Algoritmo?

É uma sequência finita de passos lógicos para resolver um problema.

  • Deve ser finito: ter um início e um fim.
  • As instruções devem ser claras e sem ambiguidade, precisas.
  • Segue uma ordem lógica de execução.
  • Precisam ser eficientes.

Exemplo: Escovar os dentes

1. Pegar a escova e a pasta.
2. Colocar pasta na escova.
3. Escovar os dentes.
4. Enxaguar a boca.
5. Guardar os itens.

Tipos de Representação

Narrativa

Linguagem humana comum.

Fluxograma

Símbolos e formas gráficas.

Código

Linguagens de programação.

Narrativa

Descrição dos passos em linguagem natural. Simples de entender, porém perigosa por permitir múltiplas interpretações (ambiguidade).

"Para trocar um pneu, primeiro levante o carro com o macaco, depois retire os parafusos da roda e substitua pelo estepe."

Variáveis e Constantes

Como guardamos informações na memória RAM:

Variavel: idade

Variável

Como uma caixa aberta: o valor pode ser alterado a qualquer momento.

inteiro idade <- 20
idade <- 21 // Permitido!
Constante: PI

Constante

Como um cofre: o valor é fixo e não muda após a criação.

const real PI <- 3.14
PI <- 4.0 // ERRO!

Nomenclatura e Regras

Regras Obrigatórias

  • Não iniciar com números: Use nota1, não 1nota.
  • Sem espaços ou símbolos: Apenas letras, números e _.
  • Case Sensitive: somaSoma.

Boas Práticas

  • Autoexplicativo: Use valor_item em vez de v.
  • Consistência: Escolha um estilo e siga-o no projeto todo.

Convenções

camelCase

mediaFinalAluno

snake_case

media_final_aluno

Tipos Primitivos de Dados

TipoO que armazena?Exemplos
InteiroNúmeros sem casas decimais10, -5, 0
Real / FloatNúmeros com casas decimais10.5, 3.14
Caractere / CharUm único símbolo'A', '?'
Cadeia / StringConjunto de caracteres"Algoritmos"
Lógico / BoolVerdadeiro ou Falsotrue, false

Operadores Aritméticos

+

Adição

Soma valores.

-

Subtração

Diferença entre valores.

*

Multiplicação

Produto de valores.

/

Divisão

Quociente da divisão.

%

Resto (MOD)

Sobra da divisão inteira.

⚠️ Precedência: Multiplicação e Divisão antes de Soma e Subtração!

Operadores Lógicos

Portugol

e ou nao

Linguagem C

&& || !

Python

and or not

E (AND)

ABRes.
VVV
VFF
FVF
FFF

OU (OR)

ABRes.
VVV
VFV
FVV
FFF

NÃO (NOT)

A!A
VF
FV

Estrutura Básica: Portugol

Algoritmo "SomaSimples" Var n1, n2, resultado : inteiro Início Escreva("Digite n1: ") Leia(n1) Escreva("Digite n2: ") Leia(n2) resultado <- n1 + n2 Escreva("Soma: ", resultado) Fim

Sintaxe:

  • Algoritmo: Nome do programa / Início do código.
  • Var: Bloco de declaração.
  • Início/Fim: Delimitadores do fluxo.
  • Leia: Comando de entrada de dados.
  • Escreva: Comando de saída de dados.
Nota: O Portugol é uma linguagem estritamente didática (pseudocódigo). Ela foi criada para facilitar o aprendizado da lógica e a estruturação de algoritmos em nossa língua nativa, removendo as barreiras técnicas de sintaxes comerciais para que o foco seja 100% no desenvolvimento do raciocínio lógico.

Estrutura Básica: Linguagem C

#include <stdio.h> int main() { int n1, n2, res; printf("Digite n1: "); scanf("%d", &n1); printf("Digite n2: "); scanf("%d", &n2); res = n1 + n2; printf("Soma: %d\n", res); return 0; }

Sintaxe:

  • #include <stdio.h>: Biblioteca básica de Entrada/Saída.
  • int main(): Função principal onde o programa inicia.
  • { } (Chaves): Definem o início e o fim de blocos.
  • ; (Ponto e vírgula): Obrigatório em cada instrução.
  • & (E comercial): Indica o endereço de memória no scanf.
  • return 0: Finaliza a função e retorna sucesso ao SO.
Nota: Em algumas literaturas, pode-se encontrar a declaração void main() e a ausência do return 0;. Isso ocorre pois compiladores antigos ou específicos para sistemas embarcados permitiam esse formato. No entanto, o padrão ISO C moderno exige que a função principal retorne um inteiro (int) para informar o status ao sistema. Em compiladores modernos (padrão C99+), se o return 0; for omitido, o compilador o insere automaticamente ao final da função.

Especificadores de Formato

O que são? São códigos especiais usados em funções como printf e scanf para indicar o tipo de dado que será lido ou exibido e como ele deve ser apresentado no texto.

%d

Inteiros

%f

Reais

%c

Char

%s

String

Estrutura Básica: Python

n1 = int(input("Digite n1: ")) n2 = int(input("Digite n2: ")) resultado = n1 + n2 print("Soma: " + str(resultado))

Sintaxe:

  • input(): Escreve na tela e lê a entrada do teclado. Retorna sempre Texto (string).
  • int(): Função de casting que converte texto em número inteiro.
  • print(): Escreve informações no terminal.
  • str(): Converte valor numérico em texto para concatenação.
  • Indentação: Em Python, o recuo define blocos (substitui as chaves {}). É indispensável.
Importante: Embora o Python utilize tipagem dinâmica, ele possui tipagem forte. Para operações matemáticas com entradas do usuário, é obrigatório realizar o Casting, caso contrário o operador + apenas juntaria os textos.

Comparativo entre Linguagens

RecursoPortugolLinguagem CPython
EntradaLeia()scanf()input()
SaídaEscreva()printf()print()
Fim InstruçãoNova LinhaPonto e vírgula (;)Nova Linha
BlocosInício / FimChaves { }Indentação

Referências

Entendendo Algoritmos
Comprar
Algoritmos e Lógica
Comprar
C - Completa e Descomplicada
Comprar
Introdução ao Python
Comprar