Ir ao conteúdo
  • Cadastre-se

LGON7

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

posts postados por LGON7

  1. Olá,

     

    A solução é bem simples e pode ser usada exatamente como abaixo:

     

    string inputTxt = "Este é um teste";

    int i = inputTxt.IndexOf("teste");

    string outputTxt = inputTxt.Substring(i);

     

     

    Carlos Flavio Barreto Ferreira de Souza

    Flexdoc Tecnologia

    Amigo, obrigado pela ajuda. No caso eu não sei o tanto que é pra copiar, porque essa tag no meu programa é variável, o que eu sei é que preciso copiar o link do href e não será sempre o mesmo link, entendeu ?

  2. 
    

    Olá, eu fiz esse programa e está aparecendo informação a mais quando apresento os números pares e impares.

    Até aparecem os números pares e impares, o problema é que aparecem outros números também(Acredito que seja o endereço da memoria). Alguém poderia me ajudar ? Agradeço!!!

    #include <stdio.h>

    #include <conio.c>

    #define MIN_NUM 1

    #define MAX_NUM 20

    //Struct

    struct Vetor

    {

    int nro[MAX_NUM];

    };

    float leValidaFloat(char titulo[], char msgErro[], float valorMin, float valorMax);

    char leValidaSN(char titulo[],char msgErro[],char opcao1, char opcao2);

    void apresentaParImpar(int *par,int *impar,int cont);

    void separaParImpar(struct Vetor *numeros,int cont);

    int main(void)

    {

    // Declaracoes

    struct Vetor numeros;

    char desejaContinuar;

    int cont=0;

    // Instrucoes

    do

    {

    numeros.nro[cont]=leValidaFloat("Informe o numero","Invalido, informe novamente",0,9999);

    cont++;

    desejaContinuar=leValidaSN("Deseja adicionar outras notas?[S/N]","Invalido informe novamente[S-Sim/N-Nao]",'S','N');

    }while(desejaContinuar=='S' && cont<=20);

    separaParImpar(&numeros,cont);

    getch();

    return 0;

    }

    //Objetivo: ler e validar float

    //Parâmetros: titulo, msgErro, valorMin, valorMax

    //Retorno: float validado

    void apresentaParImpar(int *par,int *impar,int cont)

    {

    int contador;

    // printf("NUMEROS %d\n",numeros->nro[contador]);

    printf("PAR %d\n",*par);

    printf("IMPAR %d\n",*impar);

    }

    //Objetivo: ler e validar float

    //Parâmetros: titulo, msgErro, valorMin, valorMax

    //Retorno: float validado

    void separaParImpar(struct Vetor *numeros,int cont)

    {

    int contador;

    int par[20],impar[20];

    for(contador=0;contador<=cont-1;contador++)

    {

    if(numeros->nro[contador]%2==0)

    {

    par[contador]=numeros->nro[contador];

    }

    if(numeros->nro[contador]%2!=0)

    {

    impar[contador]=numeros->nro[contador];

    }

    apresentaParImpar(&par[contador],&impar[contador],cont);

    }

    }

    //Funcao

    //Objetivo: Ler e validar uma string

    //Parametros: ref a titulo,ref a msg de erro,valor minimo e maximo do numero.

    //Retorno: string validada

    char leValidaSN(char titulo[],char msgErro[],char opcao1, char opcao2)

    {

    char opcao;

    do

    {

    printf("%s\n",titulo);

    opcao=getch();

    opcao=toupper(opcao);

    if(opcao!=opcao1 && opcao!=opcao2)

    {

    printf("%s\n",msgErro);

    }

    }while(opcao!=opcao1 && opcao!=opcao2);

    return opcao;

    }

    //Objetivo: ler e validar float

    //Parâmetros: titulo, msgErro, valorMin, valorMax

    //Retorno: float validado

    float leValidaFloat(char titulo[], char msgErro[], float valorMin, float valorMax)

    {

    float real;

    int ret;

    do{

    printf("%s",titulo);

    fflush(stdin);

    ret = scanf("%f",ℜ);

    fflush(stdin);

    if(real<valorMin || real>valorMax || ret ==0){

    system("cls");

    printf("%s\n",msgErro);

    }

    }while(real<valorMin || real>valorMax || ret ==0);

    return real;

    }

  3.  

    Pode trocar as chamadas das funções para essas que passei acima.

     

    Os dois únicos erro de lógica que encontrei, foram:

    1) Na função "main()", passar a chamada da função "obtemLocalIdadeMenorMedia()" para dentro do "for" e trocar o parâmetro "qtdePessoas" para "contador2".

        printf("Tabela de pessoas que possuem idade menor que a media das idades:\n");    printf("SEXO     IDADE     LOCAL\n");    for ( contador2 = 0; contador2 <= qtdePessoas-1; contador2++ )        if ( idades[contador2] < mediaIdades )        {            obtemLocalIdadeMenorMedia(idades,localIdadeMenorMedia,localViagem, mediaIdades, contador2);            printf("%4c     %5d         %s\n", sexo[contador2], idades[contador2], localIdadeMenorMedia);        }

    2) Na função "obtemLocalIdadeMenorMedia()", remover o tratamento para validar idades inferiores a média (pois ela já está inclusa no "for" do item 1) e remover o "for", pois a posição está sendo passada por parâmetro:

    void obtemLocalIdadeMenorMedia(int idades[500], char localIdadeMenorMedia[100], char localViagem[500], float mediaIdades, int posicaoCadastro){    if ( localViagem[posicaoCadastro] == 'S' )        sprintf(localIdadeMenorMedia, "ASIA");    else        if ( localViagem[posicaoCadastro] == 'E' )            sprintf(localIdadeMenorMedia, "EUROPA");        else            if ( localViagem[posicaoCadastro] == 'A' )                sprintf(localIdadeMenorMedia, "AMERICA DO NORTE");            else                sprintf(localIdadeMenorMedia, "NUNCA SAIU DO PAIS"); }

     

    @ScreenBlack Não colocando os parâmetros que você me passou não da certo... é que não aprendi esse "const" e preciso fazer sem isso...Obrigado mais uma vez

    @ScreenBlack AEEE valeu, consegui agora, obrigado :)

  4.  

    Fiz o teste aqui e funcionou.

     

    PS: precisei ajustar as chamadas de funções, pois os compiladores mais recentes não aceitam o tipo de nomenclatura que você está usando.

    void obtemLocalIdadeMenorMedia(int idades[500], char localIdadeMenorMedia[100], char localViagem[500], float mediaIdades, int qtdePessoas);int leValidaInteiro(const char titulo[100], const char msgErro[100], int valorMin, int valorMax);char leValidaCaracter(const char titulo[100], const char msgErro[100], char opcao1, char opcao2);char leValidaLocalViagem(const char titulo[100], const char msgErro[100]);

    @ScreenBlack Eu uso o DevC, preciso fazer nessa nomenclatura ai... Teria como me ajudar?

     

    Obrigado pela atenção


  5. Olá, neste programa o único erro é que não está aparecendo todas as classificações do vetor(ASIA,EUROPA...), acredito(tenho quase certeza) que seja no sprintf.


    Alguém poderia me ajudar?


    Obrigado;


     Síntese do programa para ajudar:


    algoritmo pesquisaViagens;
    // Síntese
    //  Objetivo: Auxiliar em uma pesquisa sobre viagens
    //  Entrada : Sexo, idade, local da viagem
    //  Saída   :Em uma tabela o sexo, idade e local da última viagem por extenso das pessoas 
    que possuem idade menor que a média,quantidade de pessoas que visitou cada um destes continentes e a quantidade que não saiu do brasil
     
    // Valores de Entrada: M, 10, A
    //                     M, 5 , S
    //                     F, 5,  A
     
    // Valores de Saida:
               SEXO     IDADE     LOCAL
                  M         5     ASIA
                  F         5     AMERICA DO NORTE
    Quantidade de pessoas que visitaram a Asia:1
    Quantidade de pessoas que visitaram a Europa:0
    Quantidade de pessoas que visitaram a America Do Norte:2
    Quantidade de pessoas que Nunca sairam do Brasil:0




    #include <stdio.h>
    #include <conio.c>
    void obtemLocalIdadeMenorMedia(int idades[],char localIdadeMenorMedia[],char localViagem[], float mediaIdades, int qtdePessoas);
    int leValidaInteiro(char titulo[], char msgErro[], int valorMin, int valorMax);
    char leValidaCaracter(char titulo[], char msgErro[], char opcao1, char opcao2);
    char leValidaLocalViagem(char titulo[], char msgErro[]);
    void visaoFinal(int somaViagensEuropa,int somaViagensAsia,int somaViagensAmericaDoNorte,int somaNuncaSaiuPais);
    int main(void)
    {
    // Declaracoes
        int idades[500],contador,somaIdades,qtdePessoas, idadeMenorMedia[500],contador2,contador3,somaViagensEuropa,somaViagensAsia,somaViagensAmericaDoNorte,somaNuncaSaiuPais;
    char sexo[500], localViagem[500],desejaContinuar, sexoIdadeMenorMedia[500];
    char localIdadeMenorMedia[100];
    float mediaIdades;
    // Instrucoes
        contador=0;
    somaIdades=0;
    qtdePessoas=0;
    mediaIdades=0;
    somaViagensEuropa=0;
    somaViagensAsia=0;
    somaViagensAmericaDoNorte=0;
    somaNuncaSaiuPais=0;
    do
    {
    idades[contador]=leValidaInteiro("Informe a idade:","Idade invalida, informe uma idade entre 2 e 150",2,150);
    somaIdades=somaIdades+idades[contador];
    sexo[contador]=leValidaCaracter("Informe o sexo[M-MASCULINO/F-FEMININO]:","Sexo invalido",'M','F');
    localViagem[contador]=leValidaLocalViagem("Informe o local da viagem de acordo com o menu de opções:","Local invalido, informe novamente");
    if(localViagem[contador]=='S')
    {
    somaViagensAsia=somaViagensAsia+1;
            }
    else
    {
    if(localViagem[contador]=='E')
    {
    somaViagensEuropa=somaViagensEuropa+1;
                }
    else
    {
    if(localViagem[contador]=='A')
    {
    somaViagensAmericaDoNorte=somaViagensAmericaDoNorte+1;
                    }
    else
    {
     
    somaNuncaSaiuPais=somaNuncaSaiuPais+1;
                    }              
                }
            }       
    printf("Digite qualquer tecla para continuar ou 'N' para mostrar o resultado:\n");
    desejaContinuar=getch();
    desejaContinuar=toupper(desejaContinuar);
    clrscr();
    contador=contador+1;
    qtdePessoas=contador;
    mediaIdades=somaIdades/qtdePessoas;
    }while(desejaContinuar!='N' && contador<=2);
    obtemLocalIdadeMenorMedia(idades,localIdadeMenorMedia,localViagem, mediaIdades, qtdePessoas);
    printf("Tabela de pessoas que possuem idade menor que a media das idades:\n");
    printf("IDADE     SEXO     LOCAL\n");
    for(contador2=0; contador2<=contador-1;contador2++)
    {
    if(idades[contador2]<mediaIdades)
    {
    printf("%5d     %c         %s\n",idades[contador2],sexo[contador2],localIdadeMenorMedia);
            }
              
        }
    visaoFinal(somaViagensEuropa,somaViagensAsia,somaViagensAmericaDoNorte,somaNuncaSaiuPais);
      getch();
      return 0;
    }
    //Objetivo: ler local viagem
    //Parâmetros: idades, localIdadeMenorMedia, localViagem, mediaIdades, qtdePessoas
    //Retorno:nenhum
    void obtemLocalIdadeMenorMedia(int idades[],char localIdadeMenorMedia[],char localViagem[], float mediaIdades, int qtdePessoas)
    {
    int contador2;
    for(contador2=0; contador2<=qtdePessoas-1;contador2++)
    {
    if(idades[contador2]<mediaIdades)
    {
    if(localViagem[contador2]=='S')
    {
    sprintf(localIdadeMenorMedia,"ASIA\n");
                }
    else
    {
    if(localViagem[contador2]=='E')
    {
    sprintf(localIdadeMenorMedia,"EUROPA\n");
                    }
    else
    {
    if(localViagem[contador2]=='A')
    {
    sprintf(localIdadeMenorMedia,"AMERICA DO NORTE\n");
                        }
    else
    {
    sprintf(localIdadeMenorMedia,"NUNCA SAIU DO PAIS\n");
    }
       }
          }
           }
       }
    }
    //Objetivo: ler e validar inteiro
    //Parâmetros:titulo msgErro, valorMin, valorMax
    //Retorno: numero inteiro validado
        int leValidaInteiro(char titulo[], char msgErro[], int valorMin, int valorMax)
        {
    int numero;
    do
    {
    printf("%s\n",titulo);
    scanf("%d",&numero);
    if(numero<valorMin || numero>valorMax)
    {
    printf("%s\n",msgErro);
    }
    }while(numero<valorMin || numero>valorMax);
    return numero;
        }
    //Objetivo: ler e validar caracter
    //Parâmetros: titulo, msgErro, opcao1, opcao2
    //Retorno: caracter validado
        char leValidaCaracter(char titulo[], char msgErro[], char opcao1, char opcao2)
        {
    char letra;
    do
    {
    printf("%s\n",titulo);
    letra=getch();
    letra=toupper(letra);
    if(letra!=opcao1 && letra!=opcao2)
    {
    printf("%s\n",msgErro);
    }
    }while(letra!=opcao1 && letra!=opcao2);
    return letra;
        } 
    //Objetivo:ler e validar local viagem
    //Parâmetros: titulo, msgErro
    //Retorno: local viagem validado
        char leValidaLocalViagem(char titulo[], char msgErro[])
        {
    char letra;
    do
    {
    printf("MENU DE VIAGEM\n");
    printf("E - EUROPA\n");
    printf("S - ASIA\n");
    printf("A - AMERICA DO NORTE\n");
    printf("N - NUNCA SAIU DO PAIS\n");
    printf("%s\n",titulo);
    letra=getch();
    letra=toupper(letra);
    if(letra!='E' && letra!='S' && letra!='A' && letra!='N')
    {
    printf("%s\n",msgErro);
    }
    }while(letra!='E' && letra!='S' && letra!='A' && letra!='N');
    return letra;
        }
    //Objetivo:Quantidade de pessoas que viajaram para os locais
    //Parâmetros:somaViagensEuropa,somaViagensAsia,somaViagensAmericaDoNorte,somaNuncaSaiuPais
    //Retorno:nenhum
    void visaoFinal(int somaViagensEuropa,int somaViagensAsia,int somaViagensAmericaDoNorte,int somaNuncaSaiuPais)
    {
    printf("Quantidade de pessoas que visitaram a Asia:%d\n", somaViagensAsia);
    printf("Quantidade de pessoas que visitaram a Europa:%d\n", somaViagensEuropa);
    printf("Quantidade de pessoas que visitaram a America Do Norte:%d\n", somaViagensAmericaDoNorte);
    printf("Quantidade de pessoas que Nunca sairam do Brasil :%d\n", somaNuncaSaiuPais);
    }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!