Ir ao conteúdo
  • Cadastre-se

Java programa em java dando erro


Posts recomendados

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

 

Link para o comentário
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.

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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"); }
		}
	}
							

 

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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