Aula 1 - Algoritmos PDF
Document Details
Uploaded by SupremeBallad
Douglas Rodrigues
Tags
Summary
Esta aula aborda os conceitos básicos de algoritmos, incluindo sua definição, métodos para sua construção e diferentes tipos, utilizando exemplos práticos como somar 3 números ou fazer um sanduíche. A aula também introduz as diferentes formas de representar um algoritmo, como linguagem natural, fluxogramas e linguagem estruturada.
Full Transcript
Linguagem e Técnicas de Programação Prof. Douglas Rodrigues Análise e Desenvolvimento de Sistemas Algoritmos Agenda 3 Introdução Conceitos de algoritmos Métodos para construção de algoritmos Tipos de algoritmos Introdução 4 Introdução 5...
Linguagem e Técnicas de Programação Prof. Douglas Rodrigues Análise e Desenvolvimento de Sistemas Algoritmos Agenda 3 Introdução Conceitos de algoritmos Métodos para construção de algoritmos Tipos de algoritmos Introdução 4 Introdução 5 Introdução 6 Conceitos 7 Definição de automação: quando uma tarefa deixa de ser realizada pelo homem e passa a ser executada por uma máquina qualquer Para que a automação seja bem sucedida, é necessário que a máquina que realizará a tarefa seja capaz de executar cada uma das etapas que constituem o processo de maneira eficiente → deve-se garantir também que esse processo possa ser repetido Para assegurar a repetibilidade do processo, é importante especificar com clareza e exatidão cada fase do processo → além da sequência em que essas fases são executadas Conclusão: a especificação da sequência ordenada de passos que deve ser seguida para a execução de uma tarefa, garantindo-lhe a repetibilidade, recebe o nome de algoritmo Conceitos 8 Existem vários conceitos formais de algoritmos que podem ser encontrados na literatura: “Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido.” (Forbellone, 1999) “Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância.” (Salvetti, 1999) “Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido. Portanto, um algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.” (Farrer, 1999) Conceitos 9 O conceito de algoritmo é anterior à computação Na verdade, podemos definir algoritmos para várias atividades do cotidiano Exemplo 1: somar 3 números Passo 1: receber 3 números Passo 2: somar os números Passo 3: mostrar o resultado Conceitos 10 Exemplo 2: fazer um sanduíche com pão de hambúrguer Passo 1: dispor os ingrediente sobre a mesa Passo 2: cortar o pão ao meio Passo 3: passar a maionese Passo 4: colocar alface Passo 5: fritar o hambúrguer Passo 6: colocar o hambúrguer no pão Passo 7: fechar o pão Conceitos 11 Exemplo 3: sacar dinheiro no banco 24 horas Passo 1: inserir cartão Passo 2: selecionar a opção de saque Passo 3: informar o valor Passo 4: digitar a senha Passo 5: confirmar o saque Passo 6: retirar o dinheiro Passo 7: retirar o cartão Conceitos 12 Vídeo: www.youtube.com/watch?v=pdhqwbUWf4U Exercícios 13 Desenvolva algoritmos para: 1) Trocar uma lâmpada. 2) Trocar um pneu furado. 3) Estacionar um carro. 4) Ir para a faculdade. 5) Calcular a média final de um aluno. Métodos para Construção de Algoritmos 14 Para construir qualquer tipo de algoritmo, são necessários os passos a seguir: 1. Leia atentamente o enunciado, destacando os pontos mais importantes 2. Defina os dados de entrada, ou seja, os dados que serão fornecidos 3. Defina o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos 4. Defina os dados de saída, ou seja, os dados que serão gerados após o processamento 5. Construa o algoritmo, utilizando notação apropriada 6. Teste o algoritmo usando simulações (testes de mesa) Tipos de Algoritmos 15 Existem 3 tipos de algoritmos bastante utilizados: Linguagem natural (descrição narrativa) Fluxograma Linguagem estruturada Linguagem Natural 16 Análise do enunciado e escrita dos passos que devem ser seguidos para a resolução do problema Vantagem: não é necessário aprender nenhum conceito novo, pois a língua natural já é bem conhecida Desvantagem: a linguagem natural apresenta ambiguidades que podem dificultar a transcrição do algoritmo para um programa Fluxograma 17 Utiliza símbolos gráficos predefinidos para a construção de algoritmos Vantagem: entendimento de símbolos gráficos é mais fácil do que o texto Desvantagem: necessário aprender a simbologia dos fluxogramas, e o algoritmo resultante não apresenta muitos detalhes, podendo dificultar a transcrição para um programa Fluxograma 18 Fluxograma 19 Exemplo 1: algoritmo que calcula a média e mostra se o aluno está aprovado Exercícios 20 Faça fluxogramas para: 1) Um algoritmo que mostra o resultado da multiplicação de dois números. 2) Um algoritmo que mostra o resultado da divisão de dois números. Linguagem Estruturada 21 Também conhecida como pseudocódigo ou português estruturado (Portugol) Utiliza regras predefinidas para escrever os passos a serem seguidos na resolução de um problema Vantagem: a passagem do algoritmo para a linguagem de programação escolhida é quase imediata → basta conhecer as palavras reservadas da linguagem de programação Desvantagem: é necessário conhecer as regras do pseudocódigo Linguagem Estruturada 22 Variáveis Um algoritmo recebe dados → devem ser armazenados na memória do computador Uma variável representa uma porção de memória → possui um nome e um tipo associado Variáveis servem para guardar temporariamente os dados → seu valor pode mudar ao longo do tempo Cada variável armazena apenas um dado por vez Linguagem Estruturada 23 Exemplo 1: dividir dois números e mostrar o resultado ALGORITMO Divisão Declare n1, n2, d: real INÍCIO Escreva (“Digite dois números”); Leia (n1, n2); Se (n2 = 0), então escreva (“Erro!”); Senão INÍCIO d n1/n2; Escreva (“O resultado é”, d); FIM FIM Linguagem Estruturada 24 Exemplo 2: calcular a média de 4 números inteiros e mostrar o resultado ALGORITMO Média Leia (num); Declare num, soma: inteiro soma soma + num; m soma/4; m: real Escreva (“A média é”, m); INÍCIO FIM Leia (num); soma num; Leia (num); soma soma + num; Leia (num); soma soma + num; Linguagem Estruturada 25 Formas de representar um algoritmo 26 Vantagens Desvantagens Linguagem natural O português é bastante conhecido por nós. Imprecisão; Pouca confiabilidade (a imprecisão acarreta a desconfiança); Extensão (normalmente, escreve-se muito para dizer pouca coisa). Fluxograma Padrão mundial; Complica-se à medida que o Ferramenta bem conhecida; algoritmo cresce; Figuras dizem muito mais que palavras; Pouca atenção aos dados, não oferecendo recursos para declará-los. Linguagem estruturada Independência de linguagem de programação; Exige a definição de uma linguagem Usa o português como base; não real para trabalho; Define-se melhor quais e como os dados vão Não é padronizada. estar estruturados; Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Conclusão da Aula 27 Estudamos nesta aula: Introdução Conceitos de algoritmos Métodos para construção de algoritmos Tipos de algoritmos Na próxima aula, estudaremos: Introdução à linguagem C Exercícios 28 Faça algoritmos em fluxograma e pseudocódigo para: 1) Calcular a média de 4 valores inteiros. 2) Ler os valores da base e da altura de um triângulo e informar a área. Em que área = (base x altura)/2. 3) Ler o valor de uma mercadoria e o valor de desconto (%), e informar o preço com desconto. 4) Ler os valores de a, b, c e informar o valor de x, seguindo a fórmula x = 2ab + 3ac – 4bc. 5) Ler os valores de a e b, e trocá-los entre si. Exemplo: a 2 e b 3, então mostre a = 3 e b = 2.