1 1.2. Sistemas de Programação 1.2.1 Técnicas de programação 1.2.1.1 Processo de desenvolvimento de programas PROBLEMA análise SOLUÇÃO CONCEITUAL programação ALGORITMO Codificação PROGRAMA FONTE digitação PROGRAMA FONTE DIGITADO compilação PROGRAMA OBJETO execução RESULTADOS avaliação conhecimento do problema criatividade domínio da linguagem conhecimento da linguagem e do equipamento conhecimento do teclado e do editor computador usuário + analista/programador 1.2.1.2 Desenvolvimento de programas Etapas: 1. definição do problema 2. projeto do algoritmo 3. codificação 4. depuração 5. testes 6. documentação 1) definição do problema especificação do problema o o que é o problema especificação das entradas o quais são os dados de entrada o formato da entrada o valores possíveis o quantidade de dados de entrada especificação das saídas o quais são os dados de saída o formato da saída DADOS PROGRAMA RESULTADOS
2 Exemplo: problema: calcular a comissão de um vendedor pela fórmula: comissão = 240 + 10% das vendas entrada: valor de vendas, como um número real saída: vendas = $ xxxxx,xx comissão = $ xxxxx,xx condições excepcionais: o se vendas negativo, imprimir mensagem de erro o se comissão > 5000, imprimir mensagem de aviso 2) projeto do algoritmo algoritmo: o método de solução o algoritmo: seqüência de instruções suficientemente detalhadas para resolver um tipo específico de problema características: o instruções não ambíguas o instruções executáveis o termina em tempo finito linguagens de descrição de algoritmos o diversos níveis Português Inglês Pseudo-linguagens Fluxogramas Pascal Basic Fortran Assembler Linguagem de máquina Exemplo: versão 1: início ler vendas calcular comissão imprimir vendas e comissão fim versão 2: declare vendas, comissão: inteiro; início leia(vendas) comissão 240 + vendas/10; escreva( vendas=, vendas); escreva( comissão=, comissão); fim
3 3) codificação MINITAB (disponível em http://www.est.ufmg.br/ftp/fcruz/pacotes/salario.mac) macro # Autor: # Frederico R. B. Cruz # Departamento de Estatistica - UFMG # E-mail: fcruz@est.ufmg.br - (c) 2014 # Funcao: # calcular salario a partir das vendas pela expressao # salario = 240 + 10% das vendas # Utilizacao: # MTB> %DRIVE:/CAMINHO/salario # template salario # declaracoes mcolumns vendas salar # leia vendas note entre com as vendas read vendas; file "terminal"; nobs 1. # calcule salario let salar = 240 + vendas/10 # imprima resultados print vendas salar #final endmacro
4 R/S-PLUS (disponível em http://www.est.ufmg.br/ftp/fcruz/pacotes/salario.txt) salario <- function() { # Autor: # Frederico R. B. Cruz # Departamento de Estatistica - UFMG # E-mail: fcruz@est.ufmg.br - (c) 2014 # Funcao: # calcular salario a partir das vendas pela expressao # salario = 240 + 10% das vendas # Utilizacao: # > source("c:/caminho/salario.txt") # > salario() cat("entre com as vendas ") venda <- as.numeric(readline()) salar <- 240 + 0.10 * venda cat("venda =", venda, " salario =", salar, "\n") } 4) depuração descoberta, localização e correção de erros: o de compilação: pelo compilador/interpretador o de execução: comparar programa com o algoritmo simular a execução do programa no papel imprimir resultados intermediários o de lógica: idem 5) testes verificação se o programa funciona para diferentes dados (tentativa de mostrar que o programa produz resultados corretos para qualquer dado) 6) documentação o documentação do usuário utilização o documentação técnica metodologia
5 1.2.1.3 Utilização do MINITAB 1.2.1.4 Utilização do R/S-PLUS