-
Posts
14 -
Cadastrado em
-
Última visita
Reputação
18-
Gente, estou tentando criar um programa que criar A, B, C, D e E, sendo o A o processo pai. o programa tem que fica num loop infinito imprimindo o nome do processo e seu id e a cada 5 segundos o processo pai(A) matar um filho na ordem B, C, D, E. Quando todos os filhos tiverem mortos o processo pai imprimir a mensagem "não tenho mais filhos" e finaliza o programa. A minha dúvida é, não estou conseguindo matar os processos filhos. O código fica em loop infinito e nunca termina. #include <sys/types.h> #include <sys/wait.h> #include <stdio.h> #include <unistd.h> #include <signal.h> int main(void) { wait(NULL); printf("Não tenho mais filhos.\n"); while(1){ if(fork()){ //B printf("B | ID = %d\n", getpid()); kill( getpid(), SIG_TERM); } if(fork()){ //C printf("C | ID = %d\n", getpid()); } if(fork()){ //D printf("D | ID = %d\n", getpid()); } if(fork()){ //E printf("E | ID = %d\n", getpid()); } } return 0; }
-
ytalopaulo_ alterou sua foto pessoal
-
Estou com dificuldade em verifica se uma terminada posição da uma matriz é adjacente de um determinado numero da matriz. Por exemplo uma matriz 3x3: 1 7 8 2 9 4 5 3 6 Quero verifica se a posição 0x1 é adjacente ao número 9 da matriz, caso for troca os número de posições. (7 por lugar do 9 e o 9 por lugar do 7) Como faço isso ?
-
Java Quero fazer ordenação de data/hora, usando compareTo mas não pega
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em Java/Android SDK
@Flávio Pedroza funcionou sim, muito obrigado. -
Java Quero fazer ordenação de data/hora, usando compareTo mas não pega
ytalopaulo_ postou um tópico em Java/Android SDK
Estou tentando fazer a ordenação de uma lista de datas em Java, mas não tô conseguindo faze com que ela fica ordenada de forma correta. Na classe Hora a ordenação ta funcionando perfeitamente, mas quando vou ordenar a classe Data e tem hora também não pega. Código da classe Hora package comparetotest; public class Hora implements Comparable<Hora> { private int hora; // 0 -23 private int minutos; // 0 - 59 public Hora(int hora, int minutos) { this.hora = ((hora >= 0 && hora < 24) ? hora : 0); //validando a hora this.minutos = ((minutos >= 0 && minutos < 60) ? minutos : 0); // validando os minutos } public int getHora() { return hora; } public void setHora(int hora) { this.hora = hora; } public int getMinutos() { return minutos; } public void setMinutos(int minutos) { this.minutos = minutos; } @Override public String toString() { return String.format("%d:%02d", hora, minutos); } @Override public int compareTo(Hora h) { if (this.getHora() > h.getHora()) { return 1; } if(this.getMinutos() > h.getMinutos()){ return 1; } if (this.getHora() < h.getHora()) { return -1; } if(this.getMinutos() < h.getMinutos()){ return -1; } return 0; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + hora; result = prime * result + minutos; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Hora other = (Hora) obj; if (hora != other.hora) { return false; } if (minutos != other.minutos) { return false; } return true; } } Código da classe Data /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package comparetotest; /** * * @author Windows */ public class Data implements Comparable<Data> { private int dia; // 1 - 31 private int mes; // 1 - 12 private int ano; private Hora hora; public Data(int dia, int mes, int ano, Hora hora) { this.dia = ((dia >= 1 && dia <= 31) ? dia : 1); //validando o dia this.mes = ((mes >= 1 && mes <= 12) ? mes : 1); // validando o mes this.ano = ano; this.hora = hora; } public int getDia() { return dia; } public void setDia(int dia) { this.dia = dia; } public int getMes() { return mes; } public void setMes(int mes) { this.mes = mes; } public int getAno() { return ano; } public void setAno(int ano) { this.ano = ano; } public Hora getHora() { return hora; } public void setHora(Hora hora) { this.hora = hora; } @Override public String toString() { return "Data/Hora: " + dia + "/" + mes + "/" + ano + " " + hora.toString(); } @Override public int compareTo(Data d) { if(this.getMes() > d.getMes()){ return 1; } if(this.getMes() < d.getMes()){ return -1; } if(this.getDia() > d.getDia()){ return 1; } if(this.getDia() < d.getDia()){ return -1; } if(this.getAno() > d.getAno()){ return 1; } if(this.getAno() < d.getAno()){ return -1; } if(this.getHora().getHora() > d.getHora().getHora()){ return 1; } if(this.getHora().getHora() < d.getHora().getHora()){ return -1; } return 0; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ano; result = prime * result + dia; result = prime * result + ((hora == null) ? 0 : hora.hashCode()); result = prime * result + mes; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Data other = (Data) obj; if (ano != other.ano) { return false; } if (dia != other.dia) { return false; } if (hora == null) { if (other.hora != null) { return false; } } else if (!hora.equals(other.hora)) { return false; } if (mes != other.mes) { return false; } return true; } } Código que testa a ordenação package comparetotest; import java.util.ArrayList; import java.util.Collections; public class CompareTotest { public static void main(String[] args) { // TODO code application logic here ArrayList<Hora> horas = new ArrayList<>(); ArrayList<Data> datas = new ArrayList<>(); Hora hora1 = new Hora(1,50); Hora hora2 = new Hora(1,40); Hora hora7 = new Hora(1,00); Hora hora3 = new Hora(1,30); Hora hora4 = new Hora(1,20); Hora hora5 = new Hora(1,10); Hora hora6 = new Hora(1,00); horas.add(hora1); horas.add(hora2); horas.add(hora3); horas.add(hora4); horas.add(hora5); horas.add(hora6); horas.add(hora7); Collections.sort(horas); for(Hora hora: horas){ System.out.println(hora); } Data data1 = new Data(13,12,2017,hora1); Data data2 = new Data(17,11,2016,hora2); Data data3 = new Data(12,10,2019,hora3); Data data4 = new Data(11,10,2016,hora4); Data data5 = new Data(10,8,2015,hora5); Data data6 = new Data(12,10,2016,hora6); Data data7 = new Data(11,6,2018,hora7); datas.add(data1); datas.add(data2); datas.add(data3); datas.add(data4); datas.add(data5); datas.add(data6); datas.add(data7); Collections.sort(datas); for(Data data: datas){ System.out.println(data); } } } A saída é a seguinte : run: 1:00 1:00 1:10 1:20 1:30 1:40 1:50 Data/Hora: 11/6/2018 1:00 Data/Hora: 10/8/2015 1:10 Data/Hora: 11/10/2016 1:20 Data/Hora: 12/10/2016 1:00 Data/Hora: 12/10/2019 1:30 Data/Hora: 17/11/2016 1:40 Data/Hora: 13/12/2017 1:50 CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos) A ordenação de Horas tá funcionando. Mas a de Data só da ordenando pelo mês e eu quero ele ele ordene pelo ano, mês e dia, se possível caso tenha data iguais, a ordenação seja feita pela horas. -
Como fazer um programa em java que receba um nome completo e imprima o ultimo nome e as iniciais dos demais nome na ordem. Ex: Entrada: Maria José da Silva Saída: Silva, M. J. D.
-
C Como excluir um registro do arquivo .bin em C?
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em C/C#/C++
Consegui fazer exatamente assim, valeu pela ajudas. -
C Como excluir um registro do arquivo .bin em C?
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em C/C#/C++
@devair1010 poderia da um exemplo de como ficaria ? -
Pesquisei na internet e encontrei duas maneiras de excluir um registro do arquivo: 1º localizando o registro que vai ser excluído e escrever o ultimo registro do arquivo em cima dele... 2º Copia todo o registro do arquivo ( sem o registro que vai ser excluído ), para um novo arquivo, depois excluir o antigo arquivo e renomeia o novo como o nome do arquivo "padrão" .... Me corrijam se eu estiver errado, mas foi esses dois métodos que encontrei na internet. No livro disponibilizado pelo meu professor mostrar uma maneira de excluir colocando valores nulo no lugar do registro... (Não entendi direito kk). Gostaria de saber como ficaria o código dessa duas maneiras (foco pra 2º) ou se tem outro meio de excluir um registro do arquivo?
-
C Como utilizar as SETAS (cima e baixo) e ENTER do teclado no menu de um programa?
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em C/C#/C++
Obrigado gente, vou tentar assimilar tudo que foi dito nesse post e acrescentar no meu código. O método que @devair1010 colocou aqui foi o mais próximo que se aproximou do que eu queria, mas agradeço a todos pelo tempo que tiveram pra me ajudar, valeu. -
C Como utilizar as SETAS (cima e baixo) e ENTER do teclado no menu de um programa?
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em C/C#/C++
@devair1010 Exatamente assim, onde que eu posso mudar pra a "->" fica na posição que eu quero, meu menu fica mais embaixo pois tem um cabeçalho em cima, modifiquei os números mas fica errado rs... ? -
printf("MENU\n"); printf("\t1->ADICIONAR SÉRIES\n"); printf("\t2->EDITAR SÉRIE\n"); printf("\t3->REMOVER SÉRIE\n"); printf("\t4->lISTAR SÉRIES\n"); printf("\t5->PESQUISAR SÉRIES\n"); printf("\t6->SAIR\n"); printf("OPÇÃO: "); scanf("%d",&opPrinc); Estou criando um programa e no momento o menu está sendo feito com a estrutura do/wihle e switch-case. Gostaria de saber como fazer com que a movimentação de escolha das opções do menu fosse feita através das teclas de setar (cima e baixo) e quando clicar em ENTER a opção escolhida fosse acessada? (Eliminando então a forma como esta, o usuário digitar o nº correspondente as opções.)
-
C Vetor de varivável em estrutura (Struct)
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em C/C#/C++
@AnsiC Obrigado pela a ajuda, funcionou perfeitamente. -
C Vetor de varivável em estrutura (Struct)
ytalopaulo_ respondeu ao tópico de ytalopaulo_ em C/C#/C++
Meu professor me mandou fazer a mesma coisa, mas o que eu não entendo é como isso se aplicaria quando o usuário for digital. Tipo, vai aparece uma mensagem pra o usuário digita a quantidade de temporadas de uma série... Ex : 3 Ai as próximas mensagem vai ser em cima desse valor digitado: -> Quantidades de episódios na 1 temporada: -> Quantidades de episódios na 2 temporada: -> Quantidades de episódios na 3 temporada: _______________________________________ Isso normalmente sem estrutura ficaria resolvido se eu declarasse a variável dos episódios após o usuário digita a quantidades de temporadas da séries qtdsEps[qtdsTemps]; -
Estou fazendo um projeto de armazenamento de séries e queria saber como resolver o problema de vetor de variável dentro de struct? Abaixo está a estrutura do registro!! typedef struct series{ char nome[20]; char genero[20]; char emissora[20]; char lanc, assistindo, passistir, finalz, fav; int ano; int qtdsTemps; int qtdsEps; //era pra ser um vetor de episodios de cada temporada, a partir da qtds informada pela usuário int qtdsEps[qtdsTemps]; int totalEps; } SERIE; Como resolveria esse problema já que não pode criar vetor de variável no struct?
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