Você está na página 1de 19

Algoritmia

Linguagem natural É a linguagem falada ou escrita, passível de várias interpretações e sofre


transformações naturais ao longo do tempo.

Linguagem formal É delineada de modo a evitar equívocos na utilização dos termos. São desenvolvidas
de forma a evitar ambiguidade e redundância. Exemplo: Matemática e Linguagens de programação.

Linguagens de programação Conjunto de palavras utilizadas na escrita de programas, de acordo com


léxico próprio sujeito a uma determinada estrutura.

Inicialmente aproximavam-se bastante com as instruções do processador, tornando-as muito complexas e de


difícil utilização. Mais tarde apareceram as linguagens aproximadas com a linguagem natural, sendo estas cada
vez mais simples e com interfaces mais agradáveis.

Objetivo: Permitir a escrita de programas utilizados pelo computador, tais como: processadores de texto,
folhas de cálculo, sistemas operativos, etc.
Classificação das linguagens de programação
É feita de acordo com a aproximação que têm ou não com a linguagem humana.

Linguagem de baixo nível É aquela que se aproxima da linguagem máquina ou das instruções do
processador. Exemplo: Assembly.
Programação em linguagem máquina, sequências de zeros e uns. A possibilidade do programa dor cometer
erros era grande e a localização destes era difícil.

Linguagem de alto nível É aquela que se aproxima da linguagem corrente. Exemplo: Pascal (linguagem
estruturada que permite criar bons hábitos de programação, foi criada para programadores principiantes mas
depressa cativou programadores mais experientes).
Programa Conjunto de instruções numa linguagem de programação organizadas de uma forma lógica e
previamente estabelecida, permitindo ao computador executar as tarefas que lhe são pedidas.

Instrução Especificação ao processador da ação a executar.

Programa

Instrução

Fases de elaboração de um programa:

1. Apresentação e análise do problema


2. Formulação e representação de um algoritmo.
3. Codificação do algoritmo numa linguagem de programação.
4. Compilação e interpretação do programa fonte.
5. Testes do programa de forma a verificar erros de lógica.
Programas tradutores
Programas que traduzem os programas escritos em linguagens de programação para linguagem máquina.
Existem dois tipos:

Interpretadores Traduzem linha a linha e sempre que se queira executar o programa é preciso traduzi-lo
de novo.

Compiladores Fazem uma total tradução do programa fonte gerando um novo programa, o programa
objeto, escrito em linguagem máquina e apto a ser utilizado pelo computador em qualquer altura, sem que seja
necessário traduzi-lo de novo.

Programa fonte Compilador Programa objeto Entradas


Saídas

Entradas
Programa fonte Interpretador
Saídas
Vantagens do compilador: Desvantagens do compilador:

 Execução mais rápida  Várias etapas de tradução.

 Permite estruturas de programas mais completos.  Programa final é maior, necessitando de mais
memória para ser executado.
 Permite otimização do programa fonte.
 Processo de correção de erros e depuração é mais
demorado

Vantagens do interpretador: Desvantagens do interpretador:

 A depuração do programa é mais simples  Execução do programa mais lenta.

 Consome menos energia.  Estrutura de dados mais simples.

 Resultado imediato do programa ou rotina  É necessário fornecer o programa fonte ao


desenvolvida utilizador.
Estruturas de informação
Dados São a representação de tudo aquilo que nos rodeia: objetos, seres, fenómenos, etc..

Informação Dados depois de sujeitos a um tratamento adequado, podendo a informação obtida ser
origem apara nova informação..

DADOS INFORMAÇÃO
Ex: Luís, O , PROCESSAMENTO Ex: O Luís joga à
bola, joga, à bola

Classificação dos dados

Tipos de dados Exemplo

Numéricos 78, 45

Alfabéticos Escola, turma

Alfanuméricos RS323, LPT1

Lógicos Verdadeiro/Falso 1/0


Tipos de dados utilizados em algoritmia e em Pascal
Algoritmo Pascal Descrição
Inteiro Integer Representa números entre -32768 ate +32767
Real Real Representa os números entre 2,9*10-39 até 1,7* 1038.
Ocupa 6 bytes na memória
Caracter Char Representa um dos caracteres da tabela ASCII. Ocupa
1 byte na memória.
Cadeia String Conjunto de caracteres. Ocupa de 1 a 255 bytes na
memória.
Lógico Boolean Valor lógico. Assume somente dois valores: True
(verdade) ou False (falso). Ocupa 1 byte na memória.

Variáveis
São identificadores para designar valores que podem variar ao longo da execução do programa.

Exemplo:
Var peso, altura : real; ou Var
peso, altura : real;

Regras de construção do nome de uma variável:


 Não deve ser uma palavra reservada do Pascal.
 Pode ser constituído por um ou mais caracteres.
 Não deve possuir espaços em branco.
 O primeiro caractere deve ser sempre uma letra.
 Não deve possuir caracteres especiais, excepto underscore.
Constantes
São identificadores para designar valores que não variam ao longo da execução do programa.

Exemplo:
Const pi=3,14; ou Const
pi=3,14;

Operadores
São elementos matemáticos que atuam sobre os operandos (variáveis e constantes), numa determinada
expressão.
+ Adição
Operadores aritméticos  Permitem
a realização de operações matemáticas com - Subtração
valores do tipo numérico, cujo resultado é * ou x Multiplicação
ainda um valor do tipo numérico.
/ Divisão
MOD Resto da divisão
Só com números
Exemplo: inteiros DIV Divisão inteira
5*3=15
8 MOD 2=0
8 DIV 2=4 8 2
1/2=0,5 0 4

MOD DIV
Operadores relacionais  São usados para efetuar comparações entre expressões.
= Igual Exemplo:
> Maior 1< 4
4+5=5+4
< Menor 3 <> 2
>= Maior ou igual
<= Menor ou igual
<> Diferente

Operadores lógicos  Realizam E (and) Conjunção


operações lógicas, devolvendo sempre um
dos valores lógicos, true ou false Ou (or) Disjunção
Negação (not) Negação

Proposições Resultado da operação lógica


A B NOT A A and B A or B

V V F V V

V F F F V

F V V F V

F F V F F
Prioridade dos operadores

As operações sucessivas dentro de um grupo efetuam-se da esquerda para a direita. A prioridade destes
operadores pode ser alterada utilizando parênteses, sendo as operações delimitadas por estes realizadas
primeiro.
Prioridade Operadores

1 (maior) NOT

2 *, /, DIV, MOD, AND

3 +, -, OR

4 (menor) =, <>, <, <=, >, >=

Expressões

São uma combinação de operandos e operadores que depois de resolvidas resultam num determinado valor.

Tipos de expressões
Tipo Significado Exemplo
Numéricas São aquelas em que se utilizam apenas operadores 2a+b*c
aritméticos
Lógicas É uma expressão em que se utiliza operadores X>20 E x<=100
relacionais e/ou lógicos, das quais se espera obter
um resultado lógico
Algoritmia

Sequência finita de instruções descritas de forma lógica, ordenada, clara e precisa a fim de resolver o problema.

PROBLEMA ALGORITMO PROGRAMA

Caraterísticas de um bom algoritmo

 Deve ser corretamente definido As ações a desenvolver devem ser apresentadas de uma forma clara,
abrangendo a maior quantidade de informação.

 Deve estar isento de ambiguidades Como resultado de falta de informação ou duplicação desta.

 Deve ser eficaz Deve resolver o problema independentemente da situação, de uma forma isenta de erros
e qualquer falha. Se existirem exceções, estas devem ser devidamente tratadas.

Representação dos algoritmos


PSEUDOCÓDIGO
FLUXOGRAMAS
Utilizam a linguagem escrita para
Utilizam símbolos gráficos representar as ações a desencadear
para representar o fluxo por um programa. Os termos
das ações necessárias utilizados são normalmente uma
para resolver um mistura da linguagem corrente com
problema notações e palavras inerentes às
linguagens de programação
Exemplo:

Algoritmo que devolve a soma de dois número inteiros introduzidos.

Fluxograma: Pseudocódigo:

Início Algoritmo soma;


Var
a, b, c : inteiro;
Início
Escrever (“Digite um número”);
Ler (A,B) Ler (a);
Escrever (“Digite outro”);
Ler (b);
c  a + b;
Escrever (“A soma é”, c);
CA+B
Fim.

Escrever(C)

Fim
Alguns símbolos gráficos utilizados pelos fluxogramas:

Início ou fim do fluxograma

Entrada ou saída de dados

Processo /Operação

Decisão /Comparação

Conexão

Linha de fluxo

Sub-rotina
Estruturas de controlo

Sequencial Decisão ou seleção Repetição ou ciclos


As instruções do programa Para selecionar problemas Para selecionar problemas de
são executadas numa complexos é importante que repetição ou ciclos é
determinada sequência, sem possamos decidir se uma importante que possamos
que esta possa sofrer instrução ou grupos de decidir se uma instrução ou
alterações através dos dados instruções, devem ou não ser grupos de instruções, devem
de entrada. executados, dependendo de ou não ser executados,
um valor ou de uma dependendo se utilizam um
expressão contador ou se são baseados
numa condição.

Estrutura sequencial
Exemplo:
Deseja-se saber qual o montante a pagar no final do mês, relativo ao consumo de eletricidade. Para tal deve ser
pedido:
- O preço de KWh Algoritmo eletricidade;
- A quantidade de KWh consumidos durante o mês Var
p, c, tp : real;
Início
Escrever (“Insira o preço KWh”);
Ler (p);
Escrever (“Insira o consumo”);
Ler (c);
tp  p * c;
Escrever (“O total a pagar é”, tp);
Fim.
Estrutura de decisão ou seleção

Baseadas numa condição: De escolha múltipla:


Se…Então…Senão Caso…Senão

Permite a seleção entre duas alternativas Permite a escolha entre várias alternativas. É
dependendo de uma dada condição /expressão. A selecionada uma instrução ou bloco de instruções,
estrutura pode ser definida das seguintes formas: com base num valor ou numa expressão designada
- Se…Então seletor.
- Se…Então…Senão (não é obrigatório) Tal como a estrutura Se a cláusula Senão não é
obrigatória.

Exemplos da estrutura Se…Então…Senão:

1- Algoritmo que lê um valor inteiro e envia para o ecrã uma mensagem se o valor for negativo.
2- Algoritmo que lê um valor inteiro e envia para o ecrã uma mensagem que o valor é maior ou igual que zero ou que
o valor é menor que zero. 2
1 Algoritmo valor;
Algoritmo valor; Var
Var num: inteiro;
num: inteiro; Início
Início Escrever (“Digite um número”);
Escrever (“Digite um número”); Ler (num);
Ler (num); Se num >= 0 Então
Se num < 0 Então Escrever (“Valor maior ou igual que zero”);
Escrever (“Valor negativo”); Senão
Fim. Escrever (“Valor menor que zero”);
Fim.
Exemplo da estrutura Caso…Senão:

Algoritmo que apresente no ecrã por extenso o mês correspondente ao valor inteiro introduzido entre 1 e 6.
Corresponde aos meses do primeiro semestre do ano.

Algoritmo mes;
Var
valor: inteiro;
Início
Escrever (“Digite um número entre 1 e 6”);
Ler (valor);
Caso valor
1: Escrever(“Janeiro”);
2: Escrever(“Fevereiro”);
3: Escrever(“Março”);
4: Escrever(“Abril”);
5: Escrever(“Maio”);
6: Escrever(“Junho”);
Senão
Escrever (“Valor não permitido”);
Fim.

Estrutura Se…Então…Senão Versus Estrutura Caso…Senão

Pode-se obter o mesmo resultado utilizando uma estrutura Se encadeada, mas tal pode a conduzir a
instruções difíceis de compreender, aumentando a possibilidade de erro.
Para além disso a estrutura Caso adequa-se melhor a seleções baseadas em variáveis que têm valores
discretos, por sua vez a estrutura Se adequa-se mais a seleções baseadas em expressões com valores
lógicos.
Na estrutura Caso é possível definir intervalos para valores ou letras assumidas pelo seletor

A ter em atenção:
 Dois pontos indicam o intervalo entre o valor inicial e o valor final.
 Valores do tipo caracter é necessário delimitá-los por aspas.
 No caso de não utilizar a cláusula Senão, é necessário acrescentar na estrutura um ponto e virgula.
Exemplos:
1- Algoritmo que apresente no ecrã o respetivo intervalo introduzido de 1 a 500. Intervalos:
- 1 a 100
- 101 a 200
- 201 a 500
2- Resolva o exercício anterior para os seguintes intervalos:
- AaD
- EaH
- IaL
2
1 Algoritmo intervalo;
Algoritmo intervalo; Var
Var letra: caracter;
num: inteiro; Início
Início Escrever (“Digite uma letra de A a L”);
Escrever (“Digite um número entre 1 a 500”); Ler (letra);
Ler (num); Caso letra
Caso num “A”..”D” : Escrever(“Intervalo ABCD”);
1..100 : Escrever(“Intervalo de 1 a 100”); “E”..”H” : Escrever(“Intervalo EFGH”);
101..200 : Escrever(“Intervalo de 101 a 200”); “I”..”L” : Escrever(“Intervalo IJKL”);
201..500 : Escrever(“Intervalo de 201 a 500”); Senão
Senão Escrever (“Letra inválida”);
Escrever (“Valor inválido”); Fim.
Fim.
Estrutura de repetição ou ciclos

Utilizando um contador: Baseadas numa condição


Para…Ate…Fazer

Enquanto se verificar uma Até se verificar uma dada


dada condição condição
Enquanto…Fazer Repetir…Até
Exemplo da estrutura de decisão ou seleção:

1- Elabore três programas utilizando as três estruturas de repetição:


Algoritmo que mostre no ecrã os números compreendidos entre 20 e 200 inclusive.

Algoritmo numeros; Algoritmo numeros; Algoritmo numeros;


Var Var Var
num: inteiro; num: inteiro; num: inteiro;
Início Início Início
Para num=20 Ate 200 Fazer num=20; num=20;
Escrever (num); Enquanto (num<=200) Fazer Repetir
Fim. Inicio Escrever (num);
Escrever (num); num num+1;
num num+1; Até num=201;
Fim; Fim.
Fim.
Como escolher a estrutura de repetição a utilizar

Se escolhermos uma estrutura que não seja a mais adequada pode dar origem a uma situação de resolver,
de ler e de modificar.
Se estivermos perante uma situação em que haja necessidade de um ciclo contado, a estrutura Para
adequa-se melhor.
Caso a situação não seja a referida podemos optar pela estrutura Enquanto ou pela estrutura Repetir, tendo
em consideração que o corpo do ciclo da ultima é executado pelo menos uma vez, pois a verificação da
condição / expressão é realizada antes da execução.

Você também pode gostar