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:  
ViniciusBas

C++ Programa de Alocação dinâmica

Recommended Posts

fala galera, beleza ? preciso de uma ajuda neste programa simples, ela da um erro bizarro quando chega na funcao MostraVet

//******************UNIT********************

void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
  int n=atoi(Edit1->Text.c_str());
  if(n<=0)
  {
    ShowMessage("Quantidade Invalida!!");
    Edit1->SetFocus();
      }
    else
    {
        sg1->ColCount=n;

    }
}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int *pv,*pp,*pi,tp=0,ti=0,n=atoi(Edit1->Text.c_str());
  pv=AlocaVet(n);
  PreencheVet(pv,n,&tp,&ti,sg1);
  if (tp!=0)
  {
   pp=AlocaVet(tp); }
   if(ti!=0)
   {pi=AlocaVet(ti);}
   SeparaVet(pv,pp,pi,n);
   DECRE(pi, n);
   CRE(pp, n);
   MostraVet(pp,tp,sg2);
   MostraVet(pi,ti,sg3);



//*******************BIBLIOTECA*******************



int* AlocaVet(int n)
{
 int *p=(int*) malloc(n*sizeof(int));
 if(!p)
 {
  ShowMessage("Problema de Memória-Programa será encerrado!!");
  exit(0);

 }
  return p;
}
 void PreencheVet(int *ppv,int n,int *ttp,int *tti,TStringGrid *s)
 {
  for(int i=0;i<n;i++)
  {
  ppv=atoi(s->Cells[0].c_str());
  if (ppv%2==0)
  {
  (*ttp)++;
  }
  else
  {
   (*tti)++;
  }
     }
      }
 void SeparaVet(int *ppv,int *ppp,int *ppi,int n)
{
 int kp=0,ki=0;// Kp= indice do vetor par somente,
 for(int ko=0;ko<n;ko++) // Ki=indece do vetor impar somente, ko= indice do vetor original, somente.
  {
   if (ppv[ko]%2==0)
        {
        ppp[kp++]=ppv[ko]; // ppp[kp++] é  a mesma coisa que kp++; na linha de baixo.
                }
        else
        {
        ppi[ki++]=ppv[ko];
     }
   }
 }
   void CRE(int *a, int n)
 {
 int i, j, tmp;
 for(i=0; i<=n;i++)
 {
  for(j=i+1; j<=n;j++)
  {
   if(a[j]<a)
    {
     tmp=a;
     a=a[j];
     a[j]=tmp;
    }
   }
  }
 }
 void DECRE(int *pi, int n)
 {
  int x, y, aux;
  for(x=0;x<=n;x++)
  {
    for(y=x+1; y<=n; y++)
    {
      if (pi[y]>pi[x])
      {
         aux=pi[y];
         pi[y]=pi[x];
         pi[x]=aux;
       }
     }
   }
 }
 void MostraVet(int *p,int t,TStringGrid *s)
 {
 s->ColCount=t; // duvida
 s->Rows[0]->Clear();
 for(int i=0;i<t;i++)
 s->Cells[0]=p;

 }

 

nesse programa preciso fazer o seguinte: Gerar um vetor com números pares e outro com números ímpares a partir de um vetor gerado pelo usuário (valores também fornecidos pelo usuário). Apresentar o vetor PAR ordenado de forma crescente
e o vetor ÍMPAR de forma decrescente. Usar: AlocaVetor( ), PreencheVetor( ), SeparaVetor( ) , OrdenaVetorCrescente(), OrdenaVetorDecrescente() e MostraVetor( )

Editado por Evandro
adicionando code, editando título e removendo formatação da mensagem
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ViniciusBas Olá. Daria para postar o código todo? Ajudaria muito para q alguém possa dar uma resposta mais adequada qto a esse exercício 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui resolver esse problema, porém tenho outro para fazer so que nao sei nem por onde comecar, poderia me ajudar ?? 

 

obs: sem usar funcoes prontas exceto atoi(), atof(), ShowMessage(), malloc(), exit(), calloc(), realloc(), free(), AnsiString(), FormatFloat().
 
O usuário deverá fornecer palavras em um StringGrid. Apresente num segundo StringGrid cada uma dessas palavras de forma invertida (Exemplo: abacaxi torna-se ixacaba). Apresente quantas destas palavras são palíndromos (palavras que podem ser lidas da esquerda para a direita e da direita para a esquerda mantendo o mesmo significado). Usar: Copia( ), Tamanho( ), Inverte( ), Compara ( ), ContaPalindromos( ) e MostraPalavra().

adfasdfasdfasdfa.png.095ffd27dcbd06fa642e769f92b4caa1.png

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






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

×