Ir ao conteúdo
  • Cadastre-se

Julia Leite

Membro Júnior
  • Posts

    17
  • Cadastrado em

  • Última visita

Reputação

11

1 Seguidor

  1. Estou tentando fazer um programa em java que faça um número x cópias de um arquivo usando threads. (Callable) Tentei fazer seguindo a seguinte lógica: class CopiaArquivo implements Callable<File>{ File src; File dst; void copy(File src, File dst) throws IOException { this.src = src; this.dst = dst; } @Override public File call() throws Exception { return result(); } private File result(){ try{ InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dst); // Transferindo bytes de entrada para saída byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } in.close(); out.close(); } catch(Exception ee){ System.out.println("Erro ao copiar arquivo"); } return dst; } } public class CopiaArq { /** * @param args the command line arguments */ public static void main(String[] args){ // TODO code application logic here try{ FileOutputStream arquivo = new FileOutputStream("arquivo.txt"); PrintWriter pr = new PrintWriter(arquivo); pr.println("Hello World!!"); pr.close(); arquivo.close(); } catch(Exception e){ System.out.println("Erro ao escrever arquivo!!!"); } ExecutorService e = Executors.newFixedThreadPool(2); ExecutorCompletionService<File> completionService = new ExecutorCompletionService<>(e); ArrayList<Future<File>> futures = new ArrayList<>(); futures.add(e.submit(new CopiaArquivo())); } } Não sei se a lógica está correta e não consegui fazer a criação das cópias
  2. @Lucas Kenji É engraçado somente o ps4 está com esse problema, mas com meu roteador antigo está funcionando tranquilamente, então não sei se é por conta do provedor de internet
  3. Olá! Vocês poderiam me ajudar? Recentemente troquei meu roteador pelo DLink 825 e agora o ps4 não consegue manter a conexão, já tentei mudar a DNS, MTU e colocar o ip dele no DMZ e nada adiantou :c
  4. Obrigada pessoal vcs me ajudaram muito! @Matheus Maldi @arfneto @isrnick
  5. realmente, vou corrigir aqui, passou despercebido
  6. @arfneto @herbertbahia acho que eu confundi vocês um pouquinho, me perdoem mas as turmas são do tipo char, por exemplo matemática e biologia, não necessariamente turma 1 e 2
  7. @herbertbahia A sequência é como o @arfneto mostrou vem uma linha com o nome da turma vem uma linha com um int que é o número de alunos vem os alunos da turma na forma nome e "cod" (número de identificação do aluno)o número em vermelho vem uma linha com uma eventual outra turma Só serão duas turmas sempre!
  8. @herbertbahia não precisa ser dinâminca não!
  9. Estou com dificuldades em relação a como poderia ler o nome da turma e depois exibir junto na função exibe aluno e como eu poderia juntar a lista das duas turmas em uma só? typedef struct{ char nome[20]; int cod; }Aluno; void leAluno(Aluno *a){ printf("Digite o nome:\n"); scanf("%s", a->nome); printf("Digite o ID:\n"); scanf("%d", &a->cod); } void exibeAluno(Aluno *a){ //exibir nome da turma printf("\nNome: %s\n",a->nome); printf("ID: %d\n", a->cod); } int main(){ Aluno *a,*a2; int TAM,TAM2,i; char ord[5]; //ler nome da turma scanf("%d",&TAM); // quantidade de alunos na turma a = malloc(TAM*sizeof(Aluno)); for(i=0;i<TAM;i++){ leAluno(&a[i]); } //ler nome da turma scanf("%d",&TAM2); // quantidade de alunos na turma a2 = malloc(TAM2*sizeof(Aluno)); for(i=0;i<TAM2;i++){ leAluno(&a2[i]); } scanf("%s",ord); //juntar as duas turmas em uma unica lista if(strcmp(ord,"cod") == 0){ //ordenar lista pelo código exibeAluno(a); } else{ //ordena lista pelo nome do aluno exibeAluno(a); } return 0; }
  10. Na realidade gostaria de saber como posso fazer pra inicializar o arquivo em uma função
  11. int main(int argc, char *argv[ ]){ FILE *entrada; FILE *saida; int n1,n2,menu; int aux1,aux2; char aux3; char **matriz; int i; entrada = fopen(argv[1],"r"); saida = fopen(argv[2],"w"); if (entrada == NULL||saida == NULL) { printf("ERRO! O arquivo não foi aberto!\n"); } else { printf("O arquivo foi aberto com sucesso!"); } fscanf(entrada,"%d %d",&n1,&n2); n1 = n1+1; matriz = malloc(n1*sizeof(char *)); for(i=0;i<n1;i++) matriz[i] = malloc(n2*sizeof(char)); fseek(entrada, 0, SEEK_SET); for(i=0;i<n1;i++){ fgets(matriz[i], n2+2, entrada); } do{ printf("Menu:\n1 – Pintar\n2 – Salvar\n"); scanf("%d",&menu); switch (menu) { case 1: printf("Pintura (coordenadas e caractere):\n"); scanf("%d %d %c", &aux1,&aux2 ,&aux3); aux1 += 1; if(aux1>=n1||aux2>=n2){ printf("\n\n*********POSIÇÃO COM ERRO*********\n\n"); break; } break; case 2: for(i=0;i<n1;i++){ fprintf(saida, "%s",matriz[i]); } fclose(saida); printf("Salvo com sucesso!\n"); break; default: printf("Opção invalida\n"); break; } }while(menu != 2); for(i=0;i<n1;i++) free(matriz[i]); free(matriz); fclose(entrada); fclose(saida); return 0; }
  12. Como eu poderia receber as siglas (mdc, mod e pot) para que elas façam as funções e depois printem conforme eu as solicitei com, o programa se encerra quando OOO é digitado. exemplos de entrada 18 12 MOD MDC OOO saida MDC(18,12) = 6 MOD(18,12) = 6 ***código abaixo #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int MDC(int n1, int n2); int MOD(int n1, int n2); int POT(int n1, int n2); int main(){ char x[100], y[100]; int n1=0, n2=0 , rmdc = 0, rmod = 0, rpot = 0; char fim = 'OOO'; while(1){ scanf("%s",&x[0]); if(x[0]==fim){ exit(0); } scanf("%s",&y[0]); if(y[0]==fim){ exit(0); } n1=atoi(x); n2=atoi(y); rmdc = MDC(n1,n2); printf("MDC(%d,%d) = %d\n",n1,n2,rmdc); rmod = MOD(n1,n2); printf("MOD(%d,%d) = %d\n",n1,n2,rmod); rpot = POT(n1,n2); printf("POT(%d,%d) = %d\n",n1,n2,rpot); } } int MDC(int n1, int n2){ if (n2==0) return n1; return MDC(n2, n1 % n2); } int MOD(int n1, int n2){ int res; res = n1 % n2; return res; } int POT(int n1, int n2) { if(n2 == 0) return 1; else if(n2 > 0) return n1 * POT(n1, n2-1); }

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