• Nenhum resultado encontrado

Aula04-RevisaoDeAlgoritmos

N/A
N/A
Protected

Academic year: 2021

Share "Aula04-RevisaoDeAlgoritmos"

Copied!
35
0
0

Texto

(1)

Algoritmos

João Frederico Roldan Viana

(2)

Agenda

Algoritmos

• Definição • Sintaxe de um algoritmo • Propriedades de um algoritmo • Estruturas de Programação Estruturas Seqüenciais Estruturas de Decisão Estruturas de Repetição • Como resolver problemas

(3)

Algoritmos

Definição

• Um algoritmo representa um conjunto de regras para a solução de um problema. Essa é uma

definição geral, podendo ser aplicada a qualquer circunstância que exija a descrição de uma solução. Exemplo clássico: uma receita de bolo

• O algoritmo especifica com clareza e de forma

correta as instruções que um software deverá conter para que, ao ser executado, forneça resultados

(4)

Algoritmos

Sintaxe de um algoritmo

• São as regras para escrever o algoritmo corretamente.

• Em programação as regras são os tipos de comandos que podem ser utilizados e como neles escrever

expressões.

• Os tipos de comandos são denominados estruturas de programação, que são dividas em três tipos: seqüenciais, de decisão e de repetição.

(5)

Algoritmos

Propriedades de um algoritmo

• Valores de entrada: todo algoritmo deve possuir zero, uma ou mais entradas de dados.

• Valores de saída: todo algoritmo possui uma ou mais saídas, que simboliza(m) seu(s) resultado(s).

• Finitude: toda tarefa a ser realizada possui um início, meio e fim, portanto, um algoritmo deve ser finito, isto é, deve possuir um início e um conjunto de

passos que, ao serem executados, levarão sempre ao seu término ou fim, executando a tarefa a que se

(6)

Algoritmos

Propriedades de um algoritmo

• Passos elementares: um algoritmo computacional deve ser desenvolvido por meio de operações

elementares, sem que possam haver diferenças de interpretação.

• Correção: um algoritmo deve ser correto, isto é, deve permitir que, com sua execução, se chegue à(s) saída(s) com resultados coerentes com a(s)

entrada(s). Para saber se um algoritmo está correto ou não, deve-se realizar testes com diversos valores

(7)

Algoritmos

Estruturas de Programação

• Podem ser classificadas como:

Instruções seqüenciais: representam ações imperativas, sem nenhum tipo de decisão.

Instruções de decisão: representam um desvio no fluxo normal do algoritmo, conforme resultado de uma expressão lógica.

Instruções de repetição: representam a execução repetitiva de comandos existentes em um desvio

(8)

Algoritmos

Estruturas Seqüenciais

• Representam os comandos que são executados imperativamente, sem desvio algum de caminho.

• Os cálculos, as atribuições, as execuções de funções e procedimentos são exemplos dessas estruturas.

(9)

Algoritmos

Estruturas de Decisão

• São estruturas que permitem a tomada de uma decisão sobre qual o caminho a ser escolhido, de acordo com o resultado de uma expressão lógica. O caminho pode ter 1, 2, ou “n” desvios.

• Existem três formas básicas desse tipo de estrutura: SE – ENTÃO

SE – ENTÃO – SENÃO CASO

(10)

Algoritmos

Estrutura de Decisão: SE – ENTÃO

• Representada por um comando que avalia uma

expressão lógica, resultando um valor que pode ser verdadeiro ou falso.

• Se o resultado for verdadeiro (V), serão executados os comandos encontrados no caminho indicado pelo resultado verdadeiro.

• Se o resultado for falso (F), será efetuado um desvio sem comando algum para o primeiro comando após o desvio.

(11)

Algoritmos

(12)

Algoritmos

Estrutura de Decisão: SE – ENTÃO

• A condição representa alguma expressão lógica. • O bloco é um conjunto de um ou mais comandos

quaisquer, os quais podem ser seqüenciais, de

decisão ou de repetição, que são executados caso a condição avaliada seja verdadeira.

(13)

Algoritmos

Estrutura de Decisão: SE – ENTÃO – SENÃO

• Representada por um comando que avalia uma

expressão lógica, resultando um valor que pode ser verdadeiro ou falso.

• Se o resultado for verdadeiro, serão executados os comandos encontrados no caminho indicado pelo resultado verdadeiro (V).

• Se o resultado for falso, serão executados os

comandos encontrados no caminho indicado pelo resultado falso (F).

(14)

Algoritmos

(15)

Algoritmos

Estrutura de Decisão: SE – ENTÃO – SENÃO

• A condição representa alguma expressão lógica.

• O bloco 1 é um conjunto de um ou mais comandos quaisquer, os quais podem ser seqüenciais, de

decisão ou de repetição, que são executados caso a condição avaliada seja verdadeira.

• O bloco 2 é um conjunto de um ou mais comandos quaisquer, os quais podem ser seqüenciais, de

ecisão ou de repetição , que são executados caso a condição avaliada seja falsa.

(16)

Algoritmos

Estrutura de Decisão: CASO

• Possibilita escolher mais de um caminho, de acordo com um resultado gerado a partir de uma expressão inteira.

• No CASO não se avalia uma expressão lógica e sim uma expressão inteira, cujo valor numérico vai

determinar o caminho a ser seguido.

• Se nenhuma das opções for atendida, pode-se definir um caminho padrão, mas isso não é obrigatório.

(17)

Algoritmos

(18)

Algoritmos

Estrutura de Decisão: CASO

• Expressão representa alguma expressão inteira, que se resultar num valor igual ao do rótulo 1, vai

executar o conjunto 1 de um ou mais comandos quaisquer, os quais podem ser seqüenciais, de decisão ou de repetição.

• Se resultar num valor igual ao do rótulo 2, vai executar o conjunto 2 de um ou mais comandos quaisquer. E assim por diante.

(19)

Algoritmos

Estruturas de Repetição

• São estruturas que permitem a repetição controlada de comandos. Aqui você deve verificar quantas

vezes ou até qual situação um conjunto de comandos deve ser repetido.

• Existem três formas básicas desse tipo de estrutura: ENQUANTO – FAÇA

REPITA – ATÉ

(20)

Algoritmos

Estrutura de Repetição: ENQUANTO – FAÇA

• Permite a execução repetitiva de um bloco de comandos enquanto a condição de controle de repetição seja verdadeira.

(21)

Algoritmos

Estrutura de Repetição: ENQUANTO – FAÇA

• A condição representa alguma expressão lógica. • Enquanto a condição resultar em verdadeiro, vai

permitir a execução repetida do bloco que é um conjunto de um ou mais comandos quaisquer, os quais podem ser seqüenciais, de decisão ou de repetição, que são executados caso a condição avaliada seja verdadeira.

• Caso a condição resulte em falso, será efetuado um desvio sem comando algum para o primeiro

(22)

Algoritmos

Estrutura de Repetição: REPITA – ATÉ

• Permite a execução repetitiva de um bloco de comandos até que a condição de controle de repetição seja verdadeira.

(23)

Algoritmos

Estrutura de Repetição: REPITA – ATÉ

• A condição representa alguma expressão lógica. • A execução do bloco que é um conjunto de um ou

mais comandos quaisquer, os quais podem ser seqüenciais, de decisão ou de repetição, será repetida até que a condição seja verdadeira.

• Caso a condição seja verdadeira, será efetuado um desvio sem comando algum para o primeiro

(24)

Algoritmos

Estrutura de Repetição: PARA – ATÉ – FAÇA

• É uma caso particular do ENQUANTO – FAÇA, pois implementa uma estrutura ENQUANTO – FAÇA que vai repetir o bloco de comando, utilizando-se de um contador que possui um certo valor inicial e que, por meio de incrementos unitários e inteiros, vai

alcançar um valor final pré-definido.

• O número de repetições a serem executadas será dado em função dos valores iniciais e finais do contador.

(25)

Algoritmos

(26)

Algoritmos

Estrutura de Repetição: PARA – ATÉ – FAÇA

• i representa uma variável inteira (contador). • Vi representa o valor inicial do contador.

• Vf representa o valor final do contador.

• A condição representa alguma expressão lógica.

• Enquanto o valor do contador i atender a condição, ou seja for menor que o Vf, o bloco que é um

conjunto de um ou mais comandos quaisquer, os quais podem ser seqüenciais, de decisão ou de

(27)

Algoritmos

Como resolver problemas

• A resolução envolve duas grandes fases:

Análise: fase onde o problema é entendido

Síntese: fase onde o problema é representado por meio de um algoritmo

(28)

Algoritmos

Análise

• Deve-se descobrir:

O que deve ser solucionado

Quais são os dados necessários

Quais as condições para resolver o problema Se os dados e as condições são necessários,

insuficientes, redundantes ou contraditórios • Após isso, é realizado a modelagem do problema.

(29)

Algoritmos

Síntese

• Fase em que o algoritmo é construído utilizando apenas as estruturas de programação.

• A solução deve ser verificada e comprovada por meio da execução do algoritmo.

• A execução é feita percorrendo-se o algoritmo do

seu início até o seu final, e verificando, a cada passo, se o resultado esperado foi obtido.

(30)

Algoritmos

Exemplo

• Resolva o problema: Compraram-se N canetas

iguais, que foram pagas com P reais, obtendo-se T reais como troco. Quanto custou cada caneta?

(31)

Algoritmos

Exemplo

• Primeiro passo: exemplifique o seu problema • No caso poderíamos pensar no problema como

sendo: Compraram-se 30 canetas iguais, que foram pagas com 100 reais, obtendo-se 55 reais como

troco. Quanto custou cada caneta? • Matematicamente temos:

30x + 55 = 100 30x = 100 – 55

(32)

Algoritmos

Exemplo

• Agora vamos criar o algoritmo desse problema particular.

início

receber valores 30, 100 e 55 subtrair 55 de 100

dividir o resultado anterior por 30 mostrar o resultado final

(33)

Algoritmos

Exemplo

• Tendo o algoritmo particular, vamos generalizar o algoritmo.

início

receber quantidade de canetas: N receber o valor pago: P

receber o valor do troco: T subtrair T de P

(34)

Algoritmos

Exemplo

• Agora devemos validar o nosso algoritmo. • Para isso vamos fazer os seguintes testes:

N = 30, P = 100 e T = 55 N = 10, P = 10 e T = 10 N = -10, P = 100 e T = 50 N = 10, P = -100 e T = 50 N = 10, P = 100 e T = -50

(35)

Algoritmos

Exemplo

Referências

Documentos relacionados

Durante as nictemerais, os valores do fósforo total e do fosfato total nos dois viveiros apresentaram também valores acima do recomendado pela GAA, exceto para o fosfato total na

Distribuição espectral dos sistemas de iluminação LED e do controle Observa-se na Figura 12A, a análise de componentes principais, relacionado à biometria das mudas pré-brotadas

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos fundos Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o "Fiel do sendo o

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais