Ir ao conteúdo
  • Cadastre-se

Caíque Fortunato

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

Reputação

2
  1. Olá, preciso fazer uma função recursiva em C que consiga simular uma pstree, ou seja, imagine os números abaixo como processo. 1 (pai) 2 (filho de 1) 3 (filho de 1) 4 (filho de 3) 5 (filho de 4) 6 (filho de 3) etc.... Fiz o seguinte código: void imprime_Pstree(int i, int ntabs) { int k = 0, j = 0, quantProc = 0; int procAtual; // Imprime a quantidade de tabs for(k = 0; k < ntabs; k++) printf("\t"); // A função preenche um vetor com os vizinhos de i. Por exemplo, se i = 2 e os vizinhos de 2 são 3, 4, 5, .. // O quantProc é o tamanho do vetor quantProc = preenche_vetor(i); // Imprime o nome do processo imprimeNomeProcesso(i); for(j = 0; j < quantProc; j++) imprime_Pstree(processos[j], ntabs+1); } Mas ele imprime somente o pai (chamada da função recursiva) e o filho do mesmo, que não possui outros filhos. Sei que falta outra chamada pra função recursiva voltar no pai do filho anterior, mas, como ? Desde já agradeço.
  2. Olá, Suponhamos que eu crie um arquivo: arquivo.txt com o usuário <user> (tipo: seuUsuario) ou através do comando sudo (root). Qual função permite que eu descubra o usuário que criou o arquivo em C? Em sala meu professor disse que existe, mas não sabe dizer qual é... Preciso disso para saber qual usuário criou determinados arquivos no SO. Desde já agradeço.
  3. Olá, sou iniciante em Sistemas Operacionais e tenho que fazer um trabalho de faculdade e estou com uma dúvida... Preciso fazer um programa em c que leia processos em sequência identificando o PID e nome do programa, o usuário que está executando o mesmo e o estado do processo. No entanto, achei na pasta /proc/PID/stat as informações do o PID e nome do programa, o estado do processo, que são as três primeiras informações do arquivo. Mas, não achei o usuário que está executando o mesmo em nenhuma pasta em /proc/PID Onde encontro tal informação? No final a tabela tem que ser assim: PID | User | PROCNAME | Estado | -------|---------|----------|--------| 1242 | username| yes | S | Ou seja, com o caminho /proc/PID/stat acho o "arquivo" que leio em C e imprimo o PID, Procname e Estado. Mas não achei nada que me informe o User. OBS: /proc/PID/stat, O PID é o ID do processo, tipo /proc/2/stat Desde já agradeço..
  4. Tenho um tipo jogador que possui um id e nome, exemplo: 1 - João 2 - Maria 3 - José Salvei todos em um vetor de jogadores. No entanto, preciso trocar a ordem deles a partir de um jogador, exemplo: Escolhi 2 - Maria O vetor ficaria assim: 2 - Maria | 3 - José | 1 - João Escolhi 1 - João O vetor ficaria assim: 1 - João | 2 - Maria | 3 - José No entanto, estou com problemas no método que faz isso: // Reorganiza os jogadores protected void ReorganizaJogadores(LinkedList<Jogador> listaJogadores, Jogador j1) { System.out.println("---> O jogador que ganhou a rodada foi o: "); System.out.println("---> Nome: " + j1.getNome() + " Id: " + j1.getId()); int player = j1.getId() - 1; for(int i = 0; player + i < listaJogadores.size(); i++) { listaAuxiliar.add(i, listaJogadores.get(player + i)); } int indice; for(int i = 0; i < player; i++) { indice = listaJogadores.size() - player; listaAuxiliar.add(indice + i, listaJogadores.get(indice)); } System.out.println("-----------------------------------"); System.out.println("---> A LISTA ALTERADA FICOU ASSIM: "); for(int i = 0; i < listaJogadores.size(); i++) { System.out.println("---> Nome: " + listaJogadores.get(i).getNome() + " Id: " + listaJogadores.get(i).getId()); } System.out.println("-----------------------------------"); } Mas o resultado não está dando certo..
  5. @dcm50 porque estou criando 5 parâmetros em uma função.. No caso, são apenas 5 esportes, fixos.. Mas, fico pensando, e se fosse em uma Olimpíadas de verdade e tivesse umas 50 modalidades, ai não seria viável fazer isso. Cada modalidade é um objeto que possui id e nome e preciso deles por parâmetro para não perder as operações que eles realizam.. Como assim uma lista?
  6. No programa abaixo, em: LeituraAtleta e LeituraSaida eu tenho 5 parâmetros, no entanto isso é ruim, para POO.. Como eu posso otimizar e passar menos parâmetros? public static void main(String[] args) { ArrayList <Pais> listaPais = new ArrayList<>(); ArrayList <Atleta> listaAtleta = new ArrayList<>(); // Declaração dos 5 esportes Corrida corrida = new Corrida(1, "Corrida"); Natacao natacao = new Natacao(2, "Natação"); LevantamentoDePeso levantamentoDePeso = new LevantamentoDePeso (3, "Levantamento de peso"); SaltoEmAltura saltoEmAltura = new SaltoEmAltura (4, "Salto em Altura"); GinasticaArtistica ginasticaArtistica = new GinasticaArtistica (5, "Ginastica artistica"); LeDados lePais = new LeDados(); LeDados leAtleta = new LeDados (); LeDados leSaida = new LeDados (); lePais.LeituraPais(listaPais); // MUITOS PARÂMETROS! Ruim para Programação Orientada a Objetos // Como resolver??? (Diminuir n de parâmetros) leAtleta.LeituraAtleta(listaAtleta, corrida, natacao, levantamentoDePeso, SaltoEmAltura, GinasticaArtistica); leSaida.LeituraSaida(corrida, natacao, levantamentoDePeso, SaltoEmAltura, GinasticaArtistica); }
  7. Gente, consegui dessa maneira, talvez ajude outras pessoas: package Leitura; import Classes.Pais; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class LeituraPais { public static void main(String[] args) { ArrayList <Pais> itens = new ArrayList<>(); File file = new File("C:/pais.txt"); try (FileInputStream stream = new FileInputStream(file)) { InputStreamReader reader = new InputStreamReader(stream); BufferedReader br = new BufferedReader(reader); String linha = br.readLine(); while(linha != null) { String id = linha.substring(0, linha.indexOf(';')); String nome = linha.substring(linha.lastIndexOf(';') + 1, linha.length()); int id_cod = Integer.parseInt(id); Pais p = new Pais(id_cod, nome); itens.add(p); linha = br.readLine(); } } catch (IOException e) { } System.out.println("\n"); System.out.println("Lista final: "); for(int i = 0; i < itens.size(); i++) { System.out.println("Id: " + itens.get(i).getId()); System.out.println("Nome: " + itens.get(i).getNome()); System.out.print("\n"); } } }
  8. Sou novo em Java e estou desenvolvendo um projeto para a faculdade onde a entrada é fornecida através de um documento .txt . O problema é que só sei fazer isso em C/C++ e os tutoriais que achei na internet não funcionaram tão bem.. Como eu posso fazer? O arquivo será assim: 1;Brasil 2;Estados Unidos Eu já até fiz a lista onde os itens serão armazenados (Fiz uma classe País com id e nome) que está funcionando com o Scanner.. O meu problema mesmo é a manipulação do arquivo.. Tentei fazer o seguinte: package olimpiadas; import java.util.Scanner; import java.io.FileReader; public class Leitura { public static void main(String[] args) { try{ Scanner scanner = new Scanner(new FileReader("pais.txt")).useDelimiter("\\||\\n"); while (scanner.hasNext()) { String id = scanner.next(); String nome = scanner.next(); System.out.println(id); System.out.println(nome); } } catch(Exception ioException){ System.out.println("O arquivo nao pode ser aberto!"); } } } Mas: 1) O arquivo nunca abre, mesmo estando no mesmo pacote ele exibe que o arquivo não pode ser aberto 2) O id tem que ser int, mas só consigo com String Como resolver? :/
  9. Estou com uma dúvida.. Preciso fazer um programa que leia três entradas: 1) Esportes.txt ---> Contém id e Nome do esporte (Exemplo: 1;Natação) 2) Pais.txt --> Contém id e Nome do pais (Exemplo: 1;Brasil) 3) Atleta.txt --> Contém: id_Atleta, id_Pais, id_Esporte; Nome_Atleta; Pontuação (Exemplo: 1;1;1;Joao;10) Pensei em fazer uma classe para cada entrada, ou seja, uma classe para Esporte, Pais e Atleta. Contudo, em Atleta eu tenho o id do esporte e o país, nesse caso, como eu faço para "Ligar" informações com as outras classes? Exemplo: class Esporte{ int id; String nome; } class Pais{ int id; String nome; } --> Aqui, como eu "Ligo" os dados do Atleta com seu país e esporte? class Atleta{ int id; String nome; int pontuação } No final preciso exibir a modalidade e as melhores notas, tipo: Natação Joao - 10 Maria - 5 Por isso a dúvida de como construir as classes...

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