Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES Disciplina: 113476 Profa. Carla Denise Castanho Universidade de Brasília – UnB Instituto de Ciências Exatas – IE Departamento de Ciência da Computação – CIC 1. REPRESENTAÇÃO DE ALGORITMOS Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Lógica u Lógica: u Relaciona-se com a razão, investiga a correção do pensamento/raciocínio, ou seja, quais operações são válidas ou não. u Estuda e ensina a colocar ordem no pensamento. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Algoritmo u Algoritmo: u É uma sequência finita de passos para realizar uma tarefa ou solucionar um problema. u Na prática, criamos algoritmos com o objetivo de automatizar: queremos que o resultado de uma tarefa possa ser conhecido ou obtido repetidamente, no mesmo intervalo de tempo, com a mesma qualidade. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Automação de umaTarefa Todos os passos conhecidos Repetibilidade Algoritmo u Algoritmo (cont.): u Não é exclusivo da computação! u Fazem parte do dia-a-dia de todas as pessoas: u Instruções para uso de medicamentos; u Indicações de como montar um móvel; u Receitas culinárias; u A ordem é muito importante! Se você trocar os passos, o algoritmo pode não dar certo! Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Não são automatizados, mas são algoritmos! Dado e Informação u Um dado é uma sequência de símbolos. São elementos conhecidos de um problema (são os fatos em sua forma primária, como observamos no mundo). u Quando organizamos os dados atribuimos significado, eles ganham valor, tornam-se informação. Ex.: u 1,89 – dado u “a altura de José é 1,89 m” - informação u Um mesmo conjunto de dados pode ser utilizado para representar informações de natureza distintas. Ex: alfabeto vs línguas. u O C R T D M A U P O - dados u C O M P U T A D O R - informação Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br DADO e INFORMAÇÃO não são termos exclusivos da computação, foram cunhados por outras áreas, tais como a semiótica. Dados de Entrada e Saída u A solução de qualquer problema envolve um processamento, que manipula dados de entrada e gera dados de saída: Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br PROCESSAMENTO DADOS DE ENTRADA disponíveis no ambiente, necessários para a resolução do probelma DADOS DE SAÍDA resultados desejados, informação, relatórios, mensagens de erro, etc... Lógica de Programação u Nesta disciplina, queremos aprender a: u Dado um problema, u determinar uma sequência de instruções tal que, u fornecidos os dados de entrada, u a execução da sequência da instruções u resulte como saída a solução do problema. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Lógica de Programação u Exemplo: Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Algoritmo para trocar um pneu Algoritmo para trocar um Pneu Entrada: carro, macaco mecânico, pneu reserva Saída: carro com o pneu trocado Faça: Afrouxar ligeiramente os parafusos; Suspender o carro; Retirar os parafusos e o pneu; Colocar o pneu reserva; Apertar os parafusos; Abaixar o carro; Dar o aperto final nos parafusos. Representação de Algoritmos u Existem diversas formas de representação de algoritmos. u Não existe um consenso sobre qual é a melhor forma, cada uma tem vantagens e desvantagens. u Algumas formas tratam os problemas apenas no nível lógico, abstraindo os detalhes relacionados de implementação. u Outras formas entram em mais detalhes e são mais específicas, porém que podem obscurecer a idéia principal. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Representação de Algoritmos u Entre as formas mais conhecidas, podemos citar: u Descrição Narrativa; u Fluxograma Convencional; u Pseudocódigo, também conhecido como portugol. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Descrição Narrativa u Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. u Uso da linguagem natural pode gerar ambiguidades e imprecisões. u Por exemplo, no algoritmo do pneu, o que significa “Afrouxar ligeiramente o parafuso”? u Não seria mais preciso dizer “Afrouxar o parafuso, girando o mesmo 33.8° no sentido anti-horário”? Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Descrição Narrativa u Quando criamos algoritmos, frequentemente precisamos utilizar estruturas condicionais e de repetição. Isto é, precisamos tomar decisões ou repetir passos. u Vamos ver um exemplo... Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Descrição Narrativa Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Algoritmo para trocar uma lâmpada Algoritmo para trocar uma lâmpada: Faça: Se a lâmpada antiga estiver queimada, faça: Pegar uma escada Posicionar a escada debaixo da lâmpada Buscar uma lâmpada nova Subir na escada Retirar a lâmpada antiga Colocar a lâmpada nova Enquanto a lâmpada nova não acender, faça: Retirar a lâmpada antiga Colocar uma lâmpada nova Caso contrario, não é necessário fazer nada. Descrição Narrativa Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Algoritmo para trocar uma lâmpada Algoritmo para trocar uma lâmpada: Faça: Se a lâmpada antiga estiver queimada, faça: Pegar uma escada Posicionar a escada debaixo da lâmpada Buscar uma lâmpada nova Subir na escada Retirar a lâmpada antiga Colocar a lâmpada nova Enquanto a lâmpada nova não acender, faça: Retirar a lâmpada antiga Colocar uma lâmpada nova Caso contrario, não é necessário fazer nada. CONDICIONAL REPETIÇÃO Fluxograma u É uma representação gráfica de algoritmos, que utiliza formas geométricas diferentes para representar ações (instruções, comandos) e setas para representar a sequência. u Essa organização geralmente facilita o entendimento das idéias contidas nos algoritmos, o que justifica sua popularidade. u É uma forma intermediária entre a descrição narrativa e o pseudocódigo (que veremos em seguida), pois é menos imprecisa que a primeira, porém, ainda não se preocupa com detalhes de implementação do programa. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Fluxograma Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Inicio e Fim Operação de Atribuição Processamento de entrada de dados Processamento de saida de dados Decisão Seta de Fluxo de Dados Fluxograma Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br u Ex.: Cálculo da média de um aluno sob a forma de um fluxograma, sendo que o aluno é aprovado se a média for maior ou igual a 7 (sete). u Partindo do símbolo inicial, há sempre um único caminho orientado a ser seguido, representando a existência de uma única seqüência de execução das instruções Pseudocódigo u Esta forma de representação é rica em detalhes, tais como definição dos tipos e nomes das variáveis usadas no algoritmo e controle de índices e tamanho dos dados. u É uma representação mais precisa e detalhada que as demais, porém, suficientemente genérica para permitir a tradução de um algoritmo para várias linguagens de programação específicas, de maneira praticamentedireta. u Também conhecida como Portugol, Linguagem Estruturada ou Linguagem Algorítmica. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br ESTA É A REPRESENTAÇÃO QUE UTILIZAREMOS NA DISCIPLINA! Pseudocódigo u A forma geral da representação de um algoritmo em pseudocódigo: u Algoritmo, Início e Fim são palavras-chave (ou palavras reservadas), utilizadas respectivamente para: declarar e dar um nome ao algoritmo, e delimitar o corpo do algoritmo. u Como veremos, algoritmos utilizam variáveis para manipular valores, e podem ser dividos em tarefas menores, os subalgoritmos. u Nas próximas aulas, estudaremos em detalhes esta representação. Algoritmos e Programação de Computadores - carlacastanho@cic.unb.br Pseudocódigo - Estrutura Básica Algoritmo <nome do algoritmo>. <declaração de variáveis (nome e tipo)> <subalgoritmos> Início <corpo do algoritmo> Fim.
Compartilhar