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);
-
@param args the command line arguments
// 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();
}
}
}