38
OFICINA DA PESQUISA DISCIPLINA: LÓGICA MATEMÁTICA E COMPUTACIONAL APOSTILA 7 – FLUXOGRAMA _____________________________________ Prof. Msc. Carlos José Giudice dos Santos [email protected] www.oficinadapesquisa.com.br

Prof. Msc. Carlos José Giudicedos Santos carlos ... · diagramadeblocos,organograma,lotacionograma,etc. Na computação, fluxograma e diagrama de blocos são palavras sinônimas

Embed Size (px)

Citation preview

OFICINA DA PESQUISA

DISCIPLINA: LÓGICA MATEMÁTICA E COMPUTACIONAL

APOSTILA 7 – FLUXOGRAMA

_____________________________________

Prof. Msc. Carlos José Giudice dos Santos

[email protected]

www.oficinadapesquisa.com.br

Conceitos de Algoritmo [1]Desde que o homem percebeu a utilidade de criarferramentas para aumentar a eficiência do trabalho humano,ele certamente pensou também em criar máquinas. Opropósito da criação de máquinas, com ou sem o uso da forçahumana, é diminuir o esforço humano e principalmenteeconomizar tempo.

O computador foi a primeira máquina criada pelo homem autilizar uma das principais características intelectuais doser humano: a lógica. As máquinas atuais ainda não sãocapazes de raciocinar logicamente com o intuito de aprenderalgo em proveito próprio, mas ajudam muito o homem emtarefas lógicas repetitivas que dependam da lógica.

Conceitos de Algoritmo [2]Enfatizando esse aspecto, Ascencio e Campos (2007,p. 1) nos ensinam que “[...] o computador pode auxiliá-lo em qualquer tarefa. É consciente, trabalhador,possui muita energia, mas não tem iniciativa, nenhumaindependência, não é criativo nem inteligente, por issoprecisa receber instruções nos mínimos detalhes”.

Para que um computador possa nos auxiliar, énecessário escrever um programa (aplicativo ousoftware). De acordo com as mesmas autoras, sãotrês as etapas para se desenvolver um programa:análise, algoritmo e codificação.

Conceitos de Algoritmo [3]Análise: etapa em que se estuda o problema, colocando-o sob a forma de um enunciado para se definir dados deentrada, processamento e dados de saída.

Algoritmo: etapa em que se representa o problema soba forma de uma descrição narrativa, um fluxograma ouum pseudocódigo (também conhecido como linguagemestruturada ou portugol) para se chegar a uma ou maissoluções.

Codificação: o algoritmo é transformado em códigos deprogramação da linguagem escolhida para se trabalhar.

Conceitos de Algoritmo [4]De acordo com Saliba (2005), o conceito de algoritmo nãofoi criado para satisfazer às necessidades da computação.O mesmo autor acrescenta que a programação decomputadores é apenas um dos campos de aplicação dosalgoritmos.

Podemos concluir que toda tarefa humana com princípio(entrada de dados), meio (processamento) e fim (saída dosdados) pode ser colocada sob a forma de um algoritmo. Omesmo autor afirma que “para que um computador possadesempenhar uma tarefa, é necessário que esta sejadetalhada passo a passo, em uma forma compreensívelpela máquina, utilizando aquilo que se chama de programa”.

Conceitos de Algoritmo [5]A partir desse contexto, apresento algumas definições dealgoritmos:

“Algoritmo é uma sequência de passos que visa atingir umobjetivo bem definido” (FORBELLONE; EBERSPÄCHER,2005)

“Algoritmo é uma sequência de passos que deve ser seguidapara a realização de uma tarefa”. (ASCENCIO; CAMPOS,2007).

O objetivo desta apostila é apresentar problemas quepossam ser colocados sob a forma de uma descriçãonarrativa e sob a forma de um fluxograma. Logo, devemosaprender os símbolos utilizados em um fluxograma.

Fluxograma [1]Fluxograma é uma representação gráfica de umadescrição narrativa (um processo). Esse processopode ser uma tarefa organizacional ou um descritivode um programa de computador.

Existem vários tipos de fluxogramas, além de váriosgraus de complexidade, que depende do objetivo dofluxograma.

Nas organizações, o uso de fluxogramas possibilita:

• Preparação para o aperfeiçoamento de processosorganizacionais (conhecer para melhorar);

Fluxograma [2]• Identificar atividades críticas do processo;

• Conhecer a sequência e o encadeamento das atividades,dando uma visão geral do fluxo do processo;

• Documentar o processo para futuras análises, adequaçãoa normas e certificações;

• Esclarecer dúvidas de processos organizacionais parapessoas recém admitidas na organização por meio darepresentação visual fornecida por um fluxograma;

• Fortalecer o trabalho em equipe a partir do momento emque o desenvolvimento de um fluxograma é feito com aparticipação de todos os envolvidos.

Fluxograma [3]O diagrama de blocos é o tipo mais simples defluxograma, pois indica apenas as atividades, semdiferenciar as atividades por tipos.

Os diagramas de blocos são utilizados para umavisualização rápida do processo que se quer conhecer.

Os diagramas de blocos podem ser horizontais ouverticais, e geralmente são utilizadas frases curtas queservem para identificar as atividades realizadas.

Vejamos alguns exemplos de diagramas de blocosorganizacionais.

Exemplo de Diagrama de Bloco [1]

Diagrama de blocos para opreenchimento de umcargo em uma organização.

Exemplo de Diagrama de Bloco [2]Diagrama de blocos para a realização de um churrasco

Algoritmo [1]Fazendo uma pequena revisão do conteúdo da nossadisciplina, podemos concluir que a lógica nos ajuda a resolverproblemas e a realizar tarefas. A lógica ordena e dácoerência ao pensamento, para que possamos chegar àverdade. Outra conclusão importante que podemos chegar eque todo problema (que tenha uma solução possível) pode serresolvido por meio de um algoritmo.

Assim, chegamos a mais um conceito de algoritmo, baseadonas definições anteriores: “algoritmo é uma sequência(lógica) de passos para se resolver um problema ou realizaruma tarefa”. Todo algoritmo deve ser composto porinstruções (regras ou ações a serem executadas) para quepossa ser executado.

Algoritmo [2]Fazendo uma pequena revisão do conteúdo da nossadisciplina, podemos concluir que a lógica nos ajuda aresolver problemas e a realizar tarefas. Outraconclusão importante que podemos chegar e que todoproblema (que tenha uma solução possível) pode serresolvido por meio de um algoritmo.

Assim, chegamos a mais um conceito de algoritmo,baseado nas definições anteriores: algoritmo é umasequência (lógica) de passos para se resolver umproblema ou realizar uma tarefa. Todo algoritmo deveser composto por instruções (regras ou ações a seremexecutadas) para que possa ser executado.

Algoritmo [3]Vamos ver um exemplo de algoritmo:

Algoritmo: Tomar um banho1. Entrar no banheiro2. Tirar a roupa3. Abrir o chuveiro4. Molhar o corpo5. Passar sabonete no corpo6. Molhar o corpo para retirar a espuma do sabonete7. Fechar o chuveiro8. Enxugar o corpo com uma toalha9. Vestir a roupa

Algoritmo [4]No algoritmo anterior temos uma série de instruções,colocadas sob a formar de verbos de ação no infinitivo.Estas instruções foram: entrar, tirar, abrir, molhar,ensaboar, fechar, enxugar, vestir.

Repare que existe uma sequência lógica de ações, e quepara o algoritmo seja executado, devemos conhecer osignificado dessas ações (compreender as instruções).

Vamos ver mais um exemplo de algoritmo em que existeuma repetição de ações para que o algoritmo chegue aofinal (seja executado).

Algoritmo [5]Algoritmo: Descascar batatas de uma cesta1. Pegar a cesta de batatas2. Pegar uma bacia para colocar as batatas descascadas3. Pegar uma faca na gaveta4. Pegar uma batata na cesta5. Descascar a batata6. Colocar a batata descascada na bacia7. Se existir batatas na cesta, então voltar ao passo 48. Fim.

Instruções realizadas: pegar, descascar, colocar

Algoritmo [6]O segundo exemplo de algoritmo possui duasnovidades em relação ao primeiro exemplo. A primeiranovidade é a existência de um laço de repetição, quefaz que uma instrução seja executada novamente. Asegunda novidade é a existência de uma estruturacondicional (Se Verdadeiro Então).Sabemos que todo algoritmo tem um objetivo. Paraque esse objetivo seja atingido, uma série de açõesdeve ser executada. Como essa série de ações deveser ordenada seguindo uma sequência lógica, podemosconcluir que deve existir um ou mais métodos para acriação de algoritmos.

Algoritmo [7]Neste slide propõe-se um método de seis etapas parase construir um algoritmo, a saber:1. Compreender completamente o problema;2. Definir os dados de entrada (input);3. Definir o processamento (cálculos e ações);4. Definir os dados de saída (output);5. Construir o algoritmo;6. Testar o algoritmo.Como exemplo para testarmos esse método, vamoscalcular a nota final de um aluno para saber se o alunofoi aprovado ou reprovado.

Algoritmo [8]O cálculo da nota final de um aluno será uma médiaponderada de duas notas: a nota do primeirobimestre, que vale 10 mas que corresponde a 40% danota final, e nota do segundo bimestre, que vale 10mas corresponde aos restantes 60% da nota final.Será considerado aprovado o aluno que obtiver notafinal maior ou igual a 6,0. Será considerado reprovadoqualquer aluno que obtiver nota final menor que 6,0.A partir desse enunciado, podemos resolver esseproblema construindo um algoritmo utilizando umadescrição narrativa ou um diagrama de blocos.

Algoritmo [9]Uma vez que compreendemos completamente oproblema, a primeira das seis etapas foi concluída. Nósdevemos passar agora para as próximas etapas:

Nota do 1º bimestreNota do 2º bimestre

Multiplicar a primeira nota por 0,4Multiplicar a segunda nota por 0,6Somar os dois resultadosAvaliar se esse último resultado é maior ou igual a 6,0.

“Aprovado” se a nota for igual ou maior que 6,0“Reprovado”

É importante perceber que existem várias maneirasdiferentes de se resolver um problema usandoalgoritmos, ou seja, vários algoritmos diferentes podemchegar ao mesmo resultado.

Algoritmo [10]Outro conceito importante quando se trata de programaçãoé o fato de que um algoritmo não é a solução final de umproblema, mas apenas um planejamento para se chegar a umresultado.Um programa de computador é sempre escrito em umalinguagem de programação. O algoritmo é o mapa paranortear a escrita em uma determinada linguagem deprogramação.Isso significa que um mesmo algoritmo serve como base paraqualquer linguagem de programação. Logo, podemos concluirque todo programa de computador corresponde a umalgoritmo escrito em alguma linguagem de programação.Assim, Algoritmo + Linguagem de Programação = Programa

Algoritmo [11]Já vimos anteriormente que um algoritmo pode sercolocado sob três formas, ou seja, existem três tiposde algoritmo:1. Descrição narrativa;2. Fluxograma (ou Diagrama de Blocos);3. Pseudocódigo (português estruturado ou Portugol).Para os objetivos desta disciplina, estamos interessados nosegundo tipo de algoritmo (diagrama de blocos oufluxograma). Entretanto, para termos mais facilidade naconstrução do diagrama de blocos, é importante (embora nãoseja obrigatório) conhecermos um pouco da construção dealgoritmos por meio de uma descrição narrativa.

Descrição Narrativa [1]A descrição narrativa utiliza a língua portuguesa usadanormalmente em nosso dia-a-dia para elaborar o algoritmoque vai resolver um problema ou tarefa.A grande vantagem em se utilizar a descrição narrativa é ofato dela ser simples. Não é necessário aprender uma novalíngua para se entender as instruções de um algoritmoescrito sob a forma de uma descrição narrativa. Se vocêsabe português então consegue compreender as ações queserão executadas. Entretanto, há uma desvantagem: podeser ambíguo, dando margem a diferentes interpretações deacordo com a pessoa que está lendo as instruções. Assim,pessoas diferentes podem entender coisas diferentes ao leruma mesma instrução.

Descrição Narrativa [2]Vejamos um exemplo de uma descrição narrativa:Descrição narrativa: Calcular a média de dois números1. Receber os dois números2. Somar os dois números3. Dividir o resultado obtido por 24. Apresentar esse último resultadoInstruções utilizadas: receber, somar, dividir, apresentar.

Como podemos observar, a descrição narrativa é muitosimples, mas pode, em alguns casos, dar margem a umainterpretação errada caso não seja bastante detalhadaem cada um de seus passos.

Diagrama de Blocos [1]Um fluxograma pode ser representado de várias formas:diagrama de blocos, organograma, lotacionograma, etc.Na computação, fluxograma e diagrama de blocos sãopalavras sinônimas. Um algoritmo representado como umfluxograma ou um diagrama de blocos é aquele que érepresentado sob a forma de símbolos gráficos.A grande vantagem do uso de diagrama de blocos é o fato deusar poucas palavras escritas, uma vez que parte delas serárepresentada como símbolos gráficos.A desvantagem é a necessidade de se saber o significadodos símbolos gráficos. Outra desvantagem se refere aotamanho do fluxograma. Quanto maior, mais complexo eleserá, e mais difícil será entendê-lo também.

Diagrama de Blocos [2]Os principais símbolos utilizados em fluxogramas são:

= Início ou Final do fluxograma

= Operação de entrada de dados

= Operação de saída de dados

= Processamento ou operação de atribuição ou= Operação de retorno de uma subrotina

= Decisão

= Indica o fluxo de dados

Diagrama de Blocos [3]Outros símbolos utilizados em fluxogramas são:

= Entrada de dados (cartão)

= Entrada de dados manual (teclado)

= Conector

= Conector para outra página

= Saída de dados ou Exibir saída

Diagrama de Blocos [4]Geralmente os fluxogramas computacionais seguem uma dasseguintes estruturas:

Diagrama de Blocos [5]Exemplo de diagrama de blocos para somar 3 números:

Diagrama de Blocos [6]Exemplo de diagrama de blocos: Calcular a média aritméticade 3 notas e verificar se o aluno foi aprovado (Nota ≥ 6)

Exemplo de fluxograma na gestão de processos de negócios

Fonte: Imagem modificada de Laudon e Laudon (2010, p. 92).

Início

Fim

Fonte: Imagem modificada de Laudon e Laudon (2010, p. 92).

Processo redesenhado para a compra de livro on-line

Exemplo de fluxograma na gestão de processos de negócios

Subrotinas em Fluxogramas Alguns fluxogramas são complexos demais. Quando issoacontece, sempre é possível dividir programas grandes ecomplicados em problemas menores e mais simples.Solucionando esses problemas menores e mais simplesseparadamente. Assim, um algoritmo complexo é dividido emum algoritmo principal e diversos subalgoritmos.Estes subalgoritmos são chamados em alguns textos desubrotinas. Todo subalgoritmo é formado de duas partes:corpo e cabeçalho. No cabeçalho é definido o nome e o tipode subalgoritmo. No corpo do subalgoritmo estão asinstruções que serão executadas quando ele for invocado.Existem basicamente dois tipos de sub-rotinas: as funções eos procedimentos.

FuncõesUma função é um tipo de subrotina em que um valor é calculado apartir de outros valores repassados à função por meio deparâmetros ou variáveis locais.

Início

Z �W*W

Retorne Z

Fim

Função QUADAlgoritmo Principal

Início

Digite um número

X

Y � Quad(X)

“Y=“, Y

Fim

ProcedimentosUm procedimento é uma subrotina que retorna nenhum, um ou maisvalores ao algoritmo que o chamou por meio de parâmetros ouvariáveis globais.

Início

V = 1, 2, 3

Vetor [V]

Fim

Procedimento Escreva_Vetor

Algoritmo Principal

Início

Escreva_Vetor ()

Fim

Exercícios de Fixação [1]

Faça algoritmos utilizando descrição narrativa para osseguintes casos:1. Fazer um sanduíche2. Trocar uma lâmpada3. Ir para o trabalho4. Sacar dinheiro em um banco 24 horas5. Tirar o carro da garagem6. Comprar pão em uma padaria7. Pedir uma entrega de pizza pelo telefone8. Casar com alguém

Exercícios de Fixação [2]

Faça algoritmos utilizando diagrama de blocos para osseguintes casos:1. Fritar um pacote de batatas pré-fritas congeladas2. Mostrar o resultado da divisão de dois números3. Calcular o aumento de salário de um funcionário seguindo

a seguinte regra: se o salário for menor que mil reais, oaumento de salário será de 10%; se o salário for maiorque mil reais, o aumento de salário será de 5%. Após ocálculo, deverá ser apresentado o resultado.

REFERÊNCIASASCENCIO, Ana Fernandes Gomes; CAMPOS, EdileneAparecida Veneruchi de. Fundamentos da programação decomputadores: algoritmos, Pascal, C/C++ e Java. 2. ed. SãoPaulo: Pearson, 2007.

FORBELLONE, André Luiz Villar; EBERSPÄCHER, HenriFrederico. Lógica de programação: a construção de algoritmose estruturas de dados. 3. ed. São Paulo: Pearson, 2005.

SALIBA, Walter Luiz Caram. Técnicas de programação: umaabordagem estruturada. São Paulo: Pearson, 2005.