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)

terça-feira, 26 de junho de 2012

Questão resolvida com Função.

Escrever um Programa que lê um nome de uma pessoa com Nome e Sobrenome e:
(a) Imprimir quantas letras tem o nome e o sobrenome (1,0 ponto)
(b) Imprimi-lo de trás para frente, letra por letra ( 0,75 ponto)
(c) Imprimi-lo no formato “Sobrenome, Nome ”.(0,75)
          Exemplos:  JUCA DA SILVA - > SILVA, JUCA
                           THIAGO CAMPOS DE CAMPOS -> CAMPOS, THIAGO


Código Java

//Autor: Thiago Campos
//Data: 26.06.2012

/**
 *
 * @author Thiago
 */
import java.util.Scanner;

public class Questao02 {
    //variaveis globais
    public static int indEsp = 0; //armazena o indice do espaço
    public static String nomeC; //armazena o nome completo

    public static void main(String[] args) {
        //variaveis locais
        Scanner leia = new Scanner(System.in);
        String nome = ""; //armazena o primeiro nome
        String sobre = ""; //envia "" para a função
        String sobreNome; //armazena o retorno da função
        String nomeInv = ""; //recebe o nome invertido
        int i = 0; //variavel auxiliar

        //entrada do nome completo
        System.out.println("Informe o nome e sobrenome desejado:");
        nomeC = leia.nextLine();

        nomeC.trim(); //remove os espaços do inicio e do final da String

        //separa o nome da String
        do {
            nome = nome + nomeC.charAt(i);
            i++;
            indEsp = i + 1;
        } while (nomeC.charAt(i) != ' '); //fim do while

        //separa o sobrenome da String
        sobreNome = Sobre(sobre);

        //inverte a String digitada
        for (i = (nomeC.length() - 1); i >= 0; i--) {
            nomeInv = nomeInv + nomeC.charAt(i);
        }
        //saida do codigo
        System.out.println("nome -> " + nome + " -> " + nome.length() + " letras.");
        System.out.println("sobrenome -> " + sobreNome + " -> " + sobreNome.trim().length() + " letras."); //trim() para remover os espaços
        System.out.println("O nome invertido é: " + nomeInv);
        System.out.println("\nResposta c: " + sobreNome + ", " + nome);

    } //fim do main

    public static String Sobre(String sobre) {
        for (int i = indEsp; i < nomeC.length(); i++) {
            sobre = sobre + nomeC.charAt(i);
            if (nomeC.charAt(i) == ' ') {
                break;
            }
        } //fim do for

        //caso após o nome seja "de"/"da"/"das"/"dos" remove       
        if (sobre.length() <= 4) {
            sobre = "";
            sobre = sobre + nomeC.substring(indEsp + 3, nomeC.length());
            } //fim do for
        }

Nenhum comentário:

Postar um comentário