Baixe o app para aproveitar ainda mais
Prévia do material em texto
04/02/2014 1 INTRODUÇÃO À COMPUTAÇÃO PROF. SALES ALGORÍTMOS AULA 01 04/02/2014 2 Conceitos Básicos • Computador – Utilizado para auxiliar no trabalho, poupando esforços e economizando recursos; – Recebe, manipula e armazena dados; – HW + SW • O computador só consegue efetuar suas operações por meio dos programas; • Linguagem de Programação Conceitos Básicos • Para resolver um problema computacional é necessário: – Encontrar uma maneira de descrever este problema de uma maneira clara e precisa; – Encontrar uma seqüência de passos para que o problema possa ser resolvido de forma automática e repetitiva; – Definir como os dados serão armazenados no computador; 04/02/2014 3 Conceitos Básicos • Resumindo, a solução de um problema por computador é baseada: – Na seqüência de passos; – Na forma como os dados serão armazenados no computador; • Ex.: Receita de bolo; Algoritmos • Etapas para o desenvolvimento de um programa: – Análise • Compreender o problema, definir os dados de entrada, processamento e saída; – Algoritmo • Construir a seqüência de passos; – Codificação • Transformar o algoritmo em códigos da linguagem de programação escolhida (PASCAL), testar (compilação) e executar. 04/02/2014 4 Figura 01: Etapas para o desenvolvimento de um programa. Análise C O D I F I C A Ç Ã O O que é um algoritmo? “Sequência de passos que visa atingir um objetivo bem definido” (FORBELLONE, 1999); “Descrição de uma seqüência de passos que deve ser seguida para realizar uma tarefa” (ASCENCIO, 1999); “Sequência finita de instruções cuja execução, em tempo finito, resolve um problema computacional” (SALVETTI, 1999); “Regras formais para a obtenção de um resultado ou solução de um problema.” (MANZANO, 1997) 04/02/2014 5 Características de um algoritmo • Finitude – Deve terminar após um número finito de passos; • Definição – Cada passo deve ser precisamente definido de forma rigorosa e sem ambigüidade; • Entradas – Deve conter zero ou mais entradas; • Saídas – Deve ter uma ou mais saídas; – Possui uma relação específica com as entradas; • Efetividade – Deve ser efetivo. Básico de modo a serem executadas com precisão; Algoritmos • Ex.: Considere o problema – Dispomos de 2 vasilhas com capacidade de 9L e 4L respectivamente; – As vasilhas não possuem marcações; – Como encher uma terceira vasilha de medida desconhecida com 6L de água? 04/02/2014 6 Algoritmos • Uma possível solução é: – Encha a vasilha de 9 litros; – Usando a vasilha de 9 litros, encha a vasilha de 4 litros; – Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira vasilha; – Esvazie a vasilha de 4 litros; – Torne a encher a vasilha de 9 litros; – Usando a vasilha de 9 litros encha a vasilha de 4 litros; – Esvazie a de 4 litros; – Usando o que restou na vasilha de 9 litros (5 litros), encha novamente a vasilha de quatro litros; – Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira vasilha, que agora tem 6 litros. Algoritmos • Pode haver mais de um algoritmo para resolver um determinado problema; • A escolha será feita em função do critério que melhor se adequar as nossas necessidades; • Não existe um algoritmo para criação de algoritmos; “Um problema pode ser resolvido de diversas maneiras, porém, gerando a mesma resposta” (ASCENCIO, 2012) 04/02/2014 7 Representação de Algoritmos Descrição Narrativa • Os algoritmos são expressos diretamente em linguagem natural, como nos exemplos anteriores; – Vantagem: • Não é necessário aprender nenhum conceito novo; – Desvantagem: • Abre espaço para várias interpretações, dificultando a transição para o programa; Representação de Algoritmos Fluxograma • Escrever os passos para resolução do problema utilizando símbolos gráficos predefinidos; – Vantagem: • Entendimento mais simples do que de textos; – Desvantagem: • Necessário aprender a simbologia dos fluxogramas; • O algoritmo resultante não apresenta muitos detalhes dificultando sua transição para o programa. 04/02/2014 8 Representação de Algorítmos Fluxograma • Terminal: Início e fim de um programa; • Entrada: Entrada de informações passada pelo usuário; • Conector: Serve para união dos fluxos de informações; • Condição: Indica a divisão do fluxo por uma determinada condição; • Saída: Indica a saída de informações processadas para o usuário; • Seta de fluxo: Indica o caminho; • Processamento: Utilizado para fazer cálculos e atribuição de valores; Representação de Algorítmos Fluxograma • Para desenvolver um fluxograma correto, devemos: – Devem ser feitos e quebrados em vários níveis. Os primeiros devem conter apenas as idéias gerais, deixando para as etapas posteriores os detalhamentos necessários; – Deve ser feito de cima para baixo e da esquerda para a direita; – É incorreto ocorrer cruzamento das linhas de fluxo de dados de um diagrama de bloco; 04/02/2014 9 Representação de Algoritmos Pseudocódigo ou Portugol • Escrita do programa por meio de regras predefinidas; – Vantagem: • Codificação quase imediata; – Desvantagem: • Necessário aprender as regras de pseudocódigo; Representação de Algorítmos Não existe consenso entre os especialistas sobre qual seria a melhor maneira de representar um algoritmo, atualmente a maneira mais comum é através do pseudocódigo ou portugol; 04/02/2014 10 Representação de Algorítmos *Algoritmo em descrição narrativa Representação de Algorítmos *Algoritmo em Fluxograma Mau Mediucre Suficiente Bom Nota Inválida Nota 04/02/2014 11 Representação de Algorítmos *Algoritmo em Fluxograma Raio Inválido Raio *Algoritmo em pseudocódigo Representação de Algorítmos 04/02/2014 12 Vamos treinar?? • Construa um algoritmo para representar cada uma das seguintes atividades: – Calcular a área de um retângulo; – Fazer um sanduíche; – Trocar uma lâmpada; – Sacar dinheiro no banco 24h; Vamos treinar?? • Construa os fluxogramas, para representar cada uma das seguintes atividades: – Calcular a área de um retângulo; – Fazer um sanduíche; – Trocar uma lâmpada; – Sacar dinheiro no banco 24h; 04/02/2014 13 Princípios de resolução de problemas • Exemplo: • Uma escola qualquer, onde o cálculo da média é realizado por quatro notas bimestrais que determinam a aprovação ou reprovação dos alunos; • Considere ainda, que o valor da média deve ser maior ou igual a 7 para que haja aprovação; • Inicio • Receber as 4 notas • Calcular a média aritmética • Se média for maior ou igual a sete exibir mensagem de APROVADO, senão, exibir mensagem de REPROVADO • Fim 04/02/2014 14 04/02/2014 15 04/02/2014 16 Programa média Var Resultado : caractere N1,n2,n3,n4,soma,media : real Inicio Leia(n1,n2,n3,n4) Soma<-n1+n2+n3+n4 Media <-soma/4 Se (media >=7) então Resultado <-“APROVADO” Senão Resultado<- “REPROVADO” Fim_se Escreva(Resultado) fim Vamos treinar?? • Represente os algoritmos abaixo através de descrição narrativa e fluxograma: – Algoritmo para mostrar o resultado da multiplicação de dois números. – Algoritmo para mostrar o resultado da divisão de dois números. Obs.: Não existe divisão por 0 (zero). – Algoritmo para calcular a média aritmética entre três notas de um aluno e mostrar sua situação, que pode ser aprovado ou reprovado. 04/02/2014 17 Obrigado. "Programas e Catedrais são feitos da mesma forma: primeiro construímos, depois rezamos“ Autor Desconhecido. Referências • ASCENCIO, Ana Fernanda Gomes. Fundamentos da programação de computadores: algoritmos, PASCAL, C/C++ e JAVA. 3 ed.São Paulo: Pearson Education do Brasil, 2012. • http://web.ist.utl.pt/ist153068/ficheiros/teoricas/Programacao_I_C ap_1_Algoritmos.pdf
Compartilhar