Ir ao conteúdo
  • Cadastre-se

Picasso724

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

1
  1. Olá! Estou criando um programa de cadastro de membros para igreja em Java e utilizando um banco de dados em MySQL. Não vai ser muito sofisticado e não precisa ter muitas funções. Tenho uma tela inicial (JFrame), e duas telas (JInternalFrame), uma para o cadastro e outra para a pesquisa. Na tela de pesquisa tenho um botão para 'alterar cadastro', um campo de pesquisa, uma tabela (com os cadastros já feitos) e o formulário (para exibir e fazer a alteração). Depois de fazer algumas pesquisas, eu criei uma Classe que exibe na tabela os cadastros já feitos, e ao clicar em uma linha aquele cadastro aparece no formulário para ser alterado. O que eu tenho então, é uma tabela que exibe todos os dados (uma coluna para cada: id, nome, nascimento, endereço, etc.). MAS minha dificuldade é que eu gostaria de exibir na tabela apenas o id e nome do cadastro, e ao clicar na linha exibir toda a ficha do membro no formulário. Não sei se conseguir explicar bem a minha questão. Se precisar eu tento detalhar mais. Obrigado!
  2. Olá, @Simon Viegas, muito obrigado! Desculpe a demora em responder, estava fazendo outros trabalhos e estudando para as provas. Entendi boa parte do que você disse, e percebi que precisava aprender mais para poder implementar o meu código. Então fui pesquisar mais e acabei refazendo o problema (resolvi usar um registro para armazenar a pilha e o topo). Acho que dessa vez está melhor que o anterior, mas não sei se está completamente certo ainda. Tive que quebrar muito a cabeça para resolver o problema principal kk. program PilhaPascal; const max = 998; type tipoPilha = record v: array[0..max] of integer; topo: byte; end; procedure Cria(var pilha: tipoPilha); begin pilha.topo := -1; end; function VaziaCheia(pilha: tipoPilha): integer; begin if pilha.topo = max then VaziaCheia := 1; { retorna 1 para pilha cheia } if pilha.topo = -1 then VaziaCheia := -1; { retorna -1 para pilha vazia } end; procedure Empilha(var pilha: tipoPilha; x: integer); begin if VaziaCheia(pilha) = 1 then writeln('Overflow! Pilha cheia!') else begin pilha.topo := pilha.topo + 1; pilha.v[pilha.topo] := x; end; end; procedure Desempilha(var pilha: tipoPilha); begin if VaziaCheia(pilha) = -1 then writeln('Underflow! Pilha vazia!') else begin pilha.topo := pilha.topo - 1; end; end; procedure ImprimePilha(pilha: tipoPilha); var i: integer; begin for i := pilha.topo downto 0 do write(pilha.v[i], ' '); end; function ValorTopo(pilha: tipoPilha): integer; begin ValorTopo := pilha.v[pilha.topo]; end; function TamPilha(pilha: tipoPilha): integer; begin TamPilha := pilha.topo; end; { programa pricipal } var p, q: tipoPilha; t, x, i, n: integer; begin Cria(p); Cria(q); n := 0; while n > -1 do begin write('Digite um valor para empilhar (-1 para finalizar): '); readln(n); if n <> -1 then Empilha(p, n); end; write('Pilha P = '); ImprimePilha(p); writeln(); write('Qual valor quer eliminar: '); readln(x); for i := TamPilha(p) downto 0 do begin { laço para empilhar Q } if ValorTopo(p) <> x then begin t := ValorTopo(p); Empilha(q, t); Desempilha(p); end else begin Desempilha(p); end; end; for i := TamPilha(q) downto 0 do begin { laço para trocar Q <-> P } t := ValorTopo(q); Desempilha(q); Empilha(p, t); end; write('Pilha P = '); ImprimePilha(p); writeln(); end.
  3. Problema: Algoritmo que elimine de uma pilha P todos os elementos iguais a um certo valor X, mantendo os valores restantes na pilha na mesma ordem. Observação: Só são permitidas operações de desempilhamento e empilhamento. Dica: Utilizar uma pilha auxiliar Q para resolver este problema. O meu algoritmo está funcionando e atende a resolução do problema (eu acho). Mas gostaria de saber se eu posso melhorar de alguma forma esse código? Não tenho muito conhecimento de Pascal e tenho um pouco de dificuldade em manipular arrays kk Muito obrigado! program Ad12Dados; const max = 5; var p: array[0..max] of integer; q: array[0..max] of integer; i, topop, topoq, e, x: integer; procedure Cria(var p: array of integer); begin topop := 0; topoq := 0; end; function Vazia(var p: array of integer; var topo: integer): boolean; begin if topo = 0 then vazia := true else vazia := false; end; procedure Empilha(var p: array of integer; var topo: integer; var e: integer); begin topo := topo + 1; p[topo] := e; end; procedure Desempilha(var p: array of integer; var topo: integer); begin p[topo] := 0; topo := topo - 1; end; procedure ExibePilha(var p: array of integer); begin for i := 1 to max do begin write(p[i], ' '); end; writeln(); end; begin Cria(p); Cria(q); writeln('Preencher pilha P: '); for i := 1 to max do begin readln(e); Empilha(p, topop, e); end; ExibePilha(p); writeln('Valor eliminado: '); readln(x); for i := 1 to max do begin if p[topop] = x then Desempilha(p, topop) else begin e := p[topop]; Empilha(q, topoq, e); Desempilha(p, topop); end; end; while topoq > 0 do begin e := q[topoq]; Desempilha(q, topoq); Empilha(p, topop, e); end; writeln('Resultado da pilha P: '); ExibePilha(p); end.

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