AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quinta-feira, 5 de julho de 2012

Lista de Exercício II - Questão 4: Uso de vetores

Escrever um programa que faça reservas de passagens aéreas de uma companhia aérea. Além da leitura dos número dos vôos e quantidade de lugares disponíveis, ler vários pedidos de reserva, constituídos do núero da carteira de identidade do cliente e do número do vôo desejado. Para cada cliente, verificar se há dispnibilidade no vôo desejado. Em caso afirmativo, imprimir o número da identidade do cliente, e o número do vôo, atualizando o número de lugares disponíveis. Caso contrário, avisar ao cliente da inexistência de lugares. Para indicar o fim da entrada dos vôos da companhia e o fim dos pedidos de reserva será utilizado um número negativo para a o número do vôo e para a carteira de identidade do cliente, respectivamente.

PS: Tomei a liberdade de incrementar o código Java. 

Código Java
//Autor: Thiago Campos
//Data: 05.07.2012

import java.util.Scanner;
/**
 *
 * @author Thiago
 */
public class Exercicio04 {
    //var global
    static Scanner leia = new Scanner(System.in);
    static String empAerea[] = new String[3]; //armazena o nome da companhia
    static String codVoo[] = new String[3]; //armazena o numero do voo
    static String RG[] = new String[4]; //guarda o RG do passageiro
    static int dispL[] = new int[3]; //armazena a qtd de lugares
    static boolean vaz[] = new boolean[3]; //indica se a posição está vazia
    static int k[] = new int[3]; //guarda o a qtd de lugares de cada voo
    static int i = 0, j = 0;; //variavel usada nos laços
   
    public static void main(String[] args) {
        //declaração de variáveis locais
        int menuV = 0; //menu do voo
        int menuP = 0; //menu principal
        int codV = 100; //codigo do voo para seleção
       
      
        //indicará que a posição está vazia
        for (i = 0; i < empAerea.length; i++) {
            vaz[i] = false;
        }
        //inicializar o vetor
        for (i = 0; i < empAerea.length; i++) {
            RG[i] = "";
        }
        do {
            if (j <=1) {
                System.out.println("PS:Para o primeiro acesso é necessario cadastrar a companhia aerea");
                j = j+1;
            }
            System.out.println("\nMenu Principal:"
                    + "\n1 - Menu Voo - Cadastro da Companhia Aerea"
                    + "\n2 - Reserva de Passagens"
                    + "\n3 - Ver disponibilidade de lugares"
                    + "\n4 - Cancelamento de Reserva"
                    + "\n5 - Fechar programa");
            menuP = leia.nextInt();

            switch (menuP) {
                case 1:
                    do {
                        if (j <= 1) {
                            System.out.println("\nPS:A opção 1 faz o cadastro automático de 3 companhias aereas");
                            j = j+1;
                        }
                        System.out.println("\nMenu Voo:"
                                + "\n1 - Cadastrar"
                                + "\n2 - Cancelar Voo"
                                + "\n3 - Ver Opções de Voo"
                                + "\n4 - Voltar ao Menu Principal");
                       
                        menuV = leia.nextInt();
                        switch (menuV) {
                            case 1:
                                //Cadastramento automatico
                                System.out.println("CADASTRAMENTO DE VOO");
                                CadastrarVoo(codVoo[0]); //função cadastrar
                                break;
                            case 2:
                                System.out.println("CANCELAMENTO DE VOO");
                                System.out.print("Informe o codigo do Voo: ");
                                codV = leia.nextInt();
                                CancelarVoo(codV); //função cancelar voo
                                codV = 100; //reinicializa o codigo do voo
                                break;
                            case 3:
                                System.out.println("DISPONIBILIDADE DE VOO");
                                OpcoesVoo(i); //função ver opções de voo
                                break;
                            case 4:
                                break;
                        } //fim do switch
                    } while (menuV != 4); //fim do laço de repetição
                    break;
                case 2:
                    System.out.print("RESERVA");
                    Reserva(codV); //função reserva de passagens
                    break;
                case 3:
                    System.out.print("VER RESERVA\n");
                    System.out.print("Informe o codigo do Voo:");
                    codV = leia.nextInt();
                    VerReserva(codV); //função ver reservas
                    break;
                case 4:
                    System.out.print("CANCELAR RESERVA\n");
                    System.out.print("Informe o codigo do Voo:");
                    codV = leia.nextInt();
                    CancelarRe(codV); //Função cancelar reserva
                    break;
                case 5:
                    System.out.println("FECHAR PROGRAMA");
                    break;
            } //fim do switch
        } while (menuP != 5);
    } //fim do main

/*-------------------------------------------------------------------------------------------
 *                                   CADASTRAR VOO
 * ------------------------------------------------------------------------------------------*/
    public static void CadastrarVoo(String a) {
        codVoo[0] = "001";
        empAerea[0] = "TAM";
        dispL[0] = 10;
        vaz[0] = true;
        k[0] = dispL[0];

        codVoo[1] = "002";
        empAerea[1] = "GOL";
        dispL[1] = 8;
        vaz[1] = true;
        k[1] = dispL[1];
       
        codVoo[2] = "003";
        empAerea[2] = "TAP";
        dispL[2] = 20;
        vaz[2] = true;
        k[2] = dispL[2];

        System.out.println("Cadastro realizado com sucesso!");
    } //fim da função cadastrar
/*-------------------------------------------------------------------------------------------
 *                                 CANCELAR DE VOO
 * ------------------------------------------------------------------------------------------*/
    public static void CancelarVoo(int codV) {
        if (codV > 0) {
            codVoo[codV - 1] = ""; //apaga o codigo do voo
            empAerea[codV - 1] = ""; //apaga o nome da empresa
            dispL[codV - 1] = 0; //apaga o numero de lugares
            vaz[codV - 1] = false; //indica que a posição está vazia
        } else {
            System.out.println("Código invalido!");
        }
        System.out.println("Operação realizada com sucesso!");
    } //fim da função cancelar voo
/*-------------------------------------------------------------------------------------------
 *                               VER OPÇÕES DE VOO
 * ------------------------------------------------------------------------------------------*/
    public static void OpcoesVoo(int i) {
        for (i = 0; i < empAerea.length; i++) {
            if (vaz[i]) {
                System.out.printf("\nCodigo do Voo: %s", codVoo[i]);
                System.out.printf("\nEmpresa aerea: %s", empAerea[i]);
                System.out.printf("\nNumero de lugares disponiveis: %d \n", dispL[i]);
            } //fim do if
        }
    } //fim da função opções de voo
/*-------------------------------------------------------------------------------------------
 *                           RESERVA DE PASSAGENS
 * ------------------------------------------------------------------------------------------*/
    public static void Reserva(int codV) {
       
        System.out.print("\nInforme o codigo do Voo:");
        codV = leia.nextInt();

   /*imprimir o número da identidade do cliente, e o número do vôo, atualizando
    *o número de lugares disponíveis**/
 
        if (dispL[codV - 1] > 0) {
            System.out.print("Informe o RG do passageiro:");
            RG[codV - 1] = leia.next();

            dispL[codV - 1] -= 1;
           
            System.out.printf("Reserva confirmada para %s no voo %s da Empresa %s\n\n",
                    RG[codV - 1], codVoo[codV - 1], empAerea[codV - 1]);
           
            RG[codV - 1]=""; //Zera este vetor
           
    //avisar ao cliente da inexistência de lugares.
        } else {
            System.out.println("--------------------------------------------------------------\n"
                    + "Não ha disponibilidade de vaga para este voo\n"
                    + "--------------------------------------------------------------");
        }
    } //fim da função reserva
/*-------------------------------------------------------------------------------------------
 *                          VER RESERVA DE PASSAGENS
 * ------------------------------------------------------------------------------------------*/
    public static void VerReserva(int codV) {
        if (dispL[codV - 1] > 0) {
            System.out.printf("%d lugar(es) disponivel(is) para o voo %s da Empresa %s\n",
                    dispL[codV - 1], codVoo[codV - 1], empAerea[codV - 1]);
        } else {
            System.out.println("--------------------------------------------------------------\n"
                    + "Não ha disponibilidade de vaga para este voo\n"
                    + "--------------------------------------------------------------");
        } //fim do else
    } //fim da função ver Reservas
/*-------------------------------------------------------------------------------------------
 *                      CANCELAR RESERVA DE PASSAGENS
 * ------------------------------------------------------------------------------------------*/
    public static void CancelarRe(int codV) {
        if (dispL[codV - 1] < k[codV - 1]) {
                RG[codV - 1] = leia.next();
           
                //atualiza a disponibilidade de lugares
                dispL[codV - 1] += 1;
           
        } else {
            System.out.println("Não ha reserva para este voo");
        }
        System.out.println("Operação realizada com sucesso!");
    } //fim da função cancelar reserva   
} //fim da classe

Lista de Exercicio II - Questão 3: Uso de charAt e JOptionPane

Fazer um programa que:
(a) leia uma frase de 80 caracteres, incluindo brancos,
(b) conte e imprima quantos brancos existem na frase,
(c) conte e imprima quantas vezes a letra A aparece.

Código Java

//Autor: Thiago Campos
//Data: 29.05.2012

import javax.swing.JOptionPane; //biblioteca importada

/**
 *
 * @author Thiago Campos
 */
public class Exercicio03 {

    public static void main(String[] args) {

        //declaração de variaveil
        String frase;
        String let;
        int espaco = 0, letra = 0;

        //Solicita que informe a letra a ser pesquisada
        let = JOptionPane.showInputDialog("Informe a letra a ser pesquisada:");

        //Solicita a frase a ser analisada
        frase = JOptionPane.showInputDialog("Digite a frase a ser analisada:");

        //laço para verificar a qtd de espaço
        for (int i = 0; i < frase.length(); i++) {
            if (frase.charAt(i) == ' ') {
                espaco += 1;
            }
            //vai absorver a String letra por letra
            String aux = frase.substring(i, (i + 1));

            //verifica se o conteudo do aux é = ao conteudo de let
            if (aux.equalsIgnoreCase(let)) {
                letra += 1;
            }
        }
        //Mostra o resultado em uma janela JOptionPane
        JOptionPane.showMessageDialog(null, "A frase possui " + espaco + " espaços em branco\nE " + letra + " letra(s) " + let + ".");

    } //fim do metodo main
} //fim da classe

Lista de Exercicio II - Questão 2: Uso de JOptionPane e Vetores

Escrever um programa que
(a) leia um conjunto de 10 notas, armazenando-as em uma variável composta do tipo arranjo,
(b) calcule e imprima a sua média,
(c) calcule e imprima o número de alunos com nota superior à média

Código Java

//Autor: Thiago Campos
//Data: 29.05.2012

import javax.swing.JOptionPane; //biblioteca importada

/**
 *
 * @author Thiago Campos
 */
public  class Exercicio02 {

    public static void main(String[] args) {

        //declaração de variaveis
        double n[] = new double[10];
        double media = 0.0, soma = 0.0;
        int k = 0, qtd = 0;

        //Vai informar a qtd de vezes  será digitado o numero
        k = Integer.parseInt(JOptionPane.showInputDialog("Informe a quantidade denota que serão digitadas"));

        //laço de repetição
        for (int i = 0; i < k; i++) {
            n[i] = Double.parseDouble(JOptionPane.showInputDialog("Informe a " + (i+1)
                    + " nota:\n(PS:Use o ponto no lugar da vírgula)"));
            soma = soma + n[i];
        }
        //media das notas
        media = soma / k;
      
        //laço que calcula a qtd de notas acima da media
        for (int i = 0; i < k; i++) {
            if (n[i] > media) {
                qtd += 1;
            }
        }
        //janela que mostra o resultado
        JOptionPane.showMessageDialog(null, "A média dos alunos são: " + media
                + " pontos.\nE " + qtd + " aluno(s) fica(m) com nota acima da média.");
    } //fim do main
} //fim da classe

Lista de Exercicio II - Questão 1: Uso de JOptionPane e String

Fazer um algoritmo que calcule e imprima o somatório dos valores armazenados em uma variável composta homogênea (arranjo) unidimensional A de 100 elementos numéricos a serem lidos do dispositivo de entrada padrão.

Código Java

//Autor: Thiago Campos
//Data: 29.05.2012

/**
 *
 * @author Thiago Campos
 */
import javax.swing.JOptionPane;

public class Exercicio01 {
    public static void main(String[] args) {
        //declaração de variaveis
        int a[] = new int[100];
        int k = 0, soma = 0;
        String sequencia = "";

        //Vai informar a qtd de vezes  será digitado o numero
        k = Integer.parseInt(JOptionPane.showInputDialog("Informe a quantidade de entradas:"));

        //lope para a entrada do numero
        for (int i = 0; i < k; i++) {
            a[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe o numero a ser armazenado:"));

            //sequencia de numero digitados convertidos em String e armazenados
            sequencia = sequencia + ", " + String.valueOf(a[i]);
            soma = soma + a[i]; //variavel que acumula a soma dos numeros digitados
        }
        //janela que mostra o resultado
        JOptionPane.showMessageDialog(null, "Os numeros armazenados foram " + sequencia + "\nE sua soma é: " + soma);
    } //fim do main
} //fim da classe