2007 Programação Estruturada Linguagem C Fluxogramas ©Francisco Tesifom Munhoz PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz CONTEÚDO Fluxograma ................................................................................................................................................... 3 Etapas para criação de um fluxograma: ................................................................................................... 3 Símbolos utilizados para a construção do fluxograma: ............................................................................ 4 Simbologia dos Fluxogramas .................................................................................................................... 5 VANTAGENS DO USO DE FLUXOGRAMAS ................................................................................................ 5 programação estruturada - Estruturas de controle ..................................................................................... 5 Estrutura Sequêncial ................................................................................................................................ 6 Estrutura condicional (decisão) ................................................................................................................ 6 Estrutura de Repetição ............................................................................................................................. 8 Atividades ..................................................................................................................................................... 8 PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz FLUXOGRAMA Fluxograma é uma técnica de representação gráfica, em que são utilizados símbolos que permitem a descrição clara e precisa da seqüência de um processo, bem como sua análise e redesenho. É muito importante no processo de comunicação tanto para processos internos e externos á empresa. Os fluxogramas permitem a identificação de falhas; verificação e aprimoramento dos processos de trabalho; definição de responsabilidades e exposição de possíveis problemas de comunicação, de retrabalhos e redução de custos operacionais. ETAPAS PARA CRIAÇÃO DE UM FLUXOGRAMA: Escolher a rotina a ser trabalhada Coletar os dados Desenhar a rotina Todo fluxo deve ter início e fim. Nenhuma simbologia pode ficar solta, sem indicação da continuidade do processo ou com a simbologia de fim. Nunca esquecer das setas no fluxograma e do processo. Sempre que se for enviar um documento, utilizar a simbologia de "documento". Antes do "arquivo", obrigatoriamente tem que haver a simbologia de "documento", já que só se arquivam documentos. PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz SÍMBOLOS UTILIZADOS PARA A CONSTRUÇÃO DO FLUXOGRAMA: Terminal: é utilizado para representar o início ou o fim de um processo ou para referir-se a outro processo que não seja objeto de estudo. Operação: representa qualquer ação para criar, transformar, conferir ou analisar uma operação ou procedimento. Dentro do símbolo, descreve-se o objeto da ação. Decisão: indica um ponto no processo que apresenta ações condicionantes, onde há caminhos alternativos, se acontecerem determinado evento (sim ou não). Conector fora de página Conector na mesma página Conector: indica onde continua a seqüência do fluxo Setas: indicam o sentido do fluxo. Entrada: representa a entrada de dados a serem processados Saída: representa a saída(exibição) dos resultados processados PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz SIMBOLOGIA DOS FLUXOGRAMAS Os símbolos utilizados nos fluxogramas têm por objetivo evidenciar a origem, processo e destino da informação escrita ou verbal componente de um sistema. Existe uma tendência cada vez mais generalizada para a padronização dos símbolos convencionais que representam elementos ou situações correntes. A utilização desses símbolos ampliou-se de tal forma que chegou a constituir uma linguagem corrente entre os usuários. É possível utilizar símbolos diferentes dos convencionais desde que não ofereçam dificuldade de compreensão para o leitor e desde que sejam definidos previamente. Esta situação é decorrente de características específicas de alguns sistemas que exigem essa flexibilidade. Para elaborar um fluxograma, existem alguns softwares indicados, tais como: Aris; Visio; Flow Charting; Word; Excel; Power Point. VANTAGENS DO USO DE FLUXOGRAMAS Visão de conjunto e integrada de todo o processo; visualização dos detalhes críticos do processo; identificação dos pontos de controle potenciais; verificação e aprimoramento do processo decisório; identificação das inconsistências e pontos frágeis, como falhas processuais, problemas de comunicação e retrabalho; verificação de etapas burocratizadas em excesso; detecção da utilização incorreta de recursos; inserção de metodologia para melhoria contínua nos processos; integração dos objetivos da organização com os objetivos individuais de cada área; identificação das responsabilidades individuais; desenvolvimento de sistemas informatizados para integração de todas as áreas da empresa; geração de instrumentos de formação para todos os colaboradores da organização. Representam, ainda, um eficaz sistema de Gestão de Documentação, de fácil utilização e necessário à Certificação ISO e de Sistemas de Gestão da Qualidade. PROGRAMAÇÃO ESTRUTURADA - ESTRUTURAS DE CONTROLE Um programa de computador é um conjunto de instruções seqüenciais, que define as ações a serem executadas e a ordem na qual essas ações devem ser executadas. Essas ações incluem o que se chama transferência de controle, que permite que a instrução a ser PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz executada não seja a imediatamente seguinte, passando o controle para outra instrução ou bloco de instruções escrito em outra parte do programa. A transferência de controle permite a ramificação dos programas, representando seqüências possíveis de instruções que o computador haverá de executar, a depender da satisfação ou não das condições requeridas. Segundo Deitel e Deitel, o uso indiscriminado das transferências de controle é causador de muitas dificuldades dos programadores para escrever e principalmente para depurar os programas. Na década de 1960 percebeu-se que a maior responsável por isso era a instrução goto, existente em muitas linguagens, que permite a transferência de controle para qualquer destino que se queira num programa. Os blocos ou ramos dos programas escritos usando goto podem possuir mais de uma entrada e mais de uma saída, e isso é uma fonte de problemas. Num trabalho muito importante, Bohm e Jacopini demonstraram em 1966 que qualquer programa pode ser escrito sem usar a instrução goto, usando apenas três tipos de estruturas de controle de entrada e de saída únicas. Isso evita os problemas criados pelas entradas e saídas múltiplas, e permite a escrita de programas muito mais fáceis de serem compreendidos. As estruturas básicas de controle são a estrutura seqüencial, estrutura condicional e a estrutura de repetição As linguagens de computador estruturadas são linguagens que usam essas estruturas de entrada/saída únicas, e não usam ou não tem a instrução goto. ESTRUTURA SEQUÊNCIAL Numa estrutura seqüencial é processado um conjunto de ações (ou instruções) em série. Não há qualquer possibilidade de alterar a ordem de processamento das ações, isto é, após processar a 1ª ação processa-se a 2ª, depois da 2ª processa-se a 3ª, e assim por diante até processar a última ação. Em C, uma seqüência é um bloco de instruções que começa com { e termina com } Figura 1 ESTRUTURA CONDICIONAL (DECISÃO) Estrutura também conhecida como de decisão ou seleção, caracteriza-se por execução de determinados códigos de programação dependendo da veracidade de uma condição. Esta PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz estrutura se subdivide em outras duas estruturas, estrutura condicional simples e estrutura condicional composta. ESTRUTURA CONDICIONAL SIMPLES Outro caso, se a expressão lógica tiver resultado false, nenhuma cção é processada dentro da estrutura de selecção. • Só é processada uma acção dentro da estrutura de selecção se a expressão lógica for true; daí, o nome de selecção com 1 via. • Em C, uma estrutura de selecção com 1 via é a instrução if. Figura 2 ESTRUTURA CONDICIONAL COMPOSTA Uma estrutura condicional é também designada por estrutura de decisão. Neste caso, o fluxo de processamento segue por 1 das 2 vias, dependendo do valor lógico (verdadeiro ou falso) da expressão avaliada no início da estrutura. Se o fluxo de processamento só passa por 1 via, então só uma das acções é realizada ou processada. Em C, uma estrutura de selecção com 2 vias é a instrução if-else. Figura 3 PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz ESTRUTURA DE REPETIÇÃO Essa estrutura significa que enquanto a condição for verdadeira, o comando, (ou blocos de comandos) será(ão) executado(s) repetidamente. Se a condição for falsa, então a repetição será interrompida. Comando pode ser simples ou composto e condição é uma expressão lógica. Em C, uma estrutura de repetição é a instrução While O while é a estrutura de repetição mais simples. Ele repete a execução de um bloco de sentenças enquanto uma condição permanecer verdadeira. Na primeira vez que a condição se tornar falsa, o while não repetirá a execução do bloco, mas continuará a execução com a sentença Figura 4 ou comando que vem logo após o bloco do while, na seqüência do programa. O fluxograma ao lado ilustra a estrutura condicional while em C, que será utilizada neste curso. O programa sempre executa o bloco comandos por completo. Se neste tempo a condição se tornar falsa, o programa só verificará este fato quando avaliar novamente a expressão, preparando para uma nova repetição. Figura 5 ATIVIDADES 1. Escreva um fluxograma que leia o número de um funcionário, seu número de horas trabalhadas, o valor que recebe por hora e calcula o salário desse funcionário. A seguir, mostre o número e o salário do funcionário. 2. Escrever um fluxograma que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu salário no final do mês. 3. Escrever um fluxograma que calcule e mostre o fatorial de 5. 4. Escrever um fluxograma que escreve os números ímpares entre 10 e 20. 5. Escrever um fluxograma que leia o código de uma peça 1, o número de peças 1, o valor unitário de cada peça 1, o código de uma peça 2, o número de peças 2, o valor unitário de cada peça 2 e calcula e mostra o valor a ser pago PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz 6. Escrever um fluxograma para calcular o volume de uma esfera sendo fornecido o valor de seu raio. (4/3 *pi * R^3) 7. Escrever um fluxograma que leia três valores: A, B e C. A seguir, calcule e mostre: a) a área do triângulo que tem A por base e C por altura. b) a área do círculo de raio C. c) A área do trapézio que tem a e b por bases e c por altura. d) A área do quadrado que tem lado b. e) a área do retângulo que tem lados a e b. 8. 15)Escrever um fluxograma que leia 3 valores A, B e C. A seguir, encontre o maior dos três valores e o escreva com a mensagem “É o maior”. Utilize a fórmula: MaiorAB = (a + b + abs (a - b) ) / 2 9. Escrever um fluxograma para determinar o consumo médio de um automóvel sendo fornecidos a distância total percorrida pelo automóvel e o total de combustível gasto. 10. Escrever um fluxograma que leia dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles. d= x2−x12y2−y12 11. Escrever um fluxograma que calcule e mostre a quantidade de litros de combustível gastos em uma viagem, utilizando-se um automóvel que faz 12 KM/L. Deve-se fornecer o tempo gasto na viagem e a velocidade média durante a mesma. Assim pode-se obter distância percorrida: Distancia= Tpo * vel Litros_usados = distancia/12. 12. Dois carros (x e y) saem de uma mesma cidade. O carro X sai com velocidade constante de 60 Km/h e o 2O com velocidade constante de 90 Km/h. A seguir faça a leitura de uma distância (em Quilômetros) e calcule quanto tempo leva para o carro mais veloz tomar essa distância do outro carro. 13. Considerando 3 carros (X,Y e Z) que saem de uma cidade A. A seguir, considerando que o caminho a percorrer pelo carro X é de 360 Km, pelo carro Y é de 270 Km e pelo carro Z é de 310 KM, faça a leitura da velocidade dos 3 carros e mostre o tempo em horas que cada um deles levará para percorrer seu percurso. 14. Escrever um fluxograma que leia um valor em Reais. A seguir, calcule o menor número de notas possíveis no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1. A seguir mostre o valor lido e a relação de notas necessárias. 15. Escrever um fluxograma que leia o tempo de duração em segundos de um determinado evento em uma fábrica e informe-o expresso no formato horas:minutos:segundos. 16. Escrever um fluxograma que leia a idade de uma pessoa em dias e informe-a em anos, meses e dias. PROGRAMAÇÃO ESTRUTURADA – LINGUAGEM ‘C’ Prof. Francisco Tesifom Munhoz 17. Leia a hora inicial e a hora final de um jogo. A seguir calcule a duração do jogo, sabendo que o mesmo pode começar em um dia e terminar em outro, tendo uma duração máxima de 24 horas. 18. Com relação ao exercício anterior, calcule o tempo considerando os minutos.