
ena
Membros-
Total de itens
8 -
Registro em
-
Última visita
Tudo que ena postou
-
Boa noite, Sou iniciante em java e estou fazendo uma tarefa que tem uma falha que não consigo identificar. A tarefa é a seguinte: Em seu campus há um grande estacionamento que possui 30 vagas. Verifica-se que, enquanto o mesmo tiver vagas, não existirão prioridades para estacionar. Quando o estacionamento estiver cheio, uma fila será organizada, em que os professores possuem a mais alta prioridade, sendo seguidos pelos funcionários e, posteriormente, pelos alunos. Utilize Java com Threads para “simular” este problema. Utilize 10 professores, 15 funcionários, 30 alunos. Eu fiz o código utilizando setPriority e não compila como esperado. Segue abaixo o código que eu fiz. import java.util.concurrent.*; public class Estacionamento extends Thread { private static Semaphore estacionamento = new Semaphore (10, true); public Estacionamento (String nome ) { super (nome); } public void run () { try { estacionamento.acquire(); System.out.println(getName () + " ocupou vaga. "); sleep( (long) (Math.random() * 10000 )); System.out.println (getName () + " liberou vaga. " ); estacionamento.release (); } catch (InterruptedException ie) { ie.printStackTrace(); } } public static void main(String[] args) { for( int i = 0; i < 30; i++ ) { Estacionamento estacionamento = new Estacionamento ("Carro # " + i); estacionamento.start(); } for( int p = 0; p < 10; p++ ) { Estacionamento professor = new Estacionamento ( "Carro professor " + p ); professor.setPriority (Thread.MAX_PRIORITY); professor.start(); } for( int f = 0; f < 15; f++ ) { Estacionamento funcionario = new Estacionamento ( "Carro funcionario " + f ); funcionario.setPriority (Thread.NORM_PRIORITY); funcionario.start(); } for( int a = 0; a < 30; a++ ) { Estacionamento aluno = new Estacionamento ( "Carro aluno " + a ); aluno.setPriority (Thread.MIN_PRIORITY); aluno.start(); } } }
-
Boa noite, Estou fazendo um exercício e estou com um pequeno problema. O programa que eu fiz apresenta um erro em uma unica linha que não consegui identificar. Segue abaixo o programa. /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author ENA */ class Funcionario{ String nome = "ENA"; String departamento = "Informática"; double salario = 2000; String admissao = "19/08/1996"; String RG = "18.084-3"; boolean ativo= true; void bonificar (double quantidade){ this.salario += quantidade; } void demitir (){ this.ativo = false; } void mostrarDados(){ System.out.println("Nome: "+this.nome); System.out.println("Departamento: "+this.departamento); System.out.println("Salario: "+this.salario); System.out.println("Data de admissão: "+this.admissao); System.out.println("RG: "+this.RG); System.out.println("Demitido: "+this.ativo); } } class empresa { Funcionario[] novo; int qtde_de_funcionario; boolean incluirFuncionario (Funcionario A) { boolean achou = false; for(int i = 0; i <= qtde_de_funcionario; i++){ if (A.RG == novo[i].RG){ achou = true; } } if (achou) { System.out.println("funcionario existente"); return false; } else { qtde_de_funcionario++; novo[qtde_de_funcionario] = A; return true; } } } class pessoa { String nome; int altura; double peso; int idade; void aniversario(){ idade++; } } public class tarefa3java { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Funcionario funcionarioNovo = new Funcionario(); pessoa A = new pessoa(); empresa inclusao = new empresa(); A.idade = 18; A.aniversario(); A.aniversario(); A.aniversario(); funcionarioNovo.mostrarDados(); funcionarioNovo.bonificar(500); funcionarioNovo.demitir(); inclusao.incluirFincionario();//[b]Aonde aparece o erro[/b] System.out.println("Salario com bonificação: "+funcionarioNovo.salario); System.out.println("Demitido: "+funcionarioNovo.ativo); System.out.println("O resultado da idade depois de inclementada várias vezes é: " +A.idade); } }
-
Boa noite, Estou fazendo um exercicio e estou com dificuldade em parte do código. Segue abaixo o código. Método '"demitir", que não recebe parametro algum, apenas modifica o valor booleano indicando que o funcionário não trabalha mais na empresa. class Funcionario{ String nome = "CARLOS"; String departamento = "Informática"; double salario = 2000.; String admissao = "19/08/1996"; String rg = "18.084-3"; boolean presente; void bonificar (double quantidade){ this.salario += quantidade; } void demitir{ Aqui que não estou conseguindo fazer. } void mostrarDados(){ System.out.println("Nome: "+this.nome); System.out.println("Departamento: "+this.departamento); System.out.println("Salario: "+this.salario); System.out.println("Data de admissão: "+this.admissao); System.out.println("RG: "+this.rg); } } public class exercicio37java { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Funcionario funcionarioNovo; funcionarioNovo = new Funcionario(); funcionarioNovo.mostrarDados(); funcionarioNovo.salario = 2000.0; funcionarioNovo.bonificar(500); System.out.println("Salario com bonificação: "+funcionarioNovo.salario); } }
-
Estou fazendo o seguinte exercicio: Crie 10 objetos da classe pessoa e insira-os em um array de objetos desta classe. Utilize um for para imprimir todos os atributos dos objetos do array. Comecei a fazer o programa e tem um erro que não estou conseguindo identificar. Segue abaixo o trecho do programa que contém o erro. Falta ainda colocar o for para imprimir todos os atributos, mas antes gostaria de saber aonde estou errando no array. Se pude informar somente aonde está o erro identificado abaixo. Obrigado. class Pessoa{ String nome; double altura; double peso; } class exercicio34java { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Pessoa[] dados; dados = new Pessoa[10]; dados.nome[0] = "RENILDO"; // nesta linha que aparece o erro. dados.altura[0]= 1.68; // nesta linha que aparece o erro. dados.peso[0]= 80; // nesta linha que aparece o erro. } }
-
Tenho o exercicio abaixo que utiliza fila e pilha no mesmo programa. Se alguém souber como resolve eu agradeço. Ficar esperando na fila do banco nem sempre é agradável. Muita demora, pouco a se fazer... pensando nisso, o banco está oferecendo revistas de brinde para seus clientes. Cada caixa tem uma pilha de revistas, e um exemplar é entregue assim que o cliente entra na fila desse caixa, para passar o tempo até ser chamado. Definir os itens que irão compor a estrutura com as informações manipuladas (pessoas, revistas, ou qualquer outra informação). Para testar, encha a fila com pessoas conhecidas e a pilha com suas revistas favoritas, e mostre quem ganhou qual revista. Execute uma bateria de testes. Para as duas estruturas você deve implementar procedimentos que permitam ao usuário listar a estrutura na tela a qualquer momento. Execute testes para as condições limítrofes, mostrando que seu programa funciona nas mais diversas situações (ex. pilha vazia, fila cheia, etc).
-
Olá, Tenho um exercicio de Lista simplesmente encadeada. Estou com dificuldade na matéria. Se alguém puder me ajuda. Agradeço. Utilizando o TAD lista com ponteiros (alocação dinâmica) e considerando uma lista de números inteiros, acrescente a este TAD as seguintes operações: -Retorna posição p que o elemento de menor valor x se encontra na lista; caso não encontre, retorna p igual a zero -Retorna posição p que o elemento de maior valor x se encontra na lista; caso não encontre, retorna p igual a zero Faça testes para verificar o funcionamento das suas novas operações neste TAD. Tenho que utilizar o programa abaixo para chegar ao exercicio. #include <stdlib.h> #include <stdio.h> #define MAX 10 /* ========================================================================= */ typedef struct { int Chave; /* outros componentes */ } TipoItem; typedef struct TipoCelula *TipoApontador; typedef struct TipoCelula { TipoItem Item; TipoApontador Prox; } TipoCelula; typedef struct { TipoApontador Primeiro, Ultimo; } TipoLista; /* ========================================================================= */ void FLVazia(TipoLista *Lista) { Lista -> Primeiro = (TipoApontador) malloc(sizeof(TipoCelula)); Lista -> Ultimo = Lista -> Primeiro; Lista -> Primeiro -> Prox = NULL; } int Vazia(TipoLista Lista) { return (Lista.Primeiro == Lista.Ultimo); } void Insere(TipoItem x, TipoLista *Lista) { Lista -> Ultimo -> Prox = (TipoApontador) malloc(sizeof(TipoCelula)); Lista -> Ultimo = Lista -> Ultimo -> Prox; Lista -> Ultimo -> Item = x; Lista -> Ultimo -> Prox = NULL; } void Retira(TipoApontador p, TipoLista *Lista, TipoItem *Item) { /* --- Obs.: o item a ser retirado e o seguinte ao apontado por p --- */ TipoApontador q; if (Vazia(*Lista) || p == NULL || p -> Prox == NULL) { printf(" Erro: Lista vazia ou posicao não existe\n"); return; } q = p -> Prox; *Item = q -> Item; p -> Prox = q -> Prox; if (p -> Prox == NULL) Lista -> Ultimo = p; free(q); } void Imprime(TipoLista Lista) { TipoApontador Aux; Aux = Lista.Primeiro -> Prox; while (Aux != NULL) { printf("%d\n", Aux -> Item.Chave); Aux = Aux -> Prox; } } /* ========================================================================== */ int main(int argc, char *argv[]) { TipoLista lista; TipoItem item; int vetor[MAX]; TipoApontador p; int i; float tamanho=0; FLVazia(&lista); /*Insere cada chave na lista */ for (i = 0; i < MAX; i++){ item.Chave = i; Insere(item, &lista); tamanho++; printf("Inseriu: %d \n", item.Chave); } Imprime(lista); /*Retira cada chave da lista */ for(i = 0; i < MAX; i++){ p = lista.Primeiro; /*retira chave apontada */ Retira(p, &lista, &item); tamanho--; printf("Retirou: %d\n", item.Chave); } Imprime (lista); system("PAUSE"); return(0); }