Algoritmos (ADS) – Aula 03

ALGORITMOS – AULA 03 DE 100

Unidade 1 – Fundamentos e estruturas de controle
Bloco Algoritmos e lógica (aulas 1 a 6)
Duração e tipo 45 minutos – teórica e prática
Aula anterior Aula 02 – Algoritmos: conceito, propriedades e exemplos
Próxima aula Aula 04 – Diagrama de blocos II: decisão e repetição

1 Objetivos da aula

  1. Explicar o que é um diagrama de blocos e por que usá-lo antes de programar.
  2. Reconhecer os símbolos de terminal, entrada manual, processamento, exibição, conector e linha de fluxo.
  3. Construir diagramas de blocos de algoritmos sequenciais.
  4. Ler um diagrama de blocos e simular sua execução com valores de exemplo.

2 Roteiro da aula

Tempo Momento Atividade
0–5 min Retomada O algoritmo da compra (tarefa da Aula 02): o que ele recebe, calcula e mostra.
5–20 min Exposição dialogada O que é diagrama de blocos; símbolos; regras de construção; exemplos.
20–38 min Prática guiada Construção de três diagramas sequenciais, em papel, com revisão em duplas.
38–42 min Demonstração O diagrama da área do retângulo transformado em Python.
42–45 min Síntese e ponte Resumo e tarefa para a Aula 04.

3 Conhecimentos prévios

Aula 01 (modelo entrada, processamento e saída) e Aula 02 (algoritmo e suas propriedades). Traga o algoritmo da compra, pedido como tarefa na Aula 02.

4 Conteúdo

4.1 Por que desenhar um algoritmo

Um texto em português pode ser lido de mais de uma forma. Um diagrama de blocos representa o algoritmo com símbolos padronizados ligados por setas: cada símbolo indica o tipo de ação e as setas mostram a ordem em que as ações acontecem. Assim, qualquer pessoa que conheça os símbolos lê o diagrama do mesmo jeito.

Manzano e Oliveira (2019) comparam o diagrama de blocos à planta de uma casa: antes de assentar os tijolos (escrever o código), o programador desenha o que o programa vai fazer. O diagrama também não depende de linguagem: o mesmo desenho pode virar um programa em Python, Java ou C.

Diagrama de blocos ou fluxograma?

Muitos livros e professores usam as duas palavras como sinônimos; Souza et al. (2019), por exemplo, chamam o diagrama de blocos de fluxograma. Manzano e Oliveira (2019) fazem uma distinção: fluxograma seria a visão geral de um processo ou sistema, usada na análise de sistemas, e diagrama de blocos a representação detalhada da lógica de um programa. Nesta disciplina usamos “diagrama de blocos”, que é o termo do PPC do curso, mas você vai encontrar os dois.

4.2 Os símbolos

Os símbolos seguem a norma internacional ISO 5807:1985, adotada pelos livros da bibliografia. A Figura 1 mostra os que usaremos; a decisão será estudada na Aula 04.

Figura 1 – Símbolos do diagrama de blocos usados na disciplina

Símbolo Para que serve Exemplo de conteúdo
Terminal Marca o início e o fim do algoritmo. Aparece duas vezes. Início; Fim
Entrada manual Entrada de dados pelo teclado. Indica as variáveis que recebem os valores. base, altura
Processamento Cálculo ou atribuição de valor. area ← base × altura
Exibição Saída de dados na tela. area
Decisão Escolha entre dois caminhos (Aula 04). idade ≥ 18
Conector Junta caminhos que se separaram ou liga partes do diagrama. (vazio ou com uma letra)
Linha de fluxo Seta que indica a ordem de execução. –

Atenção

Alguns livros usam um único símbolo, o paralelogramo, tanto para entrada quanto para saída. Nesta disciplina seguimos Manzano e Oliveira (2019): entrada manual para o que vem do teclado e exibição para o que vai para a tela. Os dois estilos estão de acordo com a norma.

4.3 Regras de construção

  1. Todo diagrama começa em um terminal Início e termina em um terminal Fim.
  2. Os símbolos são ligados por setas que mostram a direção do fluxo, de cima para baixo.
  3. Cada símbolo representa uma ação. Na entrada e na exibição, escreva os nomes dos dados, separados por vírgula.
  4. No processamento, use a seta para a esquerda (←) para indicar que um nome recebe um valor: area ← base × altura se lê “area recebe base vezes altura”.
  5. Só se pode usar um dado depois que ele foi lido ou calculado: a entrada vem antes do cálculo, e o cálculo antes da exibição.

Variável, em uma frase

Nomes como base, altura e area são variáveis: espaços da memória com um nome, que guardam um valor. Elas serão estudadas em detalhe na Aula 09.

4.4 Primeiro exemplo: área de um retângulo

Problema: ler a base e a altura de um retângulo e mostrar a sua área. Entradas: base e altura. Processamento: multiplicar a base pela altura. Saída: a área. A Figura 2 mostra o diagrama.

Figura 2 – Diagrama de blocos: área de um retângulo

Para ler o diagrama, comece no Início e siga as setas, executando cada símbolo (SOUZA et al., 2019, seção 3.5.1). Simulando com base 5 e altura 3: a entrada guarda 5 em base e 3 em altura; o processamento calcula 5 × 3 e guarda 15 em area; a exibição mostra 15; o algoritmo chega ao Fim.

4.5 Mais dois exemplos sequenciais

Um algoritmo é sequencial quando todos os passos são executados, um após o outro, sempre na mesma ordem, sem desvios nem repetições. A Figura 3 é o algoritmo da tarefa da Aula 02 e a Figura 4 converte uma temperatura de graus Celsius para Fahrenheit, usando a fórmula F = C × 9/5 + 32.

Figura 3 – Diagrama de blocos: total de uma compra

Figura 4 – Diagrama de blocos: conversão de Celsius para Fahrenheit

Simulando a Figura 4 com 25 °C: fahr ← 25 × 9 / 5 + 32 = 45 + 32 = 77. A exibição mostra 77.

5 Prática guiada

Desenhe no papel, em duplas, os diagramas de blocos abaixo (18 minutos). Depois de cada um, troque com a dupla ao lado e confira: começa em Início e termina em Fim? Algum dado é usado antes de ser lido?

  1. Ler três notas e mostrar a média aritmética.
  2. Ler a quantidade de horas que um carro ficou no estacionamento e mostrar o valor a pagar, sabendo que cada hora custa R$ 5,00.
  3. Ler a distância percorrida (em km) e os litros de combustível gastos e mostrar o consumo médio (km/L).

Simule cada diagrama com valores escolhidos por você e confira o resultado com a calculadora.

6 Demonstração: do diagrama ao Python

O professor vai executar o programa abaixo, que corresponde à Figura 2. Você ainda não precisa entender a sintaxe; observe que cada linha corresponde a um símbolo do diagrama.

base = float(input("Base: "))       # entrada manual
altura = float(input("Altura: "))   # entrada manual
area = base * altura                # processamento
print("Área:", area)                # exibição

Uma execução possível (os valores 5 e 3 foram digitados pelo usuário):

Base: 5
Altura: 3
Área: 15.0
Símbolo do diagrama Linha do programa
Entrada manual (base, altura) As duas linhas com input.
Processamento (area ← base × altura) area = base * altura: em Python, a atribuição usa = e a multiplicação usa *.
Exibição (area) A linha com print.

7 Síntese

  1. O diagrama de blocos representa um algoritmo com símbolos padronizados (ISO 5807) ligados por setas.
  2. Terminal, entrada manual, processamento e exibição bastam para algoritmos sequenciais.
  3. Lemos um diagrama seguindo as setas a partir do Início e executando cada símbolo, sem pular nenhum.

8 Exercícios de fixação

  1. Associe cada ação ao símbolo correto: (a) mostrar o salário na tela; (b) ler a idade digitada; (c) calcular o dobro de um número; (d) encerrar o algoritmo.
  2. A Figura 5 tem três erros. Encontre-os e desenhe o diagrama corrigido.
  3. Desenhe o diagrama de blocos que lê a base e a altura de um retângulo e mostra o perímetro.
  4. Desenhe o diagrama de blocos que lê o preço de um produto e o percentual de desconto e mostra o preço com desconto. Simule com R$ 80,00 e 25%.
  5. Desenhe o diagrama de blocos que lê a idade de uma pessoa em anos e mostra uma estimativa da idade em dias (considere 365 dias por ano). Por que o resultado é apenas uma estimativa?

Figura 5 – Diagrama de blocos com erros (exercício 2)

9 Para a próxima aula

Aula 04 – Diagrama de blocos II: decisão e repetição. Até aqui todos os algoritmos executaram os mesmos passos sempre. Na próxima aula eles vão escolher caminhos e repetir ações.

  • Tarefa: pense em como desenhar o algoritmo da média de modo que ele mostre “Aprovado” ou “Não aprovado”. O que falta nos símbolos que você conhece?
  • Leitura recomendada: SOUZA et al. (2019), capítulo 3, seções 3.4 a 3.5.2. O Python para Todos não trata de diagramas de blocos.
  • Leitura complementar: MANZANO e OLIVEIRA (2019), capítulo 2, seções 2.3.2 e 2.3.3.

Referências

  1. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 29. ed. São Paulo: Érica, 2019.
  2. SOUZA, Marco Antonio Furlan de et al. Algoritmos e lógica de programação. 3. ed. São Paulo: Cengage Learning, 2019.
Click to listen highlighted text!