Algoritmos e fluxogramas

Algoritmos e fluxogramas

Pergunta disparadora

Como podemos transformar uma ideia, uma tarefa ou um problema em uma sequência clara de passos que possa ser seguida por uma pessoa ou por um computador?

Objetivos da aula

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

  • compreender o conceito de algoritmo como sequência organizada de instruções;
  • representar processos por meio de linguagem natural, pseudocódigo e fluxogramas;
  • analisar e construir algoritmos simples para resolver problemas matemáticos e situações do cotidiano.

Desenvolvimento

Nesta unidade, iniciaremos o estudo de algoritmos, lógica e pensamento computacional.

A palavra algoritmo é muito usada em computação, mas a ideia de algoritmo aparece em muitas situações do cotidiano.

Quando seguimos uma receita de bolo, usamos uma sequência de passos.

Quando resolvemos uma equação, seguimos uma sequência de operações.

Quando usamos um aplicativo de navegação para chegar a um endereço, seguimos instruções organizadas.

Quando montamos um móvel, seguimos um manual.

Quando calculamos o troco de uma compra, aplicamos um procedimento.

Em todos esses casos, há uma ideia comum:

resolver uma tarefa por meio de passos bem definidos.

Essa é a essência de um algoritmo.

Nesta aula, estudaremos o que é um algoritmo, como ele pode ser escrito e como podemos representá-lo por meio de fluxogramas.

1. O que é um algoritmo?

Um algoritmo é uma sequência finita e organizada de instruções para resolver um problema ou realizar uma tarefa.

Um algoritmo deve ter:

  • início;
  • passos bem definidos;
  • ordem lógica;
  • fim.

Em outras palavras, um algoritmo descreve o que fazer e em que ordem fazer.

Exemplo simples

Algoritmo para escovar os dentes:

  1. pegar a escova;
  2. colocar pasta de dente;
  3. molhar a escova;
  4. escovar os dentes;
  5. enxaguar a boca;
  6. lavar a escova;
  7. guardar a escova.

Essa sequência tem começo, meio e fim.

2. Algoritmos no cotidiano

Usamos algoritmos mesmo sem perceber.

Alguns exemplos:

  • seguir uma receita;
  • sacar dinheiro em um caixa eletrônico;
  • fazer uma compra on-line;
  • calcular uma média;
  • organizar uma mochila;
  • resolver uma conta;
  • procurar uma palavra no dicionário;
  • seguir instruções de um mapa;
  • montar uma lista de tarefas.

O importante é perceber que muitos procedimentos podem ser descritos em passos.

3. Algoritmo e resolução de problemas

Um algoritmo é uma ferramenta para resolver problemas.

Para criar um algoritmo, precisamos responder a três perguntas:

  1. Qual é o problema?
  2. Quais informações temos?
  3. Quais passos levam à solução?

Exemplo

Problema:

Calcular a média de duas notas.

Informações disponíveis:

  • primeira nota;
  • segunda nota.

Passos:

  1. ler a primeira nota;
  2. ler a segunda nota;
  3. somar as duas notas;
  4. dividir a soma por \(2\);
  5. mostrar o resultado.

Esse é um algoritmo simples.

4. Entrada, processamento e saída

Muitos algoritmos podem ser descritos usando três partes:

  • entrada;
  • processamento;
  • saída.

Entrada

São os dados que o algoritmo recebe.

Processamento

São as operações feitas com os dados.

Saída

É o resultado produzido pelo algoritmo.

5. Exemplo com entrada, processamento e saída

Problema:

Calcular o dobro de um número.

Entrada

Um número \(n\).

Processamento

Multiplicar o número por \(2\):

\[ 2n \]

Saída

O dobro do número.

Em linguagem natural:

  1. ler o número \(n\);
  2. calcular \(2n\);
  3. mostrar o resultado.

6. Características de um bom algoritmo

Um bom algoritmo deve ser:

  • claro;
  • organizado;
  • finito;
  • não ambíguo;
  • eficiente o suficiente para o problema;
  • capaz de produzir o resultado esperado.

Claro

As instruções devem ser compreensíveis.

Finito

O algoritmo deve terminar após uma quantidade limitada de passos.

Não ambíguo

Cada passo deve ter um significado definido.

Correto

O algoritmo deve resolver o problema proposto.

7. Exemplo de instrução ambígua

Considere a instrução:

Coloque um pouco de água.

Essa instrução pode ser ambígua.

Quanto é “um pouco”?

Para uma pessoa, pode ser um copo.

Para outra, pode ser uma colher.

Em algoritmos, especialmente para computadores, é importante evitar ambiguidades.

Uma instrução melhor seria:

Coloque \(200\) mL de água.

8. Algoritmo em linguagem natural

A linguagem natural é a linguagem que usamos no dia a dia.

Podemos escrever algoritmos em português, usando frases simples e organizadas.

Exemplo

Algoritmo para calcular a área de um retângulo:

  1. ler a medida da base;
  2. ler a medida da altura;
  3. multiplicar a base pela altura;
  4. mostrar a área.

A fórmula usada é:

\[ A=b\cdot h \]

Esse algoritmo está escrito em linguagem natural.

9. Algoritmo em pseudocódigo

O pseudocódigo é uma forma intermediária entre a linguagem natural e uma linguagem de programação.

Ele não precisa seguir exatamente a sintaxe de uma linguagem real, mas deve ser organizado e próximo da lógica computacional.

Exemplo

início
  leia base
  leia altura
  area <- base * altura
  escreva area
fim

Esse pseudocódigo calcula a área de um retângulo.

10. Variáveis

Uma variável é um nome usado para armazenar um valor.

Em algoritmos, variáveis representam informações que podem mudar.

Exemplos de variáveis:

  • idade;
  • nota;
  • preco;
  • altura;
  • media;
  • saldo;
  • area.

Exemplo

Se escrevemos:

idade <- 15

estamos dizendo que a variável idade recebe o valor \(15\).

11. Atribuição

A atribuição é o ato de guardar um valor em uma variável.

Em pseudocódigo, podemos usar o símbolo:

<-

Exemplo:

total <- preco * quantidade

Isso significa:

calcule preco * quantidade e guarde o resultado na variável total.

12. Exemplo com variáveis

Algoritmo para calcular o preço total de uma compra:

início
  leia preco
  leia quantidade
  total <- preco * quantidade
  escreva total
fim

Se:

\[ preco=12 \]

e:

\[ quantidade=5 \]

então:

\[ total=12\cdot 5=60 \]

A saída será:

\[ 60 \]

13. Operadores aritméticos

Em algoritmos, usamos operadores para fazer cálculos.

Operação Símbolo matemático Símbolo comum em pseudocódigo
adição \(+\) +
subtração \(-\) -
multiplicação \(\cdot\) *
divisão \(\div\) /
potência \(a^b\) a^b ou a ** b

Exemplo

media <- (nota1 + nota2) / 2

Essa instrução soma duas notas e divide o resultado por \(2\).

14. Ordem das operações

A ordem das operações também importa nos algoritmos.

Por exemplo:

media <- nota1 + nota2 / 2

não é o mesmo que:

media <- (nota1 + nota2) / 2

Na primeira expressão, nota2 é dividida por \(2\) antes da soma.

Na segunda, as notas são somadas primeiro, e depois a soma é dividida por \(2\).

Por isso, usamos parênteses quando necessário.

15. Algoritmo para calcular média

Problema:

Calcular a média aritmética de três notas.

A média aritmética é:

\[ \text{média}=\frac{n_1+n_2+n_3}{3} \]

Em pseudocódigo:

início
  leia n1
  leia n2
  leia n3
  media <- (n1 + n2 + n3) / 3
  escreva media
fim

16. Testando o algoritmo

Para testar um algoritmo, podemos usar valores específicos.

Considere:

\[ n_1=7 \]

\[ n_2=8 \]

\[ n_3=9 \]

Então:

\[ \text{média}=\frac{7+8+9}{3} \]

\[ \text{média}=\frac{24}{3} \]

\[ \text{média}=8 \]

O algoritmo deve mostrar:

\[ 8 \]

17. Condições

Muitos algoritmos precisam tomar decisões.

Para isso, usamos condições.

Uma condição é uma expressão que pode ser verdadeira ou falsa.

Exemplos:

  • idade >= 18;
  • nota >= 6;
  • saldo >= preco;
  • numero > 0;
  • media < 5.

Essas condições ajudam o algoritmo a escolher caminhos diferentes.

18. Estrutura condicional

A estrutura condicional permite executar instruções diferentes dependendo de uma condição.

Em pseudocódigo:

se condição então
  instruções
senão
  outras instruções
fim-se

Essa estrutura significa:

  • se a condição for verdadeira, execute o primeiro bloco;
  • caso contrário, execute o bloco do senão.

19. Exemplo com condição

Problema:

Verificar se um estudante foi aprovado, considerando média mínima \(6\).

Pseudocódigo:

início
  leia media

  se media >= 6 então
    escreva "Aprovado"
  senão
    escreva "Reprovado"
  fim-se
fim

Se:

\[ media=7 \]

a saída será:

Aprovado

Se:

\[ media=4 \]

a saída será:

Reprovado

20. Operadores relacionais

Os operadores relacionais comparam valores.

Significado Símbolo matemático Em pseudocódigo
maior que \(>\) >
menor que \(<\) <
maior ou igual \(\geq\) >=
menor ou igual \(\leq\) <=
igual \(=\) = ou ==
diferente \(\neq\) != ou <>

Esses operadores aparecem em condições.

21. Exemplo: número positivo ou negativo

Problema:

Verificar se um número é positivo, negativo ou zero.

Pseudocódigo:

início
  leia n

  se n > 0 então
    escreva "positivo"
  senão
    se n < 0 então
      escreva "negativo"
    senão
      escreva "zero"
    fim-se
  fim-se
fim

Esse algoritmo tem decisões encadeadas.

22. Repetição

Alguns algoritmos precisam repetir instruções.

Por exemplo:

  • somar vários números;
  • contar de \(1\) até \(10\);
  • verificar várias notas;
  • procurar um valor em uma lista;
  • repetir uma pergunta até obter resposta válida.

Para isso, usamos estruturas de repetição.

Nesta aula, veremos apenas a ideia inicial.

23. Estrutura de repetição simples

Uma forma comum é repetir enquanto uma condição for verdadeira.

Em pseudocódigo:

enquanto condição faça
  instruções
fim-enquanto

Exemplo

Contar de \(1\) até \(5\):

início
  contador <- 1

  enquanto contador <= 5 faça
    escreva contador
    contador <- contador + 1
  fim-enquanto
fim

A saída será:

1
2
3
4
5

24. Cuidado com repetição infinita

Um algoritmo com repetição deve garantir que a condição pare de ser verdadeira em algum momento.

Considere:

contador <- 1

enquanto contador <= 5 faça
  escreva contador
fim-enquanto

Nesse caso, o contador nunca muda.

Então a condição contador <= 5 continuará verdadeira para sempre.

Isso gera uma repetição infinita.

Para evitar isso, precisamos atualizar o contador:

contador <- contador + 1

25. Fluxogramas

Um fluxograma é uma representação visual de um algoritmo.

Ele usa símbolos para representar:

  • início e fim;
  • entrada e saída;
  • processamento;
  • decisão;
  • fluxo das instruções.

Fluxogramas ajudam a visualizar a lógica do algoritmo antes de programá-lo.

26. Principais símbolos de um fluxograma

Símbolo Significado
Oval início ou fim
Retângulo processamento
Paralelogramo entrada ou saída
Losango decisão
Seta direção do fluxo

Em materiais digitais, podemos descrever fluxogramas por texto ou usar ferramentas gráficas.

27. Exemplo de fluxograma em texto

Algoritmo:

Ler dois números e mostrar a soma.

Fluxograma em texto:

[Início]
   ↓
[Ler a]
   ↓
[Ler b]
   ↓
[soma <- a + b]
   ↓
[Mostrar soma]
   ↓
[Fim]

Esse fluxograma representa uma sequência simples, sem decisões.

28. Fluxograma com decisão

Problema:

Verificar se um número é par.

Um número é par quando o resto da divisão por \(2\) é zero.

Em linguagem matemática:

\[ n\text{ é par se }n \equiv 0 \pmod 2 \]

Em pseudocódigo, podemos escrever:

se n mod 2 = 0 então
  escreva "par"
senão
  escreva "ímpar"
fim-se

Fluxograma em texto:

[Início]
   ↓
[Ler n]
   ↓
< n mod 2 = 0 ? >
   ├── Sim → [Mostrar "par"] → [Fim]
   └── Não → [Mostrar "ímpar"] → [Fim]

O losango representa a decisão.

29. O que é mod?

O operador mod indica o resto da divisão inteira.

Exemplos:

\[ 7\div 2=3\text{ com resto }1 \]

Então:

7 mod 2 = 1

Já:

\[ 8\div 2=4\text{ com resto }0 \]

Então:

8 mod 2 = 0

Por isso, usamos n mod 2 = 0 para verificar se um número é par.

30. Exemplo completo: maior de dois números

Problema:

Ler dois números e mostrar o maior deles.

Linguagem natural

  1. ler o primeiro número;
  2. ler o segundo número;
  3. comparar os dois;
  4. se o primeiro for maior, mostrar o primeiro;
  5. caso contrário, mostrar o segundo.

Pseudocódigo

início
  leia a
  leia b

  se a > b então
    escreva a
  senão
    escreva b
  fim-se
fim

Fluxograma em texto

[Início]
   ↓
[Ler a]
   ↓
[Ler b]
   ↓
< a > b ? >
   ├── Sim → [Mostrar a] → [Fim]
   └── Não → [Mostrar b] → [Fim]

31. E se os números forem iguais?

O algoritmo anterior mostra b quando a não é maior que b.

Se:

\[ a=b \]

então ele mostra b.

Isso não está errado se o objetivo for apenas mostrar um dos maiores, pois os dois são iguais.

Mas, se quisermos informar que os números são iguais, precisamos melhorar o algoritmo.

32. Maior de dois números com igualdade

Pseudocódigo:

início
  leia a
  leia b

  se a > b então
    escreva "O maior é", a
  senão
    se b > a então
      escreva "O maior é", b
    senão
      escreva "Os números são iguais"
    fim-se
  fim-se
fim

Esse algoritmo trata três casos:

  • \(a>b\);
  • \(b>a\);
  • \(a=b\).

33. Algoritmo matemático: resolver equação do primeiro grau

Considere uma equação do tipo:

\[ ax+b=0 \]

com:

\[ a\neq 0 \]

A solução é:

\[ x=-\frac{b}{a} \]

Um algoritmo para resolver esse caso seria:

início
  leia a
  leia b

  se a != 0 então
    x <- -b / a
    escreva x
  senão
    escreva "Não é equação do primeiro grau"
  fim-se
fim

Esse algoritmo mostra que a matemática e a lógica computacional caminham juntas.

34. Algoritmo para calcular IMC

O Índice de Massa Corporal, em um modelo simplificado, é dado por:

\[ IMC=\frac{massa}{altura^2} \]

Um algoritmo para calcular o IMC seria:

início
  leia massa
  leia altura

  imc <- massa / (altura * altura)

  escreva imc
fim

Se:

\[ massa=70 \]

e:

\[ altura=1{,}75 \]

então:

\[ IMC=\frac{70}{1{,}75^2} \]

\[ IMC=\frac{70}{3{,}0625} \]

\[ IMC\approx 22{,}86 \]

35. Algoritmo para calcular desconto

Problema:

Ler o preço de um produto e o percentual de desconto. Mostrar o preço final.

Pseudocódigo:

início
  leia preco
  leia desconto

  fator <- 1 - desconto / 100
  preco_final <- preco * fator

  escreva preco_final
fim

Exemplo:

Se:

\[ preco=200 \]

e:

\[ desconto=15 \]

então:

\[ fator=1-\frac{15}{100}=0{,}85 \]

e:

\[ preco\_final=200\cdot 0{,}85=170 \]

36. Algoritmo para calcular juros simples

A fórmula dos juros simples é:

\[ J=C\cdot i\cdot t \]

Se a taxa for informada em porcentagem, precisamos dividir por \(100\).

Pseudocódigo:

início
  leia capital
  leia taxa_percentual
  leia tempo

  taxa <- taxa_percentual / 100
  juros <- capital * taxa * tempo
  montante <- capital + juros

  escreva juros
  escreva montante
fim

Esse algoritmo aplica conteúdos da unidade anterior.

37. Algoritmo para calcular juros compostos

A fórmula dos juros compostos é:

\[ M=C(1+i)^t \]

Pseudocódigo:

início
  leia capital
  leia taxa_percentual
  leia tempo

  taxa <- taxa_percentual / 100
  montante <- capital * (1 + taxa)^tempo
  juros <- montante - capital

  escreva juros
  escreva montante
fim

Esse exemplo mostra como uma fórmula matemática pode ser transformada em algoritmo.

38. Decomposição de problemas

A decomposição é uma estratégia do pensamento computacional.

Ela consiste em dividir um problema maior em partes menores.

Exemplo

Problema:

Calcular o preço final de uma compra com desconto e imposto.

Podemos decompor:

  1. ler o preço inicial;
  2. aplicar o desconto;
  3. aplicar o imposto;
  4. mostrar o preço final.

Essa divisão facilita a construção do algoritmo.

39. Reconhecimento de padrões

Outro aspecto do pensamento computacional é reconhecer padrões.

Por exemplo, os algoritmos para desconto, acréscimo, inflação e juros compostos têm algo em comum:

  • todos usam fatores multiplicativos;
  • todos transformam porcentagens em decimais;
  • todos atualizam um valor inicial.

Reconhecer esse padrão ajuda a resolver novos problemas.

40. Abstração

A abstração consiste em focar nas informações importantes e ignorar detalhes desnecessários.

Exemplo

Para calcular o preço final com desconto, não precisamos saber:

  • a cor do produto;
  • a marca;
  • o nome da loja;
  • o horário da compra.

Precisamos saber:

  • preço inicial;
  • percentual de desconto.

Essas são as informações relevantes para o algoritmo.

41. Algoritmo e computador

Um computador executa instruções de forma precisa, mas não entende ambiguidades como uma pessoa.

Por isso, algoritmos para computadores precisam ser muito claros.

Uma instrução como:

calcule a média

pode ser insuficiente.

Melhor:

media <- (nota1 + nota2 + nota3) / 3

O computador precisa saber exatamente quais valores usar e quais operações fazer.

42. Algoritmo não é necessariamente programa

Um algoritmo é a ideia ou o procedimento.

Um programa é uma implementação desse algoritmo em uma linguagem de programação.

O mesmo algoritmo pode ser implementado em várias linguagens, como:

  • Python;
  • JavaScript;
  • R;
  • C;
  • Java;
  • Scratch;
  • Portugol.

Exemplo

Algoritmo:

somar dois números.

Esse algoritmo pode ser escrito em pseudocódigo, Python, JavaScript ou outra linguagem.

43. Exemplo em pseudocódigo e Python

Pseudocódigo:

início
  leia a
  leia b
  soma <- a + b
  escreva soma
fim

Código equivalente em Python:

a = float(input("Digite o primeiro número: "))
b = float(input("Digite o segundo número: "))

soma = a + b

print(soma)

A lógica é a mesma.

A linguagem muda.

44. Atividade resolvida integradora 1

Construa um algoritmo para calcular a média de quatro notas e informar se o estudante foi aprovado.

Considere aprovação com média maior ou igual a \(6\).

Etapa 1: identificar entradas

As entradas são:

  • n1;
  • n2;
  • n3;
  • n4.

Etapa 2: processamento

Calcular:

\[ media=\frac{n_1+n_2+n_3+n_4}{4} \]

Depois comparar:

\[ media\geq 6 \]

Etapa 3: saída

Mostrar a média e a situação:

  • aprovado;
  • reprovado.

Pseudocódigo

início
  leia n1
  leia n2
  leia n3
  leia n4

  media <- (n1 + n2 + n3 + n4) / 4

  escreva media

  se media >= 6 então
    escreva "Aprovado"
  senão
    escreva "Reprovado"
  fim-se
fim

Teste

Se as notas forem:

\[ 7,\quad 6,\quad 8,\quad 5 \]

então:

\[ media=\frac{7+6+8+5}{4} \]

\[ media=\frac{26}{4} \]

\[ media=6{,}5 \]

Como:

\[ 6{,}5\geq 6 \]

a saída será:

Aprovado

45. Atividade resolvida integradora 2

Construa um algoritmo para calcular o preço final de um produto com desconto.

Entradas

  • preço inicial;
  • percentual de desconto.

Processamento

Calcular o fator de desconto:

\[ 1-\frac{p}{100} \]

Calcular o preço final:

\[ preco\_final=preco\cdot\left(1-\frac{p}{100}\right) \]

Saída

Preço final.

Pseudocódigo

início
  leia preco
  leia percentual_desconto

  fator <- 1 - percentual_desconto / 100
  preco_final <- preco * fator

  escreva preco_final
fim

Teste

Se:

\[ preco=500 \]

e:

\[ percentual\_desconto=20 \]

então:

\[ fator=1-\frac{20}{100}=0{,}80 \]

e:

\[ preco\_final=500\cdot 0{,}80=400 \]

A saída será:

\[ 400 \]

46. Atividade resolvida integradora 3

Construa um algoritmo para verificar se uma pessoa pode votar, considerando idade mínima de \(16\) anos.

Entrada

  • idade.

Processamento

Comparar:

\[ idade\geq 16 \]

Saída

  • pode votar;
  • não pode votar.

Pseudocódigo

início
  leia idade

  se idade >= 16 então
    escreva "Pode votar"
  senão
    escreva "Não pode votar"
  fim-se
fim

Fluxograma em texto

[Início]
   ↓
[Ler idade]
   ↓
< idade >= 16 ? >
   ├── Sim → [Mostrar "Pode votar"] → [Fim]
   └── Não → [Mostrar "Não pode votar"] → [Fim]

47. Atividade resolvida integradora 4

Construa um algoritmo para contar de \(1\) até \(10\).

Pseudocódigo

início
  contador <- 1

  enquanto contador <= 10 faça
    escreva contador
    contador <- contador + 1
  fim-enquanto
fim

Explicação

O algoritmo começa com:

contador <- 1

Depois verifica se:

contador <= 10

Enquanto essa condição for verdadeira, ele mostra o contador e soma \(1\).

Quando o contador passa a valer \(11\), a condição deixa de ser verdadeira, e o algoritmo termina.

48. Estratégia geral para construir algoritmos

Ao construir um algoritmo, siga estas etapas.

Etapa 1: entenda o problema

Pergunte:

O que precisa ser resolvido?

Etapa 2: identifique as entradas

Pergunte:

Quais dados são necessários?

Etapa 3: identifique o processamento

Pergunte:

Quais cálculos ou decisões devem ser feitos?

Etapa 4: identifique as saídas

Pergunte:

Qual resultado deve ser mostrado?

Etapa 5: organize os passos

Escreva os passos em ordem lógica.

Etapa 6: teste com exemplos

Use valores simples para verificar se o algoritmo funciona.

Etapa 7: revise ambiguidades

Verifique se as instruções estão claras e completas.

49. Erros comuns

Erro 1: não definir a entrada

Um algoritmo precisa saber quais dados receberá.

Erro 2: esquecer de mostrar a saída

Calcular um resultado sem exibi-lo torna o algoritmo incompleto.

Erro 3: usar instruções ambíguas

Instruções vagas podem gerar interpretações diferentes.

Erro 4: esquecer a ordem correta dos passos

Em algoritmos, a ordem das instruções pode mudar completamente o resultado.

Erro 5: esquecer parênteses em fórmulas

Expressões como média exigem parênteses:

media <- (n1 + n2 + n3) / 3

Erro 6: não tratar casos especiais

Por exemplo, em uma divisão, é preciso verificar se o divisor não é zero.

Erro 7: criar repetição infinita

Em estruturas de repetição, alguma variável precisa mudar para que a repetição termine.

Erro 8: confundir algoritmo com linguagem de programação

O algoritmo é a lógica.

A linguagem de programação é apenas uma forma de escrever essa lógica para o computador executar.

50. Exercícios

Resolva os exercícios a seguir.

Exercício 1

O que é um algoritmo?

Exercício 2

Cite três exemplos de algoritmos no cotidiano.

Exercício 3

Explique a diferença entre entrada, processamento e saída.

Exercício 4

Em um algoritmo que calcula a área de um retângulo, quais são as entradas, o processamento e a saída?

Exercício 5

Escreva um algoritmo em linguagem natural para calcular o dobro de um número.

Exercício 6

Escreva um pseudocódigo para calcular a soma de dois números.

Exercício 7

Escreva um pseudocódigo para calcular a média de três notas.

Exercício 8

Explique o que é uma variável.

Exercício 9

Explique o que significa a instrução:

total <- preco * quantidade

Exercício 10

Qual é a diferença entre estes dois comandos?

media <- n1 + n2 / 2
media <- (n1 + n2) / 2

Exercício 11

Escreva um pseudocódigo para verificar se uma nota é maior ou igual a \(6\).

Exercício 12

Escreva um pseudocódigo para verificar se uma pessoa tem idade maior ou igual a \(18\).

Exercício 13

Escreva um pseudocódigo para verificar se um número é positivo ou negativo.

Exercício 14

Escreva um pseudocódigo para verificar se um número é par ou ímpar.

Exercício 15

O que é um fluxograma?

Exercício 16

Quais são os principais símbolos usados em fluxogramas?

Exercício 17

Represente em fluxograma textual um algoritmo para ler dois números e mostrar a soma.

Exercício 18

Escreva um algoritmo para calcular a área de um triângulo, usando:

\[ A=\frac{b\cdot h}{2} \]

Exercício 19

Escreva um algoritmo para calcular o preço final de um produto com acréscimo percentual.

Exercício 20

Escreva um algoritmo para calcular juros simples.

Exercício 21

Escreva um algoritmo para contar de \(1\) até \(5\).

Exercício 22

Explique o que é uma repetição infinita.

Exercício 23

Explique a diferença entre algoritmo e programa.

Exercício 24

O que é decomposição de problemas?

Exercício 25

Por que é importante testar um algoritmo com exemplos?

51. Gabarito comentado

Exercício 1

Um algoritmo é uma sequência finita e organizada de instruções para resolver um problema ou realizar uma tarefa.

Ele deve ter passos claros, ordem lógica, início e fim.

Exercício 2

Exemplos possíveis:

  • seguir uma receita de bolo;
  • calcular a média de notas;
  • sacar dinheiro em um caixa eletrônico;
  • seguir um trajeto no mapa;
  • montar um móvel usando manual;
  • calcular o preço final de uma compra.

Exercício 3

Entrada são os dados recebidos pelo algoritmo.

Processamento são os cálculos, comparações ou decisões feitas com esses dados.

Saída é o resultado produzido pelo algoritmo.

Exercício 4

Para calcular a área de um retângulo:

Entradas:

  • base;
  • altura.

Processamento:

\[ A=b\cdot h \]

Saída:

  • área do retângulo.

Exercício 5

Algoritmo em linguagem natural:

  1. ler um número;
  2. multiplicar o número por \(2\);
  3. mostrar o resultado.

Exercício 6

Pseudocódigo:

início
  leia a
  leia b
  soma <- a + b
  escreva soma
fim

Exercício 7

Pseudocódigo:

início
  leia n1
  leia n2
  leia n3

  media <- (n1 + n2 + n3) / 3

  escreva media
fim

Exercício 8

Uma variável é um nome usado para armazenar um valor.

Exemplos:

  • idade;
  • preco;
  • media;
  • total.

O valor de uma variável pode mudar durante a execução do algoritmo.

Exercício 9

A instrução:

total <- preco * quantidade

significa que o algoritmo deve multiplicar preco por quantidade e guardar o resultado na variável total.

Exercício 10

No primeiro comando:

media <- n1 + n2 / 2

a divisão de n2 por \(2\) acontece antes da soma.

No segundo comando:

media <- (n1 + n2) / 2

as notas são somadas primeiro, e depois a soma é dividida por \(2\).

O segundo comando é o correto para calcular a média de dois números.

Exercício 11

Pseudocódigo:

início
  leia nota

  se nota >= 6 então
    escreva "Nota suficiente"
  senão
    escreva "Nota insuficiente"
  fim-se
fim

Exercício 12

Pseudocódigo:

início
  leia idade

  se idade >= 18 então
    escreva "Maior de idade"
  senão
    escreva "Menor de idade"
  fim-se
fim

Exercício 13

Pseudocódigo:

início
  leia n

  se n > 0 então
    escreva "positivo"
  senão
    se n < 0 então
      escreva "negativo"
    senão
      escreva "zero"
    fim-se
  fim-se
fim

Exercício 14

Pseudocódigo:

início
  leia n

  se n mod 2 = 0 então
    escreva "par"
  senão
    escreva "ímpar"
  fim-se
fim

Exercício 15

Um fluxograma é uma representação visual de um algoritmo.

Ele usa símbolos e setas para mostrar a sequência dos passos, decisões, entradas, saídas e processamentos.

Exercício 16

Principais símbolos:

  • oval: início ou fim;
  • retângulo: processamento;
  • paralelogramo: entrada ou saída;
  • losango: decisão;
  • seta: direção do fluxo.

Exercício 17

Fluxograma textual:

[Início]
   ↓
[Ler a]
   ↓
[Ler b]
   ↓
[soma <- a + b]
   ↓
[Mostrar soma]
   ↓
[Fim]

Exercício 18

Pseudocódigo:

início
  leia base
  leia altura

  area <- (base * altura) / 2

  escreva area
fim

Exercício 19

Pseudocódigo:

início
  leia preco
  leia percentual_acrescimo

  fator <- 1 + percentual_acrescimo / 100
  preco_final <- preco * fator

  escreva preco_final
fim

Exercício 20

Pseudocódigo:

início
  leia capital
  leia taxa_percentual
  leia tempo

  taxa <- taxa_percentual / 100
  juros <- capital * taxa * tempo
  montante <- capital + juros

  escreva juros
  escreva montante
fim

Exercício 21

Pseudocódigo:

início
  contador <- 1

  enquanto contador <= 5 faça
    escreva contador
    contador <- contador + 1
  fim-enquanto
fim

Exercício 22

Uma repetição infinita ocorre quando uma estrutura de repetição nunca termina.

Isso pode acontecer quando a condição de parada nunca deixa de ser verdadeira.

Exemplo: esquecer de atualizar o contador dentro de um laço.

Exercício 23

Um algoritmo é a sequência lógica de passos para resolver um problema.

Um programa é a implementação desse algoritmo em uma linguagem de programação.

O mesmo algoritmo pode ser escrito em diferentes linguagens.

Exercício 24

Decomposição de problemas é a estratégia de dividir um problema maior em partes menores e mais simples.

Isso facilita a compreensão, a organização e a construção do algoritmo.

Exercício 25

Testar um algoritmo com exemplos ajuda a verificar se ele produz o resultado esperado.

Também ajuda a encontrar erros de lógica, problemas de ordem dos passos, ambiguidades e casos especiais.

Síntese da aula

Nesta aula, estudamos algoritmos e fluxogramas.

Vimos que um algoritmo é uma sequência finita e organizada de instruções para resolver um problema ou realizar uma tarefa.

Estudamos a estrutura básica de muitos algoritmos:

  • entrada;
  • processamento;
  • saída.

Também vimos que algoritmos podem ser escritos em linguagem natural, pseudocódigo ou implementados em uma linguagem de programação.

Aprendemos o papel das variáveis, da atribuição, dos operadores aritméticos, das condições e das estruturas de repetição.

Estudamos também os fluxogramas, que representam visualmente a lógica de um algoritmo usando símbolos como oval, retângulo, paralelogramo, losango e setas.

Construímos algoritmos para situações matemáticas e cotidianas, como:

  • calcular média;
  • verificar aprovação;
  • calcular desconto;
  • calcular juros;
  • verificar se um número é par;
  • contar de \(1\) até \(10\).

A ideia central da aula é que algoritmos ajudam a organizar o raciocínio e transformar problemas em sequências claras de passos.

Próximo passo

Na próxima aula, estudaremos sequências e padrões.

Vamos analisar regularidades numéricas, padrões de crescimento, termos de uma sequência e formas de descrever relações matemáticas por meio de regras.