Publicado em Algoritmo, C++, Programação

Construção de algoritmos em Pseudocódigo – enquanto … fazer … fimfazer

Trata-se de uma estrutura de repetição, controlada pela avaliação do valor lógico de uma condição.

Este tipo de estruturas são geralmente designadas por “ciclos“.

enquanto <condição>
fazer
    instrução 1
    instrução 2
    . . .
    instrução n
fimfazer

Assim temos:

  • <condição> é uma expressão lógica que, sendo verdadeira, determina que se voltem a executar as instruções contidas no ciclo. Caso esta expressão tenha o valor lógico falso, o controlo passa para a instução seguinte, sendo o ciclo abandonado.
  • instrução 1 … instrução n  corresponde ao bloco de instruções que vão ser executados em cada iteração (entenda-se iteração como uma “volta”, tendo presente a noção de cliclo).

Este tipo de estrutura tem infinitas aplicações mas, em termos genéricos, podemos afirmar que se utiliza sempre que:

  • pretendermos repetir 0 bloco de instruções um número indeterminado de vezes;
  • o número de iterações, ou seja, o número de vezes que se repete o ciclo, depende do valor lógico da candição;
  • fazendo variar os valores das variáveis que são utilizadas na condição permite controlar o respetivo valor lógico, consequentemente, continuar a iterar ou terminar.

Vamos pensar, a título de exemplo, no seguinte problema:

“Dada uma sequência de números, terminada por um número negativo, calcular a média dos seus elementos.”

Algoritmo em pseudocódigo

Nome MédiaN
Descrição
    Dada uma sequência de números, cujo fim é assinalado por um número
    negativo, este algoritmo calcula a respetiva média.
Variáveis
    contar: Inteiros
    num, soma, média: Real
Início
    contar ← 0
    soma ← 0
    ler (num)
    enquanto ( num >= 0 )
    fazer
        contar ← contar + 1
        soma ← soma + num
        ler (num)
    fimfazer
    média ← soma / contar
    escrever (média)
fim

Seguem-se uma implementação deste problema.

Em linguagem C++

#include <iostream>
using namespace std;
int main()
{
    int contar;
    double num, soma, media;
    contar = 0;
    soma = 0;
    cin >> num;
    while(num >=0)
    {
        contar = contar + 1;
        soma = soma + num;
        cin >> num;
    }
    media = soma/contar;
    cout << media;
    return 0;
}
Anterior Índice Seguinte
Publicado em Algoritmo, Programação

Construção de algoritmos em Pseudocódigo – Entrada e Saída de Dados

Finalmente, para sermos capazes de escrever um algoritmo, vamos necessitar de realizar as operações de entrada (input) e saída(output) de dados.

Por uma questão de simplificação, vamos assumir que as entradas de dados são feitas através do teclado.

Da mesma forma, as saídas de dados correspondem ao que é enviado para o ecrã do computador.

INOUTPUT

Operação de entrada de dados (input)

Em pseudocódigo, vamos convencionar que o comando a utilizar de forma a realizar uma entrada de dados é:

ler ( nomeDaVariável )

Exemplo 1 – Ler o valor da variável X a partir do teclado

ler ( X )

Exemplo 2 – Ler o valor das variáveis A e B a partir do teclado

ler ( A )

ler ( B )

ou

ler ( A, B )

Operação de saída de dados (output)

Da mesma forma, vamos convencionar que o comando a utilizar para realizar uma saída de dados é:

escrever( nomeDaVariável )

Exemplo 1 – Mostrar o valor da variável X no ecrã

escrever ( X )

Exemplo 2 – Mostrar o valor das variáveis A e B no ecrã

escrever ( A, B )

Anterior Índice Seguinte
Publicado em Algoritmo, Programação

Construção de algoritmos em Pseudocódigo – Tipos de dados

Na linha do que afirmei anteriormente, quando apresentei a noção de variável, a uma variável corresponde a seguinte analogia.

exemplocantudovariavelAgora será necessário especificar o tipo de “caixa” que vamos utilizar, consoante aquilo que pretendemos armazenar.

Assim sendo, vamos necessitar de “caixas” próprias para números inteiros, outras para números reais e ainda outras para dados do tipo texto.

Isto significa que a cada variável ficará associado um “tipo de dados”.

Os principais, e sem esgotar todas as possibilidades, são:

  • Inteiro
  • Real
  • Texto

A imagem anterior ficaria assim.

exemplotipodados

Naturalmente que, outras variáveis, de diferentes tipos, poderão ser utilizadas consoante o algoritmo que estamos a escrever.

exemplovariaveis2No início do algoritmo, utiliza-se a lista de variáveis para indicar os nomes e os tipos da variáveis utilizadas no algoritmo.

 

Índice
Publicado em Algoritmo, Programação

Construção de algoritmos em Pseudocódigo – Noção de variável

“Uma variável é uma localização de memória, identificada por um nome, onde é armazenada uma determinada informação.”

Vou utilizar uma analogia muito simples para tentar explicar este conceito.

Vamos supor que as variáveis são como caixas de papelão, onde podemos guardar informação.

Sendo assim, a imagem seguinte representaria uma variável.

variavelComo se pode ler na definição, todas as variáveis têm um nome, ou identificador.

Sendo assim, a figura seguinte representa as variáveis, valor1, valor2 e soma.

exemplovariaveisvalor1, valor2 e soma são os respetivos identificadores.

Naturalmente que não existem caixotes de papelão nos circuitos de memória do computador mas, admitindo a analogia, a nossa RAM (memória primária) vista à lupa, iria conter.ramalupaDesta forma, um algoritmo que leia dois valores e calcule a respetiva soma iria fazer a seguinte utilização da memória.

exemplocantudovariavelNote que os números 4 e 3 seriam fornecidos pelo utilizador, durante a execução do algoritmo, sendo o valor 7 obtido a partir deste.

Mais à frente veremos que existem diferentes tipos de dados, logo diferentes tipos de “caixas de papelão”, bem como a forma de guardar e retirar dados destas caixas.

Índice
Publicado em Algoritmo, Programação

Construção de algoritmos em Pseudocódigo – Estrutura genérica de um algoritmo

Os nossos algoritmos iniciais vão obedecer à seguinte estrutura:

  1. Título: Nome
  2. Descrição: Descrição
  3. Lista de variáveis: Variáveis
  4. Indicação do início da execução do algoritmo: Início
  5. Corpo do algoritmo:
  6. Inficação do fim da execução do algoritmo: Fim

Nome

Deve ser um nome curto e que, na medida do possível, indique o que faz o programa.

Por exemplo, para um algoritmo que calcula a soma de dois números teríamos.

Bom exemplo: soma2, soma_ab, a_mais_b

Menos bom: calcular_a_soma_de_dois-números

Mau exemplo: programa

Descrição

Pretende-se obter aqui uma descrição sucinta a respeito do que faz este algoritmo.

Por exemplo:

Dados dois valores inteiros, este algoritmo calcula a respetiva soma.

Variáveis

Nesta secção vamos indicar os nomes, e respetivos tipos, das variáveis que pretendemos utilizar no algoritmo.

Esta deve ser pensada antes de se iniciar a criação do corpo do algoritmo propriamente dito mas, diz a experiência, é sempre bom reservar algum espaço para acrescentar variáveis de última hora!

Início

Serve apena para indicar que se vai iniciar a execução do algoritmo. Assim sendo, a linha seguinte contém a primeira instrução.

 … “Corpo do algoritmo”

Contém várias linhas, cada uma contendo uma ou mais instruções a executar.

Fim

Assinala o fim da execução do algoritmo.

Segue-se um exemplo de um algoritmo, escrito de acordo com esta convenção.

Nome soma2
Descrição
    Dados dois valores inteiros, calcula e apresenta a sua soma.
Variáveis
    valor1, valor2, soma:Inteiros
Início
    Ler(valor1)
    Ler(valor2)
    soma ← valor1 + valor2
    Escrever(soma)
Fim

Naturalmente que, de forma a compreender na íntegra o exemplo apresentado, falta adquirir algumas competências, nomeadamente:

  • noção de variável (valor1 e valor2)
  • tipos de dados associados a uma variável (Inteiros)
  • operação de leitura de dados ou input ( Ler() )
  • operação de atribuição ( ← )
  • operação de escrita de dados ou output ( Escrever() )
Índice
Publicado em Algoritmo, Programação

Construção de algoritmos em Pseudocódigo

A respeito da definição de algoritmo, como eu já tinha referido anteriormente aqui, temos:

“Um algoritmo é uma sequência ordenada de passos precisos que descrevem a solução de um determinado problema.”

(Treamblay & Bunt, p.19)

Partindo do pressuposto de que existem inúmeras formas de descrever um algoritmo, vou tentar sistematizar uma delas, a que passaremos a designar de pseudolinguagem ou pseudocódigo.

# 1 – Estrutura genérica de um algoritmo

# 2 – Construção de algoritmos em Pseudocódigo – Noção de variável

# 3 – Tipos de dados

# 4 – Operação de atribuição

#5 – Entrada e Saída de Dados

#6 – Estrutura de decisão: se… então… senão… fimse

#7 – Estrutura de seleção: selecionar caso … fimselecionar

#8 – Estrutura de repetição: enquanto … fazer … fimfazer

Observações:

Este é um trabalho em progresso.

Serão acrescentados novos elementos à medida que forem sendo abordados.