Algoritmo e Programação Tathiana E. Silva ([email protected]) Ementa Algoritmos ► Conceitos ► Representações ► Representação de Dados ► Expressões Aritméticas e Lógicas ► Comandos de Entrada e Saída ► Estruturas de Controle - Condição - Repetição ► Variáveis compostas homogêneas Programação ► Linguagem C Objetivos Desenvolver conhecimentos e habilidades de forma a capacitar os alunos a desenvolver programas em Linguagem Estruturada, especificamente usando a linguagem C. O Engenheiro é um profissional talhado para resolver problemas e normalmente problemas complexos que necessitam de métodos para se chegar a solução. Elaborar um algoritmo pode ser um dos métodos para se buscar a solução. Aplicação Microprocessadores Programação em Assembler e linguagem de máquina. Controle de Processos servomecanismos e O MatLab ajuda a resolver problemas de engenharia através de programas na linguagem C. Automação Todo equipamento de produção em qualquer segmento tem um mínimo de automação e cabe ao engenheiro propor melhorias de desempenho do equipamento através de um algoritmo e um Bibliografia Algoritmos CORMEN, Thomas H. , LEISERSON, Charles E., RIVEST, Ronald L. e STEIN, Clifford, Algorítmos – Tradução da 2ª Edição Americana, Teoria e Prática, Editora Campus Programação SCHILDT, Herbert. C completo e total. Paulo: Pearson education do Brasil, 1997. 3.ed. São Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito; Programa é um algoritmo codificado (escrito) em uma linguagem de programação (C/C++). Algoritmos Algoritmo é uma sequência finita de passos que levam a execução de uma tarefa. Ou seja, uma receita, uma sequência de instruções para uma meta específica. Ex: chupar uma bala pegar uma bala retirar o papel colocar a bala na boca jogar papel no lixo Algoritmos A principal meta da criação de um algoritmo é resolver problemas por meio de soluções lógicas para obter resultados eficientes (corretos) e eficazes (com qualidade). Mas se as soluções não forem bem planejadas (passo a passo), com certeza essa meta não será atingida. Algoritmos Abaixo são descritas ações de quem vai a um banco, mas veja se é possível retirar o dinheiro obedecendo a sequência descrita: 1. Sair do banco 2. Aguardar a vez de ser atendido 3. Entrar na fila do caixa 4. Digitar a senha 5. Entrar no banco 6. Informar o valor a ser retirado 7. Procurar a fila do caixa 8. Pegar o comprovante do caixa, o cartão e o dinheiro 9. Entregar o cartão eletrônico ao funcionário que atende no caixa 10. Conferir o valor em dinheiro Algoritmos Um algoritmo eficiente deve obedecer as seguintes premissas básicas no momento de sua construção: Definir ações simples e sem ambiguidade; Organizar as ações de forma ordenada; Estabelecer as ações dentro sequência finita de passos. de uma Algoritmos Abaixo segue um exemplo simples de algoritmo, para a troca de um pneu furado: 1. 2. 3. 4. 5. 6. 7. 8. 9. desligar o carro pegar as ferramentas (chave e macaco) pegar o estepe suspender o carro com o macaco desenroscar os 4 parafusos do pneu furado colocar o estepe enroscar os 4 parafusos baixar o carro com o macaco guardar as ferramentas Algoritmos Um algoritmo é capaz de realizar tarefas como: Ler e escrever dados; Avaliar expressões algébricas, relacionais e lógicas; Tomar decisões com base nos resultados das expressões avaliadas; Repetir um conjunto de ações de acordo com uma condição. Algoritmos Segue outro exemplo, para pegar um ônibus, que possui estruturas mais complexas : 1. ir até a parada 2. enquanto ônibus não chega faça 3. esperar ônibus 4. subir no ônibus 5. pegar passagem 6. se não há passagem então 7. pegar dinheiro 8. pagar o cobrador 9. troco = dinheiro - passagem 10. enquanto banco não está vazio faça 11. ir para o próximo 12. sentar 13. . . . Programas Um computador é somente capaz de realizar estritamente as tarefas que lhe forem delegadas e que façam parte do conjunto daquelas ações que ele pode executar -> algoritmos. Programas são algoritmos escritos em uma linguagem de programação e que são interpretados e executados por uma máquina. Linguagem de Programação Linguagem Natural (linguagem com que expressamos nosso raciocínio) Linguagem de Máquina Assembler (linguagem que o computador entende, números binários) Linguagem de Programação (linguagem próxima à natural para descrever comandos ao computador) Linguagem de Programação Representando Algoritmos Existem duas principais representação para algoritmos: Fluxograma Pseudocódigo formas de Fluxograma É a apresentação do algoritmo em formato gráfico possibilitando o planejamento da estrutura do programa e facilitando a validação da estrutura planejada. Cada operação a ser executada é representada por um símbolo cuja forma identifica o tipo de processo envolvido. Fluxograma - Exemplo Pseudocódigo O pseudocódigo é uma maneira intermediária entre a linguagem natural e uma linguagem de programação de representar um algoritmo. Ela utiliza um conjunto restrito de palavraschave, em geral na língua nativa do programador, que tem equivalentes nas linguagens de programação. Pseudocódigo - Exemplo Pseudocódigo - Estrutura