Você está na página 1de 36

INSTITUTO DO EMPREGO E FORMAÇÃO

PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de
Trás-os-Montes

Manual de
Algoritmia

Formadora: Olga Ribeiro


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Índice
1. Introduçã o à Ló gica de Programaçã o................................................................................................4

1.1. Ló gica...............................................................................................................................................4

1.1.1. O que é a ló gica?..........................................................................................................................4

1.2. Sequência ló gica..............................................................................................................................4

1.3. Instruçõ es........................................................................................................................................4

1.4. Algoritmos.......................................................................................................................................5

1.5. Exercícios.........................................................................................................................................7

2. Desenvolvimento de Algoritmos........................................................................................................8

2.1. Pseudocó digo..................................................................................................................................8

2.2. Regras e Fases de Construçã o de um Algoritmo..........................................................................8

2.2.1. Regras para criaçã o de bons algoritmos...................................................................................8

2.2.2. Fases de Construçã o de um Algoritmo.....................................................................................9

2.3. Fluxogramas....................................................................................................................................9

2.3.1. Introduçã o ao fluxograma..........................................................................................................9

2.3.2. Simbologia.................................................................................................................................10

3. Constantes, Variá veis e Tipo de Dados............................................................................................11

3.1. Constantes.....................................................................................................................................11

3.2. Variá veis........................................................................................................................................12

3.3. Tipos de dados..............................................................................................................................13

3.4. Exercícios.......................................................................................................................................14

4. Operadores e Funçõ es Pré-definidas...............................................................................................16

4.1. Operadores aritméticos................................................................................................................16


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

4.2. Operadores relacionais (ou de comparaçã o)..............................................................................17

4.3. Operadores Ló gicos......................................................................................................................17

4.4. Prioridade de operadores............................................................................................................18

4.5. Exercícios.......................................................................................................................................19

5. Funçõ es Pré-Definidas......................................................................................................................20

5.1. Instruçõ es bá sicas.........................................................................................................................20

5.1.1. Instruçõ es de atribuiçã o..........................................................................................................21

5.1.2. Instruçõ es de escrita ou saída (output)..................................................................................21

5.1.3. Instruçõ es de leitura ou entrada (input)................................................................................22

5.2. Exercícios.......................................................................................................................................23

6. Estruturas condicionais....................................................................................................................24

6.1. Se ... Entã o ... Senã o........................................................................................................................24

6.2. Caso ................................................................................................................................................24

6.3. Exercícios resolvidos....................................................................................................................25

6.4. Exercícios propostos.....................................................................................................................26

7. Estruturas de repetiçã o....................................................................................................................28

7.1. Para ... Até ... Faça..........................................................................................................................28

7.2. Repita ... Até que ............................................................................................................................28

7.3. Enquanto ... Faça............................................................................................................................29

7.4. Exercícios resolvidos....................................................................................................................29

7.5. Exercícios propostos.....................................................................................................................30

8. Desvios...............................................................................................................................................32

8.1. Ir para.............................................................................................................................................32
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

9. Procedimentos...................................................................................................................................33

10. Funçõ es............................................................................................................................................................................. 34

11. Teste e correçã o de erros..........................................................................................................................................35


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

1. Introdução à Lógica de Programação

1.1. Lógica

A lógica de programação é necessária para pessoas que desejam trabalhar com


desenvolvimento de sistemas e programas. A lógica permite definir a sequência lógica
para o desenvolvimento de aplicações.

1.1.1.O que é a lógica?

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


determinado objetivo.

1.2. Sequência lógica

Estes pensamentos podem ser descritos como uma sequência de instruções,


que devem ser seguidas para se cumprir uma determinada tarefa.

Sequências Lógica são os passos executados até atingir um objetivo ou


solução de um problema.

1.3. Instruções

Na linguagem comum, entende-se por instruções “um conjunto de regras ou


normas definidas para a realização ou utilização de algo”.

Em informática, porém, instrução é a informação que indica a um computador


uma açã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 numa ordem
sequencial lógica.

Por exemplo, se quisermos fazer uma omeleta 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 fritar as batatas e só depois descascá-las.

Assim sendo, uma instrução isolada não tem muito sentido; para obtermos o
resultado, precisamos de colocar em prática o conjunto de todas as instruções, na
ordem correta.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Instruções são um conjunto de regras ou normas definidas para a realização


ou utilização de algo. Em informática, é o que indica a um computador uma ação
elementar a executar.

1.4. Algoritmos

A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua uma


designação desconhecida, fazemos constantemente uso de algoritmos no nosso dia-a-
dia: a maneira como uma pessoa toma banho é um algoritmo. Outros algoritmos
frequentemente utilizados são, por exemplo:

 As instruções para se utilizar um eletrodoméstico;

 A receita para preparação de um prato;

 A realização das operações básicas (adição, multiplicação, divisão e subtração);

 A maneira como são calculadas as contas de água, luz e telefone mensalmente;

 Etc.

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

“Mastigar uma pastilha”

- Pegar na pastilha

- Retirar o papel

- Colocar a pastilha na boca

- Jogar o papel fora

“Somar dois números quaisquer”

- Escreva o primeiro número no retângulo A

- Escreva o segundo número no retângulo B

- Some o número do retângulo A com número do retângulo B e coloque o


resultado no retângulo C.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Podemos, então, definir algoritmo como uma sequência finita de ações que
descrevem o modo de resolução de um problema.

Se essas ações forem escritas numa linguagem de programação, o algoritmo


passa a designar-se por programa.

Visto normalmente existirem diversos modos de resolução para um dado


problema, também existem vários algoritmos possíveis para esse problema e
consequentemente poderão encontrar-se diversos programas com idêntica utilidade.

Exemplos disto são os diferentes Processadores de Texto, os diferentes


Sistemas de Gestão de Bases de Dados, as diferentes versões do conhecido jogo Tetris,
entre outros tipos de programas.

Perante a diversidade de algoritmos possíveis para resolução de um mesmo


problema, torna-se necessário optar por aquele que apresente mais qualidade, com
vista à otimização dos recursos humanos e materiais e à excelente resolução do
problema a tratar.

Características que um algoritmo deve possuir para ser considerado de


qualidade:

 Ter fim;

 Ser corretamente definido, com ordem nas ações a desenvolver, encontrando-se


estas, descritas de forma clara e com o maior número possível de informações;

 Não estar sujeito a ambiguidades provenientes de falta de informação ou


duplicação desta;

 Ser eficaz, ou seja, consegue resolver o problema em qualquer situação e sem


erros ou qualquer tipo de falhas. Caso existam situações de exceção, as mesmas
devem ser especificadas e tratadas;

 Ser eficiente, ter capacidade de resolver o problema com o mínimo de recursos,


quer sejam de espaço ocupado em memória do computador, o tempo de
execução do programa, entre outros.

Como resultado de bons algoritmos obter-se-á boa programação que é a


prática da construção e implementação de bons programas.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Ciclo de vida de um algoritmo

1.5. Exercícios

1. Define, por palavras tuas, algoritmo.

2. Cita alguns algoritmos que podemos encontrar na nossa vida quotidiana.

3. Qual é, para ti, a característica mais importante de um algoritmo? Justifica a tua


resposta.

4. Um algoritmo não pode conter um comando como “Escreva todos os números


inteiros positivos”. Por quê?

5. Supõe que temos um robô à nossa disposição. Esse robô chama-se MANNY e
precisa de ser ensinado a fazer determinadas tarefas. Para ensinar o MANNY,
vamos dar-lhe as instruções necessárias à execução de cada atividade. Escreve
os passos necessários para o nosso robot:

a) Trocar uma lâmpada no teto;

b) Trocar o pneu de um carro;

c) Calcular a idade de uma pessoa daqui a 20 anos;

d) Calcular a média de um aluno com 3 notas;

e) Somar dois números e multiplicar o resultado pelo primeiro.


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

2. Desenvolvimento de Algoritmos

2.1. Pseudocódigo

Para escrever algoritmos podemos utilizar um código de escrita chamado


pseudocódigo. Os algoritmos em pseudocódigo são conjuntos de instruções descritivas
das ações a realizar de modo a resolver problemas. Essas instruções consistem em
frases começadas por um verbo no imperativo – calcule, mostre, faça, etc – ou no
infinitivo – mostrar, processar, fazer, etc.

A utilização de pseudocódigo tem a vantagem de podermos utilizar um texto


escrito dessa forma como base de trabalho para a escrita de um programa em
qualquer linguagem de programação.

Outra vantagem da escrita de algoritmos em pseudocódigo é que esta forma de


abordagem se aproxima muito à versão final do programa.

Paralelamente ao pseudocódigo poderão também ser desenhados diagramas


elucidativos da sequência de ações que constituem o algoritmo. Esses diagramas
podem apresentar formas diversas, sendo a mais conhecida a do diagrama de fluxos
(fluxograma).

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve
ser o intermediário entre a linguagem falada e a linguagem de programação.

2.2. Regras e Fases de Construção de um Algoritmo

Para escrever um algoritmo precisamos descrever a sequência de instruções, de


maneira simples e objetiva.

2.2.1.Regras para criação de bons algoritmos

1. Dá um título ao algoritmo;

2. Faz uma descrição da função do algoritmo;

3. O algoritmo começa com a palavra Início e termina com a palavra Fim; Utiliza
comentários com frequência (isto torna o algoritmo mais legível e facilita o
entendimento da lógica utilizada. Qualquer algoritmo deverá ser lido e entendido
por outras pessoas (e por ti próprio) de maneira que possa ser corrigido e receba
alterações);

Obs: Não te esqueças de atualizar os comentários, em caso de alterações. Pior do


que um programa sem comentários, é um programa com comentários errados.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

4. Escolhe nomes de variáveis significativos, evita, todavia, nomes muito longos; Ex:
Escolhe SalBruto ou SalarioBruto ao invés de SB ou VAR1

5. Utiliza espaços e linhas em branco para melhorar a legibilidade do algoritmo;

6. Coloca apenas uma instrução por linha. Várias instruções numa linha causam
ilegibilidade e dificultam a depuração.

7. Usa identação nas instruções de acordo com o nível que estejam, ou seja, alinha as
instruções do mesmo nível e desloca instruções de nível inferior.

2.2.2.Fases de Construção de um Algoritmo

1. Lê todo o problema até ao fim, de modo a formar a primeira impressão. A seguir,


relê o problema e faz anotações sobre os pontos principais.

2. Verifica se entendeste bem o problema. Se tiveres dúvidas coloca-as. Relê o


problema as vezes que for necessário para tentares entendê-lo.

3. Extrai do problema, todas as suas saídas.

4. Extrai do problema, todas as suas entradas.

5. Identifica qual é o processamento principal.

6. Verifica se será necessário algum valor intermediário que auxilie a transformação


das entradas em saídas. Esta etapa pode parecer obscura no início, mas com
certeza no desenrolar do algoritmo, estes valores aparecerão naturalmente.

7. Testa cada passo do algoritmo, com todos os seus caminhos para verificar se o
processamento está gerando os resultados esperados (para tal testa o algoritmo
com valores reais).

8. Revê o algoritmo, verificando as boas normas de criação.

Conselho: Tenta conseguir o ótimo, mas só depois de realizares o bom.

2.3. Fluxogramas

2.3.1.Introdução ao fluxograma

Um algoritmo para um programa de computador pode ser apresentado através


de fluxogramas ou, como vimos anteriormente, de pseudocódigo.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Os fluxogramas são diagramas representativos do fluxo de ações de um


programa, através de símbolos, que representam os diferentes tipos de acções e o seu
encadeamento na sequência do programa.

2.3.2.Simbologia

Principais símbolos utilizados nos fluxogramas


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

3. Constantes, Variáveis e Tipo de Dados

3.1. Constantes

Qualquer programa opera com dados. Os dados num programa podem ser
utilizados sob a forma de constantes ou de variáveis.

Constantes – são valores que se mantêm inalterados dentro de um programa.

Em programação, as constantes podem ser escritas sob a forma de dados


diretos ou ser associadas a identificadores.

Identificadores são nomes que se atribuem a variáveis, constantes ou outros


elementos com que se opera dentro de um programa.

Os identificadores ou nomes que se utilizam num programa para designar as


constantes ou as variáveis podem ser escolhidos pelo programador, respeitando certas
regras (que variam conforme a linguagem de programação).

Exemplos de identificadores (de variáveis ou de constantes):

Q
QUANT
QUANTIDADE
X2
TAXA_ANUAL

Uma constante assume a forma de um dado direto quando é inserida


diretamente numa instrução de programa.

Por exemplo:

Escreve (2000); [o dado escrito entre parêntesis é um valor numérico direto, é


uma constante]

Escreve (‘Bem-vindo a este programa’); [é também uma constante, pois trata-


se de uma string que é considerada tal como está escrita]

Nota: repara que, com strings, se usam plicas e com valores numéricos não.
Quando se utiliza 2000 (sem plicas), tem-se em vista um valor numérico. Se se utilizar
‘2000’, tem-se em vista uma string ou cadeia de caracteres. A diferença é que com o
dado 2000 podem ser realizadas operações aritméticas (cálculos), enquanto com o
dado ‘2000’ não.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

3.2. Variáveis

Num programa de computador, uma variável é uma entidade que possui um


valor sendo conhecida no programa por um identificador (nome). É de notar que uma
variável é uma entidade que possui diferentes valores em diferentes instantes de
tempo.

O conceito de variável é já familiar na matemática. Por exemplo, se


identificarmos os lados de um triângulo retângulo por a, b e c, o teorema de Pitágoras
dá-nos a seguinte relação entre as três variáveis:

Também em programas de computador, o uso de variáveis permite a


especificação de uma forma geral de cálculo, que poderá ser usada com diferentes
valores, obtendo-se diferentes resultados.

Os nomes das variáveis utilizadas foram a, b e c, contudo, em programas de


computadores os nomes a usar devem ser mais significativos, como por exemplo
LadoA, LadoB e Hipotenusa.

Regras para a atribuição de nomes a variáveis:

 O primeiro caracter deve ser sempre uma letra;

 Os restantes caracteres poderão ser letras, algarismos e o underscore ( _ );

 O nome das variáveis não pode ter espaços;

 As palavras reservadas das linguagens de programação não podem ser


atribuídas a nomes de variáveis;

 Não são permitidos caracteres acentuados nem cedilhados, como por exemplo:
ç, é, ã, etc.

Exemplos de identificadores de variáveis válidos:

 nome

 morada

 quant

 preco
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

A área de um triângulo será dada pela expressão: (Base*Altura)/2

Esta expressão é constituída por duas variáveis (base e altura), que podem
assumir diferentes valores em diferentes instantes de tempo e uma constante, o valor
2 que nunca será alterado.

Todas as variáveis necessitam de ser declaradas. Ao declararmos uma variável


estamos a reservar um espaço de memória para essa variável. Esse espaço de memória
irá receber um dado do tipo da variável.

Sintaxe da declaração de uma variável:

Exemplo:

Se declararmos as variáveis A, B e C da seguinte forma:

A: inteiro;
B: caracter;
C: lógico;
estamos a criar áreas na memória identificadas por A, B e C, que só poderão
receber, respetivamente, valores inteiros, alfanuméricos e lógicos (Verdadeiro ou
Falso).

3.3. Tipos de dados

O objetivo principal de um computador é a manipulação de informação ou


dados. Os dados com que se opera num programa de computador podem ser de
diferentes tipos.

Dados – são designações de entidades, pessoas, objetos, valores numéricos,


etc. São a base ou matéria-prima da informação.

Informação – é um conjunto de dados articulados com significado.

Tipos de Dados
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Cadeias de caracteres

 Os dados de tipo inteiro (integer) são números compreendidos entre -32768 e


32767. Ex: 1, 54, -8, 841.

 O tipo real é constituído pelos números do conjunto ir compreendidos entre


2.9*10e-39 e 1.7*10e38. Ex: -1.21, 10.0, 401.522

 O tipo caracter engloba todos os caracteres do código ascii (american standard


code interchange information). Este tipo de dados é delimitado por ‘ ‘ (plicas ou
apóstrofes), para se diferenciar, por exemplo, dos valores numéricos. Ex: ‘A’,
‘b’, ‘€’, ‘7’

 3 <> ‘3’ (o primeiro é um valor numérico, o segundo é um caracter, logo não se


podem fazer cálculos com ele).

 Os dados do tipo lógico apresentam exclusivamente os valores verdadeiro


(true) ou falso (false).

 Os dados do tipo string (cadeia de caracteres) são conjuntos de dois ou mais


caracteres. As strings são também delimitadas por ‘ ’ (plicas). Ex: ‘Maria’, ‘Olá’,
‘azul’, etc.

 Os dados estruturados serão abordados mais tarde.

3.4. Exercícios

1. Identifica o tipo de cada um dos seguintes dados:


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

2. Quais os identificadores válidos? Justifica, no caso de serem inválidos.


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

4. Operadores e Funções Pré-definidas

O objetivo principal de um programa de computador é a realização de


operações com dados.

Para que se efetuem operações com os dados (constantes ou variáveis), temos


de os incluir em instruções adequadas.

Em qualquer linguagem de programação, para construir a maior parte das


instruções de um programa, temos de escrever expressões.

Uma expressão é um conjunto de operandos, articulados entre si por


operadores.

Os operandos podem ser:

 Dados diretos. Ex: ‘bom dia!’; 2007, etc.

 Identificadores de constantes ou de variáveis. Ex: c, quantia, etc.

4.1. Operadores aritméticos

 As operações entre dados inteiros apresentam como resultados valores inteiros,


com exceção para a operação de divisão de dois inteiros, cujo resultado poderá
ser um número real.

 O resultado de operações entre valores reais será sempre um valor real.


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

4.2. Operadores relacionais (ou de comparação)

 Qualquer tipo de dados pode utilizar operadores relacionais, o resultado destas


operações assume somente um de dois valores possíveis, verdadeiro ou falso.

4.3. Operadores Lógicos

 Tal como nos operadores relacionais, o resultado de operações lógicas assume


apenas um dos valores, verdadeiro ou falso, podendo qualquer tipo de dado ser
sujeito a este tipo de operação.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

4.4. Prioridade de operadores

 1º Parênteses e funções (resolvidos da esquerda para a direita)

 2º Multiplicação (*), Divisão ( / e div ) e Resto ( Mod ) (resolvidos da esquerda para


a direita)

 3º Soma e subtração

 4º Operadores relacionais: >, <, <=, >=, =, <>

 5º Operador Lógico Não

 6º Operador Lógico E

 7º Operador Lógico Ou

A expressão 2*4+1 dá como resultado 9.

A expressão 2*(4+1) dá como resultado 10.

Nota: A utilização de parênteses, mesmo que não sejam estritamente


necessários pode e deve ser aplicada com o intuito de aumentar a clareza nas
expressões tratadas e diminuir a hipótese de erro.

As variáveis e as constantes estão sujeitas às operações possíveis de acordo


com os seus tipos de dados.

Constituem-se assim expressões, que não são mais do que conjuntos de


variáveis, constantes e operadores.

Considerando a expressão: ab + 3c

Esta terá de sofrer algumas alterações de modo a poder ser utilizada num
computador, assim terá de ser escrita da seguinte forma:

a*b+3*c

Outros exemplos:
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

4.5. Exercícios

1. Qual a diferença entre o operador / e DIV?

2. Todas as operações com dados inteiros têm como resultado valores inteiros?
Justifica a tua resposta.

3. Qual o resultado de cada uma das operações?

4. Classifica o tipo de dados de cada uma das seguintes variáveis:

5. Transforma as expressões seguintes de modo a serem usadas em programação:


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

5. Funções Pré-Definidas

Há um conjunto de funções Pré-Definidas que podem ser usadas em expressões


e instruções de escrita ou de atribuição.

Entre essas funções temos, por exemplo: a função que calcula a raiz quadrada
de um número ou a função trigonométrica do seno, etc.

Em geral, uma função aplica-se a um dado, chamado argumento, e devolve um


determinado valor, o resultado.

Tabela com algumas funções Pré-Definidas

5.1. Instruções básicas

Quando começamos a aprender uma linguagem de programação, das primeiras


coisas que devemos saber é como se usam as instruções básicas, pois elas são as mais
necessárias em qualquer linguagem:

 Instruções de atribuição;
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

 Instruções de escrita ou saída (output);

 Instruções de leitura ou entrada (input);

5.1.1.Instruções de atribuição

As variáveis podem receber valores ou sofrer alterações nos valores que


contêm, através de instruções de atribuição.

Para atribuirmos um valor ou uma expressão a uma variável, utilizamos o


comando de atribuição

Assim, a sintaxe do comando é:

A variável do lado esquerdo recebe o valor ou expressão do lado direito.

Exemplo:

5.1.2.Instruções de escrita ou saída (output)

As instruções de escrita são aquelas que servem para enviar dados (mensagens,
valores de variáveis, etc) para um periférico de saída (monitor ou impressora). Pode-se
assim mostrar os valores que as variáveis possuem em determinado instante.

Exemplo1:

Escrever (a, b); [escreve no ecrã os valores que neste momento estavam
armazenados nas variáveis a e b, respetivamente].

Escrever (2000); [Escreve o valor 2000 no ecrã]

Escrever (‘Bem-vindo ao programa’); [Escreve a string no ecrã]

Escrever (quantia); [Escreve o valor da var. quantia]


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Escrever (‘Estamos no dia ‘, d, ‘mês - ‘, m, ‘ano - ‘, a); [Esta instrução inclui


vários argumentos, e quando isto acontece os mesmos devem
ser separados por vírgulas]

Nota: Na escrita de algoritmos em pseudocódigo as strings escrevem-se entre


plicas e os identificadores (variáveis ou constantes) sem plicas.

Exemplo2:

Nota1  14 [é atribuído o valor 14 à var. Nota1]

Nota2  16 [é atribuído o valor 16 à var. Nota2]

Media  (Nota1+Nota2)/2 [calcula a média das 2 notas e atribui o resultado à


var. Media]

Escrever (Media); [Escreve no ecrã o resultado do cálculo anterior, ou seja, 15]

Escrever (Nota1, Nota2, Media); [Escreve no ecrã as duas notas e a respetiva


média, ou seja, 14 16 15]

Se pretendêssemos explicitar melhor estas saídas poderíamos fazer:

Escrever (‘Notas dos testes’, Nota1, Nota2);

Escrever (‘Média dos testes’, Media);

Assim, a saída ou output seria:

Notas dos testes 14 16


Média dos testes 15

5.1.3.Instruções de leitura ou entrada (input)

A entrada (leitura) de dados está associada a um periférico de entrada, sendo o


mais utilizado o teclado. A leitura de valores num programa é feita através de
variáveis.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Exemplo:

Ler (a, b); [o computador ficará à espera que sejam fornecidos dois valores, o 1º
será atribuído à var. a e o 2º à var. b]

Notas: Uma instrução de leitura pode conter mais do que uma variável (ex: Ler
(a, b, c)). A operação de leitura destrói os valores que as variáveis a ler possuíam
anteriormente. Por exemplo:

a 2; [neste momento a var. a tem o valor 2]


Ler (a); [se nesta instrução for introduzido um 4, a var. deixará de ter o valor 2 e
passará a ter o valor 4]

5.2. Exercícios

1. Qual o valor da variável Total, após o processamento da seguinte sequência de


instruções e supondo que esta variável é do tipo real.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

6. Estruturas condicionais

Até agora, nossos algoritmos foram executados numa sequência linear,


seguindo-se as ações de cima para baixo. A estrutura condicional irá permitir a escolha
de ações e estruturas a serem executadas quando determinada condição for ou não
satisfeita.

Temos dois tipos de estruturas condicionais, a estrutura Se ... Então e a


estrutura Caso ... .

6.1. Se ... Então ... Senão

A estrutura condicional Se ... Então, tem as seguintes formas:

Condicional Simples
Se condição Então
Sequência de comandos para condição verdadeira
FimSe

Condicional Composta
Se condição Então
Sequência de comandos para condição verdadeira
SeNão
Sequência de comandos para condição falsa
FimSe

6.2. Caso ...

A estrutura Caso ..., contém uma expressão (o seletor) e uma lista de


declarações, cada declaração é anteposta por uma ou mais constantes (chamadas
constantes de caso) ou com a palavra SeNão. O seletor deve ser de um tipo ordinal, ou
seja, possua uma ordem. Todas as constantes de caso devem ser diferentes e de um
tipo ordinal compatível com o tipo do seletor.

Esta estrutura executa a sequência de comandos precedida pela constante


igual ao valor do seletor. Se nenhuma constante for igual ao valor do seletor, a parte
Senão será executada. Se não houver a parte SeNão, a execução continuará com o
próxima comando que segue a estrutura Caso... .

Caso expressão
Seja valor1 Faça comando
Seja valor2 Faça comando
Seja valor3 Faça comando
Senão comando
FimCaso
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Caso Resposta
Seja 1 Faça Número = “Um”
Seja 2 Faça Número = “Dois”
Seja 3 Faça Número = “Três”
SeNão Número = “Maior que três”
FimCaso

O exemplo anterior testa a variável Resposta, se ela for igual a 1 a variável


caractere Número será “Um”, de modo semelhante acontecerá para Resposta igual a 2
ou 3. Se Resposta não for nenhum destes valores, a variável Número será “Maior que
três”.

6.3. Exercícios resolvidos

1. Crie um algoritmo que receba o nome e a nota de um determinado aluno. Caso a


nota seja maior ou igual a sete, imprima aprovado, em caso negativo, imprima
reprovado.

Rotina
Declare nota Numérico
Declare nome, Caractere
Receba nome, nota
Se nota >= 7 Então
Escreva nome, “aprovado”
SeNão
Escreva nome, “reprovado”
FimSe
FimRotina

2. Faça um algoritmo que após receber dois valores numéricos, calcule a média e
imprima o resultado se, e somente se, for maior que 33.

Rotina
Declare valor1, valor2, média Numérico
Receba valor1, valor2
média = (valor1+valor2) / 2
Se média > 33 Então
Escreva média
FimSe
FimRotina

3. Escreva um algoritmo que receba dois números e o nome da operação


matemática desejada entre eles (soma, subtração, multiplicação), exibindo o
resultado.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Rotina
Declare X, Y Numérico
Declare Operação Caractere
Receba X, Y, “soma(1), subtração(2) ou multiplicação(3)” : Operação
Caso Operação
Seja 1 Faça Escreva X + Y
Seja 2 Faça Escreva X - Y
Seja 3 Faça Escreva X * Y
FimCaso
FimRotina

4. A partir da entrada de qualquer número, o algoritmo deverá informar o seguinte:


“Número par” se a entrada for um número par menor que dez; “Número impar” se a
entrada for um número impar menor que dez; “Entre 10 e 100” se a entrada for maior
que dez e menor ou igual a cem e finalmente “Negativo ou maior que 100” caso
contrário.

Rotina
Declare X Numérico
Receba X
Caso X
Seja 0, 2, 4, 6, 8 Faça Escreva “Número par”
Seja 1, 3, 5, 7, 9 Faça Escreva “Número impar”
Seja 11..100 Faça Escreva “Entre 10 e 100”
SeNão Escreva “Negativo ou maior que 100”
FimCaso
FimRotina

6.4. Exercícios propostos

1. Encontre os valores de saída escritos pelo algoritmo a seguir, se fossem recebidos


os valores 7, 3 e 5, relativos as variáveis X, Y e Z respetivamente.

Rotina
Declare X, Y, Z, M Numérico
Receba X, Y, Z
M = TRUNCA (Z-X)/(X-Y)
Se M <= 7 Então
M=X
X=Y
Y=M
SeNão
M = ARREDONDA (Z/X+2)
Y=Z
Z=M
FimSe
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Escreva X, Y, Z
FimRotina
2. Fazer um algoritmo que após receber três valores, imprima apenas os números
pares. Um número par quando dividido por 2, o resto será igual a zero.

3. Dados três valores A, B, C, determine e imprima o menor deles.

4. Faça um algoritmo que ao receber três valores, verifique se eles podem ser os
comprimentos dos lados de um triângulo. Se não for um triângulo, imprima uma
mensagem. Propriedade: O comprimento de um lado do triângulo é menor do que a
soma dos comprimentos dos outros dois lados.

5. Receber três valores distintos e colocá-los em ordem crescente. No final, escreva-


os na nova ordem. Utilize o operador lógico E.

6. Recebidos valores numéricos entre zero e cinco, escreva-os na forma literal.

7. A partir do exercício anterior, pergunte ao usuário se deseja os numerais em inglês


ou português.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

7. Estruturas de repetição

A estrutura de repetição permite que uma sequência de comandos seja


executada um determinado número de vezes ou enquanto uma determinada condição
for satisfeita, ou então, encontre um comando de interrupção.

Temos três tipos de estruturas de repetição: Para ... Até ... Faça, Repita ... Até
que e Enquanto ... Faça.

7.1. Para ... Até ... Faça

A estrutura Para ... Até ... Faça repete uma sequência de comandos um
determinado número de vezes, enquanto o valor de uma variável de controle é
incrementado.

Para I = 1 Até 15 Faça


Sequência de comandos {esta sequência será repetida quinze vezes}
FimPara

Exemplo:

Para I = 1 Até 5 Faça


Se I mod 2 =0 Então {condição verdadeira se resto =0}
Número = “Par” {atribui “Par” à Número}
Escreva Número
FimSe
FimPara

A saída deste algoritmo será: 2 e 4.

7.2. Repita ... Até que ...

A estrutura Repita ... Até que..., contém uma condição que controla a execução
repetidas vezes de uma sequência de comandos. Esta condição tem que produzir um
resultado de tipo Booleano - verdadeiro ou falso. A sequência de comandos será
executada até que a condição seja satisfeita. A sequência de comandos será executada
pelo menos uma vez, porque a condição é avaliada somente depois da execução de
cada sequência de comandos.

Repita
Sequência de comandos
Até que condição
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

Exemplo:

Repita
Leia A
A=A+1
Até que A > 19 {avalia se A >19, se for, para o loop}
Escreva A {escreverá somente valores maiores que 19}

7.3. Enquanto ... Faça

Uma estrutura Enquanto ... Faça, contém uma condição que controla a
execução repetidas vezes de uma sequência de comandos. A condição que controla a
repetição deve ser de tipo Booleana. Ela é avaliada antes da sequência de comandos
ser executada. A sequência de comandos será executada repetidamente contanto que
a condição seja Verdadeira. Se a condição no princípio for Falsa, a sequência de
comandos não será executada em nada, passando o controle para a linha seguinte a
FimEnquanto.

Enquanto condição1 Faça


Sequência de comandos
Se condição2 Então {se a condição2 for verdadeira interrompe loop}
Interrompa {comando de interrupção opcional}
FimSe
Sequência de comandos
FimEnquanto

Nesta estrutura, verificamos que é possível termos outros tipos de estruturas


dentro da estrutura de repetição, esta situação é comum para qualquer tipo de
estrutura. O comando Interrompa, força um salto, na sequência, para os comandos
que estão logo após a expressão FimEnquanto, e seu uso não é obrigatório.

7.4. Exercícios resolvidos

1. Faça um algoritmo que some os números compreendidos entre os valores 10 e


100, e no final imprima o valor total da soma.

Rotina
Declare soma, valor Numérico
valor = 11
soma = 0
Enquanto valor <= 100
soma = soma + valor
valor = valor + 1
FimEnquanto
Escreva “Total = “, soma
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

FimRotina
2. Crie um algoritmo que receba um número inteiro diferente de zero, e calcule o
fatorial deste número. (Fatorial de um número é igual ao produto dos números 1 ao
número desejado - inclusive. Ex: 3! (fatorial de 3 é igual a: 1x2x3 = 6)

Rotina
Declare valor, contador, total Numérico
total = 1
Receba valor
Para contador = 1 Até valor
total = total * contador
FimPara
FimRotina

3. Escreva um algoritmo que repita a soma dos números recebidos até que o total
seja maior que cem.

Rotina
Declare X ,Total Numérico
Total = 0
Repita
Receba X
Total = Total + X
Até que Total > 100
Escreva Total
FimRotina

7.5. Exercícios propostos

1. Faça um algoritmo que receba 100 valores inteiros e positivos, e resolva as


seguintes questões:

a) Calcule a raiz quadrada dos valores menores que 100;


b) Para todo valor maior que 100, verifique se o mesmo é par, caso positivo,
imprimir o valor e a mensagem “valor par”;
c) Ao final, imprimir a quantidade de números pares.

2. A conversão de graus Farenheit para centígrados é obtida por C = 5(F - 32)¸9. Fazer
um algoritmo que calcule e escreva uma tabela de graus centígrados em função de
graus Farenheit, variando um a um de 50 a 150 graus Farenheit.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

3. Foi feita uma pesquisa de canal de TV em várias casas de uma certa cidade, num
determinado dia. Para cada casa visitada, foi preenchido uma ficha contendo o
número do canal (2,4,5,13) e o número de pessoas que estavam assistindo naquela
casa. Faça um algoritmo que:

a) Receba um número indeterminado de fichas, sendo que a última ficha contém


o número do canal igual a zero;
b) Calcule a percentagem de audiência para cada emissora;
c) Escreva o número do canal e sua respetiva percentagem.

4. Fazer um algoritmo que calcule e escreva o número de grãos de milho que se pode
colocar num tabuleiro de xadrez, colocando 1 na primeira casa e nas casas seguintes o
dobro da casa anterior. Sabe-se que um tabuleiro de xadrez tem 64 casas.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

8. Desvios

Por desvios entendemos todo comando que desvia a execução do programa de


sua linha principal, podendo ser chamados também de sub-rotinas. Muitas vezes é
possível dividirmos um problema grande em problemas pequenos, onde teremos
algoritmos menores de fácil resolução.

Estes algoritmos menores também possuem entrada, processamento e saída.


Como desvios temos o comando ir para, procedimentos e funções.

8.1. Ir para

Uma declaração Ir para transfere a execução do programa para a linha marcada


por um nome específico. Quando todas as declarações deste desvio forem executadas,
volta-se para a linha seguinte a que chamou o comando Ir para.

Quando utilizar o comando Ir para, observe as seguintes regras: A linha referida


por uma declaração ir para devem estar no mesmo bloco com a declaração ir para. Em
outras palavras, não é possível saltar para ou fora de um procedimento ou função.

Boas práticas de programação recomendam que você utilize o comando ir para


menos possível.

Ir para nome-do-bloco

Exemplo:

Rotina
Declare A, SOMA Numérico
Ir Para Desvio
SOMA = A + 20
Desvio:
A = 10
FimRotina
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

9. Procedimentos

Utilizamos os procedimentos para evitarmos a repetição de uma sequência de


comandos que é utilizada em várias partes do programa, dividindo e estruturando o
algoritmo em partes fechadas e coerentes.

Uma declaração de procedimento ativa um procedimento especificado por um


identificador de procedimento. Se a declaração de procedimento correspondente
contém uma lista de parâmetros formais, então a chamada do procedimento tem que
ter uma lista de parâmetros atuais (parâmetros listados em definições são parâmetros
formais; na declaração de chamada, eles são parâmetros atuais). Os parâmetros atuais
são passados aos parâmetros formais como parte da chamada.

Procedimento nome (parâmetros formais)


Declaração dos objetos locais
Sequência de comandos
FimProcedimento

Exemplo:

Rotina
Declare A, B, C, D, RESULT Numérico
Procedimento Soma ( X, Y ) {X e Y são parâmetros formais}
RESULT = X + Y
FimProcedimento
Leia A, B, C, D
Soma (A, C) {executa o procedimento atribuindo A a X e C a Y}
Se RESULT > 20 Então {A e C são parâmetros reais}
Soma ( B, D)
FimSe
Escreva RESULT
FimRotina
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

10. Funções

Uma Função define um bloco do algoritmo que computa e devolve um valor,


semelhante às funções matemáticas vistas anteriormente. A declaração de uma função
é semelhante a de um procedimento, com exceção da especificação do tipo de dado
retornado por esta função.

Função tipo nome (parâmetros) {tipo = tipo de dado de retorno}


Declaração dos objetos locais
Sequência de comandos
FimFunção

Uma função é ativada utilizando-se o seu nome junto com os parâmetros


requeridos por ela. A função então é executada, e o valor de retorno deverá ser
atribuído a uma variável com o nome desta função ou à variável Resultado, que
armazena o retorno da função.

Exemplo:

Rotina
Declare A, B, Nota Numérico
Função numérico Média (A, B)
Se A < 1 Então
Média = ((A ^ 2) *( B ^ 2)) ^ 0,5 {média geométrica,
SeNão
Média = (A + B) / 2 {média aritmética}
FimSe
FimFunção
Leia A, B
Nota = Média (A, B)
Escreva Nota
FimRotina

A função acima retornará a média entre A e B, atribuída à variável Média. Será


calculada média geométrica se A<1 e média aritmética caso contrário.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, I. P.
Delegação Regional Norte
Centro de Emprego e Formação Profissional do Alto de Trás-os-Montes

11. Teste e correção de erros

A prova e teste de algoritmos e programas, permite seguir a execução de um


algoritmo (ou programa) passo a passo e verificar a evolução de todas as variáveis.
Este processo é apresentado através de uma tabela em que deve constar todas as
variáveis, testes lógicos efetuados, entrada de dados e saída de resultados.

Nota: O seguimento (ou ‘traçagem’) de algoritmos pode detetar a presença de


erros mas não pode comprovar a sua ausência (excetuando em casos simples).

Você também pode gostar