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

Um trabalho de programação - AJUDA

Discussão em 'Programação' iniciada por Zekinha007, 14 de Outubro de 2007. (Respostas: 18; Visualizações: 1015)

  1. Zekinha007

    Zekinha007 Power Member

    Tenho um trabalho de programação para fazer só que eu não pesco ainda muito disto:'(, por isso queria uma ajuda.
    O trabalho é o seguinte:
    "Escreve um programa que verifique se existe o carácter 'F' numa string (estilo C e não C++) dada pelo utilizador do programa."

    Para começar devo ter que fazer:
    ... agora so falta o resto:'(... Alguem me ajuda?
     
  2. TheRieper

    TheRieper Power Member

    agora pedes ao user para introduzir uma palavra, e corres as posições da string à procura do F, usando uma estrutura de condição.

    Abraço
     
  3. marzvolta

    marzvolta What is folding?

    para - variavel a percorrer toda a string
    se posição x == 'f'
    retorna verdadeiro
    caso contrario
    retorna falso

    é mais ou menos isso.
     
  4. Zekinha007

    Zekinha007 Power Member

    E como eu passo isso para programa? Aí é que esta o meu problema, looool... Pedir ao user a palavra sei fazer, agora correr as posiçoes da string é que já nao :S
     
  5. OubeLa

    OubeLa Power Member

    E que tal olhares para o link que eu te dei? Tem lá tudo.
     
  6. Zekinha007

    Zekinha007 Power Member

    Já o fiz e já la tive a ver mais cenas, só que eu não sou nenhum expert em ingles e muito menos em programaçao:'(
     
  7. Evil_Tidus

    Evil_Tidus Power Member

    para percorrer a string usam o 'for' certo?
     
  8. TheRieper

    TheRieper Power Member

    for - do, ou do-while também pode ser usado. mas for é mais amigavel:P

    usas um ciclo de repetição, de por exemplo. i=1;(aqui usas a função que conta o comprimento da variável, desconheço-a em c porque ainda não sei muito sobre c);++i; e dentro do cíclo é que pões a estrutura de condição. vá, já disse muito.
    "Quando vires um homem com fome não lhe des o peixe pois só o alimentarás por 1 dia. Ensina-o a pescar e ele nunca mais passará fome";)

    Abraço
     
    Última edição: 14 de Outubro de 2007
  9. OubeLa

    OubeLa Power Member

    Ou então podes usar o find, do genero

    string str2 = str1.find("a_letra_que_queres", 0); // em que 0 é a posição de indice 0.

    Mas fazer com for é mais facil e é mais usual.
     
    Última edição: 26 de Outubro de 2007
  10. Kruder

    Kruder I fold therefore I AM

    Só deves ter ido à 1ª aula, não? :002: Tenta fazer por ti que se perceberes isso é logo um passo dado no mundo da programação. Trabalhar com posições é mesmo essencial. O link acima referido tb tem lá td explicado


    Cumps
     
  11. guilherme

    guilherme Power Member

    Ou 1 while até encontrar '\0' :)
     
  12. greatbunzinni

    greatbunzinni Power Member

    Zekinha007: e que tal estudar? O semestre mal começou. Ainda vais a tempo.
     
  13. ticha86

    ticha86 Power Member

    eu estudei c#,e em c# o k faria era o seguinte:
    foreach (char 'f' in string)
    {
    codigo
    }
    ou
    e ta.
    espero ter ajudado ;)
     
  14. to kom o mesmo problema . komo e k eu faço para correr a string a procura de uma letra e comprar se e igual
     
  15. AliFromCairo

    AliFromCairo Power Member

    Basta percorreres a string usando um dos métodos referidos acima e comparares cada elemento com a letra que pretendes.
     
  16. bm depois de horas a olhar pa esta m**** penso k isto ta bom i ta completo. fiz assim pelo menos compila e axo k faz o pedido

    #include <iostream>
    #include <string>
    using namespace std;
    string a;

    int i;
    int main()
    {

    cout << "\nEscreva uma frase: ";
    cin >> a;
    getline(cin,a);
    i = 0;
    for(i=0;i<1;i++)
    if (i='A')
    cout << "\nA frase contem o caracter A:";
    else
    cout << "\A frase nao comtem o caracter A:";
    system("pause");
    return(0);
    }
     
  17. AragTey

    AragTey Power Member


    hum....assim so estás a verificar a primeira posicao da string. experimenta usar o strlen para teres o comprimento da string e assim correres todas as posições.

    cin >> a;
    getline(cin,a)

    Isto faz a mesma coisa ....só precisas de uma delas.

    i = 0;
    for(i=0;i<1;i++)

    não precisas da primeira inicialização do i...o ciclo for trata disso.
     
  18. AliFromCairo

    AliFromCairo Power Member

    Bem, tens alguns problemas no teu código:

    Código:
     
    cin >> a;
    getline(cin,a);
    
    Aqui, ou usas a primeira linha ou usas a função getline.

    Código:
     
    for(i=0;i<1;i++)
    
    A condição de paragem do teu ciclo for não faz grande sentido. A ideia é iterares a string inteira, ou seja, algo do género:

    Código:
    for (i = 0; i < a.size(); i++)
    

    Código:
    if (i='A')
    cout << "\nA frase contem o caracter A:";
    else
    cout << "\A frase nao comtem o caracter A:";
    
    A comparação que fazes não está correcta por duas razões. Primeiro, estás a comparar um inteiro que corresponde ao número da iteração com uma letra; a ideia é comparares cada posição da string com a letra (i.e. s == 'A'). Segundo, para comparar deves usar o == e não o =.

    Espero que ajude.
     

Partilhar esta Página