Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
vinifla81

Java programa em java dando erro

Recommended Posts

package nasa;
import java.util.Scanner;
public class Nasa {

	public static void main(String[] args) {
		
		// TODO Auto-generated method stub
		// Algoritmo "Agendamento"
		// Var
		Scanner sc = new Scanner (System.in);
		String[] vet_nome = new String[8];
		int[] vet_poltrona = new int[8];
		String nome;
		int opcao = 0,poltrona,i,confirma,one;
		// inicio
		while (opcao != 5) {
			System.out.println ("===================================================================");
			System.out.println ("||  OLÁ, SEJA BEM VINDO(A) AO SISTEMA DE AGENDAMENTO DA N.A.S.A  ||");
			System.out.println ("===================================================================");
			System.out.println("");
			System.out.println("");
			System.out.println("# 1 - Realizar reservas de sala #");
			System.out.println("# 2 - Verificar disponibilidade de salas #");
			System.out.println("# 3 - Liberar sala escolhida #");
			System.out.println("# 4 - Finalizar o programa #");
			System.out.println("Digite a opção");
			opcao = Integer.parseInt(sc.nextLine());
			switch (opcao) {
			case 1:
				System.out.println("Qual seu nome?");
				nome = sc.nextLine();
				System.out.println("Qual a sala desejada?");
				poltrona = Integer.parseInt(sc.nextLine());
				if (vet_poltrona == null) {
					nome = vet_nome[poltrona];
					one = vet_poltrona[poltrona];
					
					System.out.println("Reserva de sala feita com sucesso");
				} else {
					System.out.println("Desculpe, esta sala já está ocupada.");
				}
				break;
			case 2: 
				for (i = 1; i <= 8;) {
					if (vet_poltrona == null) {
						System.out.println("A sala"+ i + " está desocupada");
					}
				}
				break;
			case 3 :
				System.out.println("Qual reserva de sala você deseja excluir?");
				poltrona = Integer.parseInt(sc.nextLine());
				if ( vet_poltrona[poltrona] == 1) {
					System.out.println("Tem certeza de que deseja excluir esta reserva?  SIM = 1 NAO = 0");
					confirma = Integer.parseInt(sc.nextLine());
					if (confirma == 1) {
						System.out.println("Reserva de sala excluida com sucesso");
					} else {
						System.out.println("Reserva de sala não alterada");
					}
				} else {
					System.out.println("Esta sala já está desocupada");
				}
				break;
					case 4:
						System.out.println("Programa finalizado com sucesso");
						default:
							System.out.println("Código invalido"); }
		}
	}
}
							
	

         
    O que está errado nesse meu código?
 

adicionado 2 minutos depois

O código no visual g é esse aqui 

var
vet_nome:vetor[1..8] de caracter
vet_poltrona:vetor[1..8] de inteiro
nome:caracter
opcao,poltrona,i,confirma:inteiro

inicio
enquanto opcao<>5 faca
escreval ("===================================================================")
escreval ("||  OLÁ, SEJA BEM VINDO(A) AO SISTEMA DE AGENDAMENTO DA N.A.S.A  ||")
escreval ("===================================================================")
escreval("")
escreval("")
escreval("# 1 - Realizar reservas de sala #")
escreval("# 2 - Verificar disponibilidade de salas #")
escreval("# 3 - Liberar sala escolhida #")
escreval("# 4 - Finalizar o programa #")
escreval
escreval("Digite a opção")
leia(opcao)
escolha opcao
caso 1
escreval("Qual o seu nome?")
leia(nome)
escreval("Qual a sala desejada?")
leia(poltrona)
se vet_poltrona[poltrona]=0 então
vet_nome[poltrona]<-nome
vet_poltrona[poltrona]<-1
escreval("Reserva de sala feita com sucesso.")
senao
escreval("Desculpe, esta sala já está ocupada.")
fimse
caso 2
para i de 1 ate 8 faca
se vet_poltrona[i]=0 então
escreval("A sala",i," está desocupada.")
fimse
fimpara
caso 3
escreval("Qual reserva de sala você deseja excluir?")
leia(poltrona)
se vet_poltrona[poltrona]=1 então
escreval("Tem certeza de que deseja excluir esta reserva? SIM = 1 NAO = 0")
leia(confirma)
se confirma=1 então
vet_poltrona[poltrona]<-0
vet_nome[poltrona]<-" "
escreval("Reserva de sala excluida com sucesso.")
senao
escreval("Reserva de sala não alterada")
fimse
senao
escreval("Esta sala já está desocupada.")
fimse
caso 4
escreval("Programa finalizado com sucesso.")
outrocaso
escreval("Código invalido.")
fimescolha
fimenquanto
fimalgoritmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me diga você, qual o erro? Aonde você encontra um problema? Fica difícil encontrar todos os problemas.

---

 

Eu encontrei um problema aqui: 

Citação

(vet_poltrona == null)

Há alguns erros, primeiro você compara um Array com null, o qual não vai retornar true nunca ( pelo menos esse tipo de array ), e outra, você não especificou o local do vet_poltrona e mesmo que especificasse o índice você não deve comparar com null, mas sim com "0", esse tipo de array já coloca todos os valores igual a 0 ( no caso de inteiros ), ou seja, se você diz que o array terá 8 posições ele será assim:

[0, 0, 0, 0, 0, 0, 0, 0]

 

Se fosse um array de String ( ou qualquer objeto ) com 8 posições ele retorna "null" como padrão para todos:

[null, null, null, null, null, null, null, null]

 

Outra coisa que pode ser útil, quando o usuário digitar o número da sala que deseja reserva, aconselho você subtrair por 1, por que se ele pedir a sala 8, o array irá percorrer até o índice 8, o qual não existe.

 

veja como ficou a minha alteração:

System.out.println("Qual a sala desejada?");
poltrona = sc2.nextInt()-1; //subtrai por 1, para ficar igual com os índices ( 0, 1, 2, 3, 4, 5, 6, 7 )
			//para evitar ter que fazer todo esse esquema de conversão de String para Inteiro,
			//crie outro scanner dedicado à números e deixe o outro para String
if (vet_poltrona[poltrona] == 0) { //comparação correta
	vet_nome[poltrona] = nome; //forma correta de atribuir o nome de quem está ocupando sala
	//one = vet_poltrona[poltrona]; //não entendi essa parte.
  	vet_poltrona[poltrona] = 1; //forma correta de dizer que a sala está ocupada

	System.out.println("Reserva de sala feita com sucesso");
}

existe outra situação parecida abaixo desse, corrija ela baseado no que eu disse acima.

Editado por AntonyBR

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • valeu cara, consegui ajeitar. o meu único problema agora é dar continuidade ao código, pois, quando coloco ele para rodar e faço a escolha de algumas opções ele fala que a sala 1 esta desocupada por exemplo e o código fica parado aí

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    6 horas atrás, vinifla81 disse:

    valeu cara, consegui ajeitar. o meu único problema agora é dar continuidade ao código, pois, quando coloco ele para rodar e faço a escolha de algumas opções ele fala que a sala 1 esta desocupada por exemplo e o código fica parado aí

    Essa parte eu também vi, é só você olha o for, tem um erro de lógica aí, você esqueceu de colocar o incremento e acho que falta mais alguma coisa para checar as salas vazias, que também é semelhante ao que eu disse acima.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • eu fiz um código no java para agendamento de salas, porém, quando coloco para rodar ele aparece as opções, porém, o programa não da continuidade. por exemplo, caso eu aperte para agendar uma sala, ele diz que foi agendada. quando eu quero verificar se a sala foi agendado eu não consigo,pois o programa fica parado. alguém consegue resolver isso para mim? 

    package nasa;
    import java.util.Scanner;
    public class Nasa {
    
    	public static void main(String[] args) {
    		
    		// TODO Auto-generated method stub
    		// Algoritmo "Agendamento"
    		// Var
    		@SuppressWarnings("resource")
    		Scanner sc = new Scanner (System.in);
    		String[] vet_nome = new String[8];
    		int[] vet_poltrona = new int[8];
    		String nome;
    		int opcao,poltrona,i,confirma;
    		// inicio
    			System.out.println ("===================================================================");
    			System.out.println ("||  OLÁ, SEJA BEM VINDO(A) AO SISTEMA DE AGENDAMENTO DA N.A.S.A  ||");
    			System.out.println ("===================================================================");
    			System.out.println("");
    			System.out.println("");
    			System.out.println("# 1 - Realizar reservas de sala #");
    			System.out.println("# 2 - Verificar disponibilidade de salas #");
    			System.out.println("# 3 - Liberar sala escolhida #");
    			System.out.println("# 4 - Finalizar o programa #");
    			System.out.println("Digite a opção");
    			opcao = Integer.parseInt(sc.nextLine());
    			switch (opcao) {
    			case 1:
    				System.out.println("Qual seu nome?");
    				nome = sc.nextLine();
    				System.out.println("Qual a sala desejada?");
    				poltrona = sc.nextInt() -1;
    				if (vet_poltrona[poltrona] == 0) {
    					vet_nome[poltrona] = nome;
    					vet_poltrona[poltrona] = 1;
    					System.out.println("Reserva de sala feita com sucesso");
    				} else {
    					System.out.println("Desculpe, esta sala já está ocupada.");
    			
    				}
    				break;
    			case 2: 
    				for (i = 1; i <= 8; ) {
    					if (vet_poltrona[i] == 0) {
    						System.out.println("A sala" + i + " está desocupada");
    						System.out.println("A sala" + (i+1) + " está desocupada");
    						System.out.println("A sala" + (i+2) + " está desocupada");
    						System.out.println("A sala" + (i+3) + " está desocupada");
    						System.out.println("A sala" + (i+4) + " está desocupada");
    						System.out.println("A sala" + (i+5) + " está desocupada");
    						System.out.println("A sala" + (i+6) + " está desocupada");
    						System.out.println("A sala" + (i+7) + " está desocupada");
    						
    					}
    					break;	
    				}
    				
    				
    			case 3 :
    				System.out.println("Qual reserva de sala você deseja excluir?");
    				poltrona = Integer.parseInt(sc.nextLine());
    				if ( vet_poltrona[poltrona] == 1) {
    					System.out.println("Tem certeza de que deseja excluir esta reserva?  SIM = 1 NAO = 0");
    					confirma = Integer.parseInt(sc.nextLine());
    					if (confirma == 1) {
    						vet_poltrona[poltrona] = 0;
    						vet_nome[poltrona] = " ";
    						System.out.println("Reserva de sala excluida com sucesso");
    					} else {
    						System.out.println("Reserva de sala não alterada");
    					}
    				} else {
    					System.out.println("Esta sala já está desocupada");
    					
    				}
    				break;
    					case 4:
    						System.out.println("Programa finalizado com sucesso");
    						default:
    							System.out.println("Código invalido"); }
    		}
    	}
    							

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Por favor, ao ter uma dúvida sobre seu código não precisa criar um novo tópico, você pode responder ele novamente com sua dúvida. Como eu disse, o problema está no seu for, pois você esqueceu de incrementa a variável. Eu tinha dado a dica no tópico anterior, mas parece que você não se deu ao trabalho.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Observação: fiz a união das duas postagens... essas duas últimas postagem foram do outro tópico.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Eu entendi que o problema é no for, mas ainda não vi nenhuma solução sobre isso. Eu sou iniciante nisso, então não sou obrigado a saber sobre isso. Você não em deu uma dica, você apenas disse que o problema é no incremento e pronto. Não teve ajuda sobre isso, apenas li ignorâncias, enfim, coisas de seres humanos

    adicionado 1 minuto depois

    Pode fechar o tópico, admin... Vou ver se encontro em outro lugar algo sobre isso

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×