• Nenhum resultado encontrado

Sebenta Algoritmia

N/A
N/A
Protected

Academic year: 2021

Share "Sebenta Algoritmia"

Copied!
50
0
0

Texto

(1)

E

E

E

E

E

E

E

E

s

s

s

s

s

s

s

s

c

c

c

co

c

c

c

c

o

o

o

o

o

o

o

llll

llll

a

a

a

a

a

a

a

a

S

S

S

S

S

S

S

S

e

ec

e

e

e

e

e

e

c

c

c

c

c

c

c

u

u

u

u

u

u

u

u

nd

n

n

n

n

n

n

n

d

d

d

d

d

d

d

á

á

á

á

á

á

á

á

rrrr

rrrr

iiii

iiii

a

a

a

a

a

a

a

a

d

de

d

d

d

d

d

d

e

e

e

e

e

e

e

E

E

E

E

E

E

E

E

rrrr

rrrr

me

m

m

m

m

m

m

m

e

e

e

e

e

e

e

s

s

s

s

s

s

s

s

iiiin

iiii

n

n

n

n

n

n

n

d

d

d

d

d

d

d

d

e

e

e

e

e

e

e

e

C

C

U

U

R

R

S

S

O

O

PROFISSIONAL DE TÉCNICO DE

INFORMÁTICA DE GESTÃO

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

L

L

I

I

N

N

G

G

U

U

A

A

G

G

E

E

N

N

S

S

D

D

E

E

P

P

R

R

O

O

G

G

R

R

A

A

M

M

A

A

Ç

Ç

Ã

Ã

O

O

1

1

0

0

º

º

A

A

N

N

O

O

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

UNIDADE 1

Algoritmia

Apontamentos

A

A

n

n

o

o

L

L

e

e

c

c

t

t

i

i

v

v

o

o

2

2

0

0

1

1

0

0

/

/

2

2

0

0

1

1

1

1

(2)

E

E

l

l

e

e

n

n

c

c

o

o

T

T

e

e

m

m

á

á

t

t

i

i

c

c

o

o

Lógica de Programação

 Análise e desenho de um algoritmo.  Tipos de dados.  Operações elementares.  Prioridade de operadores.  Variáveis e expressões.  Traçagem de algoritmos.  Fluxogramas.  Pseudocódigo. • Estrutura de decisão  Estrutura Sequencial.  Estrutura Condicional.  Estrutura de Repetição.  Algoritmos de aplicação. • Estrutura de Dados  Vectores.  Matrizes.

(3)

1

1

1

1

L

L

Ó

Ó

G

G

I

I

C

C

A

A

D

D

E

E

P

P

R

R

O

O

G

G

R

R

A

A

M

M

A

A

Ç

Ç

Ã

Ã

O

O

Objectivos

 Iniciar o aluno nos conceitos da programação estruturada.

 Decompor um problema nas suas partes elementares através da técnica TOP-DOWN.

 Traduzir expressões matemáticas para computação e vice-versa.

 Realizar algoritmos simples.

 Verificar a eficiência dos algoritmos através da técnica de traçagem.

L

L

ó

ó

g

g

i

i

c

c

a

a

A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequência lógica para o desenvolvimento.

Lógica de programação é a técnica de encadear pensamentos para atingir determinado objectivo.

S

S

e

e

q

q

u

u

ê

ê

n

n

c

c

i

i

a

a

L

L

ó

ó

g

g

i

i

c

c

a

a

Estes pensamentos, podem ser descritos como uma sequência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa.

Sequência Lógica são passos executados até atingir um objectivo ou solução de um problema.

I

I

n

n

s

s

t

t

r

r

u

u

ç

ç

õ

õ

e

e

s

s

Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”.

Em informática, porém, instrução é a informação que indica a um computador uma acção elementar a executar.

Convém ressaltar que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica.

Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc.

É evidente que essas instruções têm que ser executadas numa ordem adequada – não se pode descascar as batatas depois de fritá-las.

Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correcta.

(4)

Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma acção elementar a executar.

A

A

l

l

g

g

o

o

r

r

i

i

t

t

m

m

o

o

Antes de utilizarmos uma linguagem de computador, é necessário organizar as acções a serem tomadas pela máquina de forma organizada e lógica, sem nos atermos as regras rígidas da sintaxe de uma linguagem. Para isto utilizaremos uma forma de escrever tais acções, conhecida como algoritmo.

Algoritmo consiste em um conjunto lógico e finito de acções (instruções) que resolvem um determinado problema.

Algoritmo é uma sequência lógica de instruções que podem ser executadas.

Um algoritmo é formalmente uma sequência finita de instruções que levam à execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjectivas na sua definição, devem ser claras e precisas.

Como exemplos de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtracção) de números reais decimais. Outros exemplos seriam os manuais de aparelhos electrónicos, como um vídeo, que explicam passo-a-passo como, por exemplo, gravar um filme.

Até mesmo as coisas mais simples, podem ser descritas por sequências lógicas. Por exemplo:

“Chupar um rebuçado”: 1. Pegar no rebuçado 2. Retirar o papel 3. Chupar o rebuçado 4. Deitar o papel no lixo “Somar dois números”:

1. Escrever o primeiro número 2. Escrever o segundo número

3. Somar o primeiro número com o segundo número 4. Devolver o resultado

Se analisarmos os diversos algoritmos, verificamos que contêm características comuns. São elas:

descrição sequencial (ordenada), cada passo corresponde a uma acção elementar clara, não devendo ocasionar ambiguidade na sua interpretação;

(5)

Algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Algoritmo é um caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos.

Aprender algoritmos não se consegue a não ser através de muitos exercícios. Algoritmos não se aprende:

Copiando Algoritmos

Estudando Algoritmos

Algoritmos só se aprendem:

Construindo Algoritmos

Testando Algoritmos

Regras para construção do Algoritmo

Para escrever um algoritmo precisamos de descrever a sequência de instruções, de maneira simples e objectiva. Para isso utilizaremos algumas técnicas:

• usar somente um verbo por frase;

• imaginar que se está a desenvolver um algoritmo para pessoas que não trabalham com informática;

• usar frases curtas e simples;

• ser objectivo;

• procurar usar palavras que não tenham sentido duvidoso.

Fases de um Algoritmo

É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo, como por exemplo “como fazer arroz doce” ou então “calcular o saldo financeiro de um stock”.

Entretanto ao construir um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais:

• ENTRADA: São os dados de entrada do algoritmo.

• PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final.

• SAÍDA: São os dados já processados.

Imagine o seguinte problema: Calcular a média final dos alunos. Os alunos realizarão 3 provas: P1, P2 e P3. Onde:

3 3 2 1 P P P MédiaFinal= + +

Para elaborar o algoritmo proposto, faremos três perguntas:

a) Quais são os dados de entrada?

R: Os dados de entrada são P1, P2 e P3

(6)

b) Qual será o processamento a ser utilizado?

R: O procedimento será somar todos os dados de entrada e dividi-los por 3: (P1+P2+P3)/3

c) Quais serão os dados de saída?

R: O dado de saída será a média final

O algoritmo seria:

Algoritmo Calcular Média do aluno 1. Receber a nota da prova1 2. Receber a nota de prova2 3. Receber a nota de prova3

4. Somar todas as notas e dividir o resultado por 3 5. Mostrar o resultado da divisão

Teste do Algoritmo

Após desenvolver um algoritmo ele deverá sempre ser testado. Deve-se seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correcto ou não. No exemplo do algoritmo anterior, para calcular a média final do aluno, podia-se utilizar a seguinte tabela para o teste:

P1 P2 P3 MédiaFinal

Explique o que entende por algoritmo.

P

P

r

r

o

o

g

g

r

r

a

a

m

m

a

a

s

s

Programar consiste em elaborar um conjunto finito de instruções, reconhecidas pela máquina, de forma que o computador execute estas instruções. Estas instruções possuem regras e uma sintaxe própria, como uma linguagem tipo português ou inglês, sendo isto chamadas de linguagem de programação.

No mundo computacional existe uma grande variedade de linguagens: Pascal, C, C++, Visual Basic, Cobol, Fortran, etc. Nós iremos focar uma delas, o Pascal.

Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de programação (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Notem que dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos da vida real.

(7)

Para fazer um programa devemos ter claro o algoritmo do nosso problema. Portanto, primeiro há que estudar o problema e elaborar o seu algoritmo.

Uma vez estabelecido o seu algoritmo podemos, então, passar para a sua implementação numa linguagem de programação e assim testar o programa no computador.

Concluindo, a construção de um programa comporta duas fases fundamentais:

• fase de resolução do problema - consiste na formulação do algoritmo eficaz para a resolução do problema posto;

• fase de implementação - consiste na tradução do algoritmo para a linguagem de programação escolhida.

Como exemplo, é apresentado o algoritmo e sua tradução em linguagem Pascal, do cálculo do múltiplo de um número.

Algoritmo do cálculo dos múltiplos de um número:

1. Anotar o limite dos múltiplos (limite)

2. Anotar o número do qual se quer saber os múltiplos (número) 3. O primeiro múltiplo é o próprio número (múltiplo = número) 4. Enquanto o múltiplo for menor que o limite indicado fazer:

4.1. Anotar o múltiplo

4.2. O novo múltiplo será igual ao múltiplo anterior mais o número (múltiplo = múltiplo + número)

5. Fim do algoritmo.

program Multiplos (input, output);

{Este programa está escrito na linguagem PASCAL};

var Limite : integer;

Numero : integer; Multiplo : integer;

begin

write (‘Qual o valor de que se quer achar os múltiplos? ‘); readln (Numero);

write (‘Qual é o limite da sequência? ‘); readln (Limite);

writeln (‘Os múltiplos de ‘,Numero, ’ são: ‘); Multiplo := Numero;

while Multiplo < Limite do begin

writeln (Multiplo);

Multiplo := Multiplo + Numero;

end; end.

(8)

E

E

x

x

e

e

r

r

c

c

í

í

c

c

i

i

o

o

s

s

1. Construa o algoritmo para calcular a área de um rectângulo.

Algoritmo área do rectângulo

1. Entrar pelo teclado o valor do lado1 2. Entrar pelo teclado o valor do lado2 3. Calcular a área A = lado1 x lado2 4. Apresentar no ecrã o valor da área

2. Faça um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número.

3. Crie uma sequência lógica para tomar banho.

4. Descreva com detalhes a sequência lógica para trocar um pneu de um carro.

5. Faça um algoritmo detalhado para trocar uma lâmpada.

6. Algoritmo do calculo da hipotenusa de um triângulo rectângulo.

Temos que saber a fórmula:

2 2

2

1

cateto

cateto

hipot

=

+

Além da fórmula, temos que dar ao computador os valores dos catetos do triângulo.

7. Construa um algoritmo que transforme os valores da temperatura em graus Fahrenheit para graus Célsius.

Tente resolver este problema, sabendo que a fórmula a aplicar será:

(

32

)

9

5

×

=

fahr

celsius

8. Identifique os dados de entrada, processamento e saída no algoritmo seguinte:

1. Receber código da peça 2. Receber valor da peça

3. Receber quantidade de peças

4. Calcular o valor total da peça (quantidade * valor da peça) 5. Mostrar o código da peça e seu valor total

9. Faça um algoritmo para “Calcular o stock médio de uma peça”, sabendo que STOCK_MÉDIO = (QUANTIDADE_MÍNIMA + QUANTIDADE_MÁXIMA) /2

(9)

A

A

b

b

o

o

r

r

d

d

a

a

g

g

e

e

m

m

E

E

s

s

t

t

r

r

u

u

t

t

u

u

r

r

a

a

d

d

a

a

e

e

C

C

o

o

n

n

c

c

e

e

p

p

ç

ç

ã

ã

o

o

T

T

o

o

p

p

-

-

D

D

o

o

w

w

n

n

Abordagem Estruturada

Numa linguagem estruturada como por ex. o Pascal distingue-se a parte onde são declarados os dados e o corpo com as instruções do programa – parte declarativa e parte operativa.

Abordagem estruturada é uma abordagem sistemática da construção de software que usa princípios como a separação das definições de dados e de programa, concepção descendente (designado por abordagem top-down) e refinamento progressivo.

Concepção Top-Down

A abordagem top-down procura identificar os pontos essenciais da questão; parte-se dos pontos mais gerais para os seus componentes mais particulares, em níveis sucessivos mais concretos, até ao nível de pormenor desejado.

P

P

s

s

e

e

u

u

d

d

o

o

c

c

ó

ó

d

d

i

i

g

g

o

o

Por pseudocódigo entende-se um código de escrita em que se utilizam representações simbólicas para indicar as instruções do algoritmo. Essas representações simbólicas são, usualmente, um misto de palavras da nossa linguagem natural com termos e notações típicas de uma linguagem de programação.

O uso da escrita em pseudocódigo presta-se a uma aproximação sucessiva à versão do algoritmo na linguagem utilizada, ou seja, pode-se ir progredindo por fases, revendo o pseudocódigo e substituindo-o progressivamente por terminologia própria da linguagem de programação.

Não é demais relembrar que, depois de efectuar o algoritmo, deve-se verificar se está escrito sem falhas do ponto de vista dos objectivos que se pretendiam alcançar, por imprecisões, deficiente formulação algorítmica, vícios de raciocínio, etc.

O pseudocódigo pode ser visto como a tentativa de fundir a expressividade da linguagem natural e o rigor lógico de esquemas como o fluxograma.

O pseudocódigo permite a descrição do algoritmo de uma forma linear, fácil de ler e fácil de compreender.

Os algoritmos terão a seguinte estrutura: Algoritmo <Nome do algoritmo>

<Definições/Declarações de Variáveis e Constantes>

Início

<Instruções>

Fim

(10)

PROGRAM <Nome do programa>;

<Definições/Declarações de Variáveis e Constantes>;

BEGIN

<Instruções>;

END.

O algoritmo, em pseudocódigo, deve estar enquadrado entre dois indicadores que possibilitem determinar onde o algoritmo começa e acaba. Assim, aparecem as instruções Início e Fim.

Atribuição

Esta operação tem por objectivo atribuir um valor a uma variável. A variável funciona como um recipiente em que vão ser colocados dados.

Temos de criar tantas variáveis (recipientes) quantas as forem necessárias para o correcto funcionamento do algoritmo.

A operação de atribuição coloca o dado na variável.

Exemplo: X  B/A (na variável X é colocado o valor de B/A)

Leitura e Escrita de Dados

A instrução Escrever é utilizada para apresentar os dados ao utilizador.

Exemplo: Escrever(‘O valor da área é: ’, área)

A instrução Ler é utilizada para introduzir dados no computador através do operador. Estes dados são afectados a variáveis.

Exemplo: Ler(A, B)

Vejamos um exemplo em pseudocódigo do algoritmo da circunferência e vamos descrever a sua apresentação:

Algoritmo circunferência

[Este algoritmo dá as características de uma circunferência]

Dados

RAIO: Inteiro

ÁREA, PERÍMETRO: Reais PI  3,14159

Início

Ler (RAIO)

ÁREA  PI x RAIO2

PERÍMETRO  2 x PI x RAIO Escrever (ÁREA, PERÍMETRO)

Fim

(11)

• Cabeçalho

• Declarações

• Corpo do algoritmo

Cabeçalho

O cabeçalho é a secção onde é dado o nome ao algoritmo. Começa com a palavra “Algoritmo”.

Declarações

Nesta, é apresentada a descrição das variáveis e constantes usadas.

Corpo do algoritmo

Esta secção contém a sequência das instruções (acções) do algoritmo. Inicia-se com a palavra “Início” e termina com a palavra “Fim”.

Comentários

Existe um tipo de objecto de grande importância na clarificação de um algoritmo. São os comentários que ajudam muito à sua compreensão.

Cada passo do algoritmo pode iniciar com um comentário entre dois parênteses rectos. Estes comentários dão uma breve descrição da instrução ou de um conjunto de instruções seguintes.

Os comentários são uma parte importante do algoritmo. Eles servem para tornar a leitura, do algoritmo, mais fácil e clara.

F

F

l

l

u

u

x

x

o

o

g

g

r

r

a

a

m

m

a

a

s

s

O fluxograma é uma forma padronizada e eficaz para representar as instruções lógicas de um determinado processamento.

Com o fluxograma podemos definir uma sequência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento. Actualmente, a sua utilização restringe-se a um apoio complementar na documentação do algoritmo, valendo pela vantagem gráfica da apresentação das interligações.

Simbologia

Existem diversos símbolos num fluxograma. Vamos apresentar os mais utilizados. Vejamos de seguida alguns dos símbolos que iremos utilizar:

Processamento em geral (ex.

soma de dois números) Decisão condicional

Leitura/Escrita de dados (ex. escrever a nota da prova escrita)

(12)

Início/Fim de processamento

(ex. inicio do algoritmo) Subprograma

Conector de fluxos (ex. Ligação entre partes do fluxograma)

Linha de fluxo

Dentro de cada símbolo terá sempre algo escrito, pois caso contrário não nos dizem nada. Vejamos o seguinte exemplo, na linguagem pseudocódigo e respectivo fluxograma, que faz a comparação de dois números:

(13)

Inicio

Ler valor1

Ler valor2

Valor1>Valor2 Não Valor2>Valor2

Escrever "Valor1 é maior" Sim Escrever "Valor2 é maior" Sim Escrever "Valores iguais" Não Rotina Adeus Fim Algoritmo Comparar Dados

VALOR1, VALOR2: Inteiros FRASE: Caracteres

Início

Ler (VALOR1, VALOR2) Se VALOR1 > VALOR2 então

FRASE  ‘Valor1 é maior’

Senão

Se VALOR1 < VALOR2 então

FRASE  ‘Valor2 é maior’

Senão

FRASE  ‘Valores iguais’

Fim se Fim se

Escrever (FRASE) Chamar Rotina Adeus Fim

Fluxograma

(14)

C

C

o

o

n

n

s

s

t

t

a

a

n

n

t

t

e

e

s

s

,

,

V

V

a

a

r

r

i

i

á

á

v

v

e

e

i

i

s

s

e

e

T

T

i

i

p

p

o

o

s

s

d

d

e

e

D

D

a

a

d

d

o

o

s

s

Considere a fórmula simples de matemática do cálculo do volume de uma esfera: 2

3

4

R

V

=

π

.

Nesta fórmula pode-se encontrar:

1. Valores que podem ser classificados como:

a. valores constantes, invariantes em todas as aplicações da fórmula, no caso dos valores 4, 3 e π;

b. valores a serem substituídos na fórmula, em cada aplicação; a representação destes valores, usualmente é feita através de letras, que recebem o nome de variáveis e tornam a fórmula genérica, possível de ser aplicada para resolver uma certa classe de problemas e não apenas um problema específico.

2. Operações a serem feitas sobre determinados operandos (valores), para a obtenção da solução do problema.

O computador possui uma área de armazenamento conhecida como memória. Todas as informações existentes no computador estão ou na memória primária (memória RAM), ou na memória secundária (disco duro, disquete, CD-ROM etc.).

A memória do computador pode ser entendida como uma sequência finita de caixas ou gavetas de um armário, que num dado momento, guardam algum tipo de informação, como número, uma letra, uma palavra, uma frase etc..

O computador, para poder trabalhar como alguma destas informações, precisa saber onde, na memória, a informação está localizada. Fisicamente, cada caixa, ou cada posição de memória, possui um endereço, ou seja, um número, que indica onde cada informação está localizada. Este número é representado através da notação hexadecimal, tendo o tamanho de quatro, ou mais bytes.

Variáveis e constantes são os elementos básicos que um programa manipula. Muitos dos dados com que se opera num algoritmo são variáveis. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado.

Identificadores

As variáveis e constantes num algoritmo são designadas por meio de identificadores. Um identificador é um nome normalmente atribuído a um elemento com que se pretende trabalhar dentro de um algoritmo.

Um identificador é formado por uma letra ou então por uma letra seguida de letras ou dígitos. Não é permitido o uso de espaços em branco ou de qualquer outro caracter, que não seja letra ou dígito.

Se utilizar mais do que uma palavra para compor o nome da variável utilize o “_” underline para separar as palavras.

(15)

Por convenção, vamos escrever o nome dos identificadores em letras maiúsculas, para maior legibilidade do algoritmo.

A formação do identificador deve ser um nome significativo, para que se possa ter ideia do seu conteúdo.

Exemplos, apresentados numa tabela com possíveis entidades e os correspondentes identificadores das variáveis:

ENTIDADES IDENTIFICADORES

Nome do cliente NOME_CLIENTE

Morada dos clientes MORADA

Data em que foi feita a encomenda DATA

Quando se trata de variáveis, um identificador vai traduzir-se em termos de compilação, num endereço de memória, o qual corresponde a um determinado espaço nessa mesma memória, onde se vai armazenar um dado - o valor que a dita variável assume em cada momento. Isto leva-nos a considerar, em programação, que um identificador é um endereço simbólico, pois que se preferimos, um candidato a endereço de memória.

Um identificador é um nome normalmente atribuído pelo algoritmo ou utilizador a um elemento com que se pretende trabalhar dentro de um algoritmo. Em programação, um identificador é um

endereço simbólico, um candidato a endereço de memória.

Constantes

Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa.

Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e alfanuméricas.

Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa.

Exemplo de declarações de constantes, em pseudocódigo: Constantes

PI  3,14 MAXIMO  30

POR_DEFEITO  ‘Sem nome’

Variáveis

Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode ser alterado ao longo do tempo durante a execução de um programa.

(16)

• um carácter global, quando são declaradas para uso em todo o algoritmo;

• um carácter local, quando são declaradas apenas para uso dentro do subalgoritmo. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas como sendo numéricas, lógicas e alfanuméricas.

Uma variável é uma posição de memória, representada por um Identificador, a qual contém, num dado instante, uma informação.

Exemplos de declarações de variáveis em pseudocódigo: Variáveis

MAXIMO, NUM: Inteiro NOME: Caracteres SAIR: Lógico

Outros exemplos:

TOTAL  PRODUTO * QUANTIDADE

NOME  ‘Carlos Paredes’ TOTAL  30

Tipos de Dados

As variáveis e as constantes podem ser basicamente de três tipos: Numéricas (Inteiro ou real), alfanuméricas (caracter ou cadeia de caracteres) ou lógicas.

Numéricas:

Específicas para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais.

As variáveis do tipo Inteiro são para armazenamento de números inteiros e as Reais são para o armazenamento de números que podem ter partes decimais.

Alfanuméricas:

Existem actualmente vários códigos susceptíveis de ser utilizados pelos computadores digitais. Alguns desses códigos permitem representar, não apenas grandezas numéricas, mas também caracteres literais e sinais de pontuação. É exemplo o código ASCII ("American Standard Code

for Information Interchange" - leia-se "ásqui"), usado na transferência de informação entre um

computador e os seus dispositivos periféricos. Trata-se de um código que utiliza combinações de oito bits (28 = 256) para representar os dez algarismos decimais (0, 1, 2, ..., 9), os caracteres

Variáveis

Variável Conteúdo

(17)

do alfabeto (a, b, ..., z, A, B, ..., Z), sinais de pontuação, parêntesis, sinais das operações aritméticas e de igualdade, e mais uma série de caracteres de controlo, entre outros símbolos, num total de 256 símbolos.

Os códigos que se destinam a traduzir, não só informação numérica, mas também caracteres do alfabeto e sinais convencionais são denominados códigos alfanuméricos. O código ASCII, referido acima, representa o código alfanumérico universalmente aceite.

Os dados do tipo caracter (Char em Pascal) correspondem a caracteres individuais. Os caracteres disponíveis são geralmente os caracteres da Tabela ASCII. Este tipo de dado pode assumir qualquer caracter da referida Tabela ASCII, mas apenas um de cada vez. Por curiosidade, existe rotinas para converter um dado número inteiro para o correspondente caracter na Tabela ASCII. Por exemplo, a função CHR, em Pascal. Por sua vez, existe rotinas que dá o ordinal de um dado caracter, por exemplo a função ORD em Pascal.

Para facilitar a manipulação de palavras ou mensagens, dentro de um programa, existe outro tipo de dados: Cadeia de caracteres (também designado por: Cadeia Alfanumérica, texto, ou simplesmente caracteres). Estes tipos de dados são mais adequados ao manuseamento de texto, nas instruções de leitura, escrita e atribuição. Em Pascal este tipo de dados é representado pelo tipo de variável: String.

Numa atribuição de um valor a uma variável do tipo CHAR (Caracter) ou STRING (Cadeia de caracteres), temos que ter o cuidado de colocar o valor (dado) entre aspas (‘), pois esta é a forma de informar que a informação é caracter ou cadeia de caracteres.

Lógicas:

Os dados do tipo lógico, são dados que podem assumir apenas dois valores possíveis: verdadeiro e falso. A sua utilidade reside, fundamentalmente, ao nível do seu emprego em estruturas de controlo.

As variáveis do tipo inteiro são para armazenamento de números inteiros e as Reais são para o armazenamento de números que podem ter partes decimais.

Os dados do tipo caracter correspondem a caracteres individuais. Os caracteres disponíveis são geralmente os caracteres da Tabela ASCII.

Existe tipos de dados mais adequados ao manuseamento de texto, nas instruções de leitura, escrita e atribuição. Este tipo de dados é representado pelo tipo de variável: Caracteres.

Os dados do tipo lógico, são dados que podem assumir apenas dois valores possíveis: verdadeiro e falso.

O que é uma constante? Dê dois exemplos. O que é uma variável? Dê dois exemplos.

O Pascal exige que no momento da declaração das variáveis, se defina o tipo de informação que uma variável pode conter, isto é, se uma dada posição de memória armazenará um número ou

(18)

uma letra etc. Para isto, a linguagem Pascal possui definido alguns tipos de dados para a declaração de variáveis. Alguns destes tipos de dados são representados na seguinte tabela:

Pseudocódigo Pascal Descrição

Inteiro Integer Representa números entre -32768 até +32767.

ocupa 2 bytes na memória.

Real Real Representa os números entre 2.9 x 10-39 até 1.7 x

1038. Ocupa 6 bytes na memória.

Caracter Char Representa um dos caracteres, da tabela ASCII.

Ocupa 1 byte na memória.

Caracteres String Conjunto de caracteres (Char). Ocupa de 1 a 255

bytes na memória.

Lógico Bolean

Valor lógico. Assuma somente dois valores: TRUE (Verdade) ou FALSE (Falso). ocupa 1 byte na memória.

Word Números de 0 até 65535. Ocupa 2 bytes na

memória.

Byte Números de 0 até 255. Ocupa 1 byte na memória.

Shor Int Representa os números entre -128 até 128. Ocupa

1 bytes na memória.

LongInt Representa os números entre -2147483648 até

2147483648. Ocupa 4 bytes na memória.

Single Representa os números entre 1.5 x 10-45 até 3.4 x

1038. Ocupa 4 bytes na memória. Double Representa os números entre 5 x 10

-324 até 1.7 x

10308. Ocupa 8 bytes na memória.

E

E

x

x

e

e

r

r

c

c

í

í

c

c

i

i

o

o

s

s

1. Explicite a diferença entre uma constante e uma variável, no contexto de um programa.

2. Descreva resumidamente o que se passa ao nível dos identificadores de variáveis, quando um programa entra em execução e esses identificadores são tratados internamente pelo computador.

3. Identifique o tipo de cada uma das constantes

a) 613 b) ‘R’ c) 1 d) 613,0 e) -613 f) ‘613’ g) -3,012 * 1015 h) Falso i) 17 * 1012 j) -28,3 * 10-23 k) ‘Fim de Questão’

(19)

a) 12345 b) ‘123456’ c) -1122 d) 10,45 e) VERDADE f) ‘c’ g) ‘Amor’

5. Qual a diferença existente nas seguintes atribuições?

a) Letra  ‘A’ Nome  ‘João’

b) Letra  A Nome  João

6. É correcto definir uma variável como sendo Caracter e atribuirmos a ela o valor “PEDRO”? E se a variável fosse definida como Caracteres (cadeia de caracteres), a mesma poderia receber um valor do tipo Caracter?

7. No seguinte Algoritmo existe algum erro? Onde?

Algoritmo Teste Variáveis MARIA: Caracteres IDADE: Inteiro LETRA: Caracter MARIA: Real Inicio IDADE  23 IDADE  678 IDADE  LETRA LETRA  300 LETRA  ‘abc’ LETRA  ‘A’ LETRA  22 IDADE  IDADE_ALUNO Fim

O

O

p

p

e

e

r

r

a

a

d

d

o

o

r

r

e

e

s

s

Os operadores são meios pelos quais incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos três tipos de operadores:

(20)

• Operadores Aritméticos

• Operadores Relacionais

• Operadores Lógicos

Operadores Aritméticos

Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da adição, subtracção, multiplicação e divisão, podem utilizar também o operador para exponenciação. Os operadores aritméticos utilizam-se normalmente com dois operandos. No entanto, os operadores + e - também podem ser usados com um só operando, caso em que significam: o sinal positivo ou o sinal negativo atribuído ao operando.

Os símbolos para os operadores aritméticos são:

OPERADORES ARITMÉTICOS DESIGNAÇÃO OPERADOR Adição + Subtracção - Multiplicação * Divisão /

Resto da divisão (Resto) MOD

Divisão inteira (Quociente) DIV

Potenciação ^

Hierarquia das Operações Aritméticas

A hierarquia das operações aritméticas é: 1. ( ) – parênteses

2. ^ – exponenciação

3. * ou / – multiplicação ou divisão (o que aparecer primeiro) 4. + ou – – soma ou subtracção (o que aparecer primeiro)

Exemplo:

1 + 7 * 2 ^ 2 –1 = 28 3 * (1 – 2) + 4 * 2 = 5

Operadores de Comparação ou Relacionais

Os operandos empregues com os operadores de comparação devem ser de tipos compatíveis entre si. Os resultados que devolvem são sempre do tipo valor lógico, ou seja, verdadeiro ou falso. Estes operadores podem ser usados com quaisquer tipos de ordinais, com reais e alfanuméricos.

Para estabelecer prioridades no que diz respeito a qual operação executar primeiro, utiliza-se os parênteses.

(21)

Operadores de Comparação Designação Operador igual a = diferente de ≠ ou <> maior que > menor que < maior ou igual a ≥ ou >= menor ou igual a ≤ ou <= Exemplo:

Tendo duas variáveis A = 5 e B = 3 Os resultados das expressões seriam:

Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B Falso Operadores Lógicos

Os operadores de valores lógicos operam normalmente com operandos do tipo valor lógico e devolvem resultados desse mesmo tipo, ou seja, o resultado final é verdadeiro ou falso. Também são utilizados com muita frequência, tal como os operadores relacionais, em estruturas de decisão e no controlo de ciclos de repetição.

Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso.

Os operadores lógicos são:

Operadores de Valor Lógico Designação Operador

Negação NÃO (NOT)

Conjunção E (AND)

Disjunção OU (OR)

Disjunção Inversa XOR

Uma expressão E (AND) é verdadeira se todas as condições forem verdadeiras. O resultado da expressão E é falsa se pelo menos uma condição for falsa.

Uma expressão OU (OR) é verdadeira se pelo menos uma condição for verdadeira. O resultado da expressão OU é falsa se todas as condições forem falsas.

Um expressão NÃO (NOT) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa.

(22)

Operador AND Operador OR

TRUE AND TRUE  TRUE TRUE AND FALSE  FALSE FALSE AND TRUE  FALSE FALSE AND FALSE  FALSE

TRUE OR TRUE  TRUE TRUE OR FALSE  TRUE FALSE OR TRUE  TRUE FALSE OR FALSE  FALSE

Operador NOT Operador XOR

NOT TRUE  FALSE

NOT FALSE  TRUE

TRUE XOR TRUE  FALSE

TRUE XOR FALSE  TRUE FALSE XOR TRUE  TRUE FALSE XOR FALSE  FALSE

Exemplos:

Suponha que temos três variáveis A=5, B=8 e C=1. Os resultados das expressões seriam:

Expressões Resultado

A=B AND B>C FALSO A<>B OR B<C VERDADEIRO NOT A>B VERDADEIRO A<B AND B>C VERDADEIRO A>=B OR B=C FALSO NOT A<=B FALSO

I

I

n

n

s

s

t

t

r

r

u

u

ç

ç

õ

õ

e

e

s

s

S

S

i

i

m

m

p

p

l

l

e

e

s

s

Instruções de Escrita

As instruções de escrita são aquelas que servem para enviar dados (mensagens, valores de variáveis, etc.) para um dispositivo de saída ou periférico de "output".

Como se sabe, o dispositivo de saída mais comum no trabalho com um computador é o monitor de vídeo ou ecrã; no entanto, o envio de dados para a impressora ou para um ficheiro em disco ou disquete também são tarefas normais e, por vezes, mesmo imprescindíveis.

Exemplos das instruções de escrita, mais usuais, em pseudocódigo:

[Imprimir a mensagem]

Escrever(‘Não existe quarto vago do tipo escolhido.’)

[Imprimir a percentagem]

(23)

Instruções de Leitura

Tal como a saída de dados do computador para um periférico é essencial, também a entrada de dados o é.

Os principais dispositivos que permitem a leitura, entrada ou "input" de dados num sistema informático são, como se sabe, em primeiro lugar, o teclado, em segundo, os dispositivos de armazenamento secundário, ou seja os discos e disquetes, e ainda mais alguns outros, como o rato, etc.

Exemplo de uma instrução de escrita em pseudocódigo:

[Ler a remuneração mensal]

Ler(REMUNERAÇÃO)

[Ler as variáveis X e Y ]

Ler(X, Y)

Instruções de Atribuição

Muitos dos dados com que se opera num algoritmo são variáveis. As variáveis e constantes num algoritmo são designadas, como foi dito anteriormente, por meio de identificadores. Quando declaramos uma variável é natural atribuirmos a ela um valor ou uma informação. Uma das formas de atribuir ou alterar um valor a uma variável, é através da instrução de leitura como acabámos de ver no ponto anterior. Uma outra forma é através de uma instrução de atribuição. Para isto utilizaremos o símbolo “:=” em Pascal e “” em pseudocódigo, que significa “recebe o valor”, ou seja, a posição de memória que uma variável representa, receberá um valor, o qual será atribuído à variável.

Numa instrução de atribuição, o valor que se atribui à variável em causa pode ser:

• um valor directo; por exemplo: NUM  10

• um valor contido noutra variável; por exemplo: NUM  TOTAL

• um valor resultante de uma expressão; por exemplo: NUM  (A + B) / 2 Exemplos de instruções de atribuição, em pseudocódigo:

[Inicializar variáveis] SOMA  0

[Calcular a Média e incrementar Valor] MÉDIA  SOMA / 15

(24)

E

E

x

x

e

e

r

r

c

c

í

í

c

c

i

i

o

o

s

s

1. Indique o resultado que será obtido das seguintes expressões:

a) 1/2 b) 1 DIV 2 c) 1 MOD 2 d) (200 DIV 10) MOD 4 e) 6 +19-23 f) 3,0* 5,0 +1 g) 1/4+2 h) 29,0/7+4 i) ‘Carlos ‘ + ‘Paredes’

2. Indique o resultado das seguintes expressões:

a) 2 > 3

b) (6 < 8) OR (3 > 7)

c) (((10 DIV 2) MOD 6) > 5) XOR (3 < (2 MOD 2))

d) NOT (2 < 3)

3. Escreva os comandos de atribuição para as seguintes fórmulas matemáticas:

a)

X

A

B

C

D

E

F

=

+

b)

X

B

A

F

A

=

+

2

4

2

3 2

3

4. Construa um algoritmo e respectivo fluxograma que lê o raio de uma circunferência e calcula sua área.

(25)

2

2

2

2

E

E

S

S

T

T

R

R

U

U

T

T

U

U

R

R

A

A

S

S

D

D

E

E

D

D

E

E

C

C

I

I

S

S

Ã

Ã

O

O

Objectivos

 Prosseguir com o estudo de algoritmos, introduzindo agora as estruturas clássicas de decisão, o que vem completar a unidade anterior.

E

E

s

s

t

t

r

r

u

u

t

t

u

u

r

r

a

a

s

s

F

F

u

u

n

n

d

d

a

a

m

m

e

e

n

n

t

t

a

a

i

i

s

s

d

d

e

e

P

P

r

r

o

o

g

g

r

r

a

a

m

m

a

a

ç

ç

ã

ã

o

o

Nas estruturas de um algoritmo é, frequentemente, necessário:

• jogar com determinadas condições, para decidir se se deve executar uma ou outra instrução;

• repetir uma série de instruções, um determinado número de vezes ou enquanto se verificar uma certa condição;

• noutros casos ainda, temos um conjunto de instruções que se repete em diversos pontos do programa, tornando-se então útil passar a tratá-lo como um subalgoritmo.

E

E

s

s

t

t

r

r

u

u

t

t

u

u

r

r

a

a

d

d

e

e

D

D

e

e

c

c

i

i

s

s

ã

ã

o

o

C

C

o

o

n

n

d

d

i

i

c

c

i

i

o

o

n

n

a

a

l

l

-

-

"

"

S

S

e

e

"

"

Até agora temos estado a lidar com algoritmos puramente sequenciais, isto é, as instruções são cumpridas uma após outra até chegar ao fim do algoritmo. No entanto existem estruturas que permitem a tomada de decisões em função de condições estabelecidas e assim, o algoritmo apresenta instruções alternativas. Estas condições podem ser verdadeiras ou falsas; conforme esse valor o algoritmo segue uma instrução ou segue outra em alternativa.

Estas estruturas não são mais que instruções complexas, geralmente, compostas por várias palavras, mas formando um todo.

A estrutura de decisão condicional mais difundida e utilizada é a que se baseia na instrução “Se”.

As estruturas “Se” podem ser “encaixadas” umas dentro das outras (Estruturas “Se” encadeadas).

A sintaxe desta estrutura, em pseudocódigo, é a seguinte: Se <Condição> Então

<Instrução se condição verdadeira>

[Senão

<Instrução se condição falsa>] Fim Se

(26)

<Condição> - a condição de controlo é normalmente uma expressão do tipo lógico, isto

é, que pode assumir apenas um entre dois valores possíveis: verdadeiro ou falso;

<Instrução...> - obviamente, será uma determinada instrução que se pretende efectuar.

Esta instrução tanto pode ser uma instrução simples, como uma instrução composta, ou seja, um conjunto de instruções;

• o significado dos parêntesis rectos [...] indica que se trata de uma parte opcional. Assim, o comando “Senão” e a sua respectiva instrução é opcional, ou seja, só é utilizável quando se desejar ou for necessário.

Se tivermos um conjunto de instruções (instruções compostas) para considerar dentro da estrutura podemos inseri-la entre delimitadores “Início ... Fim”.

Resumindo a sintaxe: <Condição> NÃO <Instrução se FALSO> <Instrução se VERDADEIRO> SIM Se <Condição> Então <Instrução se VERDADEIRO> Senão <Instrução se FALSO> Fim Se <Condição> SIM <Instrução se VERDADEIRO> Se <Condição> Então <Acção se VERDADEIRO> Fim Se

(27)

Essas decisões interferem directamente no andamento do algoritmo.

Como no exemplo do algoritmo “Chupar um Rebuçado”. Imaginemos que algumas pessoas não gostem de chupar rebuçados de morango, neste caso teremos que modificar o algoritmo para: Algoritmo “Chupar um rebuçado”

Pegar no rebuçado

O rebuçado é de morango? Se sim, não chupar o rebuçado Se não, continuar com o algoritmo Retirar o papel

Chupar o rebuçado Deitar o papel no lixo

Inicio Pegar no rebuçado É de morango? Não chupar o rebuçado Retirar o papel Chupar o rebuça Deitar o papel no lixo Fim SIM NÃO

Exemplos de estruturas de decisão condicional, em pseudocódigo:

[Exemplo 1] Se X = 1 E K > VALOR Então Se K < MENOR Então M  VALOR Fim Se Fim Se [Exemplo 2a] Se ANDAR = 0 Então QUARTO_VAGO  0 K  0 Senão

Escrever(‘Nenhum quarto vago.’) Fim Se

(28)

[Exemplo 2b] Se ANDAR = 0 Então Início QUARTO_VAGO  0 K  0 Fim Senão

Escrever(‘Nenhum quarto vago.’) Fim Se

Exemplo Prático

Vejamos o seguinte exemplo:

Dado dois valores A e B quaisquer, faça um algoritmo que imprima se A > B, ou A < B , ou A = B.

Algoritmo Maior Variáveis A, B: Inteiro Inicio Escrever(‘Digite os valores A e B’) Ler(A, B) Se A > B Então

Escrever(‘A é maior que B’) Senão

Se A < B Então

Escrever(‘A é menor que B’)

Senão

Escrever(‘A é igual a B’)

Fim Se

Fim Se

Fim

Com curiosidade, na linguagem pascal seria: PROGRAM Maior; VAR A, B: Integer; BEGIN WRITE(‘Digite os valores A e B’); IF A > B THEN

WRITE(‘A é maior que B’) ELSE

IF A < B THEN

(29)

ELSE

WRITE(‘A é igual a B’);

END.

Exercícios

1. Elabore um fluxograma que leia um número. Se positivo armazene-o em A, se for negativo, em B. No final mostrar o resultado.

2. Faça um algoritmo que leia os valores A, B, C e diga se a soma de A + B é menor que C.

3. Faça um algoritmo que leia dois valores inteiros A e B. Se os valores forem iguais soma A com B, caso contrário multiplique A por B. No final do cálculo atribuir o valor para uma variável C.

4. Construa um algoritmo em pseudocódigo para ler um número e verificar se ele é par ou ímpar. Quando for par armazenar esse valor em P e quando for ímpar armazená-lo em I. Exibir P e I no final do algoritmo.

5. Construa um fluxograma para ler uma variável numérica N e imprimi-la somente se a mesma for maior que 100, caso contrário imprimi-la com o valor zero.

6. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:

• Para homens: (72.7*h) - 58

• Para mulheres: (62.1*h) - 44.7 (h = altura)

7. Construa uma algoritmo e respectivo fluxograma que lê o nome e as 4 notas bimestrais de um aluno. Em seguida o Algoritmo calcula e escreve a média obtida pelo aluno escrevendo também se o aluno foi aprovado ou reprovado.

E

E

s

s

t

t

r

r

u

u

t

t

u

u

r

r

a

a

d

d

e

e

D

D

e

e

c

c

i

i

s

s

ã

ã

o

o

d

d

e

e

E

E

s

s

c

c

o

o

l

l

h

h

a

a

M

M

ú

ú

l

l

t

t

i

i

p

p

l

l

a

a

-

-

"

"

C

C

a

a

s

s

o

o

"

"

Há casos em que se tem de optar entre várias opções que uma variável pode dispor, pelo que se terá de recorrer a várias estruturas “Se” encadeadas. O encadeamento das estruturas de decisão condicional “Se” traz dificuldade na interpretação do algoritmo. Neste caso, temos uma estrutura de decisão composta ou decisão de escolha múltipla que vai tornar a leitura do algoritmo mais fácil.

Essa estrutura é conhecida pela estrutura “Caso”. Numa estrutura "Caso" há uma variável, cujos valores que possa assumir vão ser utilizados no controlo das alternativas ou instruções a escolher - a esta variável é costume chamar-se selector.

A Sintaxe desta estrutura, em pseudocódigo, é a seguinte: Caso <Variável>

(30)

<Valor 1> : <Instrução 1> <Valor 2> : <Instrução 2> (...) <Valor n> : <Instrução n> [Senão : <Instrução>] Fim Caso.

Quando se indica <Valor 1>, <Valor 2>, etc., estamos a referir aos valores possíveis que a variável de controlo poderá assumir. Pode ser apenas um valor ou um conjunto de valores.

Quando de indica <Instrução 1>, <Instrução 2>, etc., pode tratar-se de uma só instrução ou de uma instrução composta, portanto um conjunto de instruções a realizar.

Em algumas implementações existe também uma cláusula "Senão" que se destina a complementar o leque de alternativas, no caso de haver ainda mais hipóteses não explicitadas, e em que pode haver ainda uma outra instrução ou conjunto de instruções a indicar.

O fluxograma seria da forma:

Variável

Instrução 1 Instrução 2 (...) Instrução n-1 Instrução n

Valor 1 Valor 2 (...) Valor n-1 Valor n Exemplo Prático

Construa um algoritmo que caracteriza algumas letras do alfabeto usando a estrutura condicional “Se” e a estrutura “Caso”, com a seguinte caracterização:

• Primeiras letras: ‘a’, ‘b’

• Alfabeto inglês: ‘k’, ‘w’, ‘y’

• Última letra: ‘z’

(31)

Algoritmo Selecção

[Este algoritmo caracteriza algumas letras do alfabeto]

Variáveis LETRA: Caracter FRASE: Caracteres Início Ler(LETRA) Caso LETRA

‘a’, ‘b’: FRASE  ‘Primeiras letras’ ‘k’, ‘w’, ‘y’: FRASE  ‘Alfabeto inglês’ ‘z’: FRASE  ‘Última letra’

Senão: FRASE  ‘Outras letras do alfabeto’

Fim Caso

Escrever(FRASE)

Fim

LETRA

FRASE <-- 'Primeiras letras' FRASE <-- 'Alfabeto inglês' FRASE <-- 'Última letra' FRASE <-- 'Outras letras do alfabeto' 'a', 'b' 'k', 'w', 'y' 'z' outros valores Início Escrever FRASE Ler LETRA Fim

(32)

Exercícios

1. Construa um algoritmo da discussão da equação do segundo grau. A equação do segundo

grau apresenta-se na forma

ax

2

+

bx

+

c

=

0

. A resolução desta equação é baseada na utilização do binómio discriminante

b

2

4

ac

. Assim, temos três situações:

• binómio discriminante > 0: tem solução dada por

a ac b b 2 4 2 ± − • binómio discriminante < 0: não tem solução nos reais

• binómio discriminante = 0: tem solução dada por

a

b

2

2. Construa um algoritmo que disponha do cálculo do valor da área de três figuras geométricas. O utilizador escolherá uma das três figuras disponíveis a tratar e o algoritmo produzirá o valor da área.

Sugestão: A partir de um menu em que são apresentadas as figuras geométricas disponíveis, o utilizador escolherá a pretendida. De seguida, ser-lhe-ão pedidos os dados referentes à figura e produzir-se-á o cálculo do valor da área que será apresentado no ecrã.

E

E

s

s

t

t

r

r

u

u

t

t

u

u

r

r

a

a

s

s

d

d

e

e

R

R

e

e

p

p

e

e

t

t

i

i

ç

ç

ã

ã

o

o

o

o

u

u

C

C

i

i

c

c

l

l

o

o

s

s

Frequentemente é necessários repetir, um determinado número de vezes, uma certa instrução ou conjunto de instruções.

Frequentemente é necessários manter, um número indeterminado de vezes, um ciclo ("Loop") de repetições, enquanto se verificar certa condição.

Essa repetição, na maior parte das vezes, não tem que ser uma repetição exacta das mesmas operações, pois pode haver pelo meio certos dados (variáveis) ou parâmetros que se vão alterando à medida que o ciclo vai decorrendo.

Exemplo de estruturas de repetição:

Para... fazer

Enquanto... fazer

Repetir ... até

Enquanto numa estrutura do tipo "Para... fazer" o número de vezes que vai ocorrer a repetição do ciclo é determinada à partida por uma variável de controlo que é incrementada ou decrementada à medida que o ciclo decorre. Na estrutura "Enquanto.. fazer" e "Repetir...até" o ciclo decorrerá um número indeterminado de vezes, dependendo da verificação ou não da condição de controlo - o que depende dos acontecimentos no decurso do próprio ciclo.

(33)

E

E

s

s

t

t

r

r

u

u

t

t

u

u

r

r

a

a

d

d

e

e

R

R

e

e

p

p

e

e

t

t

i

i

ç

ç

ã

ã

o

o

-

-

"

"

P

P

a

a

r

r

a

a

.

.

.

.

.

.

F

F

a

a

z

z

e

e

r

r

"

"

Esta estrutura de repetição é controlada por uma variável - Variável de controlo - que parte de um determinado valor e incrementa ou decrementa até um outro determinado valor.

A Sintaxe, em pseudocódigo, é a seguinte:

Para <variável> de <valor inicial> até <valor final> fazer

<Instrução>

Fim Para

As expressões <valor inicial> e <valor final> podem ser valores numéricos directos, valores de outras variáveis ou expressões, desde que esses valores sejam números inteiros.

À variável que controla o ciclo, também é costume chamar "contador" ou variável de iteração, na medida em que vai assumindo valores sucessivos.

Os valores da variável de controlo podem variar num sentido crescente ou decrescente. O fluxograma seria da forma:

Variável

Valor_Inicial até Valor_Final

Instrução

A variável toma um valor inicial que vai incrementando (ou decrementando) até um valor final. À partida já sei quantas vezes vou repetir a instrução ou conjunto de instruções.

Exemplo: Faça um algoritmo para ler e escrever o nome de 20 pessoas. Algoritmo Ler_escrever

Variáveis

NOME: Caracteres CONTADOR: Inteiro

Início

Para CONTADOR de 1 até 20 fazer

Ler(NOME) Escrever(NOME) Fim para

Referências

Documentos relacionados

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Tal será possível através do fornecimento de evidências de que a relação entre educação inclusiva e inclusão social é pertinente para a qualidade dos recursos de

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

Figura 8 – Isocurvas com valores da Iluminância média para o período da manhã na fachada sudoeste, a primeira para a simulação com brise horizontal e a segunda sem brise

o transferência interna: poderá requerer transferência interna o aluno que esteja regularmente matriculado na Universidade no semestre em que solicitar a transferência e

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política