Por favor alguém adapta esse código para orientado a objeto pra mim?

6 respostas
programaçãojava
M

ola pessoal me desculpem se inoportuno mas preciso muito da ajuda de vcs, preciso desse código abaixo orientado a objeto, eu não tenho muito tempo pra aprender orientação objeto, eu so preciso desse código orientado a objeto para apresentar em um trabalho da faculdade, esse código fui eu que desenvolvi em javaScript e adaptei para java, mas não consigo adaptar para orientado a objeto, resumindo eu quero um código com métodos. obg

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Scanner;

/**
*

  • @author marcos
    */
    public class SJF {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      Scanner sc1 = new Scanner(System.in);
// declaracao de variaveis

int numero, entrada;

ArrayList processo, inicio, copiaInicio = new ArrayList(), burst;

int[] tempoFim = new int[1], tempoInicio = new int[1];

int idProcessoExecutando;

String ordemEx = “”, formatacao/<em>formatação de numeros</em>/, out/<em>saida</em>/;

double tempoEspera, tempoExecucao, turnaround;

int count = 0;

DecimalFormat decimal = new DecimalFormat(“0.00”);
System.out.println("Quantos processos deseja armazenar?");

numero = sc1.nextInt();

while (numero != 0) {
count++;

ordemEx = “”;

processo = new ArrayList();

inicio = new ArrayList();

burst = new ArrayList();

tempoFim = new int[numero];
tempoInicio = new int[numero];

for (int i = 0; i < numero; i++) {

// le e adiciona tempo de ingresso do processo

System.out.println(Tempo de chegada do p+(i+1));

entrada = sc1.nextInt();

inicio.add(entrada);

// le e adiciona tempo de duracao do processo

System.out.println(Tempo de burst do p+(i+1));

entrada = sc1.nextInt();

burst.add(entrada);

}

// cria copia da lista de tempos de ingressos devido a modificacoes

copiaInicio = (ArrayList) burst.clone();
int execucao;

int quantidadeProcessos = numero;

// tempo inicial = primeiro tempo da lista de ingressos

int tempoAtual = (int) inicio.get(0);

while (quantidadeProcessos > 0) {

// percorre ingressos para achar processos que ingressam nesse

// tempo

processo = new ArrayList();

for (int i = 0; i < numero; i++) {

if ((int) inicio.get(i) != -1 && (int) inicio.get(i) <= tempoAtual) {

// adicionar na lista de processos

processo.add(i);

}

}
// assumindo que o primeiro da lista eh o de menor duracao
if (processo.isEmpty()) {
 tempoAtual++;
} else {
 execucao = (int) processo.get(0);
 for (int i = 0; i < processo.size(); i++) {
  idProcessoExecutando = (int) processo.get(i);
  /* se a duracao do processo atual for menor do que a menor duracao ja encontrada*/
  if ( (int) burst.get(idProcessoExecutando) < (int) burst.get(execucao)) {
   // entao alteramos o processo que vai executar
   execucao = (int) processo.get(i);
  }
 }

 tempoInicio[execucao] = tempoAtual;
 tempoAtual += (int) burst.get(execucao);
 tempoFim[execucao] = tempoAtual;
 inicio.set(execucao, -1);

 // define ordem de execucao
 ordemEx += "P" + (execucao + 1) + " ";
 quantidadeProcessos--;
}

}

// calculo tempo de execucao e tempo de espera

tempoExecucao = 0;

tempoEspera = 0;

for (int i = 0; i < numero; i++) {

tempoExecucao += tempoFim[i] - (int) copiaInicio.get(i);

tempoEspera += tempoInicio[i] - (int) copiaInicio.get(i);

}

System.out.println(PROCESSAMENTO - PARTE + count);

for(int i = 0; i < numero; i++){

turnaround = (int) tempoFim[i] - (int) copiaInicio.get(i);

formatacao = decimal.format(turnaround);

out = |Turnaround| P + i + “: " + formatacao + “ms”;

out = out.replace(”.", ,);

System.out.println(out);

}

tempoExecucao = tempoExecucao / numero;

tempoEspera = tempoEspera / numero;
formatacao = decimal.format(tempoExecucao);

out = Tempo medio de execucao: " + formatacao + “s”;

out = out.replace(”.", ,);

System.out.println(out);
formatacao = decimal.format(tempoEspera);

out = Tempo medio de espera: " + formatacao + “s”;

out = out.replace(”.", ,);

System.out.println(out);
System.out.println(ordemEx);

System.out.println();

System.out.println(Deseja armazenar quantos processadores?);

numero = sc1.nextInt();

}

}

}

6 Respostas

S

Pôxa, mas se você precisa apresentar o trabalho orientado à objetos na facul, como é que você vai aprender se deixar outra pessoa fazer por você?
Pior, já pensou se você ingressa no mercado de trabalho e acaba sendo um péssimo profissional que precisa ser levado nas costas pelos outros?
Acho muito perigoso isso… :open_mouth:

S

Dificilmente alguém fará o seu trabalho, visto que aqui é um fórum que visa tirar dúvidas… isso não é uma dúvida, e trabalho nos formatos solicitados geralmente são feitos por profissionais remunerados e este não é o intuito aqui…

Ajuda também colocar o código dentro das tags [```] fica mais legível

Ao tentar desembolar um pouco a sua ideia e te ajudar a orientar a objeto primeiro e mais básico de tudo aqui é criar as classes que irão representar seus objetos, eu sinceramente não entendi qual é a proposta do seu código, mas imagino que você quer inserir “processos” com “parâmetros” em uma lista e executar tais processos, se for isso, crie uma classe chamada “Processo” e defina atributos que preencham suas necessidades exemplo:

Classe: Processo.java

private int id;
private int tempo;

//gets e sets

depois crie a classe que irá manipular seu objeto do tipo “Processo” exemplo:

Classe: Processador.java

//atributos

public static void main(String[] args) {
   //isso aqui é criar um objeto
   Processo processo1 = new Processo();
   //aqui você preenche os atributos do objeto
   processo1.setId(1);
   processo.setTempo(10);

   Processo processo2 = new Processo();
   processo2.setId(2);
   processo.setTempo(100);

   //aqui você está usando a orientação a objeto para executar seu código
   this.iniciaProcesso(processo1);
   this.iniciaProcesso(processo2);
}

private void iniciaProcesso(Processo processo){
   //codigo que será executado
}
M

Isso, era esse tipo de resposta que eu esperava, vlw cara s2

M

amigo eu sou programador web, eu construo sites, e muito bem por sinal, eu mandei essa pergunta para obter resposta como a do nosso amigo satangozo abaixo. as vezes vc tem que mandar msg direta para receber respostas esperadas, bye

R

Amigo, não seja arrogante, aqui não é o melhor para isso. O fórum não tem intuito de de entregar respostas prontas. A resposta que lhe agradou poderia muito bem ser obtida tirando dúvidas relacionadas à OO. Mas no seu caso foi “façam aí pra mim pq não tenho tempo e nem interesse em aprender esse tal de OO”. Enfim, concordo com as palavras ditas pelo nosso colega. Reveja somente a forma como está pedindo ajuda e tenha em mente que a comunidade está aqui pra ajudar e não pra fazer por vc. Sucesso na sua caminha e desejo sorte nos estudos sobre OO. Estamos aí. Abraço

S

Uau! um programador… nunca vi um, o que ele come? onde ele vive? e como se reproduz?

Criado 10 de novembro de 2017
Ultima resposta 13 de nov. de 2017
Respostas 6
Participantes 4