SlideShare uma empresa Scribd logo
1 de 29
 MD_024.20160302.Vs.0
Introdução à algoritmia
 MD_024.20160302.Vs.0
• Aprender o conceito de algoritmo e as suas características
fundamentais
• Como resolver problemas através de algoritmos
• Como desenhar algoritmos e programas
• Distinguir as diferentes representações de algoritmos
• Como usar fluxogramas em programação visual
• Aprender a utilizar estruturas de controlo de fluxo: sequência, seleção
e repetição
• Origem da noção de algoritmo
• a noção de algoritmo é essencial na programação de sistemas
informáticos;
• historicamente, o primeiro algoritmo não trivial foi inventado (entre
400 e 300 a.c.) pelo matemático grego Euclides;
• esse primeiro algoritmo é o da determinação do máximo divisor
comum de dois números inteiros e é designado por “algoritmo de
Euclides”
• A palavra “algoritmo” tem origem no nome do matemático árabe/persa
(Mohammed al-Khowârizmî) do século IX que definiu as regras passo-a-
passo para as operações básicas da aritmética;
• Em Latim, o nome transformou-se em Algorismus, de onde “algoritmo”
derivou diretamente
• Filme
 MD_024.20160302.Vs.0
• Para resolver um problema através dum computador é necessário
encontrar em primeiro lugar uma maneira de descrevê-lo de uma
forma clara e precisa.
• É também preciso que encontremos uma sequência de passos que
conduzam à sua resolução. Esta sequência de passos é designada
por algoritmo.
• A noção de algoritmo é central a toda a informática.
• A construção de algoritmos para resolver os problemas é uma
das maiores dificuldades, mas também um dos maiores
desafios para quem programa computadores.
 MD_024.20160302.Vs.0
 Em Informática Algoritmo é o conjunto ordenado de passos (ou
instruções) para a resolução sequencial de um problema.
 Um computador é uma máquina sequencial (executa instruções
sequencialmente), pois só inicia a execução de uma instrução após ter
terminado a anterior
 Assim, um algoritmo pode ser visto como a descrição numa linguagem
quase natural (chamada linguagem algorítmica, pseudocódigo ou ainda
Português estruturado) da sequência de instruções a ser executada pelo
computador para a resolução de um problema.
 MD_024.20160302.Vs.0
Uma receita é uma descrição dum conjunto de passos ou
acções que fazem a combinação de um conjunto de
ingredientes com vista a obter um produto gastronómico
particular.
Farinha de
Trigo
Ovos
Ferment
o Manteig
a
Açúcar
Leit
e
receita
 MD_024.20160302.Vs.0
– Um algoritmo opera sobre um conjunto de entradas (farinha ovos, fermento, etc. no caso do bolo) de modo
a gerar uma saída que seja útil (ou agradável) para o utilizador (o bolo pronto).
– Assim, os passos ou acções dum algoritmo para confeccionar um bolo são os seguintes:
1. Bater duas claras em castelo;
2. Adicionar duas gemas;
3. Adicionar um xícara de açúcar;
4. Adicionar duas colheres de manteiga;
5. Adicionar uma xícara de leite de coco;
6. Adicionar farinha e fermento;
7. Colocar numa forma e levar ao forno em lume brando.
• Entradas:
ingredientes
• Saídas: bolo
• Algoritmo: receita
 MD_024.20160302.Vs.0
• Um algoritmo é uma descrição, passo-a-passo, de uma metodologia que conduz
à resolução de um problema ou à execução de uma tarefa.
• A programação consiste na codificação precisa desse algoritmo, segundo
uma linguagem de programação específica.
• Há, pois, que ter em consideração que existem três fases distintas na elaboração
de programas:
– a análise do problema (especificação do problema, análise de requisitos, pressupostos,
etc.)
– a concepção do algoritmo
– a tradução desse algoritmo na linguagem de programação
 MD_024.20160302.Vs.0
Dado um problema, a sua resolução num computador será objeto de um conjunto
de fases até se obter a solução final. Podemos considerar as três fases seguintes:
 Análise do problema – que implica a compreensão e real definição do
problema, o que realmente se pretende, que dados são fornecidos, desses,
quais os necessários e que outros teremos que considerar, que resultados
iremos obter;
 Elaboração do Algoritmo (e/ou Fluxograma) recorrendo ao método de análise
Top-Down e às estruturas algorítmicas adequadas
 Implementação do Algoritmo obtido numa Linguagem de Programação (no
nosso caso a linguagem Pascal), e sucessivos testes e correções da
implementação até se obter a solução final ou programa .
 MD_024.20160302.Vs.0
 Compreender o problema
◦ Identificar os dados de entrada
◦ Identificar os dados de saída
 Determinar o que é preciso para transformar dados de entrada em dados de
saída:
◦ usar a estratégia do dividir-para-conquistar
◦ observar regras e limitações
◦ identificar todas as ações a realizar
◦ eliminar ambiguidades
 Construir o algoritmo
◦ Testar (manualmente) o algoritmo
◦ Executar o algoritmo
 MD_024.20160302.Vs.0
 Também é conhecido por método descendente (top-down method) ou método de
refinamento passo-a-passo
 Este método consiste em dividir um problema em partes menores (ou sub-
problemas) de modo a que seja mais fácil a sua resolução.
 Exemplo: Fazer sumo de laranja?
◦ Lavar laranja;
◦ Partir laranja ao meio;
◦ Espremer laranja;
◦ Filtrar o sumo;
◦ Servir o sumo.
 Passo-a-passo, significa que cada passo é completado antes que o próximo comece.
 Exemplo: é impossível “ver telejornal” antes de executar por inteiro o passo anterior
de “ligar a TV”
 MD_024.20160302.Vs.0
• Finitude: um algoritmo deve sempre terminar após um número finito de
passos.
• Definição: cada passo de um algoritmo deve ser precisamente definido. As
acções devem ser definidas rigorosamente e sem ambiguidades.
• Entradas: um algoritmo deve ter zero ou mais entradas - são as
quantidades que lhe são fornecidas antes do algoritmo iniciar.
• Saídas: um algoritmo deve ter zero ou mais saídas - são as quantidades
que tem uma relação específica com as entradas.
• Eficiência: um algoritmo deve ser eficiente. Isto significa que todas as
operações devem ser suficientemente básicas de modo que possam ser em
princípio executadas com precisão em um tempo finito por um ser humano
usando papel e lápis.
Pode haver mais do que um algoritmo para resolver um problema.
Por exemplo, para ir de casa até o trabalho, podemos escolher
diversos meios de transportes em função do preço, conforto,
rapidez, etc..
 MD_024.20160302.Vs.0
 A abordagem de um problema segundo uma conceção descendente, em inglês top-down, é um
método de tratamento de problemas do geral para o particular, em que se parte dos pontos mais
gerais e por simplificação (análise) se chega aos aspetos mais particulares.
 Diz-se então que o método Top-Down consiste na divisão de um problema em problemas cada
vez mais pequenos até se obter um nível de especificação considerado aceitável (dividir para
reinar).
 Poder-se-á afirmar que se atingiu um nível de especificação considerado aceitável sempre que as
operações encontradas na análise top-down possam ser implementadas diretamente usando as
instruções da linguagem algorítmica (nível da linguagem algorítmica).
 Um problema a ser resolvido num computador, poderá sempre ser dividido em pelo menos três
subproblemas: 1- entrada de dados, 2- cálculos e 3- apresentação de resultados. Haverá ainda
um quarto que diz respeito à terminação do programa e que deverá existir em todos os
algoritmos. Para uma melhor compreensão do método top-down observe-se o seguinte exemplo:
 MD_024.20160302.Vs.0
 Problema: Dados os valores de dois operandos, calcular a sua soma.
 Na análise do problema constatamos que o utilizador do programa terá
que introduzir os dois valores (quaisquer) dos operandos (entrada de
dados) dos quais pretende obter a soma, o computador assimila esses
valores e realiza as operações necessárias ao cálculo do resultado.
 Note-se que no enunciado não é feita qualquer referência à saída de
resultados, no entanto esta terá que existir para que o resultado da
operação possa ser visualizado pelo utilizador.
 Aplicando o método top-down o problema fica
 Note que numerados e entre parênteses rictos temos a descrição dos
vários blocos ou subproblemas obtidos. Faltam especificar as
operações a realizar nos blocos 1, 2 e 3, no entanto estas operações
poderão ser implementadas diretamente em Linguagem Algorítmica
através de instruções simples tal como veremos mais adiante.
 MD_024.20160302.Vs.0
• Linguagem Natural
 Os algoritmos são expressos directamente em linguagem natural (e.g. o português
como no exemplo do bolo).
• Fluxograma (ou Diagrama de Fluxo)
 Esta é um representação gráfica que emprega formas geométricas padronizadas para
indicar as diversas ações e decisões que devem ser executadas para resolver o
problema.
• Pseudo-linguagem
 Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de
programação para descrever os algoritmos.
Não existe consenso entre os especialistas sobre qual é a melhor maneira de representar um algoritmo.
Actualmente a maneira mais comum de representar algoritmos é através de uma pseudo-linguagem ou
pseudo- código. Esta forma de representação tem a vantagem de o algoritmo ser escrito de uma forma
que está próxima de uma linguagem de programação de computadores.
 MD_024.20160302.Vs.0
• Problema:
– Cálculo da média aritmética de dois valores reais?
• Entradas:
– dois valores reais, X e Y
• Saídas:
– a média M=(X+Y)/2
• Algoritmo: 1. Início
2. Ler X,Y
3. Calcular a média M de X eY
4. Escrever M
5. Fim
 MD_024.20160302.Vs.0
• Problema:
– Cáculo da média aritmética de dois
valores reais?
• Entradas:
– dois valores reais, X e Y
• Saídas:
– a média M=(X+Y)/2
• Algoritmo: 1. Início
2. Ler X,Y
3. Calcular a média M de X eY
4. Escrever M
5. Fim
 MD_024.20160302.Vs.0
• Problema:
– Cáculo da média aritmética de dois valores reais?
• Entradas:
– dois valores reais, X e Y
• Saídas:
– a média M=(X+Y)/2
• Algoritmo: 1. Início
2. Ler X,Y
3. Calcular a média M=(X+Y)/2
4. Escrever M
5. Fim
 MD_024.20160302.Vs.0
• Um fluxograma é uma representação gráfica de um algoritmo.
• Programação visual: é a utilização de diagramas na programação.
• Descrevem o fluxo de um algoritmo através de um conjunto de figuras
geométricas padronizadas ligadas por setas de fluxo.
 MD_024.20160302.Vs.0
• Uma estrutura (de controlo) é a unidade básica da lógica de programação.
• Em meados da década de 60, alguns matemáticos provaram que qualquer
programa podia ser construído através da combinação de 3 estruturas básicas:
sequência, selecção e repetição.
 MD_024.20160302.Vs.0
 Numa sequência é processado um conjunto de instruções (ou
ações) em série.
• Não há qualquer possibilidade de alterar a ordem de processamento
das instruções, i.e. após processar a 1ª instrução processa-se a 2ª,
depois da 2ª processa-se a 3ª, e assim por diante até processar a
última ação.
 MD_024.20160302.Vs.0
• Neste caso, se a expressão
lógica tiver resultado falso,
nenhuma ação é
processada dentro da
estrutura de seleção.
• Só é processada uma ação
dentro da estrutura de
seleção se a expressão
lógica for true; daí, o nome
de seleção com 1 via.
 MD_024.20160302.Vs.0
 Uma estrutura de selecção é também designada por estrutura de
decisão.
 Neste caso, o fluxo de processamento segue por uma das 2 vias, dependendo
do valor lógico (verdadeiro ou falso) da expressão avaliada no início da
estrutura.
 Se o fluxo de processamento só passa por 1 via, então só uma das acções é
realizada ou processada.
 MD_024.20160302.Vs.0
• Neste caso, a decisão não é feita com base numa
expressão lógica porque há mais do que 2 resultados
possíveis.
• Também só são processadas a ação ou as ações
encontradas numa via.
 MD_024.20160302.Vs.0
• Neste caso, também há a necessidade de tomar uma decisão com base no
valor lógico de uma expressão.
• No entanto, a mesma ação será executada repetidamente enquanto o
resultado da expressão lógica se mantiver verdadeiro (true).
• O teste (da expressão lógica) precede a acção. Diz-se, por isso, que o teste é
à cabeça.
• O teste é importante porque funciona como uma condição de paragem (a
false) dos ciclos ou repetições.
 MD_024.20160302.Vs.0
• Esta estrutura de repetição é em tudo
idêntica à anterior.
• A diferença é que o teste é feito após
o processamento da ação
• O teste (da expressão lógica) sucede
a ação.
• Diz-se, por isso, que o teste é à
cauda.
Nome do algoritmo
Declaração variáveis
Inicio do algoritmo
Leitura de valores
Escrita de valor
Fim do algoritmo
 MD_024.20160302.Vs.0

Mais conteúdo relacionado

Semelhante a Introdução aos algoritmos e à algoritmia.pptx

01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programaçãomaceca21
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmoEugenio Caetano
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimosCleide Soares
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmosPedro Nelson
 
Apresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptxApresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptxscoffee633
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptJadna Almeida
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmostuelocg
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 

Semelhante a Introdução aos algoritmos e à algoritmia.pptx (20)

01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
A programação básica
A programação básicaA programação básica
A programação básica
 
A programacao basica
A programacao basicaA programacao basica
A programacao basica
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Algoritmos com java script
Algoritmos com java scriptAlgoritmos com java script
Algoritmos com java script
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
 
Lp m1(parte1)
Lp m1(parte1)Lp m1(parte1)
Lp m1(parte1)
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Apresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptxApresentaçao - Introdução à Computação.pptx
Apresentaçao - Introdução à Computação.pptx
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula1
Aula1Aula1
Aula1
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 

Introdução aos algoritmos e à algoritmia.pptx

  • 2.
  • 3.  MD_024.20160302.Vs.0 • Aprender o conceito de algoritmo e as suas características fundamentais • Como resolver problemas através de algoritmos • Como desenhar algoritmos e programas • Distinguir as diferentes representações de algoritmos • Como usar fluxogramas em programação visual • Aprender a utilizar estruturas de controlo de fluxo: sequência, seleção e repetição
  • 4. • Origem da noção de algoritmo • a noção de algoritmo é essencial na programação de sistemas informáticos; • historicamente, o primeiro algoritmo não trivial foi inventado (entre 400 e 300 a.c.) pelo matemático grego Euclides; • esse primeiro algoritmo é o da determinação do máximo divisor comum de dois números inteiros e é designado por “algoritmo de Euclides” • A palavra “algoritmo” tem origem no nome do matemático árabe/persa (Mohammed al-Khowârizmî) do século IX que definiu as regras passo-a- passo para as operações básicas da aritmética; • Em Latim, o nome transformou-se em Algorismus, de onde “algoritmo” derivou diretamente • Filme
  • 5.  MD_024.20160302.Vs.0 • Para resolver um problema através dum computador é necessário encontrar em primeiro lugar uma maneira de descrevê-lo de uma forma clara e precisa. • É também preciso que encontremos uma sequência de passos que conduzam à sua resolução. Esta sequência de passos é designada por algoritmo. • A noção de algoritmo é central a toda a informática. • A construção de algoritmos para resolver os problemas é uma das maiores dificuldades, mas também um dos maiores desafios para quem programa computadores.
  • 6.  MD_024.20160302.Vs.0  Em Informática Algoritmo é o conjunto ordenado de passos (ou instruções) para a resolução sequencial de um problema.  Um computador é uma máquina sequencial (executa instruções sequencialmente), pois só inicia a execução de uma instrução após ter terminado a anterior  Assim, um algoritmo pode ser visto como a descrição numa linguagem quase natural (chamada linguagem algorítmica, pseudocódigo ou ainda Português estruturado) da sequência de instruções a ser executada pelo computador para a resolução de um problema.
  • 7.  MD_024.20160302.Vs.0 Uma receita é uma descrição dum conjunto de passos ou acções que fazem a combinação de um conjunto de ingredientes com vista a obter um produto gastronómico particular. Farinha de Trigo Ovos Ferment o Manteig a Açúcar Leit e receita
  • 8.  MD_024.20160302.Vs.0 – Um algoritmo opera sobre um conjunto de entradas (farinha ovos, fermento, etc. no caso do bolo) de modo a gerar uma saída que seja útil (ou agradável) para o utilizador (o bolo pronto). – Assim, os passos ou acções dum algoritmo para confeccionar um bolo são os seguintes: 1. Bater duas claras em castelo; 2. Adicionar duas gemas; 3. Adicionar um xícara de açúcar; 4. Adicionar duas colheres de manteiga; 5. Adicionar uma xícara de leite de coco; 6. Adicionar farinha e fermento; 7. Colocar numa forma e levar ao forno em lume brando. • Entradas: ingredientes • Saídas: bolo • Algoritmo: receita
  • 9.  MD_024.20160302.Vs.0 • Um algoritmo é uma descrição, passo-a-passo, de uma metodologia que conduz à resolução de um problema ou à execução de uma tarefa. • A programação consiste na codificação precisa desse algoritmo, segundo uma linguagem de programação específica. • Há, pois, que ter em consideração que existem três fases distintas na elaboração de programas: – a análise do problema (especificação do problema, análise de requisitos, pressupostos, etc.) – a concepção do algoritmo – a tradução desse algoritmo na linguagem de programação
  • 10.  MD_024.20160302.Vs.0 Dado um problema, a sua resolução num computador será objeto de um conjunto de fases até se obter a solução final. Podemos considerar as três fases seguintes:  Análise do problema – que implica a compreensão e real definição do problema, o que realmente se pretende, que dados são fornecidos, desses, quais os necessários e que outros teremos que considerar, que resultados iremos obter;  Elaboração do Algoritmo (e/ou Fluxograma) recorrendo ao método de análise Top-Down e às estruturas algorítmicas adequadas  Implementação do Algoritmo obtido numa Linguagem de Programação (no nosso caso a linguagem Pascal), e sucessivos testes e correções da implementação até se obter a solução final ou programa .
  • 11.  MD_024.20160302.Vs.0  Compreender o problema ◦ Identificar os dados de entrada ◦ Identificar os dados de saída  Determinar o que é preciso para transformar dados de entrada em dados de saída: ◦ usar a estratégia do dividir-para-conquistar ◦ observar regras e limitações ◦ identificar todas as ações a realizar ◦ eliminar ambiguidades  Construir o algoritmo ◦ Testar (manualmente) o algoritmo ◦ Executar o algoritmo
  • 12.  MD_024.20160302.Vs.0  Também é conhecido por método descendente (top-down method) ou método de refinamento passo-a-passo  Este método consiste em dividir um problema em partes menores (ou sub- problemas) de modo a que seja mais fácil a sua resolução.  Exemplo: Fazer sumo de laranja? ◦ Lavar laranja; ◦ Partir laranja ao meio; ◦ Espremer laranja; ◦ Filtrar o sumo; ◦ Servir o sumo.  Passo-a-passo, significa que cada passo é completado antes que o próximo comece.  Exemplo: é impossível “ver telejornal” antes de executar por inteiro o passo anterior de “ligar a TV”
  • 13.  MD_024.20160302.Vs.0 • Finitude: um algoritmo deve sempre terminar após um número finito de passos. • Definição: cada passo de um algoritmo deve ser precisamente definido. As acções devem ser definidas rigorosamente e sem ambiguidades. • Entradas: um algoritmo deve ter zero ou mais entradas - são as quantidades que lhe são fornecidas antes do algoritmo iniciar. • Saídas: um algoritmo deve ter zero ou mais saídas - são as quantidades que tem uma relação específica com as entradas. • Eficiência: um algoritmo deve ser eficiente. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um ser humano usando papel e lápis. Pode haver mais do que um algoritmo para resolver um problema. Por exemplo, para ir de casa até o trabalho, podemos escolher diversos meios de transportes em função do preço, conforto, rapidez, etc..
  • 14.  MD_024.20160302.Vs.0  A abordagem de um problema segundo uma conceção descendente, em inglês top-down, é um método de tratamento de problemas do geral para o particular, em que se parte dos pontos mais gerais e por simplificação (análise) se chega aos aspetos mais particulares.  Diz-se então que o método Top-Down consiste na divisão de um problema em problemas cada vez mais pequenos até se obter um nível de especificação considerado aceitável (dividir para reinar).  Poder-se-á afirmar que se atingiu um nível de especificação considerado aceitável sempre que as operações encontradas na análise top-down possam ser implementadas diretamente usando as instruções da linguagem algorítmica (nível da linguagem algorítmica).  Um problema a ser resolvido num computador, poderá sempre ser dividido em pelo menos três subproblemas: 1- entrada de dados, 2- cálculos e 3- apresentação de resultados. Haverá ainda um quarto que diz respeito à terminação do programa e que deverá existir em todos os algoritmos. Para uma melhor compreensão do método top-down observe-se o seguinte exemplo:
  • 15.  MD_024.20160302.Vs.0  Problema: Dados os valores de dois operandos, calcular a sua soma.  Na análise do problema constatamos que o utilizador do programa terá que introduzir os dois valores (quaisquer) dos operandos (entrada de dados) dos quais pretende obter a soma, o computador assimila esses valores e realiza as operações necessárias ao cálculo do resultado.  Note-se que no enunciado não é feita qualquer referência à saída de resultados, no entanto esta terá que existir para que o resultado da operação possa ser visualizado pelo utilizador.  Aplicando o método top-down o problema fica  Note que numerados e entre parênteses rictos temos a descrição dos vários blocos ou subproblemas obtidos. Faltam especificar as operações a realizar nos blocos 1, 2 e 3, no entanto estas operações poderão ser implementadas diretamente em Linguagem Algorítmica através de instruções simples tal como veremos mais adiante.
  • 16.  MD_024.20160302.Vs.0 • Linguagem Natural  Os algoritmos são expressos directamente em linguagem natural (e.g. o português como no exemplo do bolo). • Fluxograma (ou Diagrama de Fluxo)  Esta é um representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações e decisões que devem ser executadas para resolver o problema. • Pseudo-linguagem  Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos. Não existe consenso entre os especialistas sobre qual é a melhor maneira de representar um algoritmo. Actualmente a maneira mais comum de representar algoritmos é através de uma pseudo-linguagem ou pseudo- código. Esta forma de representação tem a vantagem de o algoritmo ser escrito de uma forma que está próxima de uma linguagem de programação de computadores.
  • 17.  MD_024.20160302.Vs.0 • Problema: – Cálculo da média aritmética de dois valores reais? • Entradas: – dois valores reais, X e Y • Saídas: – a média M=(X+Y)/2 • Algoritmo: 1. Início 2. Ler X,Y 3. Calcular a média M de X eY 4. Escrever M 5. Fim
  • 18.  MD_024.20160302.Vs.0 • Problema: – Cáculo da média aritmética de dois valores reais? • Entradas: – dois valores reais, X e Y • Saídas: – a média M=(X+Y)/2 • Algoritmo: 1. Início 2. Ler X,Y 3. Calcular a média M de X eY 4. Escrever M 5. Fim
  • 19.  MD_024.20160302.Vs.0 • Problema: – Cáculo da média aritmética de dois valores reais? • Entradas: – dois valores reais, X e Y • Saídas: – a média M=(X+Y)/2 • Algoritmo: 1. Início 2. Ler X,Y 3. Calcular a média M=(X+Y)/2 4. Escrever M 5. Fim
  • 20.  MD_024.20160302.Vs.0 • Um fluxograma é uma representação gráfica de um algoritmo. • Programação visual: é a utilização de diagramas na programação. • Descrevem o fluxo de um algoritmo através de um conjunto de figuras geométricas padronizadas ligadas por setas de fluxo.
  • 21.  MD_024.20160302.Vs.0 • Uma estrutura (de controlo) é a unidade básica da lógica de programação. • Em meados da década de 60, alguns matemáticos provaram que qualquer programa podia ser construído através da combinação de 3 estruturas básicas: sequência, selecção e repetição.
  • 22.  MD_024.20160302.Vs.0  Numa sequência é processado um conjunto de instruções (ou ações) em série. • Não há qualquer possibilidade de alterar a ordem de processamento das instruções, i.e. após processar a 1ª instrução processa-se a 2ª, depois da 2ª processa-se a 3ª, e assim por diante até processar a última ação.
  • 23.  MD_024.20160302.Vs.0 • Neste caso, se a expressão lógica tiver resultado falso, nenhuma ação é processada dentro da estrutura de seleção. • Só é processada uma ação dentro da estrutura de seleção se a expressão lógica for true; daí, o nome de seleção com 1 via.
  • 24.  MD_024.20160302.Vs.0  Uma estrutura de selecção é também designada por estrutura de decisão.  Neste caso, o fluxo de processamento segue por uma das 2 vias, dependendo do valor lógico (verdadeiro ou falso) da expressão avaliada no início da estrutura.  Se o fluxo de processamento só passa por 1 via, então só uma das acções é realizada ou processada.
  • 25.  MD_024.20160302.Vs.0 • Neste caso, a decisão não é feita com base numa expressão lógica porque há mais do que 2 resultados possíveis. • Também só são processadas a ação ou as ações encontradas numa via.
  • 26.  MD_024.20160302.Vs.0 • Neste caso, também há a necessidade de tomar uma decisão com base no valor lógico de uma expressão. • No entanto, a mesma ação será executada repetidamente enquanto o resultado da expressão lógica se mantiver verdadeiro (true). • O teste (da expressão lógica) precede a acção. Diz-se, por isso, que o teste é à cabeça. • O teste é importante porque funciona como uma condição de paragem (a false) dos ciclos ou repetições.
  • 27.  MD_024.20160302.Vs.0 • Esta estrutura de repetição é em tudo idêntica à anterior. • A diferença é que o teste é feito após o processamento da ação • O teste (da expressão lógica) sucede a ação. • Diz-se, por isso, que o teste é à cauda.
  • 28. Nome do algoritmo Declaração variáveis Inicio do algoritmo Leitura de valores Escrita de valor Fim do algoritmo