Ir ao conteúdo
  • Cadastre-se

vagabond1

Membro Pleno
  • Posts

    34
  • Cadastrado em

  • Última visita

Tudo que vagabond1 postou

  1. @Tio Chang Já tinha conseguido fazer antes, obrigado!
  2. @Tio Chang Amigo eu baixei o Vision e fiz assim: Esta correto?
  3. @arfneto Entendi, um colega me ajudou e deu certo
  4. @arfneto Esta ok, ja consegui resolver o problema Obrigado!
  5. @arfneto Entendi amigo, minha dificuldade esta sendo essa de mudar entende? int main(){ struct Pilha minhapilha; int capacidade, op; float valor; printf( "\nCapacidade da pilha? " ); scanf( "%d", &capacidade ); criarpilha (&minhapilha, capacidade); while( 1 ){ /* loop infinito */ printf("\n1- empilhar (push)\n"); printf("2- desempilhar (POP)\n"); printf("3- Mostrar o topo \n"); printf("4- sair\n"); printf("\nopcao? "); scanf("%d", &op); switch (op){ case 1: //push if( estacheia( &minhapilha ) == 1 ) printf("\nPILHA CHEIA! \n"); else { printf("\nVALOR? "); scanf("%f", &valor); empilhar (&minhapilha, valor); } break; case 2: //pop if ( estavazia(&minhapilha) == 1 ) printf( "\nPILHA VAZIA! \n" ); else{ valor = desempilhar (&minhapilha); printf ( "\n%.1f DESEMPILHADO!\n", valor ); } break; case 3: // mostrar o topo if ( estavazia (&minhapilha) == 1 ) printf( "\nPILHA VAZIA!\n" ); else { valor = retornatopo (&minhapilha); printf ( "\nTOPO: %.1f\n", valor ); } break; case 4: exit(0); default: printf( "\nOPCAO INVALIDA! \n" ); } } } E no "case 3" onde define o topo e se a pilha esta vazia que não consigo definer pelo: void pilha_vazia(Pilha* pi) { if(pi == NULL || *pi == NULL) printf("\n Pilha está vazia!"); else printf("\n Pilha não está vazia!"); } int push(Pilha* pilha, struct prato p) { if(pilha == NULL) return 0; struct elemento* aux = (struct elemento*)malloc(sizeof(struct elemento)); if(aux == NULL) return 0; aux->item = p; aux->prox = (*pilha); //TOPO DA PILHA *pilha = aux; //Novo elemento passa a ser o primeiro da pilha return 1; }
  6. @arfneto Tem sim, Esse enunciado que falei, tem que ser feito baseado no exemplo dado em aula O professor não aceita de outra forma as funções do struct e pilha A unica coisa que pediu para criarmos com liberdade é função do void main/int main para exeibir e imprimir o topo da pilha Por isso que o segundo codigo não conta para a resolução do problema, estou me baseando nesse outro codigo
  7. @arfneto apos tentar bastante consegui dessa forma: #include <stdio.h> #include <string.h> #include <stdlib.h> struct prato { char cor[50]; }; struct elemento { struct prato item; struct elemento *prox; }; typedef struct elemento* Pilha; Pilha* cria_pilha() { Pilha* pi = (Pilha*)malloc(sizeof(Pilha)); if(pi != NULL) *pi = NULL; return pi; } int recupera_tamanho_pilha(Pilha* pi) { if(pi == NULL) return 0; int tamanho = 0; struct elemento* item = *pi; while(item != NULL) { tamanho++; item = item->prox; } return tamanho; } void pilha_vazia(Pilha* pi) { if(pi == NULL || *pi == NULL) printf("\n Pilha está vazia!"); else printf("\n Pilha não está vazia!"); } int push(Pilha* pilha, struct prato p) { if(pilha == NULL) return 0; struct elemento* aux = (struct elemento*)malloc(sizeof(struct elemento)); if(aux == NULL) return 0; aux->item = p; aux->prox = (*pilha); //TOPO DA PILHA *pilha = aux; //Novo elemento passa a ser o primeiro da pilha return 1; } imprime(Pilha* pi){ struct elemento* item = *pi; printf("\n O ultimo item e %s", item->item); } void main() { Pilha *pilha; pilha = cria_pilha(); printf("\n Tamanho da pilha: %d", recupera_tamanho_pilha(pilha)); pilha_vazia(pilha); struct prato p; strcpy(p.cor, "Azul"); push(pilha, p); strcpy(p.cor, "Verde"); push(pilha, p); strcpy(p.cor, "rosa "); push(pilha, p); printf("\n Tamanho da pilha: %d", recupera_tamanho_pilha(pilha)); imprime(pilha) ; } O outro codigo consegui fazer executar: #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct Pilha { int topo; int capa; float *pElem; }; void criarpilha( struct Pilha *p, int c ){ p->topo = -1; p->capa = c; p->pElem = (float*) malloc (c * sizeof(float)); } int estavazia(struct Pilha* p) { return (p->topo < 0); } int estacheia ( struct Pilha *p ){ if (p->topo == p->capa - 1) return 1; else return 0; } void empilhar ( struct Pilha *p, float v){ p->topo++; p->pElem [p->topo] = v; } float desempilhar ( struct Pilha *p ){ float aux = p->pElem [p->topo]; p->topo--; return aux; } float retornatopo ( struct Pilha *p ){ return p->pElem [p->topo]; } int main(){ struct Pilha minhapilha; int capacidade, op; float valor; printf( "\nCapacidade da pilha? " ); scanf( "%d", &capacidade ); criarpilha (&minhapilha, capacidade); while( 1 ){ /* loop infinito */ printf("\n1- empilhar (push)\n"); printf("2- desempilhar (POP)\n"); printf("3- Mostrar o topo \n"); printf("4- sair\n"); printf("\nopcao? "); scanf("%d", &op); switch (op){ case 1: //push if( estacheia( &minhapilha ) == 1 ) printf("\nPILHA CHEIA! \n"); else { printf("\nVALOR? "); scanf("%f", &valor); empilhar (&minhapilha, valor); } break; case 2: //pop if ( estavazia(&minhapilha) == 1 ) printf( "\nPILHA VAZIA! \n" ); else{ valor = desempilhar (&minhapilha); printf ( "\n%.1f DESEMPILHADO!\n", valor ); } break; case 3: // mostrar o topo if ( estavazia (&minhapilha) == 1 ) printf( "\nPILHA VAZIA!\n" ); else { valor = retornatopo (&minhapilha); printf ( "\nTOPO: %.1f\n", valor ); } break; case 4: exit(0); default: printf( "\nOPCAO INVALIDA! \n" ); } } } Mas tentei implementar as funções do segundo codigo no primeiro e sem resultado, então decidi fazer de outra forma
  8. @devair1010 Amigo, poderia me ajudar lá no meu post tambem, por favor? Estou tentando e nada, no meu post de PILHA Obrigado!
  9. Realmene acrescentar a nova declaração resolveu um problema e alterar o (*pi) tambem, mas não estou entendo estes erros, li todos eles mas mesmo alterando não resolve os problemas. Outra coisa seria no int main, creio que não faz sentido declarar dentro da case o pilha_vazio sendo que esta sendo declarado na struct, certo?
  10. Alguem ai para ajudar no codigo acima? Preciso elaborar uma função que exiba o topo da pilha e a função deverá imprimir o elemento do topo, mas esta dando erro no codigo #include <stdio.h> #include <string.h> #include <stdlib.h> struct Pilha { int topo; int capa; float *pElem; }; void criarpilha( struct Pilha *p, int c ){ p->topo = -1; p->capa = c; p->pElem = (float*) malloc (c * sizeof(float)); } void pilha_vazia(Pilha* pi) { if(pi == NULL || *pi == NULL) printf("\n Pilha está vazia!"); else printf("\n Pilha não está vazia!"); } int push(Pilha* pilha, struct prato p) { if(pilha == NULL) return 0; struct elemento* aux = (struct elemento*)malloc(sizeof(struct elemento)); if(aux == NULL) return 0; aux->item = p; aux->prox = (*pilha); *pilha = aux; return 1; } int estacheia ( struct Pilha *p ){ if (p->topo == p->capa - 1) return 1; else return 0; } void empilhar ( struct Pilha *p, float v){ p->topo++; p->pElem [p->topo] = v; } float desempilhar ( struct Pilha *p ){ float aux = p->pElem [p->topo]; p->topo--; return aux; } float retornatopo ( struct Pilha *p ){ return p->pElem [p->topo]; } int main(){ struct Pilha minhapilha; int capacidade, op; float valor; printf( "\nCapacidade da pilha? " ); scanf( "%d", &capacidade ); criarpilha (&minhapilha, capacidade); while( 1 ){ /* loop infinito */ printf("\n1- empilhar (push)\n"); printf("2- desempilhar (POP)\n"); printf("3- Mostrar o topo \n"); printf("4- sair\n"); printf("\nopcao? "); scanf("%d", &op); switch (op){ case 1: //push if( estacheia( &minhapilha ) == 1 ) printf("\nPILHA CHEIA! \n"); else { printf("\nVALOR? "); scanf("%f", &valor); empilhar (&minhapilha, valor); } break; case 2: //pop if ( estavazia(&minhapilha) == 1 ) printf( "\nPILHA VAZIA! \n" ); else{ valor = desempilhar (&minhapilha); printf ( "\n%.1f DESEMPILHADO!\n", valor ); } break; case 3: // mostrar o topo if ( estavazia (&minhapilha) == 1 ) printf( "\nPILHA VAZIA!\n" ); else { valor = retornatopo (&minhapilha); printf ( "\nTOPO: %.1f\n", valor ); } break; case 4: exit(0); default: printf( "\nOPCAO INVALIDA! \n" ); } } }
  11. #include <stdio.h> #include <string.h> #include <stdlib.h> struct Pilha { int topo; int capa; float *pElem; }; void criarpilha( struct Pilha *p, int c ){ p->topo = -1; p->capa = c; p->pElem = (float*) malloc (c * sizeof(float)); } void pilha_vazia(Pilha* pi) { if(pi == NULL || *pi == NULL) printf("\n Pilha está vazia!"); else printf("\n Pilha não está vazia!"); } int push(Pilha* pilha, struct prato p) { if(pilha == NULL) return 0; struct elemento* aux = (struct elemento*)malloc(sizeof(struct elemento)); if(aux == NULL) return 0; aux->item = p; aux->prox = (*pilha); *pilha = aux; return 1; } int estacheia ( struct Pilha *p ){ if (p->topo == p->capa - 1) return 1; else return 0; } void empilhar ( struct Pilha *p, float v){ p->topo++; p->pElem [p->topo] = v; } float desempilhar ( struct Pilha *p ){ float aux = p->pElem [p->topo]; p->topo--; return aux; } float retornatopo ( struct Pilha *p ){ return p->pElem [p->topo]; } int main(){ struct Pilha minhapilha; int capacidade, op; float valor; printf( "\nCapacidade da pilha? " ); scanf( "%d", &capacidade ); criarpilha (&minhapilha, capacidade); while( 1 ){ /* loop infinito */ printf("\n1- empilhar (push)\n"); printf("2- desempilhar (POP)\n"); printf("3- Mostrar o topo \n"); printf("4- sair\n"); printf("\nopcao? "); scanf("%d", &op); switch (op){ case 1: //push if( estacheia( &minhapilha ) == 1 ) printf("\nPILHA CHEIA! \n"); else { printf("\nVALOR? "); scanf("%f", &valor); empilhar (&minhapilha, valor); } break; case 2: //pop if ( estavazia(&minhapilha) == 1 ) printf( "\nPILHA VAZIA! \n" ); else{ valor = desempilhar (&minhapilha); printf ( "\n%.1f DESEMPILHADO!\n", valor ); } break; case 3: // mostrar o topo if ( estavazia (&minhapilha) == 1 ) printf( "\nPILHA VAZIA!\n" ); else { valor = retornatopo (&minhapilha); printf ( "\nTOPO: %.1f\n", valor ); } break; case 4: exit(0); default: printf( "\nOPCAO INVALIDA! \n" ); } } } Alguem ai para ajudar no codigo acima? Preciso elaborar uma função que exiba o topo da pilha e a função deverá imprimir o elemento do topo, mas esta dando erro no codigo valeu
  12. @Tio Chang É aqui que me perco, tentei fazer essa representação mas não consigo sair dessa estaca. Teria alguma forma de ilustrar para facilitar?
  13. Alguem poderia me dar uma luz com isso? Veja o enunciado: Prezados Senhores, boa noite! Para resolução da segunda atividade, favor utilizar a descrição abaixo: Você foi contratado para planejar a criação de uma rede para uma corporação com as seguintes características: • A corporação possui uma Unidade Matriz que se interliga com outras 3 Unidades Filiais através de links de fibra ótica de 1 Gbps. • Cada Filial deverá ter sua respectiva rede segmentada em três áreas: VENDAS, FINANCEIRO e WIFI . • As redes VENDAS e FINANCEIRO não deverão permitir mais do que 254 dispositivos conectados . • A rede WIFI deve permitir acima de 254 dispositivos conectados. • Todas as Unidades (Matriz e Filiais) se comunicam com a internet por um link de fibra ótica de 100 Mbps. Você deve planejar as redes de forma que não existam conflitos de ips dentro da rede. Todas as Unidades devem se comunicar apenas com a Matriz, sem a necessidade de uma filial se comunicar com outra filial. Bom, nunca utilizei o cisco antes pois tudo que "aprendi" foi teorico em redes e não pratico, mas não estou entendo quase nada de funcionalidades do cisco Isso dificulta muito. O que consegui fazer ate agora foi na imagem que postei, quem puder me ajudar ficaria grato. Obrigado!
  14. Com base nos estudos que você me passou, consegui montar o seguinte codigo: Estou com problemas para imprimir o Logradouro pois aparece um monte de numero aleatorio, mesmo eu inserido uma sequencia de numero. E fiz via teclado pois preciso testar assim. #include <stdlib.h> #include <stdio.h> #include <string.h> int main () { struct cliente { int idCliente; char nome[50]; }; struct cliente *x = (struct cliente *) malloc(10 * sizeof(struct cliente)); struct endereco { int endereco[100]; int idEndereco; int cep; }; struct endereco *y = (struct endereco *) malloc(10 * sizeof(struct endereco)); struct telefone { int telefone; int idTelefone; char tipo[100]; }; struct telefone *z = (struct telefone *) malloc(10 * sizeof(struct telefone)); int cadastro; printf("\n -----Quantos clientes deseja cadastrar?-----\n "); scanf("%i", &cadastro); int count = 1; for( count = 1 ; count <= cadastro; count++){ printf("\n Digite o nome do Cliente: \n"); scanf("%s", &x[count].nome); printf("\n Digite o telefone: \n"); scanf("%d", &z[count].telefone); printf("\n Digite o Tipo de Telefone (Celular/Fixo): \n"); scanf("%s", &z[count].tipo); printf("\n Digite o Logradouro: \n"); scanf("%s", &y[count].endereco); printf("\n Digite o CEP: \n"); scanf("%i", &y[count].cep); } x[cadastro].idCliente = cadastro; y[cadastro].idEndereco = cadastro; z[cadastro].idTelefone = cadastro; FILE *arquivo; arquivo = fopen("arquivocliente.txt", "w"); struct cliente; if (arquivo==NULL){ printf("Erro ao criar arquivo.\n"); }else{ fprintf( arquivo, "###Nome### \n" ); fprintf( arquivo, "Id: %i \n", x[cadastro].idCliente); fprintf( arquivo, "Nome: %s \n\n", x[cadastro].nome); fprintf( arquivo, "###Telefone### \n" ); fprintf( arquivo, "Id: %i \n", z[cadastro].idTelefone); fprintf( arquivo, "Telefone: %d \n", z[cadastro].telefone); fprintf( arquivo, "Tipo: %s \n\n", z[cadastro].tipo); fprintf( arquivo, "##Endereço## \n" ); fprintf( arquivo, "Id: %i \n", y[cadastro].idEndereco); fprintf( arquivo, "Logradouro: %s \n", y[cadastro].endereco); fprintf( arquivo, "CEP: %i \n\n", y[cadastro].cep); fclose(arquivo); return 0; printf("\tArquivo gravado com sucesso.\n"); fclose(arquivo); } getch(); return 0; }
  15. @arfneto Perfeito, se não for incomodar, muito obrigado!
  16. @arfneto Com certeza, muito obrigado pela ajuda, vou implementar o programa.
  17. @arfneto Amigo sendo bem sincero, não gosto de programação mas tenho que fazer isso para me formar. Não quero seguir carreira como programador, no MOMENTO desejo aprender somente o essencial, futuramente caso eu crie interesse vou fazer cursos ou algo do tipo pois faculdade o ensino de programação é um completo LIXO. Mas muito obrigado pela ajuda.
  18. @arfneto Como ainda estou em faze de aprendizagem vou tentar implementar com laços mais simples como printf/scanf pois de qualqer forma preciso escrever via teclado, mas seus exemplos ficaram otimos para prendizagem.
  19. @arfneto Perfeito, muito obrigado! Agora vou trabalhar e estudar um pouco mais esses conceitos e tentar alterar um pouco do codigo para entendimento pessoal.
  20. @arfneto Nossa ficou otimo a explicação, obrigado! Não sei por que esse for esta dando erro, tentei de tudo para tentar resolver. *somente implementei as relações e não alterei seu codigo para testar o mesmo, mas assim que estiver rodando vou realizar as alterações para facilitar ainda mais o entendimento. Mas muito obrigado, já ajudou bastante.
  21. @arfneto Exato, neste programa é o que mais se aproxima do que preciso, este foi o que eu mesmo criei com algumas bases. Pois esta pedindo para escrever com o Teclado as informações do cliente, só que esse programa executa e gera o arquivo TXT porém fica tudo meio que uma bagunça. #include <stdio.h> #include <stdlib.h> #define T 2 struct cliente { char nome [100]; int telefone; int id; char tipo [50]; int endereco; int cep; }; struct cliente ler (){ struct cliente a; printf("\n#Cliente\n"); printf("\n----Id:---- \n"); scanf("%d",&a.id); printf("----Digite seu nome:---- \n"); fflush(stdin); gets(a.nome); printf("\n#Telefone\n"); printf("\n----Id:---- \n"); scanf("%d",&a.id); printf("\n----Telefone:---- \n"); scanf("%d",&a.telefone); printf("\n----Tipo:---- \n"); fflush(stdin); gets(a.tipo); printf("\n#Endereco\n"); printf("\n----Id:---- \n"); scanf("%d",&a.id); printf("\n----Endereco:---- \n"); scanf("%d",&a.endereco); printf("\n----CEP:---- \n"); scanf("%d",&a.cep); printf("\n============================\n"); return a; } void imprime (struct cliente a[T]){ int x; for (x=0; x<T; x++) { printf("\t Id: %d\n",a[x].id); printf("\t Nome: %s\n",a[x].nome); printf("\t Telefone: %d\n",a[x].telefone); printf("\t Tipo: %s\n",a[x].tipo); printf("\t Endereco: %d\n",a[x].endereco); printf("\t CEP: %d\n",a[x].cep); } } int main () { int x; char caminho[]="cliente.txt",caractere; FILE *arquivo;arquivo = fopen (caminho,"w"); struct cliente a[T]; if (arquivo==NULL){ printf("Erro ao criar arquivo.\n"); }else{ for(x=0; x<T; x++) { a[x]= ler(); fprintf(arquivo,"Id: %d\nNome: %s\nTelefone: %d\nTipo %s\nEndereco: %d\nCEP: %d\n ", a[x].id,a[x].nome,a[x].telefone,a[x].tipo,a[x].endereco,a[x].cep); printf("\tArquivo gravado com sucesso.\n"); } fclose(arquivo); } imprime(a); system("pause"); return 0; } adicionado 1 minuto depois @arfneto E por gentileza, teria o link desse programa que citou aqui no forum? Obrigado!
  22. @arfneto Entendi um pouco, mas tipo, nas questões das relações que mora a dificuldade para implementar o que é pedido. Geralmente busco essas dificuldades em codigos base para poder assim realizar uma logica e fazer a arquitetura do programa. Mas colocar Struct com geração de arquivo TXT esta muito complicado para o que eu aprendi ainda. To meio que sem um rumo pra ir.
  23. @arfneto Obrigado novamente, entendi um pouco sobre os arquivos. Minha maior dificuldade é estruturar de forma correta e implementar as nomeclaturas no codigo, não sou muito da area de programação e estou aprendendo aos poucos. Gostei do exemplo que me passou mas como disse que a maior dificuldade é implementar, creio que da para usar sua base sem problemas.

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