top of page

UFCD 0134

ALGORITMIA

Textos e materiais retirados do livro "Aplicações Informáticas B - 12ºAno", Porto Editora, Autores Dalila Fonseca; Deolinda Pacheco; Fernando Marques; Ricardo Soares

1. INTRODUÇÃO
1.1 Linguagens naturais e linguagens formais

Linguagem - forma de comunicação, que utiliza símbolos e determinadas regras para os combinar.

Linguagens naturais

  • linguagem falada ou escrita

  • não foram projetadas pelas pessoas

  • são passíveis de várias interpretações e sofrem transformações naturais ao longo do tempo

Linguagens formais

  • são previamente projectáveis para determinados fins

  • são desenvolvidas de forma a evitar a ambiguidade e a redundância

Assim as linguagens de programação, entendidas pelos computadores, são linguagens formais construídas, isto é, do tipo formal:

Linguagem de programação: Sistema de escrita formal, constituído por um conjunto de regras para a escrita de programas de computador

Programa: conjunto de instruções numa linguagem de programação

Instrução: especificação ao processador da ação a executar

Existem milhares de linguagens de programação, estando divididas em dois níveis:

- baixo nível: quando a sua linguagem se aproxima mais da linguagem-máquina

- alto nível: quando a sua linguagem se aproxima mais da linguagem-humana. Estas linguagens necessitam de um interpretador para converter em linguagem-máquina, de forma ao computador compreender as instruções.

1.2 Algoritmos e pseudocódigo 

Uma linguagem de programação tem como objetivo expressar um processo que, com o auxilio do computador, tende a resolver um problema.

Para resolver o problema é preciso criar um programa numa linguagem escolhida. 

No entanto, para efetuar a passagem do problema para o programa, convém elaborar um algoritmo que possibilite a compreensão e a descrição do problema e que seja de fácil conversão para qualquer linguagem de programação.

Sendo assim, um algoritmo é uma sequência finita de instruções descritas de forma lógica, ordenada, clara e precisa a fim de resolver o problema.

Um algoritmo pode ser escrito com o auxílio de uma linguagem natural, utilizando expressões precisas. Mas existem outros modos de especificação, nomeadamente o fluxograma e o pseudocódigo.

No fluxograma utiliza-se uma representação gráfica.

No pseudocódigo utiliza-se uma representação textual (português estruturado)

Os fluxogramas utilizam símbolos gráficos para representar o fluxo das ações necessárias para resolver um problema, tal como é apresentado no quadro seguinte:

Os pseudocódigos utilizam uma representação textual (narrativa) constituída por palavras da linguagem natural e pela sintaxe característica das linguagens  de programação estruturada.

Não existe uma notação standard do pseudocódigo, mas o quadro seguinte apresenta alguns elementos presentes numa linguagem de programação estruturada e que servem de base também às notações do pseudocódigo.

Para construir um algoritmo é necessário:

  1. compreender o problema (o que se pretende)

  2. identificar os dados de entrada (os dados que são fornecidos e a sua situação inicial)

  3. identificar os dados de saída (os dados resultantes do processamento)

  4. identificar as operações de processamento (os cálculos e as restrições para a obtenção dos dados de saída a partir dos dados de entrada)

  5. elaborar o algoritmo, definindo:

  • as variáveis necessárias para armazenar as entradas e efetuar o processamento;​

  • as instruções necessárias

   6.  testar o algoritmo​

Numa abordagem estruturada, os programas podem ser divididos em duas partes:

  1. declaram-se, por exemplo, os dados e as variáveis

  2. definem-se as instruções que caracterizam as operações necessárias para atingir os objetivos

EXEMPLO: somar dois números

2. CONCEITOS FUNDAMENTAIS
2.1 Introdução

O computador é uma máquina constituída por hardware e software, que tem a capacidade de receber, armazenar e fornecer dados, depois de processados, de forma automática, rápida e precisa.

2.2. Dados 

Um dado é uma informação processada por um programa de computador. Os dados são classificados (divididos) em 2 grandes categorias:

Dados simples

Dados estruturados

 

1. Dados Simples

São classificados em:

  • Números Inteiros (Integer)

  • Números Reais (Double)

  • Caracteres (String)

  • Lógicos (Boolean)

 

2. Dados Estruturados

São conjuntos de dados simples. Estão divididos em:

  • Arrays

  • Registos


Números Inteiros (Integer)

São valores numéricos, positivos ou negativos, sem a parte decimal (vírgula).

Os números inteiros podem representar valores de notas do aluno, idades de pessoas, distâncias em km, temperaturas, pontos de uma equipa, etc. Exemplos:

10
33
300
-5
0
100000

 

Números Reais (Double)

São valores numéricos, positivos ou negativos, com ponto decimal.

Podem ser valores de média de notas do aluno, valor de pi, comprimento microscópico de uma célula, etc. Exemplos:

431.82
3.1415
0.00012
-0.5
10000.001

Caracteres (String)

São valores alfanuméricos, isto é, conjuntos de caracteres que podem ter letras, números e outros caracteres. Estes dados têm, obrigatoriamente, o sinal de aspas (“) no princípio e no fim.

Os dados que têm letras e caracteres especiais, como nomes e moradas, são sempre do tipo STRING. Exemplos:

“Escola Secundária“

“10º ano”

“5 de Outubro de 1910“

“22º Centígrados“

““

“P.S.I. “

 

Lógicos (Boolean)

Os dados lógicos têm apenas 2 valores possíveis:

Verdadeiro (True)

Falso (False)

 

-----

2.3 Variáveis e constantes

 

Os dados dos programas podem ser de 2 tipos:

1. Variáveis

2. Constantes

 

1. Variável

É um dado que pode ser alterado durante o programa.

 

2. Constante

É um dado que nunca é alterado durante o programa.

 

Variáveis e constantes guardam os valores utilizados nos programas. As variáveis e as constantes têm um nome chamado identificador. Exemplos:

  Largura

  Comprimento

  Area

  Idade

  Temperat

  Nome_Aluno

  Media

  C

  N1

 

As constantes são criadas e recebem um valor “fixo” durante um programa. Exemplos:

  Max = 100

  IVA = 0.23

  Pi  = 3.1415

 

Regras no nome de uma variável

O nome de uma variável:

1. Pode ter letras (maiúsculas ou minúsculas), algarismos e o símbolo underscore (para separar duas ou mais palavras).

2. Tem que começar por uma letra.

3. Não pode ter símbolos nem espaços. Exemplo: * + > < ( ) # ! ; , . : “ - & €

4. Deve evitar caracteres acentuados (regra não obrigatória).

5. Deve ter um máximo de 255 caracteres (é aconselhado não usar muitos caracteres para evitar erros).

6. Deve ser significativo (corresponder à sua função).

 

Exemplos de nomes válidos para variáveis:

Aluno

Idade

Comprimento

Area

Temperat

Temperatura_maxima    (é válido mas não deve ser utilizado porque tem muitos caracteres)

Xyz   (é válido mas não deve ser utilizado porque não é significativo)

Área  (é válido mas não deve ser utilizado porque tem um carácter com acento)

 

Exemplos de nomes não válidos:

1aluno  (não começa por uma letra)

Idade pessoa   (tem espaço)

Tempº  (tem símbolo)

C*L  (tem símbolo)

Atribuir valores a variáveis

Utiliza-se o símbolo = para atribuir valores. Atribuir significa guardar um valor numa variável. Exemplos:

idade = 15

nome = “João“

media = 13.6

nomeAluno = TextBox1.Text

comp = TextBox1.Text

larg = TextBox2.Text

area = comp * larg

 

Operadores 

Existem 3 tipos de operadores :

1. Aritméticos

2. Relacionais ou de comparação

3. Lógicos

 

1. Operadores Aritméticos

São utilizados para efectuar cálculos:

+  Somar

-  Subtrair

*  Multiplicar

/  Dividir

^  Expoente

 

2. Operadores Relacionais 

Servem para comparar 2 valores:

=  Igual a

>  Maior que

<    Menor que

>=  Maior ou igual a

<=  Menor ou igual a

<>  Diferente de

 

3. Operadores lógicos

Utilizados para avaliar várias expressões:

AND  ‘e’

OR  ‘ou’

NOT  ‘não’

 

Exemplos:  

   nota > 9 AND nota <= 20  … se a nota for positiva…

   localidade = “porto” OR localidade = “PORTO”

   NOT Nota >= 10  … se a nota não for positiva…

 

Expressões

Expressões são cálculos feitos com números, variáveis e operadores.  

O valor calculado nas expressões é guardado numa variável.

 

Exemplo 1:

  idade1 = 18

  idade2 = 17

  media = (idade1 + idade2) / 2

 

Exemplo 2:

  preco = 8.50

  ValorIva = preco * 0.23 

 

Prioridade de operadores aritméticos

As expressões são calculadas atendendo à prioridade dos operadores.

As operações numa expressão são calculadas pela seguinte ordem:

1.Expoente ^

2.Multiplicação e divisão *  /

3.Soma e subtracção  + -

Os parêntesis permitem alterar a ordem natural dos operadores. Exemplo:

  1 + 3 * 3  … = ?

 (1 + 3) * 3  … = ?

---------------------------------------------------------------------------------------------------------------------------

Exercício de aplicação 3
---------------------------------------------------------------------------------------------------------------------------

1. Identifique os tipos de dados seguintes (Inteiro, real, caracteres ou lógico):

a) 545

b) “15 pontos”

c) -123

d) 10.1

e) -0.1

f) False

g) “a”

h) 1000

i) “Portugal”

j) True

k) 500.01

l) “123”

m) “Falso”

2. Indique qual o tipo de dados que se deve utilizar para guardar:

a) Idades de pessoas

b) Moradas e localidades

c) Preços de produtos

d) Notas de testes

e) Nomes de países

f) Altura, em metros, de pessoas

g) Médias de valores

h) Marcas de automóveis

i) Telefones

3. Indique se o nome de cada variável seguinte é Válido, Não é válido ou Válido mas não deve ser utilizado. Caso não seja válido, explique porquê.

a) nota

b) Peso1

c) Taxaiva

d) Primeiro aluno

e) Escola secundária

f) Melhor_nota

g) 40kms

h) %desconto

i) Distancia_percorrida

j) p1p

k) Estação

l) xp12ahz

m) pi

n) mes2

o) Ano2011

p) www.facebook.com

4. Calcule o valor das seguintes expressões:

a) valor = 5 * 4 + 2

b) a = 10 / 2 * 4

c) b = (3 + 4) * 3 

d) c = 2 ^ 3

e) d = 4 + 8 / 2

f) media = (4 + 8) / 2

g) e = 3 + 6 * 5 – 10 / 2 - 5 ^ 2

h) f = 2 * (3 – 1 + 4 * 2) ^ 2

5. Dadas as expressões, calcule o valor da variável final:

a)   Idade1 = 17

      Idade2 = 14

      Media = (Idade1 + Idade2) /2

b) Preco = 100

    Iva = 0.23

    PrecoFinal = Preco + Preco * Iva

c) N1 = 3

    N2 = 2

    N3 = 1

    Dinheiro = 5 * N1 + 10 * N2 + 20 * N3

---------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------

2.4 Operadores e expressões 

Os operadores são elementos matemáticos que atuam sobre os operandos (variáveis e constantes), numa determinada expressão.

As expressões, por sua vez, são uma combinação de operandos e operadores e que, uma vez resolvidas, resultam num determinado valor.

2.4.1 Operadores aritméticos

Os operadores aritméticos permitem a realização de operações matemáticas com valores do tipo numérico, cujo resultado é ainda um valor do tipo numérico.

2.4.2 Operadores relacionais

Os operadores relacionais sao usados para efetuar comparações entre expressões, resultando sempre um dos valores lógicos, true (verdadeiro) ou false (falso).

2.4.3 Operadores lógicos

Os operadores lógicos realizam operações lógicas, devolvendo sempre um dos valores lógicos, true ou false.

Os resultados apresentados no quadro acima, têm por base os valores das tabelas de verdade de cada operador lógico, apresentado no seguinte quadro:

2.4.4 Prioridades dos operadores

Em expressões com vários operadores matemáticos, é necessário conhecer as regras de prioridade para obter os resultados corretos. 

Importa referir que, tal como na matemática, o uso de parêntesis nas expressões dá prioridade às operações que se encontram dentro destes relativamente a outras que se encontram fora de parêntesi

-------------------------------------------------------------------------------------------------------------------------

Exercício de aplicação 4

-------------------------------------------------------------------------------------------------------------------------

3. TESTE E CONTROLO DE ERROS EM ALGORITMIA

O teste e controlo de erros num algoritmo permitem verificar se este resolve o problema pretendido. Para isso, utiliza-se a técnica de tracing (traçagem), que permite acompanhar passo-a-passo a execução do algoritmo, eliminando, desta forma, a possibilidade de erros.

tracing consiste, assim, em testar um algoritmo com valores de entrada, observando o comportamento interno ao longo dos vários passos que compõem o algoritmo.

Na implementação desta técnica, começa-se por criar uma tabela (ver abaixo). Depois, coloca-se na primeira linha as variáveis, as condições ou expressões lógicas e as operações que se pretendem testar. De seguida, vão-se enumerando os passos na primeira coluna. Por último, preenche-se a tabela passo a passo, atribuindo às variáveis b os valores de entrada 5, respetivamente, e executando as operações presentes no algoritmo:

-------------------------------------------------------------------------------------------------------------------------

Exercício de aplicação 5

-------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------

Exercício de aplicação 6

-------------------------------------------------------------------------------------------------------------------------

1. Considere o seguinte algoritmo, que permite calcular o perímetro de um triângulo equilátero:

Algoritmo equilatero;

Variáveis lado, perimetro: inteiro;

Início

Escrever ("Introduza o valor:");

Ler(lado);

perimetro <- lado * 3;

Escrever("Triângulo equilátero, lado=", lado," e perímetro=", perimetro);

Fim.

2. Preencha a tabela seguinte, identificando os elementos relativos à traçagem deste algoritmo, considerando os seguintes valores de entrada:

2.1 lado = 24

2.2 lado = 13

            lado.   perimetro <- lado * 3    Saída

1º passo    a)

2º passo    24      b)  

3º passo    c)      72                       Triângulo equilátero, lado=24 e perímetro=72

 

1º passo    13

2º passo    13      d) 

3º passo    13      39                       e) 

3. Considere o algoritmo que se segue, que permite efetuar a leitura de três valores inteiros e calcular o triplo do primeiro valor, o produto do segundo valor com o terceiro e o quadrado do terceiro valor.

Algoritmo calcula_1;

Variáveis a, b, c, triplo, produto, quadrado: inteiro;

Início

Ler(a);

Ler(b);

Ler(c);

triplo <- a * 3;

produto <- b * c;

quadrado <- c ^ 2;

Escrever("O triplo de ", a, " é: ", triplo);

Escrever("O produto de ", b, " com ", c, " é: ", produto);

Escrever("O quadrado de ", c, " é: ", quadrado);

Fim.

Efetue a traçagem do algoritmo anterior, considerando os seguintes valores de entrada de dados:

[10,3,5] e [8,-1,0]

4. Considere o algoritmo que se segue, que permite calcular o quíntuplo da soma do dobro de dois números inteiros.

Algoritmo Quintuplo;

Variáveis num1, num2, soma_quad, quintuplo: inteiro;

Início

Escrever("Quais os números?");

Ler(num1, num2);

soma_quad <- num1 * 2 + num2 * 2;

quintuplo <- soma_quad * 5;

Escrever("O resultado da operação é: ", quintuplo);

Fim.

Apresente a traçagem para os seguintes valores

4.1.   num1=5   e   num2=3

4.2.   num1=10 e   num2=5

Teste

4. Instruções em Visual Basic
  • Declaração de variáveis

  • Instruções de Input (entrada de dados)

  • Instruções de Processamento

  • Instruções de Output (saída de resultados)

 

Exemplo:

Pretende-se calcular a área de um retângulo através dos valores do comprimento e da largura.

 

Declaração de variáveis

Declarar uma variável significa informar que o programa vai utilizar essa variável. Dim … As serve para declarar uma variável.

Depois da palavra As indica-se o tipo de dados que a variável vai guardar.

  • Dim Comprim As Integer             Declara a variável Comprim para guardar nºs inteiros

  • Dim Largura As Integer               Declara a variável Largura para guardar nºs inteiros

  • Dim Area As Integer                    Declara a variável Area para guardar nºs inteiros

 

Outros Exemplos:

  • Dim nome As String                       Declara a variável Nome para guardar caracteres

  • Dim media As Double                     Declara a variável Media para guardar n.ºs reais

  • Dim aprovado As Boolean              Declara a ...

 

Instruções de Input

Estas instruções permitem guardar numa variável o valor introduzido num objeto pelo utilizador

Variável = Objeto.Propriedade

 

Comp = TextBox1.Text  Guarda na variável Comp o valor escrito pelo utilizador no objeto TextBox1

Larg = TextBox2.text    Guarda na variável Larg o valor da TextBox2

 

 

 

 

Instruções de Processamento

São instruções que permitem efetuar os cálculos aritméticos e lógicos

 

Area = Comp * Larg         Guarda na variável Area a operação de multiplicação

 

Instruções de Output

Estas instruções permitem escrever dados calculados pelo computador no ecrã

Objeto.Propriedade = Valor

 

Label3.Text = Area          Escreve no objeto Label 3 o valor guardado na variável Area

 

Outros Exemplos:

Label1.Text = “Olá Mundo!”      Escreve na Label a frase indicada entre aspas

Label1.Text = “”                        Apaga o texto que estiver escrito no objeto label 

Funções diversas

textbox1.clear               limpar o conteúdo de uma textbox  

   

math.sqrt(num)            calcula a raiz quadrada de um número

math.round(num, n)     faz o arredondamento do num para n casas decimais

                                       exemplo: sendo num=15,256 então math.round(num, 1) dará o resultado de15.3

EXERCÍCIOS PRÁTICOS

Para cada um dos programas construa o Algoritmo (Pseudocódigo Fluxograma) e por fim o programa em VisualBasic

ESTRUTURAS DE DECISÃO
If...Then...Else
Select Case ...

1

If...Then...Else

2

Select Case

3

Objecto ScroolBar

4

Objecto NumericUpDown

ESTRUTURAS DE REPETIÇÃO
For...Next

5

For...Next

bottom of page