Ir ao conteúdo
  • Cadastre-se

gabrielleletice

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

Reputação

9
  1. @vangodp extaamente, só que o usuario teria que entrar com os dados e escolher destruir um dos alunos
  2. @vangodp na verdade, eu estou interessada em criar 3 objetos da mesma classe, no caso, aluno, e poder destruir um caso eu queira adicionado 2 minutos depois @vangodp no caso, eu coloquei todos os alunos em só uma classe e se eu criasse um destrutor iria destruir toda a classe e não só um aluno como eu queria #include <iostream> #include <cstdlib> #include <string> using namespace std; // questao 2 class Alunos { public: string nome1; string nome2; string nome3; int nota11,nota12,nota21,nota22,nota31,nota32; float media1,media2,media3; }; void setValues(Alunos&); void getValues(const Alunos&); void setValues(Alunos& alu) { cout<< "Informe o nome do aluno 1: "; getline(cin, alu.nome1); cout<< "Informe a primeira nota : "; cin>> alu.nota11; cin.ignore(); cout<< "Informe a segunda nota : "; cin>> alu.nota12; cin.ignore(); alu.media1 = (alu.nota11 + alu.nota12)/2; cout<< "Informe o nome do aluno 2: "; getline(cin, alu.nome2); cout<< "Informe a primeira nota : "; cin>> alu.nota21; cin.ignore(); cout<< "Informe a segunda nota : "; cin>> alu.nota22; cin.ignore(); alu.media2 = (alu.nota21 + alu.nota22)/2; cout<< "Informe o nome do aluno 3: "; getline(cin, alu.nome3); cout<< "Informe a primeira nota : "; cin>> alu.nota31; cin.ignore(); cout<< "Informe a segunda nota : "; cin>> alu.nota32; cin.ignore(); alu.media3 = (alu.nota31 + alu.nota32)/2; } void getValues(const Alunos&alu) { cout<< "Nome: " << alu.nome1<< endl; cout<< "A media é: " << alu.media1<< endl; } int main() { Alunos a1; setValues(a1); cout<<endl; cout<< "Informando dados sobre o aluno:\n"; cout<< "======================\n"; getValues(a1); return 0; }
  3. olá, como poderia armazenar a nota de mais de um aluno em um vetor nessa classe ? #include <iostream> #include <cstdlib> #include <string> using namespace std; // questao 2 class Aluno { public: string nome; int nota1,nota2; float media; }; void setValues(Aluno&); void getValues(const Aluno&); void setValues(Aluno& alu) { cout<< "Informe o nome do aluno: "; getline(cin, alu.nome); cout<< "Informe a primeira nota : "; cin>> alu.nota1; cin.ignore(); cout<< "Informe a segunda nota : "; cin>> alu.nota2; cin.ignore(); alu.media = (alu.nota1 + alu.nota2)/2; } void getValues(const Aluno&alu) { cout<< "Nome: " << alu.nome<< endl;
  4. #include <stdio.h> #include <stdlib.h> #define max 20 /* Definição da função bubble_sort */ void bubble_sort (int vet[], int max) { int flag, i, aux; do { flag = 0; for (i = 0; i < (max - 1); i++) { /* Verfica se o vetor está em ordem, no caso ele coloca em ordem crescente, para decrescente trocar '>' por '<' */ if (vet[i] > vet[i+1]) { /* Caso não esteja, ordena */ aux = vet[i]; vet[i] = vet[i+1]; vet[i+1] = aux; flag =1; } } /* Repete enquanto algum valor estiver fora de ordem */ } while (flag == 1); /* Imprime o vetor ordenado em ordem crescente */ for (i = 0; i < max; i++) { printf ("%d ",vet[i]); } printf ("\n"); return 0; } int main () { int max, i; printf("DIGITE 20 NUMEROS REAIS\n"); /* Lê o total de números do vetor */ scanf ("%d", &max); /* Define o vetor com o número max de algarismos */ int vetor[max]; for (i = 0; i < max; i++) { /* Lê cada indice do vetor */ scanf ("%d",&vetor[i]); } /* Dentro dessa função o vetor será ordenado */ void bubble_sort(vetor, max); return 0; } estou usando o algoritmo de ordenação corretamente, no entanto, mesmo assim há um erro na execução do meu programa..
  5. #include<stdio.h> #include<string.h> #include <locale.h> // questão 1 int main(int argc, char** argv) { setlocale(LC_ALL,"portuguese"); int resp; float tc,tf,t; while(resp!=0){ printf("digite 1 para coverter celsisus para fahrenheit\n"); printf("digite 2 para coverter fahrenheit para celsius\n"); scanf("%d",&resp); printf("digite a temperatura que deseja converter\n"); scanf("%f",&t); if( resp==1){ t=tc; tf=(tc*1.8)+32;} if(resp==2){ t=tf; tc=(tf*5)/9 -32;} switch(resp){ case 1: printf(" %f em fahrenheit\n",t); break; case 2: printf(" %f em celsius\n",tc); break; default: printf("sair\n"); } } return 0; } esse código era pra funcionar na minha opinião, no entanto, há um erro em ambas as conversões que não consigo solucionar
  6. @devair1010 como ficaria se eu quisesse imprimir apenas a fequencia de numeros ? isto é, imprimir os que repetiram apenas uma vez e imprimir 1 uma vez os que repetiram mais de uma vez ?
  7. eu fiz algumas modificações, mas quando o programa é compilado o case 6 não mostrar se a pilha está cheia ou vazia como deveria., não mostra nada quando se digita o 6. você saberia me dizer por que ? #include<stdio.h> #include<string.h> #include <ctype.h> #include <stdlib.h> #define MAX 50 typedef struct sacola{ int identificador; }Tsacola; typedef struct Pilha{ int topo; Tsacola sacolas[MAX]; }TPilha; int menu(); void iniciaPilha (TPilha *p); int pilhaVazia(TPilha *L); int pilhaCheia(TPilha *L); void empilha(Tsacola p, TPilha *L); void topo(TPilha *ptr); void imprimirPilha(TPilha *L); void Desempilhar(TPilha *L); int main () { TPilha Pilha; TPilha * EPilha=&Pilha; iniciaPilha (&Pilha); Tsacola sac; int opt; do{ opt = menu(); switch(opt){ case 1: if(pilhaCheia(&Pilha)==1) printf("pilha cheia!"); else { puts("Informe o identifcador da correspondencia -> numero inteiro e positivo"); scanf("%d",&sac.identificador); empilha(sac, &Pilha); } break; case 2: if (pilhaVazia) Desempilhar(EPilha); break; case 3: topo (EPilha); break; case 4: imprimirPilha(EPilha); break; case 5: iniciaPilha (EPilha); break; case 6: pilhaCheia (EPilha); pilhaVazia (EPilha); break; } }while(opt != 0); return 0; } int menu(){ int opt; printf("1 - Empilhar- enserir correspondencia\n"); printf("2 - Desempilhar- remover correspondencia\n"); printf("3 - Mostrar proxima correspondencia a ser entregue\n"); printf("4 - Imprimir pilha- quantidade de correspondencias\n"); printf("5 - Iniciar pilha\n"); printf("6- Mostrar se a pilha esta cheia ou vazia\n"); printf("0 - Sair\n"); scanf("%d",&opt); return opt; } void iniciaPilha(TPilha *L) { L->topo = 0; } int pilhaVazia(TPilha *L){//bool if(L->topo == 0 ){ printf("PILHA VAZIA!\n"); return 1; }//true else{ if(L->topo!=0) return 0; }//false } int pilhaCheia(TPilha *L){ if (L->topo == MAX){ printf("PILHA CHEIA\n"); return 1; } else return 0; } void empilha(Tsacola p, TPilha *L){ if (pilhaCheia(L)) printf ("Pilha Cheia!\n\n"); else { L->sacolas[L->topo]=p; L->topo++; } } void topo(TPilha *L){ // imprimir o topo da pilha. if(L->topo == 0) puts("A pilha esta vazia!\n"); else{ printf("Identificador: %d\n",L->sacolas[L->topo-1].identificador); } } void imprimirPilha(TPilha *L){ if(L->topo == 0) puts("A pilha esta vazia!\n"); else{ int i,cont=0; for(i=0; i<L->topo; i++){ cont++; printf("identificador: %d\n EXISTEM %d CORRESPONDENCIAS\n",L->sacolas[i].identificador,cont++); } } } void Desempilhar(TPilha *L){ if (L->topo == 0) printf ("\n Pilha vazia!!!\n"); else L->topo--; } adicionado 0 minutos depois @devair1010
  8. O problema original diz o seguinte : Faça um programa que implemente as tarefas de um entregador de correspondências postais. Levando em consideração que as correspondências são empilhadas na sacola e devem ser entregues levando-se sempre em consideração a que se encontra no topo da sacola. O número máximo de correspondências numa sacola será de 50. A pilha deverá armazenar o identificador de cada correspondência, o identificador deve ser um número inteiro e positivo. O programa deve permitir escolher qualquer uma das opções abaixo: 1 – Inserir correspondência na sacola (empilhar); 2 – Remover correspondência da sacola (desempilhar); 3 – Verificar se a sacola está cheia ou vazia; 4 – Verificar a próxima correspondência a ser entregue; 5 – Informar quantas correspondências existem na sacola; 0 – Encerrar o programa; contudo, na criação do meu código estou tendo dificuldade em mostrar o próximo ( identificador) e informar o tamanho da pilha, pois só aprendi até empilhar e desempilhar. #include<stdio.h> #include<string.h> #include <ctype.h> #include <stdlib.h> #define MAX 50 typedef struct sacola{ int identifcador; }Tsacola; typedef struct Pilha{ int topo; Tsacola sacolas[MAX]; }TPilha; int menu(); void iniciaPilha (TPilha *p); int pilhaVazia(TPilha *L); int pilhaCheia(TPilha *L); void empilha(Tsacola p, TPilha *L); void topo(TPilha *ptr); void imprimirPilha(TPilha *L); void Desempilhar(TPilha *L); int main () { TPilha Pilha; TPilha * EPilha=&Pilha; iniciaPilha (&Pilha); Tsacola sac; int opt; do{ opt = menu(); switch(opt){ case 1: if(pilhaCheia(&Pilha)==1) printf("pilha cheia!"); else { puts("Informe o identifcador da correspondencia -> numero inteiro e positivo"); scanf("%d",&sac.identificador); empilha(sac, &Pilha); } break; case 2: if (pilhaVazia) Desempilhar(EPilha); break; case 3: topo (EPilha); break; case 4: imprimirPilha(EPilha); break; case 5: iniciaPilha (EPilha); break; } }while(opt != 0); return 0; } int menu(){ int opt; printf("1 - Empilhar\n"); printf("2 - Desempilhar\n"); printf("3 - Mostrar Topo\n"); printf("4 - Imprimir pilha\n"); printf("5 - Iniciar pilha\n"); printf("0 - Sair\n"); scanf("%d",&opt); return opt; } void iniciaPilha(TPilha *L) { L->topo = 0; } int pilhaVazia(TPilha *L){//bool if(L->topo == 0 ) return 1; //true else return 0; //false } int pilhaCheia(TPilha *L){ if (L->topo == MAX) return 1; else return 0; } void empilha(Tsacola p, TPilha *L){ if (pilhaCheia(L)) printf ("Pilha Cheia!\n\n"); else { L->sacolas[L->topo]=p; L->topo++; } } void topo(TPilha *L){ // imprimir o topo da pilha. if(L->topo == 0) puts("A pilha esta vazia!\n"); else{ printf("Identificador: %d\n",L->sacolas[L->topo-1].identificador); } } void imprimirPilha(TPilha *L){ if(L->topo == 0) puts("A pilha esta vazia!\n"); else{ int i; for(i=0; i<L->topo; i++){ printf("identificador: %d\n",L->sacolas[i].identificador); } } } void Desempilhar(TPilha *L){ if (L->topo == 0) printf ("\n Pilha vazia!!!\n"); else L->topo--; } Além disso, a há um erro nas linhas 45, 114 e 124 quando vou compilar.
  9. Sim, apenas um por vez. pra ter sempre as opções do menu para escolher em qualquer momento.. pois fazendo assim, só posso ver as médias e notas ao final e não em qualquer momento adicionado 0 minutos depois @Gustavo Andretto adicionado 18 minutos depois @Gustavo Andretto no meu sempre fica espaços a mais na hora de cadastrar, o que acaba bugando as opções.. além de não poder retornar ao menu depois de ter inserido o aluno
  10. eu consegui até está parte, mas na hora de inserir os dados na struc dá bug : não dá pra inserir as notas e consequentemente calcular as médias de cada aluno., além disso, estou com dificuldade em criar e usar as funções media(void) e mediaTurma(void). o problema em questão quer cadastrar, mostrar exibir as medias acima de 7. eis o código defeituoso em quase toda totalidade. 1-Inserir um aluno; 2 - Listar todos os nomes e as respectivas medias; 3 - Quantidade de alunos com media maior que 7; 4 - Média da turma; 0 - Finalizar programa; obs : ainda não criei a condição para as notas > 7. #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> void inserir(void); void mostrar(void); float media(void); float mediaTurma(void); int i; struct registro { float nota1,nota2,media,mediaTurma; char nome[30]; }; struct registro vetor[10]; int num; int main(void) { for(; ;) { printf("\t\t\t\tCADASTRO DE ALUNOS\n"); printf("1-Para adicionar aluno\n"); printf("2-Para mostar nomes e medias\n"); printf("3-medias maiores que 7\n"); printf("0- Sair\n"); scanf("%d",&num); switch(num) { case 1: inserir(); break; case 2: mostrar(); break; case 0: exit(0); default: printf("TENTE NOVAMENTE"); } } getchar(); } void inserir (void) { for(i=0; i<10; i++) { printf("Entre com o nome do aluno e suas notas\n"); gets(vetor.nome); fflush(stdin); scanf("%f%f",&vetor.nota1,&vetor.nota2);} getche(); } void mostrar(void) { int i; for(i=0; i<10; i++) { printf("\n Nome do aluno: %s",vetor.nome); printf("\n media do aluno: %f",vetor.media); } } float media(media){ vetor.media=(vetor.nota1+vetor.nota2)/2; return media; }
  11. eu consegui até está parte, mas na hora de inserir os dados na struc dá bug e não dá pra inserir as notas e consequentemente calcular as médias de cada aluno. o problema em questão quer cadastrar, mostrar exibir as medias acima de 7 #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> void inserir(void); void mostrar(void); float media(media); int i; struct registro { float nota1,nota2,media; char nome[30]; }; struct registro vetor[10]; int num; int main(void) { for(; { printf("\t\t\t\tCADASTRO DE ALUNOS\n"); printf("1-Para adicionar aluno\n"); printf("2-Para mostar nomes e medias\n"); printf("3-medias maiores que 7\n"); printf("0- Sair\n"); scanf("%d",&num); switch(num) { case 1: inserir(); break; case 2: mostrar(); break; case 0: exit(0); default: printf("TENTE NOVAMENTE"); } } getchar(); } void inserir (void) { for(i=0; i<10; i++) { printf("Entre com o nome do aluno e suas notas\n"); gets(vetor.nome); fflush(stdin); scanf("%f%f",&vetor.nota1,&vetor.nota2);} getche(); } void mostrar(void) { int i; for(i=0; i<10; i++) { printf("\n Nome do aluno: %s",vetor.nome); printf("\n media do aluno: %f",vetor.media); } } float media(media){ vetor.media=(vetor.nota1+vetor.nota2)/2; return media; }
  12. eu consegui até está parte, mas na hora de inserir os dados na struc dá bug e não dá pra inserir as notas e consequentemente calcular as médias de cada aluno. #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> void inserir(void); void mostrar(void); float media(media); int i; struct registro { float nota1,nota2,media; char nome[30]; }; struct registro vetor[10]; int num; int main(void) { for(; { printf("\t\t\t\tCADASTRO DE ALUNOS\n"); printf("1-Para adicionar aluno\n"); printf("2-Para mostar nomes e medias\n"); printf("3-medias maiores que 7\n"); printf("0- Sair\n"); scanf("%d",&num); switch(num) { case 1: inserir(); break; case 2: mostrar(); break; case 0: exit(0); default: printf("TENTE NOVAMENTE"); } } getchar(); } void inserir (void) { for(i=0; i<10; i++) { printf("Entre com o nome do aluno e suas notas\n"); gets(vetor.nome); fflush(stdin); scanf("%f%f",&vetor.nota1,&vetor.nota2);} getche(); } void mostrar(void) { int i; for(i=0; i<10; i++) { printf("\n Nome do aluno: %s",vetor.nome); printf("\n media do aluno: %f",vetor.media); } } float media(media){ vetor.media=(vetor.nota1+vetor.nota2)/2; return media; }
  13. @devair1010 Muito obrigada deveria ter visto que precisava criar outra variável..
  14. como resolver um problema de frequencia de vetores ? no problema, o usuário deve entrar com 20 números e no final deve ser imprimido os numeros que não foram repetidos e imprimir aqueles que foram repetidos UMA vez. ex: 20,30,30,30,20,2,3,2. imprimi : 20,30,2,3. meu código ficou assim, mas ainda não está dandocerto #include <stdio.h> #include <stdlib.h> // questao 3 int main(int argc, char** argv) { int i,j,compara; float num[20]; printf("DIGITE UM NUMEROS\n"); for(i=0;i<=20;i++){ scanf("%f",&num); } for(i=0;i<=20;i++){ i=j; num[j]=num; } printf("%.2f",num[0]); for(i=1;i<=20;i++){ compara=0; for(j=0;j<i;j++){ if(num==num[j]){ compara++; } } } if(compara==0){ printf("%.2f\n",num[j]); } system("PAUSE"); return 0; }

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...