Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
PESSOA

C++

Recommended Posts

PESSOAL, POR FAVOR ME DEEM UM AUXILIO POIS PRECISO DE ALGUNS EXEMPLOS DE FUNÇÃO EM C++, SÃO PARA EXERCÍCIOS DA FACULDADE, ALGO COMO FAZER UMA FUNÇÃO PARA EXIBIR OS NUMEROS PARES QUE FOREM DIGITADOS PELO USUÁRIO. EU SOU TOTALMENTE VERDINHO NESTE EM C++. SE ALGUEM SOUBER DE ALUMA APOSTILA.  :-(P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Guest Spiderman

Colega Pessoa, você quer uma função que verifique se o no. digitado pelo usuário é par? Se for isso, te mando o código em C++, ok?

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • :-DD e ai Spiderman beleza!

    Cara, eu preciso de uma função que ao ser digitado um nome (string) qualquer ela me apresente o nome ao contrario, POR EXEMPLO:

    DIGITE SEU NOME: SPIDERMAN

    SEU NOME AO CONTRARIO É:NAMREDIPS

    VOCÊ PUDER ME ENVIAR ESTE CÓDIGO AGRADEÇO,

    UM ABRAÇO.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Guest Spiderman

    Ok colega, eis o código:

    #include <iostream.h>

    #include <stdio.h>

    #include <string.h>

    #include <conio.h>

    const int COMP = 81;   //comprimento da cadeia de caracteres

    //protótipo da função inverteString

    void inverteString(char*);  

    int main(int argc, char **argv)

    {

       char frase[COMP];

       cout << "Digite uma frase (Max. 80 caracteres): ";

       gets(frase);

       inverteString(frase);

       cout << "Frase invertida: " << frase;

       getch();

       return 0;

    }

    // Inverte uma cadeia de caracteres

    //Essa função recebe como argumento um endereço, perceba

    //que s é um ponteiro para caracteres

    void inverteString(char* s)

    {

       //ponteiro auxiliar, iniciar com uma cadeia nula

       char* aux = "";  

       int t;

       t = strlen(s);  

       for(int i = 0; i < t; i++)

       {        

           *(aux + i) = s[t - 1 - i];

       }

       *(aux + t) = '\0';

       strcpy(s, aux);

    }

    Espero ter sido útil.

    Abraços

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Postado Originalmente por Spiderman@13 Set. 2002,19:11

    void inverteString(char* s)

    {

       //ponteiro auxiliar, iniciar com uma cadeia nula

       char* aux = "";  

       int t;

       t = strlen(s);  

       for(int i = 0; i < t; i++)

       {        

           *(aux + i) = s[t - 1 - i];

       }

       *(aux + t) = '\0';

       strcpy(s, aux);

    }

    <font color='#000080'>Esse código causa uma quebra no programa. Você inicializa a variável char* aux num endereço com uma string vazia (de um único byte, '\0'). Após isso você começa a avançar além do espaço alocado pelo compilador (que é de apenas 1 byte), e começa a escrever sobre endereço inválido.

    Sugiro uma inverteString( ) assim:


    void inverteString(char* s)
    {
           int t = strlen(s); // tamanho da string
           char* aux = new char[t+1]; // aloca apenas o espaço necessário
           strcpy(aux, s); // copia a string e coloca o limitador nulo
           for (int i=0; i<t; i++)
                   s[ i ] = aux[ t-i-1 ];
           delete aux; // libera a memória alocada
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    <font color='#F52887'># Programa que lê os numeros pares ou impares digitados #

    #include <iostream.h>

    #include <conio.h>

    void main(){

    long x;

    cout<<"Digite um numero por favor ";

    cin>>x;

    if(x%2 == 0 )

    cout<<"O numero " <<x <<" digitado e  par";

    else{

    cout<<"O numero " <<x <<" digitado e impar";

    }

    getch();

    clrscr();

    }

    Abraços !!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Guest Spiderman

    Essa é a solução ideal, colega DanielKO. Tentei escrever esse código sem usar alocação dinâmica de memória porque percebi que o colega Pessoa ainda não sabe todos os "macetes" da linguagem C++. O código original não chama strcpy porque faço inverteString retornar um ponteiro para caracteres. Assim, inverteString teria o seguinte protótipo:

    #include <iostream.h>

    ...

    ...

    char* inverteString(char*);

    ...

    ...

    também não é necessário usar delete porque aux é uma variável local. Todas as variáveis locais são destruídas quando uma função termina, ok?

    Valeu pela sugestão, colega!

    Abraços...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Postado Originalmente por Spiderman@15 Set. 2002,14:24

    também não é necessário usar delete porque aux é uma variável local. Todas as variáveis locais são destruídas quando uma função termina, ok?

    <font color='#000080'>aux é uma variável ponteiro local, mas a memória que eu aloquei prá ela não é local. new vai alocar memória no heap, e ela precisa ser liberada no final com um delete.

    No seu código você alocou apenas 1 byte local ( char* aux = ""; ) para onde apontou o ponteiro aux. Incrementando aux vai fazer com que você tente escrever/ler numa região de memória inválida (provavelmente alguma área de código executável). O que eu fiz foi usar o new para criar um array dinamicamente (a mesma coisa que usar o malloc() em C).

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Postado Originalmente por DanielKO@13 Set. 2002,21:34


           delete aux; // libera a memória alocada

    <font color='#000080'>Ooops... erro de digitação...  :;):

    O correto seria:


           delete[] aux; // libera a memória alocada

    :**

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Guest dexter110

    char* inverte(char *st)

    {

    char *st2=st,*st3=st,st4;

    while(*st)

    st++;

    while(st2<st)

    {

    st4=*(--st);

    *st=*st2;

    *st2++=st4;

    }

    return st3;

    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Guest Spiderman
    aux é uma variável ponteiro local, mas a memória que eu aloquei prá ela não é local. new vai alocar memória no heap, e ela precisa ser liberada no final com um delete.

    Verdade, esqueci desse detalhe!

    Valeu...

    :-DD

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • IREI TESTAR HOJE ESTES PROGRAMAS POIS É PARA FACULDADE E SÓ CONSEGUI O COMPILADOR DO TURBO C++ ontem , REALMENTE SOU NOVO EM PROGRAMAÇÃO, ESTOU APRENDENDO AOS POUCOS, COM ALGUM MATERIAL QUE CONSEGUI NA INTERNET E COM AJUDA DOS COMPANHEIROS,  MESMO ASSIM VALEU GALERA.  :D

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×