1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Preciso de ajuda

Discussão em 'Programação' iniciada por ricamerica, 20 de Novembro de 2008. (Respostas: 11; Visualizações: 786)

  1. Caros colegas tenho um trabalho em que me pedem para criar um form em c# e que consiga fazer o seguinte:

    Pretende-se desenvolver uma função que consiga formatar o nome de uma pessoa segundo as regras das paginas amarelas. por exemplo Ricardo Jorge Saraiva Gonçalves deverá ser apresentado como Gonçalves, Ricardo, J. S.

    preciso de ajuda pois em c# nao consigo fazer este programa:confused:

    desde ja o muito obrigado a todos que ajudam e a este forum maravilhoso
     
  2. nuno_canelas

    nuno_canelas Power Member

    Fazes um split do texto e armazena-lo num array. depois na string é so pores a ultima posicao do array em primeiro, a primeira posicao em segundo e o resto só a aparecer a primeira letra.

    Espero ter ajudado, porque sem o vs à mão é um bocado complicado :P
     
  3. so nao ei é como fazer isso a programar tou a perder-me um pouco mesmo
     
  4. AliFromCairo

    AliFromCairo Power Member

    Tens aqui vários exemplos de como usar o método Split.
     
  5. obrigado mesmo axim tem um errito mas vou ver se acho o erro
     
  6. bem nao consigo na mesma nao sei onde estou a errar sei e que o programa nao corre na mesma
     
  7. AliFromCairo

    AliFromCairo Power Member

    Caso seja possível, coloca aqui o código que estás a utilizar.
     
  8. o
     
    Última edição: 22 de Novembro de 2008
  9. AliFromCairo

    AliFromCairo Power Member

    Bom, claramente que não é isso. Edita o teu post e remove esse texto, uma vez que não é particularmente útil :007:. Coloca o código que se encontra no ficheiro com extensão .cs.
     
  10. caros colegas eu consegui fazer o programa mas tem um pekeno erro que nao sei o pk de ele nao funcionar:

    o erro é o seguinte se o nome tiver 4 nomes ele altera acima dos 4 nomes ele ja nao altera agradecia se me pudessem ajudar e dizer o que esta mal, pk eu ja procurei tudo e nao encontro junto envio o codigo produzido até agora:

    Código:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace Paginas_Amarelas
    {
    class Program
    {
    static string proced(int x, char[] pagi)
    {
    string s_esp = "", ponto = ". ";
    s_esp = s_esp + char.ToUpper(pagi[x]);
    s_esp = s_esp + ponto;
    return (s_esp);
    }
    static void Main(string[] args)
    {
    string x, virgula = ", ", maiuscula = "";
    int resultado = 0;
    int cont = 0, cont1 = 0, cont4 = 0, pa, cont2, cont3; 
    int c = 0, i = 0, cac = 0;
     
     
    Console.WriteLine("Insira o nome:");
    x = Console.ReadLine();
    char[] pag = x.ToCharArray(); 
    i = pag.Length - 1;
     
    while (i > 0)
    {
    if (pag[i] == ' ')
    {
    c = i;
    cac = c;
    resultado = pag.Length - 1 - cont;
    break;
    }
    i--;
    cont++;
    }
     
    c = c + 1;
    while (c <= pag.Length || resultado > 0)
    {
    if (c == pag.Length)
    {
    maiuscula += virgula;
    break;
    }
    while (c < pag.Length)
    {
    maiuscula += char.ToUpper(pag[c]);
    c++;
    }
    }
     
    cont3 = 0;
    maiuscula = maiuscula + char.ToUpper(pag[cont3]);
    while (pag[cont3 + 1] != ' ')
    {
    maiuscula = maiuscula + char.ToLower(pag[cont3 + 1]);
    cont3++;
    }
    maiuscula = maiuscula + virgula;
    resultado = resultado - (++cont3);
    cont1 = cont3 + 1;
    cont2 = cont1 - 1;
    cont4 = cont;
    pa = 0;
    while (pa <= pag.Length)
    {
    if (pag[cont1] == pag[cac + 1])
    {
    cont4 = cont4 + cont2;
    }
    if (cont4 >= pag.Length || resultado <= 0)
    {
    break;
    }
    else if (pag[cont2] == ' ')
    {
    maiuscula = maiuscula + proced(cont1, pag);
    }
    cont1++;
    cont2++;
    pa++;
    }
    Console.WriteLine("Nome: {0}", maiuscula);
    Console.WriteLine(resultado);
    Console.ReadLine();
    }
    }
    }
    
    antes demais muito obrigado por ajudarem :005:
     
    Última edição pelo moderador: 6 de Dezembro de 2008
  11. IComeFromBehind

    IComeFromBehind Power Member

    Lá vai um exemplo em java:

    Código:
    public class YellowPages {
        
        private String convertToTitleCase(String toConvert) {
            assert toConvert != null : "cannot convert the null string to title case";
            
            if(toConvert.length() == 0)
                return toConvert;
            StringBuilder result = new StringBuilder(toConvert.toLowerCase());
            result.setCharAt(0, Character.toUpperCase(result.charAt(0)));
            return result.toString();
        }
        
        public String normalizeName(String name) {
            String[] nameSplitted = name.split("\\s+");
            
            if(nameSplitted.length <  2) {
                throw new IllegalArgumentException("name " + name + " doesn't contain enough names");
            }
            
            for (int i = 0; i < nameSplitted.length; i++)
                nameSplitted[i] = convertToTitleCase(nameSplitted[i]);
    
            StringBuilder normalizedForm = new StringBuilder();
            normalizedForm.append(nameSplitted[nameSplitted.length - 1]);
            normalizedForm.append(", ");
            normalizedForm.append(nameSplitted[0]);
    
            if(nameSplitted.length > 2)
                normalizedForm.append(",");
            
            for(int i = 1; i < nameSplitted.length - 1;  i++) {
                normalizedForm.append(" ");
                normalizedForm.append(nameSplitted[i].charAt(0));
                normalizedForm.append(".");
            }
            
            return normalizedForm.toString();
        }
    
    }
    
    
     
    Última edição: 6 de Dezembro de 2008
  12. bom o programa e em c# tentei aplicar isto pa c# fazendo as alteraçoes da linguagem mas ele nao me reconheçe alguns metodos pk????
    sedo que c# e uma evoluçao de java e c++, agora é que me baralhei todo:(
     

Partilhar esta Página