Universidade
Lusófona
Guiné
LICENCIATURA
ENGENHARIA INFORMÁTICA
1º ANO
2022/2023
ALGORITMIA &
ESTRUTURAS DE DADOS
Professor: Engº. Lamine Fati
2
AULA Nº
Conceitos Básicos
• Programação estruturada - Método que permite fasear o processo de construção de um
programa descrevendo o processo computacional de um modo não ambíguo - Algoritmo.
A programação estruturada define um conjunto de regras para elaboração de programas,
baseando-se no desenho modular dos programas e no refinamento gradual do topo para a base.
De acordo com este paradigma um programa pode ser definido pela forma seguinte:
• Programa = Estrutura de Dados + Algoritmo
• Estrutura de dados - É o modo como os dados estão organizados, acedidos e alterados. De
entre as mais relevantes destacam-se: variáveis simples, vetores mono e multidimensionais,
listas, filas, árvores, grafos e ficheiros.
• Algoritmo - é do que um conjunto de passos (chamados comandos ou instruções) que
devem ser seguidos para conseguir resolver um determinado problema ou atingir um objetivo
• Considere-se por exemplo a seguinte receita para a confeção de uma omelete de queijo.
• OMELETE DE QUEIJO FRESCO
Ingredientes:
• 170 gr de queijo fresco
• 6 ovos grandes
• 30 gr de manteiga ou margarina
• Sal q.b.
Modo de Preparação:
• Ponha o queijo fresco numa tigela e esmague-o com uma colher de pau, até formar um puré espesso e cremoso.
Bata os ovos e misture-os com o queijo, adicionando um pouco de água fria. Tempere a gosto. Derreta um pouco
de gordura numa frigideira de base larga e adicione a mistura de ovos e queijo. Cozinhe em lume brando até que a
omeleta fique pronta mas não demasiado cozida.
• Estabelecendo um paralelo entre esta receita culinária e um programa, os ingredientes são as estruturas de dados e
o modo de preparação é o algoritmo.
De acordo com o paradigma da programação estruturada qualquer programa pode ser descrito
utilizando exclusivamente as três estruturas básicas de controlo:
• Instruções de Sequência - as instruções de sequência são instruções atómicas (simples)
permitem a leitura/escrita de dados, bem como o cálculo e atribuição de valores;
• Instruções de Decisão - as instruções de decisão, ou seleção, permitem a seleção em
alternância de um ou outro conjunto de ações após a avaliação lógica de uma condição;
• Instruções de Repetição - as instruções de repetição, ou ciclos, permitem a execução, de
forma repetitiva, de um conjunto de instruções. Esta execução depende do valor lógico de
uma condição que é testada em cada iteração para decidir se a execução do ciclo continua ou
termina.
Na descrição de algoritmos são utilizados diferentes formalismos conforme o objetivo ou
audiência. Entre os mais comuns encontram-se o fluxogramas e pseudo-código.
Fluxograma - consiste na descrição de um algoritmo em forma gráfica.
Este formalismo inclui um conjunto de símbolos gráficos que representam
os diferentes tipos de instruções anteriormente descritas: sequência,
decisão e repetição.
Na representação de fluxogramas será utilizada a notação seguinte:
Fluxo de execução
Inicio / Fim
Decisão
condicional
Linha de fluxo
Entrada de dados
Processamento
(cálculos)
Saída de dados Conector de fluxo
As instruções do tipo sequencial são as mais simples de todas
apresentando uma estrutura atómica. São responsáveis por permitirem
fazer a entrada/saída de dados, execução de cálculos e atribuição de
valores a variáveis. A noção de ordem/sequência é representada através da
seta de fluxo.
Saída de dados
• As instruções de escrita permitem fazer a saída de dados (tipicamente
para o écran) sejam estes variáveis e/ou textos e/ou resultado de
cálculos. é apresentada sintaxe proposta para a escrita de uma ou várias
variáveis.
Saída de dados
Entrada de dados
As instruções de leitura permitem fazer a entrada de dados, tipicamente a
partir de um teclado, colocando-os em variáveis. é apresentada a sintaxe
proposta para a leitura de uma ou várias variáveis.
No caso de se pretender ler mais do que uma variável, os nomes das
variáveis separam-se por vírgulas.
Entrada de dados
Atribuição
A instrução designada por atribuição permite atribuir o valor de uma
expressão a uma variável. A variável que aparece no lado esquerdo da
instrução vai assim receber o valor da expressão que aparece no lado
direito da mesma instrução. Do lado direito da atribuição podemos ter: um
número, um texto, o resultado de um cálculo ou o conteúdo de uma outra
qualquer variável. é apresentada a sintaxe proposta para a atribuição.
Processamento
(cálculos)
Decisão
O simbolo designado por tomada de decisção perante uma possibilidade.
Apontando a possibilidade de desvios
Decisão
condicional
Pseudo-código - consiste na descrição do algoritmo numa linguagem parecida com a
linguagem natural (português, inglês ou outra) de forma estruturada. O objetivo deste
formalismo é centrar a atenção do programador na lógica ou fluxo do algoritmo,
abstraindo-se das questões relacionadas com a sintaxe específica de uma determinada
linguagem de programação;
Na escrita dos programas em pseudo-código serão considerados as seguintes opções:
Os algoritmos são delimitados pelas etiquetas início e fim;
As etiquetas Entrada: e Saída: são utilizadas na explicitação das entradas e saídas de
dados, respetivamente, mais relevantes para o funcionamento do algoritmo;
Os comentários são precedidos do caracter ’#’ e são meramente documentais, como
tal, não são executados;
As ações são descritas através de verbos no infinitivo;
Operadores utilizados nos algoritmos
• Na escrita de algoritmos são utilizados os operadores relacionais, lógicos e aritméticos. Na
tabela 1.1 são apresentados os operadores relacionais considerados e respetiva semântica. Na
explicitação dos operadores considerem-se as variáveis a e b apresentado os valores 13 e 5,
respetivamente.