Programação Estruturada Prof. Marcelo Siedler Objetivos do documento: • Apresentar conceitos relacionados a programação estruturada • Exercícios com métodos. Programação Estruturada Programação estruturada orienta os programadores para a criação de estruturas simples em seus programas, usando procedimentos e funções. O objetivo é permitir uma melhor organização e um reaproveitamento de códigos já desevolvidos, facilitando a manutenção e o compartilhamento de soluções. A programação estruturada dominou a forma de trabalho nas empresas até a popularização da programação orientada a objetos, mesmo que ainda hoje seja possível encontrar diversos sistemas sendo desenvolvidos de forma estruturada. A seguir serão apresentados conceitos relacionados a programação estruturada que serão utilizados na presente unidade. Procedimentos e funções (métodos) Em sistemas computacionais é comum termos programas que trabalham com diversas funcionalidades diferentes dentro do mesmo programa. Por exemplo, foi desenvolvido em uma lista de exercício anterior um programa que, dependendo da opção digitada pelo usuário, deveria permitir incluir, pesquisar, listar e finalizar o programa, tudo dentro de um mesmo programa, tornando-o bastante extenso e dificultado a sua organização por parte do desenvolvedor. Com a programação estruturada surgiu a possibilidade de “dividir e organizar” melhor programas como esse, permitindo separar melhor o código, colocando em um determinado local do programa a operação de incluir, em outro a de pesquisar, listar entre outras que forem necessárias. Para tanto utilizaremos os procedimentos e funções, que chamaremos apenas de métodos. Sintaxe básica: void nomeMetodo() { /* Codificação do mesmo */ } No contexto da nossa unidade a sintaxe básica terá dois comandos adicionais, comandos estes que já estamos familiarizados quando utilizamos um tal de main para executar o nosso programa. public static void nomeMetodo() { /* Codificação do mesmo */ } Vamos ao exemplo Primeiro.java: /** * O programa deve verificar o cargo e retornar se o usuário * está autorizado a executar uma determinada operação */ import javax.swing.JOptionPane; public class Primeiro { public static void main(String args[]) { String cargo, nome; nome = JOptionPane.showInputDialog("Digite o seu nome"); cargo = JOptionPane.showInputDialog("Digite o seu cargo"); if(cargo.equalsIgnoreCase("Administrador") ||cargo.equalsIgnoreCase("Gerente")) { //chama o método que exibirá a mensagem de OK msgOK(); } else { //chama o método que exibirá a mensagem de Acesso Negado msgNegado(); } } public static void msgOK() { JOptionPane.showMessageDialog(null, "Você está autorizado a executar a operação"); } public static void msgNegado() { JOptionPane.showMessageDialog(null, "Você não está autorizado a executar a operação"); } } Exercício: Criar um programa chamado MetodoInicio.java com as seguintes implementações: O programa deve ler o nome de um funcionário e os anos de experiência do mesmo. Criar quatro métodos com as seguintes funcionalidades: • Método Senior o • Método Pleno o • Exibe a mensagem: “Você é um funcionário Pleno, seu salário mensal é de R$ 8000”; Método Junior o • Exibe a mensagem: “Você é um funcionário Sênior, seu salário mensal é de R$ 12000”; Exibe a mensagem: “Você é um funcionário Júnior, seu salário mensal é de R$ 2000”; Método Aprendiz o Exibe a mensagem: “Você é um funcionário Aprendiz, seu salário mensal é de R$ 600”; No método main implementar a leitura das informações do funcionário e chamar o método de acordo com o tempo que o mesmo está na empresa, sendo que se o funcionário está acima de oito anos na empresa ele é considerado Senior, entre cinco e oito é considerado Pleno, até um ano é considerado aprendiz e com mais de um ano e menos de cinco é considerado Junior. Passando parâmetro Considerando nosso exemplo Primeiro.java vamos considerar que, ao invés de exibir a mensagem “Você está autorizado a executar a operação” desejamos colocar o nome do funcionário que está ou não autorizado a executar a operação. Precisamos fazer com que o método “acesse” a informação de nome lida no programa principal, para isso utilizaremos parâmetros em nosso método. Exemplos: CRIAÇÃO: public static void exibeCargo(String cargo) { JOptionPane.showMessageDialog(null,”Meu cargo é” + cargo); } public static void exibeCargoeNome(String cargo, String nome) { JOptionPane.showMessageDialog(null,”Meu cargo é” + cargo); JOptionPane.showMessageDialog(null,”Meu nome é” + nome); } public static void novoSalario(Float salario) { JOptionPane.showMessageDialog(null,”Novo Salário” + (salario*1.2)); } CHAMADA dos métodos: String car, nom; Float salario; car = “Analista de Sistemas”; nom = “Marcelo”; salario = 1000f; exibeCargo(car); exibeCargoeNome (car,nom); novoSalario(salario); Vamos ao exemplo Primeiro.java adaptado: import javax.swing.JOptionPane; public class Primeiro_parametro { public static void main(String args[]) { String cargo, nome; nome = JOptionPane.showInputDialog("Digite o seu nome"); cargo = JOptionPane.showInputDialog("Digite o seu cargo"); if(cargo.equalsIgnoreCase("Administrador") ||cargo.equalsIgnoreCase("Gerente")) { //chama o método que exibirá a mensagem de OK msgOK(nome); } else { //chama o método que exibirá a mensagem de Acesso Negado msgNegado(nome); } } public static void msgOK(String nomefuncionario) { JOptionPane.showMessageDialog(null, nomefuncionario + ", você está autorizado a executar a operação"); } public static void msgNegado(String nomefuncionario) { JOptionPane.showMessageDialog(null, nomefuncionario + ", você não está autorizado a executar a operação"); } } Exercício: Adaptar o exercício anterior para que o mesmo informa o nome do funcionário na mensagem.