Ir ao conteúdo
  • Cadastre-se

Amanda Kellen

Membros Plenos
  • Total de itens

    46
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

45

Sobre Amanda Kellen

  • Data de Nascimento 26-08-1997 (21 anos)

Informações gerais

  • Cidade e Estado
    belo horizonte/MG
  • Sexo
    Feminino

Outros

  • Ocupação
    engenharia de sistemas
  1. eu consegui imprimir os valores mas não sei como imrpimir todas as sequencias de uma só vez,conseguir imprimir apenas a do tipo q estou trabalhando no momento e não as outras q estavam antes e como q funciona esse .at(0)
  2. Preciso criar um menu não grafico,mas não tenho ideia do que seja isso,alguém poderia me explicar?
  3. Preciso criar um vetor de objetos,porém meu código está imprimindo de maneira errada esse vetor.Não entendo muito bem como funciona esse vetor de objetos,alguém poderia me explicar?segque abaixo o código.Além disso tentei sobrecarregar o operador << e está dando erro. #ifndef SEQ_H #define SEQ_H #include <vector> #include <iostream> #include<stdlib.h> using namespace std; class seq { protected: virtual void gen_elems(int )=0 ;// Gera os elementos da série até o iésimo elemento (protected) public: vector <unsigned long int> sequencia; vector<seq *> SEQ; int length() ;// Retorna o tamanho atual da série void print(ostream &os); // Escreve todos os elementos gerados em os (public) unsigned long int elem(int ); // Retorna o iésimo elemento da seqüência (public) void imprime1(int ,int);//Imprime sequencia de i até j int elemento(); void imprime_termo(int ); void menu(seq *); void colocat(seq *); void imprimep(seq *); //void operator <<( ostream &o, seq& s ); }; class fibonacci :public seq { public: fibonacci(int ); ~fibonacci(); void gen_elems(int i) { int aux,aux2,soma,contador,tam; tam=length(); for(contador=tam;contador<=i;contador++) { aux=contador-1; aux2=contador-2; soma=sequencia[aux]+sequencia[aux2]; sequencia.push_back(soma); } } }; class lucas:public seq { public: lucas(int ); ~lucas(); void gen_elems(int i) { int aux,aux2,soma,contador,tam; tam=length(); for(contador=tam;contador<=i;contador++) { aux=(contador-1); aux2=contador-2; soma=sequencia[aux]+sequencia[aux2]; sequencia.push_back(soma); } } }; class Pell: public seq { public: Pell(int ); ~Pell(); void gen_elems(int i) { int aux,aux2,soma,contador,tam; tam=length(); for(contador=tam;contador<=i;contador++) { aux=(contador-1); aux2=contador-2; soma=(2*sequencia[aux])+sequencia[aux2]; sequencia.push_back(soma); } } }; class Triangular:public seq { public: Triangular(int); ~Triangular(); void gen_elems(int i) { int aux,aux2,soma,contador,tam; tam=length(); for(contador=tam;contador<=i;contador++) { aux=(contador-1); aux2=contador; soma=sequencia[aux]+aux2; sequencia.push_back(soma); } } }; class Quadrados:public seq { public: Quadrados(int); ~Quadrados(); void gen_elems(int i) { int aux,soma,contador,tam; tam=length(); for(contador=tam;contador<=i;contador++) { aux=contador; soma=aux*aux; sequencia.push_back(soma); } } }; class Pentagonal:public seq { public: Pentagonal(int ); ~Pentagonal(); void gen_elems(int i) { int aux,aux2,soma,contador,tam; tam=length(); for(contador=tam;contador<=i;contador++) { cout<<"\n contador: "<<contador; aux=contador-1; aux2=(3*contador)+2; soma=(aux*aux2); soma =soma/2; soma=soma+1; sequencia.push_back(soma); } } }; // Implementação void seq::imprimep(seq *b) { int i,tama; tama=b->length(); for(i=0;i<tama;i++) { cout<<SEQ[i]<<" "; } } void seq::colocat(seq *a) { int i,ta; ta=a->length(); for(i=0;i<ta;i++) { SEQ.push_back(a); } } void seq:: menu(seq *p) { int size,x,i,j; int op2; cout<<"\n Digite a opcao desejada(ou 0 para sair):"<<endl; cout<<"(1) Gerar o i-enesimo termo da sequencia:"<<endl; cout<<"(2) Tamanho da sequencia"<<endl; cout<<"(3)Escrever todos os elementos gerados em os"<<endl; cout<<"(4)Imprimir i-enesimo termo"<<endl; cout<<"(5)Imprimir a sequencia de i até j"<<endl; cout<<"(6)Imprimir vetor de objetos"<<endl; cin>>op2; do{ switch (op2) { case (1): p->elemento(); break; case (2): size=p->length(); cout<<"O tamanho da sequencia e:"<<size<<endl; cout<<endl; break; case (3): p->print(cout); break; case(4): cout<<"Digite o termo que deseja imprimir: "<< endl; cin>>x; p->imprime_termo(x); break; case(5): cout<<"Digite o inicio da impressao:"<<endl; cin>>i; cout<<"Digite o fim da impressao"<<endl; cin>>j; p->imprime1(i,j); break; case(6): p->colocat(p); p->imprimep(p); } cout<<"\n Digite a opcao desejada(ou 0 para sair):"<<endl; cout<<"(1) Gerar o i-enesimo termo da sequencia:"<<endl; cout<<"(2) Tamanho da sequencia"<<endl; cout<<"(3)Escrever todos os elementos gerados em os"<<endl; cout<<"(4)Imprimir i-enesimo termo"<<endl; cout<<"(5)Imprimir a sequencia de i até j"<<endl; cout<<"(6)Imprimir vetor de objetos"<<endl; cin>>op2; system("clear||cls"); }while(op2!=0); } void seq::imprime1(int ii ,int ifi) { int ct,tamanho; tamanho=length(); if(ifi!=tamanho) { gen_elems(ifi); } for(ct=ii;ct<ifi;ct++) { cout<<sequencia[ct]<<" "; } } unsigned long int seq::elem(int i) { return sequencia[i]; } int seq::length() { return sequencia.size(); } int seq::elemento() { int elementos; cout<<"Digite o numero de elementos que deseja gerar:"<<endl; cin>>elementos; if(elementos==length() ) { cout<< "Lista ja gerada!"<<endl; } else{ gen_elems(elementos); } } void seq ::print(ostream &os) { int i,t; t=length(); for(i=0;i<t;i++) { os << sequencia[i]<<" " ; } } /*void seq::operator<<( ostream &o, seq& s ) { o <<s.print(); }*/ void seq::imprime_termo(int term) { int tama=length(); if(term!=tama) { gen_elems(term); } cout<<"O "<<term <<"da sequencia e:"<<sequencia[term]<<endl; } fibonacci::fibonacci(int n) { int tamanho; tamanho=length(); sequencia.push_back(0); sequencia.push_back(1); sequencia.push_back(1); if(n<tamanho) { gen_elems(n); } } fibonacci::~fibonacci() { } lucas::lucas(int l) { int TAMANHO; TAMANHO=length(); sequencia.push_back(0); sequencia.push_back(1); sequencia.push_back(3); if(l<TAMANHO) { gen_elems(l); } } lucas::~lucas(){} Pell::Pell(int P) { int TAMAN; TAMAN=length(); sequencia.push_back(0); sequencia.push_back(1); sequencia.push_back(2); if(P<TAMAN) { gen_elems(P); } } Pell::~Pell(){}; Triangular::Triangular(int T) { int Tamanho; Tamanho=length(); sequencia.push_back(0); sequencia.push_back(1); sequencia.push_back(3); if(T <Tamanho) { gen_elems(T); } } Triangular:: ~Triangular(){} Quadrados::Quadrados(int Q) { int TamanhO; TamanhO=length(); sequencia.push_back(0); sequencia.push_back(1); sequencia.push_back(4); if(Q <TamanhO) { gen_elems(Q); } } Quadrados::~Quadrados(){} Pentagonal::Pentagonal(int p) { int TAmanhO; TAmanhO=length(); sequencia.push_back(0); sequencia.push_back(1); sequencia.push_back(5); if(p <TAmanhO) { gen_elems(p); } } Pentagonal::~Pentagonal(){} #endif //main #include <iostream> #include <vector> #include <stdlib.h> #include "seq.h" using namespace std; int main() { seq *fib= new fibonacci(3); seq *luc= new lucas(3); seq *pe= new Pell(3); seq *t= new Triangular(3); seq *q= new Quadrados(3); seq *p= new Pentagonal(3); int op; cout<<"\nDigite a sequencia desejada(ou 0 para sair):"<<endl; cout<<"(1)Fibonacci "<<endl; cout<<"(2)Lucas"<<endl; cout<<"(3)Pell"<<endl; cout<<"(4)Triangular"<<endl; cout<<"(5)Quadrados"<<endl; cout <<"(6)Pentagonal "<<endl; cin>>op; system("clear||cls"); while(op!=0) { if(op==1) { fib->menu(fib); } if(op==2) { luc->menu(luc); } if (op==3) { pe->menu(pe); } if (op==4) { t->menu(t); } if (op==5) { q->menu(q); } if (op==6) { p->menu(p); } cout<<"\nDigite a sequencia desejada(ou 0 para sair):"<<endl; cout<<"(1)Fibonacci "<<endl; cout<<"(2)Lucas"<<endl; cout<<"(3)Pell"<<endl; cout<<"(4)Triangular"<<endl; cout<<"(5)Quadrados"<<endl; cout <<"(6)Pentagonal "<<endl; cin>>op; system("clear||cls"); } }
  4. Preciso fazer um trabalho que inclue herança e polimorfismo,nesse trabalho preciso declarar um método na classe base como protected.Devido a isso quando faço a chamada desse método com o objeto da classe derivada não consigo acessa-lo por se tratar de um metodo protegido,como eu acessaria esse metodo sem alterar para public?posso fazer a chamada desse metodo dentro da definição de um metodo da classe derivada?
  5. Fiz esse código com alocação dinâmica e ele compila,porém o primeiro elemento do vetor imprime de maneira errada pois imprime o endereço de memória,o que tenho q mudar? Segue abaixo a foto do erro e o código #include<stdio.h> #include<stdlib.h> int main() { int *vetor,i; *vetor=(int*)malloc(5); if(vetor == NULL) { printf("Alocacao fracassada!"); return vetor; } else{ for(i=0;i<5;i++) { printf("\nDigite o %d valor: ",i+1); scanf("%d",&vetor[i]); system("clear||cls"); } printf(" %d",vetor[0]); printf("\nO vetor digitado foi:\n["); for(i=0;i<5;i++) { printf(" %d,",vetor[i]); } printf(" ]\n"); } free(vetor); system("pause"); return 0; }
  6. Criei esse programa que realiza cadastro de alunos.Porém a função remove,que assim como o nome já diz remove alunos,não está funcionando adequadamente pois não está removendo os alunos na impressão.Além disse a insere ordenado que deveria colocar em ordem alfabetica não está fazendo isso.O que há de errado com as funções? #include <stdio.h> #include <stdlib.h> #include <string.h> #define Tamanho 70 #define NProvas 3 typedef struct sTipoAluno TipoAluno; struct sTipoAluno { char Nome[Tamanho]; float Nota[NProvas]; TipoAluno *PtrProximo; }; TipoAluno * IniciaLista();//Cria uma lista vazia int listavazia(TipoAluno *);//Verifica se a lista está vazia TipoAluno * insere (TipoAluno *);//Insere elemento na lista TipoAluno * InsereOrdenado (TipoAluno *);//Insere elemento de forma ordenada na lista TipoAluno * busca (TipoAluno *);// Busca um elemento da lista TipoAluno * removeAluno (TipoAluno *);// Remove um elemento da lista void imprime (TipoAluno *);// Imprime todos os elementos da lista int main () { TipoAluno *alunos = IniciaLista(); alunos = InsereOrdenado(alunos); alunos = InsereOrdenado(alunos); alunos = InsereOrdenado(alunos); alunos = insere(alunos); imprime(alunos); alunos = removeAluno(alunos); imprime(alunos); getchar(); return 0; } TipoAluno * IniciaLista() { printf("<<<<<LISTA INICIALIZADA>>>>\n"); return NULL;//CRIACAO DO HEAD //O } int listavazia(TipoAluno *alunos) { if(alunos == NULL) return 0; else return 1; } TipoAluno * insere (TipoAluno *alunos). { TipoAluno *novo = (TipoAluno *)malloc(sizeof(TipoAluno)); int i; printf("\nDigite o nome do Aluno: "); setbuf(stdin, NULL); gets(novo->Nome); for(i=0 ; i<NProvas; i++) { printf("\nDigite a nota da Prova %d: ", i+1); setbuf(stdin, NULL); scanf("%f", &novo->Nota[i]); } novo->PtrProximo = alunos; alunos = novo; return alunos; } TipoAluno * InsereOrdenado (TipoAluno *alunos) { TipoAluno *percorre = alunos;. TipoAluno *novo = (TipoAluno *)malloc(sizeof(TipoAluno)); int i; printf("\nDigite o nome do Aluno: "); setbuf(stdin, NULL); gets(novo->Nome); for(i=0 ; i<NProvas; i++) { printf("\nDigite a nota da Prova %d: ", i+1); setbuf(stdin, NULL); scanf("%f", &novo->Nota[i]); } if (listavazia(alunos) == 0) { novo->PtrProximo = alunos; alunos = novo; return alunos; }else { if (strcmp(alunos->Nome, novo->Nome) > 0 ) { novo->PtrProximo = alunos; alunos = novo; return alunos; } while (percorre->PtrProximo != NULL) { if (strcmp((percorre->PtrProximo)->Nome, novo->Nome) > 0 ) { novo->PtrProximo = percorre->PtrProximo; percorre->PtrProximo = novo; return alunos; } percorre = percorre->PtrProximo; } if (percorre->PtrProximo == NULL) { novo->PtrProximo = NULL; percorre->PtrProximo = novo; } } return alunos; } TipoAluno * busca (TipoAluno *alunos) { char nomebusca[Tamanho]; TipoAluno *aux = alunos; printf("\nDigite o nome para Busca: "); setbuf(stdin, NULL); gets(nomebusca); while (aux != NULL) { if ((strcmp(nomebusca, aux->Nome) == 0)) { printf("\nNOME ENCONTRADO!!!!"); return aux; } aux = aux->PtrProximo; } printf("\nNOME NÃO ENCONTRADO."); return aux; } TipoAluno * removeAluno (TipoAluno *alunos) { TipoAluno *aux, *auxAnterior = alunos; aux = busca(alunos); if(alunos==NULL) if (aux == alunos) { alunos = alunos->PtrProximo; free(aux); }else if (aux != NULL) { while (auxAnterior->PtrProximo != aux) { auxAnterior = auxAnterior->PtrProximo;. } auxAnterior->PtrProximo = aux->PtrProximo; free(aux); } return alunos; } void imprime (TipoAluno *alunos) { TipoAluno *percorre = alunos; int i; while (percorre != NULL) { printf("\n========================================================"); printf("\nNome: %s", percorre->Nome); for(i=0 ; i<NProvas ; i++) { printf("\nNota(%d): %.2f", i+1, percorre->Nota[i]); } printf("\n========================================================"); percorre = percorre->PtrProximo; } }
  7. @Simon Viegas a questão do void int eu até entendo,só mudei pra ficar parecido ao exercicio anterior que é assim: mas tinha me esquecido dessa questão do ponteiro. em relação a isso eu não estava levando tanto em consideração isso porque esse exercicio estou refazendo partes q fiquei com duvidas,mais como um treino mesmo,logo nem levei isso em consideração. realmente no exercicio não tem essa limitação mas o exercicio após esse pede somente expoentes negativos então preferi fazer esse apenas para expoentes positivos. muito obrigado!
  8. segue abaixo o enunciado: adicionado 10 minutos depois referente a essa parte eu cometi um erro me desculpe,eu também tenho um programa q calcula apenas com expoentes negativos e ele estava aberto no momento e por falta de atenção calculei 2^-3 nele e acabei me equivocando.esse programa em questão calcula apenas com expoentes positivos. segue o código abaixo,adicionei um while para q não aceite expoentes negativos: #include <stdio.h> #include <stdlib.h> int leitura(char); int xelevadoy(int,int,int*); void imprime(int,int,int); int main() { int x,y,potencia=1; x=leitura('x'); y=leitura('y'); while(y<0) { printf("\nERRO!!ESTE PROGRAMA CALCULA SOMENTE POTENCIAS DE EXPOENTE POSITIVOS!!\n"); y=leitura('y'); } xelevadoy(x,y,&potencia); imprime(x,y,potencia); system("pause"); return 0; } int leitura(char x) { int y; printf("\n Digite o valor de %c:",x); scanf("%d",&y); system("clear||cls"); return y; } int xelevadoy(int x,int y,int *potencia) { int i; for(i=1;i<=y;i++) { *potencia=*potencia*x; } return *potencia; } void imprime(int x,int y,int potencia) { printf("\n %d^%d=%d \n",x,y,potencia); }
  9. @Simon Viegas estava errado porque no enunciado tinha o prototipo da função e pedia q fosse int e não tinha notado isso depois eu troquei.Eu coloquei return potencia depois q tinha postado e me esqueci de editar,e no meu eu testei 2^-3 e foi corretamente olha só:
  10. Muito obrigado a todos,o void antes do imprime foi porque eu copiei o nome e colei na main e esqueci de tirar o void,agora está funcionando corretamente,troquei também na função xelevadoy o void por int,que eu tinha colocado errado mesmo por descuido e também mudei o valor recebido por i,antes estava 0,troquei por 1 e ficou assim: #include <stdio.h> #include <stdlib.h> int leitura(char); int xelevadoy(int,int,int*); void imprime(int,int,int); int main() { int x,y,potencia=1; x=leitura('x'); y=leitura('y'); xelevadoy(x,y,&potencia); imprime(x,y,potencia); system("pause"); return 0; } int leitura(char x) { int y; printf("\n Digite o valor de %c:",x); scanf("%d",&y); system("clear||cls"); return y; } int xelevadoy(int x,int y,int *potencia) { int i; for(i=1;i<=y;i++) { *potencia=*potencia*x; } } void imprime(int x,int y,int potencia) { printf("\n %d^%d=%d \n",x,y,potencia); }
  11. Tenho que fazer um programa dessa maneira usando ponteiro e um sem ponteiro,o sem ponteiro eu consegui fazer mas com ponteiro não está dando certo porque ainda tenho certa difiuldade com ponteiros.O q tenho q fazer para q o programa funcione? #include <stdio.h> #include <stdlib.h> int leitura(char); void xelevadoy(int,int,int*); void imprime(int,int,int); int main() { int x,y,potencia=1; x=leitura('x'); y=leitura('y'); xelevadoy(x,y,&potencia); void imprime(x,y,potencia); system("pause"); return 0; } int leitura(char x) { int y; printf("\n Digite o valor de %c:",x); scanf("%d",&y); system("clear||cls"); return y; } void xelevadoy(int x,int y,int *potencia) { int i; potencia=1; for(i=0;i<=y;i++) { potencia=potencia*x; } } void imprime(int x,int y,int potencia) { printf("\n %d^%d=%d \n",x,y,potencia); }
  12. Tenho que fazer uma função que duplica cada caractere de uma string recebida.Consegui fazer a função e vi que ela está duplicdando,porém ao imprimir mostra a string antes de ser duplicada o que faço? #include <stdio.h> #include <stdlib.h> #include <string.h> #define TAMANHO 100 int main() { char texto[TAMANHO]; printf("\n Digite o texto: "); fgets(texto,(TAMANHO-1),stdin); system("cls||clear"); int cont=(((strlen(texto))*2)+1); char duplo[cont]; duplo[cont]='\0'; printf("\n Texto antes da mudança:\n%s",texto); duplica(texto,duplo); getchar(); return 0; } void duplica(char texto[],char duplo[]) { int i,j; for(i=0;texto[i]!=NULL;i++) { j=i+1; duplo[i]=texto[i]; duplo[j]=texto[i]; printf("\ni: %d %c\n j:%d %c\n",i,duplo[i],j,duplo[j]);//Adicionei isso aqui pra verificar se estava duplicando e vi q está mas a impressao que esta errada } printf("\n Texto apos ser duplicado:\n"); for(i=0;duplo[i]!=NULL;i++) { printf("%c",duplo[i]); } printf("\n"); }

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

×