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

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/formatação de numeros/, out/saida/;
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();
}
}

}

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:

4 curtidas

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
}

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

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

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

1 curtida

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