Baixe o app para aproveitar ainda mais
Prévia do material em texto
Professor: Mestrando Hállysson Duarte Introdução a Algoritmo 24/02/2015Prof. Mestrando Hállysson Duarte2 24/02/2015Prof. Mestrando Hállysson Duarte3 24/02/2015Prof. Mestrando Hállysson Duarte4 24/02/2015Prof. Mestrando Hállysson Duarte5 24/02/2015Prof. Mestrando Hállysson Duarte6 24/02/2015Prof. Mestrando Hállysson Duarte7 24/02/2015Prof. Mestrando Hállysson Duarte8 24/02/2015Prof. Mestrando Hállysson Duarte9 24/02/2015Prof. Mestrando Hállysson Duarte10 24/02/2015Prof. Mestrando Hállysson Duarte11 24/02/2015Prof. Mestrando Hállysson Duarte12 Exemplo: 24/02/2015Prof. Mestrando Hállysson Duarte13 Algoritmo1 Quadrado Calcular o quadrado de um número 1: Solicite um valor de x 2: Calcule x * x e chame esse valor de s 3: Forneça o valor de s para o programa que o chamou – o chamador O ambiente de chamada 24/02/2015Prof. Mestrando Hállysson Duarte14 Definição: A entidade que provoca a execução de um algoritmo é conhecida como um chamador. O chamador é normalmente um outro algoritmo (software). Dados de entrada e saída Dados de entrada: são dados que devem fornecer a um algoritmo para que ele execute e realize sua função. Dados de saída: São dados que um algoritmo fornece ao ambiente externo. No nosso algoritmo1 quem são esses dados? Vamos ver dois Algoritmos de Multiplicação 24/02/2015Prof. Mestrando Hállysson Duarte15 Os tipos de instruções que podemos escrever quando criamos um algoritmo são dependentes das quais são intrínsecas à máquina que executará no algoritmo. Se ela pode multiplicar, podemos usar a instrução de multiplicação; se não pode multiplicar, mas pode adicionar e repetir tarefas várias vezes, então podemos construir nosso próprio algoritmo de multiplicação. Algoritmo2 Multiplicação de Números Não-Negativos 24/02/2015Prof. Mestrando Hállysson Duarte16 Toma inteiros não-negativos i e j e retorna um inteiro igual a i x j Solicite: i 0, j 0 1: Atribua 0 a produto 2: Atribua 0 a contador 3: enquanto contador < i faça 4: Atribua a produto seu valor corrente mais j 5: Adicione 1 a contador 6: fim-enquanto 7: Retorne produto 24/02/2015Prof. Mestrando Hállysson Duarte17 Consideremos agora a multiplicação de i = 3 por j = 20 Solicite: i = 3, j = 20 1: Atribua 0 a produto 2: Atribua 0 a contador 3: enquanto contador < i faça 4: Atribua a produto seu valor corrente mais j 5: Adicione 1 a contador 6: fim-enquanto 7: Retorne produto Algoritmo2 Multiplicação de Números Não-Negativos Resolução 24/02/2015Prof. Mestrando Hállysson Duarte18 0 Contador 0 Produto 3 i 20 j Antes do loop Contador 20 Produto 3 i 20 j Após a primeira passagem pelo loop Contador Produto i j Após a segunda passagem pelo loop Contador Produto i j Após a terceira passagem pelo loop Algoritmo3 Multiplicação de números inteiros 24/02/2015Prof. Mestrando Hállysson Duarte19 Para multiplicar inteiros negativos, basta multiplicar inteiros não-negativos e tratar dos inteiros negativos manipulando adequadamente os sinais. Suponha então que o mecanismo de execução do nosso algoritmo possua uma instrução para inverter o sinal de inteiros i. Se i for -10, então ele se torna 10. 24/02/2015Prof. Mestrando Hállysson Duarte20 Toma inteiros i e j e retorna um inteiro igual a i x j 1: se i e j são ambos não-negativos então 2: use Multiplicação de números Inteiros não-negativos para calcular i x j e nomeie este resultado produto 3: senão se i e j são ambos negativos então 4: inverta os sinais de i e j (assim eles se tornam positivos) 5: use Multiplicação de números Inteiros não-negativos para calcular i x j e nomeie este resultado produto 6: senão 7: se i < 0 então 8: inverta o sinal de i (mude i para -i) 9: senão 10: inverta o sinal de j (mude i para -i) 11: fim se 12: use Multiplicação de números Inteiros não-negativos para calcular i x j e nomeie este resultado produto 13: inverta o sinal de produto 14: fim se 15: Retorne produto Algoritmo3 Multiplicação de números inteiros 24/02/2015Prof. Mestrando Hállysson Duarte21 Obs.: Ao organizar o algoritmo Multiplicação de números inteiros, precisamos de um mecanismo para selecionar dinamicamente as etapas a serem executadas com base nas condições que são verificadas no instante da execução se condição 1 é verdadeira então. execute tarefa A senão se condição 2 é verdadeira então execute tarefa B senão execute tarefa C fim se Isso trata-se de uma idéia dinâmica, descrevendo como as coisas devem acontecer quando um algoritmo seja executado.Também é chamado de instrução de seleção. Controle Dinâmico da Execução 24/02/2015Prof. Mestrando Hállysson Duarte22 Os três conceitos de estruturação de algoritmos, sequência, iteração e seleção descrevem o controle do fluxo dinâmico do algoritmo quando ele é executado, e todos os três devem ser expressos de alguma maneira na descrição estática do algoritmo. Eles são importantes o bastante para receberem definições explícitas. 24/02/2015Prof. Mestrando Hállysson Duarte23 Sequência específica uma ordem linear de execução na qual uma tarefa particular é explicitamente indica para suceder. Receber o número de itens, N Atribui 0 a Massa Atribui 0 a Contador Etapa 2 Etapa 1 Etapa 3 24/02/2015Prof. Mestrando Hállysson Duarte24 Iteração é a execução repetida de um grupo de instruções até que alguma condição seja satisfeita. Seleção é a execução seletiva de um grupo de instruções baseada em alguma condição Quantas iterações temos no Algoritmo2? A execução seletiva, ou condicional de instruções num algoritmo nos dá meios de tratar de casos nos quais as etapas de transformações de dados desejadas diferem em função de dados a serem transformados. Exemplos: Ano bissexto, então após o dia 28 de fevereiro é 29 Obs.: 24/02/2015Prof. Mestrando Hállysson Duarte25 N < 0se então Comunica erro Aceita o frete senão Existem vários caminhos potenciais numa estrutura de seleção, mas apenas um é seguido em qualquer execução particular da estrutura. A linha tracejada representa os caminhos potenciais das etapas, e as setas contínuas, o verdadeiro caminho para o caso de N = 2. Computadores e Linguagens de Programação 24/02/2015Prof. Mestrando Hállysson Duarte26 Um computador é uma máquina de execução de um algoritmo programável. Ele é de tal maneira engenhoso que podemos introduzir ambos, um algoritmo e dados, nele, fazendo com que dados sejam transformados pelas etapas executáveis do algoritmo. 24/02/2015Prof. Mestrando Hállysson Duarte27 Uma linguagem de programação é uma linguagem bem definida, cujos construtores possuem uma forma precisa e um significado tais que eles podem ser traduzidos mecanicamente em linguagem de máquina. Um algoritmo expresso numa linguagem de programação ou numa linguagem de máquina é chamado de programa. Computadores e Linguagens de Programação 24/02/2015Prof. Mestrando Hállysson Duarte28 Um compilador é um algoritmo para traduzir um texto em linguagem de programação sintaticamente correto, bem formado, na linguagem de máquina de um dado computador. Computadores e Linguagens de Programação 24/02/2015Prof. Mestrando Hállysson Duarte29 Para a próxima aula Fluxograma Pseudocódigo 24/02/2015Prof. Mestrando Hállysson Duarte30
Compartilhar