Ir ao conteúdo
  • Cadastre-se

Junior Conceição

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Reputação

12
  1. Comecei a estudar fortran recentemente e estou com uma dúvida que não consigo resolver. Quando eu utilizo sub-rotinas, eu tenho que declarar as variáveis no programa principal e na sub-rotina? Se eu usar várias sub-rotinas tenho que declarar todas as variáveis sempre? E não há nada de diferente para colocar nas variáveis das sub-rotinas? Se alguém puder ajudar ficarei muito grato.
  2. Estou criando um app para android que consome uma api, mas os dados dela estão divididos em páginas, to tentando criar um botão que passe para a próxima página mas não tá dando certo, alguém pode me dar uma luz? Aqui está o trecho do código onde eu tento fazer isso. A variável url contém a url base da api, consigo puxar os dados dela normalmente, mas não consigo passar para a segunda página. Na api, cada página tem uma string next, que contém a url da página seguinte. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView resposta = findViewById(R.id.etMain_resposta); try { do { obj = new HttpService(url).execute().get(); resposta.setText(obj.toString()); Button btn = findViewById(R.id.button3); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { url = obj.getNext(); } }); }while (obj.getNext() != null); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
  3. @Luiz Gouvea Cara, não entendi muito bem esse jeito que você falou. Como eu coloco o link pro método desse jeito?
  4. Estou tendo um problema ao adicionar um botão para excluir dados de um sistema. Tudo funciona perfeitamente, menos esse botão. Se eu tiro ele do código a página carrega normalmente, mas quando eu coloco, mostra uma página de erro. O 'EC' no código, são as iniciais de uma classe que controla o sistema, já o 'deletarConvidado' é o método a ser executado quando o botão for clicado, porém não há nada de errado neles por dois motivos: 1. a página toda não carrega, mesmo sem o botão ter sido clicado, só pelo fato de estar lá. 2. eu criei um botão da mesma forma em outra página html do mesmo projeto e ele funcionou normalmente. Anexei um pdf com o erro que dá na página. <!DOCTYPE html> <html xmlns:th="http://thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <head> <title>EventosApp</title> <!--Import Google Icon Font--> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"/> <!--Import materialize.css--> <link type="text/css" rel="stylesheet" href="materialize/css/materialize.min.css" media="screen,projection"/> <!--Let browser know website is optimized for mobile--> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="stylesheet" href="styles/style.css"/> </head> <body> <header> <nav> <div class="nav-wrapper"> <a href="#" class="brand-logo">Evento</a> <ul id="nav-mobile" class="right hide-on-med-and-down"> <li><a href="/eventos" class="waves-effect waves-light btn"><i class="material-icons left">dehaze</i>Lista de Eventos</a></li> </ul> </div> </nav> </header> <h3></h3> <div th:each="evento : ${evento}" class="container detalhesEvento"> <h5>Detalhes do Evento</h5> <div class="row"> <p>Nome: <span th:text="${evento.nome}"></span></p> <p>Local: <span th:text="${evento.local}"></span></p> <p>Data: <span th:text="${evento.data}"></span></p> <p>Horário: <span th:text="${evento.horario}"></span></p> </div> </div> <th:block th:include="MensagemValidacao"></th:block> <div class="container formConvidado"> <form method="post" th:object="${convidado}"> Nome: <input type="text" value="" name="nomeConvidado"/> RG: <input type="text" value="" name="rg"/> <button class="waves-effect waves-light btn" type="submit">Adicionar</button> </form> </div> <table class="container tabelaConvidado"> <thead> <tr> <th>Nome do Convidado</th> <th>Rg</th> <th>Deletar</th> </tr> </thead> <tbody> <tr th:each="convidado : ${convidados}"> <td><span th:text="${convidado.nomeConvidado}"></span></td> <td><span th:text="${convidado.rg}"></span></td> <!--O erro ocorre na linha abaixo: --> <td><a class="waves-effect waves-light btn-small" th:href="${(#mvc.url('EC#deletarConvidado').arg(0, convidado.rg)).build()}"><i class="material-icons left">delete</i></a></td> </tr> </tbody> </table> <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script type="text/javascript" src="materialize/js/materialize.min.js"></script> </body> </html> localhost_8080_11.pdf
  5. cara, tem muita coisa errada no código. vamos lá: isso não serve pra nada, pode tirar: x== main(a); na main, você tá declarando y como int e atribuindo o valor da função verif a ele, mas a função é do tipo float, então y tem que ser um float também. o parametro que você usa na função deve ser o mesmo na lógica, portanto, se: float verif(float a){ então: if (a >= 0) id = 1; else id = 0; lembrando que dentro do IF e ELSE você usa atribuição: "=" e não igualdade: "==". Na main você tá colocando o id como parâmetro da função verif, mas o parâmetro tem que ser o número que você digitou, logo: y = verif(a); corrija isso aí e veja se funciona.
  6. Estou fazendo um programa simples que simula um labirinto, e preciso checar quando a minha "peça" está na posição da matriz que é a saída do labirinto. Porém, quando eu tento checar, por exemplo, se a peça está na posição matriz[linha, coluna+1], se essa posição não existir o programa retorna: IndexOutOfRangeException. Alguém sabe uma forma de checar se ainda há movimentos possíveis sem cair nessa exceção?
  7. Por padrão, uma matriz em C# começa pela posição (0,0), então se ela for uma matriz 5x8 por exemplo, ela vai da linha 0 até a 4 e da coluna 0 até a 7, certo? Eu queria saber se tem um jeito de fazer ela começar pelo 1, porque eu preciso imprimir a posição de um elemento, e na resposta esse elemento está na posição (4,1), mas na minha matriz está na (3,0), mesmo as matrizes estando iguais. Alguém sabe como fazer isso?
  8. esses ; depois da condição do IF nao deveriam estar aí, o certo é: if (condição) { comandos; } e você está colocando: if (condição); { } além disso tem dois ; no printf da condição if (idade < 11) e você deve usar idade <= 11, senão o programa vai ignorar o 11
  9. Cara, ao invés de colocar a imagem, copie e cole o código no post, fica mais fácil de te ajudar. Primeiro, você ta comparando soma com maior, mas o maior não tem valor nenhum, você nem sequer iniciou ele, então você tem que colocar o maior como o valor que você quer comparar entre os times pra ver qual é o melhor. Ex: Pvit = vit * 3; Pemp = emp * 1; Pder = der * 0; soma = Pvit + Pemp + Pder; maior = soma; Daí você compara os outros com esse maior. E outra coisa, no final você colocou soma = maior_ponto e time = time_campeao, sendo que as variáveis time_campeao e maior_ponto não tem valor nenhum, então tem que ser ao contrário: maior_ponto = soma e time_campeao = time, para atribuir o valor de soma a maior_ponto e de time a time_campeao, e assim imprimir o que você quer no final. Espero ter ajudado.
  10. @Lucca Rodrigues o problema é esse getchar(), é desnecessário. Tirei ele e funcionou normalmente no meu codeblocks.
  11. sem o código fica difícil saber, mas pode ser o local onde você colocou o comando, pode ser que não tenha nada pra limpar ainda nesse local, por isso não dá pra ver o resultado
  12. @arfneto sim, se eu inserir inteiros na árvore ao invés da estrutura, ele exibe normalmente. Você diz se eu tirar as variáveis de dentro da estrutura Node e colocar uma variável (void*)? Dessa forma pode funcionar?
  13. Pessoal, estou tendo problemas para exibir dados de um funcionário cadastrado numa árvore AVL, consigo exibir se a árvore tiver apenas inteiros, mas se for uma árvore de estruturas o programa não exibe os dados, alguém pode me ajudar? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #define tam 0 typedef struct Funcionario{ char nome[50]; int id; int idade; struct Funcionario *prox; struct Funcionario *ant; } func; typedef struct fil{ int id; func *prim; func *ult; } Fila; struct Node{ int key; char nome[50]; int idade; struct Node *left; struct Node *right; int height; }; Fila *fila; int id_avl = 0; //inicializa fila void iniciafila(){ fila = (Fila *) malloc(sizeof(Fila)); fila->prim = NULL; fila->ult = NULL; } //libera fila void liberafila(){ free(fila); } int height(struct Node *N) { if (N == NULL) return 0; return N->height; } int max(int a, int b) { return (a > b)? a : b; } struct Node* newNode(func *f){ struct Node* node = (struct Node*) malloc(sizeof(struct Node)); node->key = f->id; strcpy(node->nome, f->nome); node->idade = f->idade; node->left = NULL; node->right = NULL; node->height = 1; return(node); } struct Node *rightRotate(struct Node *y) { struct Node *x = y->left; struct Node *T2 = x->right; x->right = y; y->left = T2; y->height = max(height(y->left), height(y->right))+1; x->height = max(height(x->left), height(x->right))+1; return x; } struct Node *leftRotate(struct Node *x) { struct Node *y = x->right; struct Node *T2 = y->left; y->left = x; x->right = T2; x->height = max(height(x->left), height(x->right))+1; y->height = max(height(y->left), height(y->right))+1; return y; } int getBalance(struct Node *N) { if (N == NULL) return 0; return height(N->left) - height(N->right); } struct Node* insert(struct Node* node, func *f) { int key = f->id; if (node == NULL) return(newNode(f)); if (key < node->key) node->left = insert(node->left, f); else if (key > node->key) node->right = insert(node->right, f); else return node; node->height = 1 + max(height(node->left), height(node->right)); int balance = getBalance(node); if (balance > 1 && key < node->left->key) return rightRotate(node); if (balance < -1 && key > node->right->key) return leftRotate(node); if (balance > 1 && key > node->left->key){ node->left = leftRotate(node->left); return rightRotate(node); } if (balance < -1 && key < node->right->key){ node->right = rightRotate(node->right); return leftRotate(node); } return node; } void preOrder(struct Node *root){ if(root != NULL){ printf("Id: %d\n", root->key); printf("Nome: "); puts(root->nome); printf("Idade: %d\n", root->idade); preOrder(root->left); preOrder(root->right); } } //fila de funcionarios void enfileira(func *f){ fila->id++; if (fila->prim == NULL){ fila->prim = f; fila->ult = f; }else{ fila->ult->prox = f; f->ant = fila->ult; fila->ult = f; fila->ult->prox = fila->prim; } } //insere funcionário func *novofunc(char *nome, int idade){ id_avl++; func *f = (func *)malloc(sizeof(func)); strcpy(f->nome, nome); f->idade = idade; f->prox = NULL; f->ant = NULL; f->id = id_avl; return f; } //rotacionar fila de funcionarios void rotacionaFila(){ func *aux = fila->prim; if (aux->prox != NULL){ fila->prim = fila->prim->prox; fila->prim->ant = NULL; fila->ult->prox = aux; aux->ant = fila->ult; aux->prox = fila->prim; fila->ult = aux; }else return; } void menu(){ printf("Escolha uma opcao:\n"); printf("1. Cadastrar funcionario\n"); printf("2. Exibir Funcionários\n"); } int main(){ int opcao, idade; char nome[50]; iniciafila(); struct Node *raiz = NULL; menu(); while (opcao != 0){ scanf("%d", &opcao); switch (opcao){ case 1: printf("Digite o nome do funcionario que deseja cadastrar:\n"); setbuf(stdin, NULL); scanf("%s", nome); printf("Digite a idade:\n"); scanf("%d", &idade); enfileira(novofunc(nome, idade)); insert(raiz, novofunc(nome, idade)); break; case 2: printf("\nArvore AVL - Pré Ordem:\n"); preOrder(raiz); break; default: break; } } liberafila(); return 0; }
  14. Galera, preciso fazer um simulador de estacionamento utilizando estrutura de pilha para estacionar os carros e fila para armazenar os funcionários, só que no código o número de carros nunca sai de zero, não importa quantos carros eu adicione, e quando tento mudar alguma coisa na variável que recebe o número de carros, eu obtenho um Segmentation Fault (Core dumped). O código completo é bem grande, por isso separei apenas essa parte: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Funcionario { char nome[50]; int id; int idade; struct Funcionario *prox; struct Funcionario *ant; } func; typedef struct Carro { char placa[7]; struct Carro *prox; } carro; typedef struct pi { int capacidade; carro *ult; } Pilha; typedef struct fila { int id; func *prim; func *ult; } Fila; Fila *fila; Pilha *pilha; int funcid = 0; //inicializa pilha de carros Pilha *iniciapilha(){ Pilha *nova_pilha; nova_pilha = (Pilha *)malloc(sizeof(Pilha)); nova_pilha->ult = NULL; return nova_pilha; } //libera pilha void liberapilha(){ carro *temp1 = pilha->ult; while (temp1 != NULL){ carro *temp2 = temp1->prox; free(temp1); temp1 = temp2; } free(pilha); } //inicializa fila void iniciafila(){ fila = (Fila *)malloc(sizeof(Fila)); } //libera fila void liberafila(){ func *temp1 = fila->prim; while (temp1 != NULL){ func *temp2 = temp1->prox; free(temp1); temp1 = temp2; } free(fila); } //fila de funcionarios void enfileira(func *f){ fila = (Fila *)malloc(sizeof(Fila)); fila->id++; if (fila->prim == NULL){ fila->prim = f; fila->ult = f; }else{ fila->ult->prox = f; f->ant = fila->ult; fila->ult = f; fila->ult->prox = fila->prim; }} //insere funcionário func *novofunc(char *nome, int idade){ funcid++; func *f = (func *)malloc(sizeof(func)); strcpy(f->nome, nome); f->idade = idade; f->prox = NULL; f->ant = NULL; f->id = funcid; return f; } //insere carro carro *novocarro(char *placa){ carro *car = (carro *)malloc(sizeof(carro)); strcpy(car->placa, placa); car->prox = NULL; return car; } //rotacionar fila de funcionarios void rotacionaFila(){ func *aux = fila->prim; if (aux->prox != NULL){ fila->prim = fila->prim->prox; fila->prim->ant = NULL; fila->ult->prox = aux; aux->ant = fila->ult; aux->prox = fila->prim; fila->ult = aux; }else return; } //chamar funcionário char chamarFuncionario(){ if (fila->prim == NULL){ printf("Nenhum funcionário cadastrado!\n"); return 0; }else{ char nome[50]; strcpy(nome, fila->prim->nome); rotacionaFila(); puts(nome); } return 0; } void push(carro *car, Pilha *nova_pilha){ if (nova_pilha == NULL) { nova_pilha->capacidade++; if (nova_pilha->ult == NULL){ nova_pilha->ult = car; } else { carro *aux = nova_pilha->ult; nova_pilha->ult = car; car->prox = aux; } } else { if (nova_pilha->ult == NULL) nova_pilha->ult = car; else { carro *aux = nova_pilha->ult; nova_pilha->ult = car; car->prox = aux; } } printf("Funcionário "); chamarFuncionario(); printf("colocou o carro "); puts(car->placa); printf("Total de carros no estacionamento: %d\n", nova_pilha->capacidade); } int main(){ int opcao, idade; char nome[50], placa[7]; iniciafila(); iniciapilha(); printf("Escolha uma opcao:\n"); printf("1. Cadastrar funcionario\n"); printf("2. Estacionar carro\n"); while (opcao != 0){ scanf("%d", &opcao); switch (opcao){ case 1: printf("Digite o nome do funcionario que deseja cadastrar:\n"); setbuf(stdin, NULL); scanf("%s", nome); printf("Digite a idade:\n"); scanf("%d", &idade); enfileira(novofunc(nome, idade)); break; case 2: printf("Digite a placa do carro que deseja estacionar:\n"); scanf("%s", placa); push(novocarro(placa), iniciapilha()); break; default: break; } } liberafila(); liberapilha(); return 0; }
  15. Galera to fazendo um código pra uma disciplina de Estruturas de Dados, e ta dando uns problemas, o código completo ficou muito grande, então eu separei uma parte pra ter uma ideia do problema. Não dá nenhum erro na hora de compilar, mas quando eu executo, ele pede os valores de entrada e logo em seguida o programa para de funcionar. #include <stdio.h> #include <stdlib.h> typedef struct Funcionario{ char nome[50]; int id; int idade; struct Funcionario *prox; struct Funcionario *ant; } func; typedef struct filar{ int id; func *prim; func *ult; } Fila; Fila *fila; int id; void iniciafila(){ fila = (Fila *) malloc(sizeof(Fila)); } func *novofunc(char nome[50], int idade){ id++; func *f = (func *) malloc(sizeof(func)); f->nome[50] = nome[50]; f->idade = idade; f->prox = NULL; f->ant = NULL; f->id = id; return f; } void enfileira(func *f){ fila->id++; if (fila->prim == NULL){ fila->prim = f; fila->ult = f; } else{ fila->ult->prox = f; f->ant = fila->ult; fila->ult = f; fila->ult->prox = fila->prim; } } //libera fila void liberafila(){ func* temp1 = fila->prim; while(temp1 != NULL){ func* temp2 = temp1->prox; free(temp1); temp1 = temp2; } free(fila); } int main(){ iniciafila(); char nome[50]; int idade; printf("Insira o nome do funcionario:\n"); scanf("%s", nome); printf("Insira a idade do funcionario:\n"); scanf("%d", &idade); enfileira(novofunc(nome, idade)); liberafila(); 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!