Ir para conteúdo
Fórum Script Brasil

A. Kenneth

Membros
  • Total de itens

    12
  • Registro em

  • Última visita

Sobre A. Kenneth

A. Kenneth's Achievements

0

Reputação

  1. Olá pessoas, gostaria de tirar uma dúvida. Estou colocando abaixo parte da questão pois não consigo achar a fonte do meu erro. Onde estou errando é que a primeira vez que eu tento inserir uma pessoa ele não coloca na lista, só a partir da segunda e a primeira posição fica null. Será que alguém poderia dar uam olhada pra mim. Mais uma coisa, esse código ainda não está terminado, ainda falta muita coisa, então se essa for a causa do problema, me digam o que falta completar para eu fazer, mas NÃO coloquem o código se essa for a causa do problema. public class ListaSimplesEncadeada { private ItemListaEncadeada inicioLista = null; /** * Inclui a informação no inicio da lista * @param informacao informação a ser incluída no início da lista */ [color="#FF0000"] ////////Aqui eu acho que está o erro ////////////////////////////////////////////////////[/color] public void incluir(Pessoa informacao){ ItemListaEncadeada novoItem = new ItemListaEncadeada(); novoItem.setInformacao(informacao); //comando equivalente a novoItem.proximo = lista; novoItem.setProximo(inicioLista); inicioLista = novoItem; } /** * Inclui a informação na lista na posição informada * @param posicao a posição a ser recuperada * @param informacao informação a ser incluída na lista */ public void incluir (int posicao, Pessoa informacao){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); ItemListaEncadeada anterior = new ItemListaEncadeada(); ItemListaEncadeada novoItem = new ItemListaEncadeada(); anterior = null; novoItem.setInformacao(informacao); novoItem.setProximo(null); auxiliar.setProximo(inicioLista); int contador = 0; if (posicao == 1){ incluir(informacao); }else{ if (posicao > getTamanho()){ posicao = getTamanho()+1; } while (auxiliar != null){ if (contador == posicao){ novoItem.setProximo(auxiliar); anterior.setProximo(novoItem); break; }else{ anterior = auxiliar; anterior.setProximo(auxiliar); auxiliar = auxiliar.getProximo(); contador++; } } } } /** * Recupera a informação da posição informada * @param posicao a posição a ser recuperada * @return a informação */ public Pessoa obter (int posicao){ return null; } /** * recupera a primeira informação da lista * @return a informação da lista */ public Pessoa getPrimeiro(){ if ( inicioLista != null ) return inicioLista.getInformacao(); else return null; } /** * Remove o elemento da lista baseado na posição * @param posicao posição a ser excluída */ public void remover(int posicao){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); auxiliar.setProximo(inicioLista); ItemListaEncadeada anterior = new ItemListaEncadeada(); anterior = null; int contador = 0; if (posicao == 1 ){ auxiliar = inicioLista; inicioLista = auxiliar.getProximo(); }else{ while (auxiliar != null){ if (contador == posicao){ if (anterior == null){ inicioLista = auxiliar.getProximo(); }else{ anterior.setProximo(auxiliar.getProximo()); } break; }else{ anterior = auxiliar; auxiliar = auxiliar.getProximo(); contador++; } } } } /** * Remove a informação da lista * @param informacao */ public void remover(Pessoa informacao){ } /** * Remove todos os elementos da lista */ public void limpar(){ } /** * recupera a quantidade de elementos cadastrados na lista * @return */ public int getTamanho(){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); auxiliar.setProximo(this.inicioLista); int cont = 0; while (auxiliar.getProximo() != null) { cont++; } return cont; } /** * Verifica se a lista possui a informação solicitada * @param informacao dado a ser pesquisado * @return verdadeiro se encontrar */ public boolean contem(Pessoa informacao){ return false; } /** * Joga na saída principal todos os elementos cadastrados da lista */ public void listar(){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); auxiliar.setProximo(this.inicioLista); Pessoa informacao = new Pessoa(); while (auxiliar.getProximo() != null) { if (inicioLista.getProximo() == null) { System.out.println("Não há Candidatos Nesta Lista"); break; }else{ informacao = auxiliar.getInformacao(); if (informacao != null){ System.out.println(auxiliar.getInformacao()); System.out.println("NOME: "+informacao.getNome()); System.out.println("IDADE: "+informacao.getIdade()); System.out.println("SEXO: "+informacao.getSexo()); } auxiliar = auxiliar.getProximo(); } } System.out.println(""); System.out.println(""); } }
  2. Muito obrigado Jhonas, resolveu meu problema. Problema resolvido.
  3. Você já conseguiu fazer alguma coisa ou teve alguma idéia de como fazer?
  4. Bom, estou com uma dúvida bem simples: gostaria de saber como declaro uma matriz sem tamanho, que será lido na execução do programa. Em C eu sei que é só não declarar o tamanho. E no Delphi?
  5. É como o amigo de cima disse, usa um vetor pra aorganizar. Mas se você não aprendeu ainda a utilizar vetores você deve utilizar alguns "SE" para ver quem é o maior.
  6. Bom, o meu problema é o seguinte: Tenho que declarar uma matriz 20x10 E depois de fazer os cálculos que ele pede na questão tenho que guardar os resultados na linha 21. Gostaria de saber como adiciono essa linha a mais.
  7. Tenho que resolver o seguinte problema: Faça um programa em pascal para ler um valor N, o qual estará no intervalo fechado [1..10] e em seguida preencher uma matriz quadrada de ordem N com números sequenciais contornando a matriz de fora para dentro. Exemplo N = 6 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 17 30 29 28 27 10 16 15 14 13 12 11 O que eu fiz está abaixo. Testando cada sentido separadamente ele funcionam perfeitamente, no entanto, quando junto todos eles em um só algoritmo ele não faz corretamente. Alguém poderia me dar uma luz? while vazio > 0 do begin [color="#006400"] ////SENTIDO 1[/color] if sentido = 1 then begin i := i + 1; for j := i to tamanho + 1 - i do begin espiral[i,j] := ultimo; ultimo := ultimo + 1; vazio := vazio - 1; end; sentido := 2; end; [color="#006400"] ////SENTIDO 2[/color] if sentido = 2 then begin i2 := i2 + 1; for j2 := i2 to tamanho + 2 - i2 do begin espiral[j2, tamanho + 2 - i2] := ultimo; ultimo := ultimo + 1; vazio := vazio - 1; end; sentido := 3; end; [color="#006400"] ////SENTIDO 3[/color] if sentido = 3 then begin i3 := i3 + 1; for j3 := tamanho + 2 - i3 downto i3 - 2 do begin espiral[tamanho + 3 - i3,j3] := ultimo; ultimo := ultimo + 1; vazio := vazio - 1; end; sentido := 4; end; [color="#006400"] ////SENTIDO 4[/color] if sentido = 4 then begin i4 := i4 + 1; for j4 := tamanho - i4 downto i4 + 1 do begin espiral[j4, i4] := ultimo; ultimo := ultimo + 1; vazio := vazio - 1; end; sentido := 1; end; end;
  8. Estou aqui pedindo ajuda novamente, mas agora em outro algoritmo. Ele pede pra fazer uma matriz da seguinte forma: 6x6 01 02 03 04 05 06 20 21 22 23 24 07 19 32 33 34 25 08 18 31 36 35 26 09 17 30 29 28 27 10 16 15 14 13 12 11 Só consegui fazer a parte em negrito. Alguém sabe algum jeito de fazer? MAS ATENÇÃO: não postem o código do algoritmo, apenas coloquem a sua lógica/idéia porque eu quero tentar fazer. :ninja:
  9. Vlw pela dica vou tentar fazer isso e depois digo se funcionou.
  10. Alguém sabe a solução? Pois já tentei usar "and" e "or" e nada funciona. Alterei o tipo da varável para string e deu certo desse jeito, mas depois precisarei manipular o valor para fazer contas, então isso não serve. :o
  11. Eu fiz assim só que fiz de outra maneira e esqueci de corrigi. Mas so jeito que você idse já teste e n funciona.
  12. O meu problema é o seguinte: Estou fazendo um algoritmo para uma locadora de filme. Nada complicado só em linha de código mesmo. Mas aconteceu um problema. Ele pede para que o funcionário digite o valo do filme, quem tem que ser R$ 4.90 ou R$ 3.90. Mas quando rodo o programa ele nunca aceita esses valores e sempre pede pra digitar outro dizendo que digitei um número inválido. // Inicio da verficacao do valor do filme// writeln('Digite o valor do filme (R$ 4.90 ou R$ 3.90).'); write('R$'); readln(filme[i].valor); while (filme[i].valor <> 4.90) or (filme[i].valor <> 3.90) do begin writeln('O valor indicado é invalido. Digite apenas R$ 4.90 ou R$ 3.90'); write('R$'); readln(filme[i].valor); end; //fim da verificacao do valor do filme// O código dessa minha lógica está acima. Quem puder me ajudar agradeço.
×
×
  • Criar Novo...