Ir para conteúdo

Mayara Andres

Members
  • Total de itens

    2
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Mayara Andres

Contato

  • Twitter
    @mayarandres

Últimos Visitantes

217 visualizações
  1. Mayara Andres

    utilizando threads em java

    Olá, preciso implementar um código java usando threads, como o anunciado da atividade pede: "O trabalho consiste em alterar o código que busca valores dentro de um vetor (disponível no blackboard) de forma a criar N threads de acordo com a vontade do usuário (ler o número de threads que o usuário deseja criar) e buscar um valor no vetor (apenas 1, também inserido pelo usuário) de forma paralela, ou seja, cada thread criada deve procurar por um região diferente do vetor. Ao final da execução mostre qual foi a thread que encontrou o valor." PS: EU SÓ QUERO SABER POR ONDE EU COMEÇO, A LÓGICA EU ENTENDI, SÓ NÃO SEI COMO FAZER. classe thread_busca package trabalho_thread; import java.util.logging.Level; import java.util.logging.Logger; class ThreadBusca extends Thread { private int vetor[]; private int numeroProcurar; public ThreadBusca(int[] vet, int numeroProcurar) { this.vetor = vet; this.numeroProcurar = numeroProcurar; } @Override public void run() { for (int i = 0; i < vetor.length; i++) { if (vetor[i] == numeroProcurar) { System.out.println("Indice de "+numeroProcurar+" eh "+i); return; } try { Thread.sleep(10); } catch (InterruptedException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } System.out.println("Indice de "+numeroProcurar+" eh -1"); } } classe main package trabalho_thread; import java.util.Arrays; import java.util.Random; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { int vet[] = new int[200]; Random random = new Random(); for(int i=0;i<200;i++){ vet[i] = random.nextInt(4999)+1; } System.out.println(Arrays.toString(vet)); int numero=-1; do{ numero = Integer.parseInt(JOptionPane.showInputDialog("Numero a pesquisar:")); new ThreadBusca(vet, numero).start(); }while(numero>0); } }
  2. Mayara Andres

    alterar cadastro em C

    Estou fazendo um trabalho da faculdade e estou com vários problemas "bestas" mas que não consigo resolver. É um sistema para uma biblioteca, que possui os menus: Usuario, Livros, Editoras e Emprestimos. (E em cada um deles, sub-menus com cadastrar, alterar, excluir e listar) Comecei fazendo pelo menu usuario. Ele cadastra e lista os cadastros, o código do usuario é inserido sozinho. ERRO 1: Quando inicio o programa, digito 1 pra entrar no menu Usuario, e 1 pra cadastrar (nessa parte, eu tenho que digitar 1, dar enter e digitar 1 novamente, só assim ele entra no sub-menu de cadastro. Acontece a mesma coisa para todos os outros menus. ERRO 1.1: Quando eu listo os cadastros, ele sempre mostra um mais, como o chamado "lixo", mesmo usando fflush. ERRO 2: Para alterar o cadastro do usuario, preciso que o usuario insira o codigo, verificar se é igual ao cadastrado e só assim alterar, mas ele cai sempre no else. /* ============================================================================ Name : biblioteca-mayara.c Author : Mayara Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> typedef struct { int codUsuario,cpf; char nomeUsuario[20]; }usuario; //INICIO FUNCOES //FUNCAO QUE NAO RETORNA NEM RECEBE NADA, SÓ IMPRIMI O CABECALHO void cabecalho () { printf ("\t\t ========================================== \n"); printf ("\t\t = SISTEMA DE GERENCIAMENTO DE BIBLIOTECA =\n"); printf ("\t\t ==== DESENVOLVIDO POR MAYARA ANDRES ==== \n"); printf ("\t\t ========================================== \n"); } //FUNCAO QUE RECEBE A OPCAO DO MENU E RETORNA A MESMA int menuPrincipal () { int opMP = 0; printf ("\t\t\t\t MENU PRINCIPAL \n "); printf ("\t\t\t\t 1 - Usuarios \n"); printf ("\t\t\t\t 2 - Livros \n"); printf ("\t\t\t\t 3 - Editoras \n"); printf ("\t\t\t\t 4 - Emprestimos \n"); printf ("\t\t\t\t 5 - Sair \n"); scanf ("%d", &opMP); return opMP; } //FUNCAO QUE RECEBE A OPCAO DO MENU DE USUARIOS E RETORNA A MESMA int menuUsuario () { int opMU = 0; printf ("\t\t\t\t 1 - Cadastrar \n"); printf ("\t\t\t\t 2 - Listar \n"); printf ("\t\t\t\t 3 - Alterar \n"); printf ("\t\t\t\t 4 - Excluir \n"); printf ("\t\t\t\t 5 - Sair \n"); scanf ("%d", &opMU); } //FUNCAO PARA ZERAR O VETOR DE USUARIOS void zerarVetor (usuario *vet) { int i; for (i=0;i<20;i++) { vet.codUsuario = 0; vet.cpf = 0; } } //FUNCAO QUE RECEBE O VETOR E RETORNA EM QUE POSICAO DO VETOR //FOI INSERIDO O ULTIMO USUARIO int retornaUltPosicao (usuario *vet) { int i=0; //verifica se o vetor na posicao i é maior que zero //se for maior que zero, tem usuario cadastrado //acrescenta um while(vet[i+1].codUsuario > 0) { i++; } //sai do loop e retorna a ultima posicao encontrada return i+1; } //funcao para cadastro de usuarios void cadastrarUsuario (usuario *vet) { int i = 0; //busca a ultima posicao cadastrada i = retornaUltPosicao(vet); /*if (i == 0) { i = 1; }*/ //delimitar para 20 o numero de registros if (i == 20) { printf ("Limite de usuarios atingido \n"); system ("PAUSE"); return; } //aqui começa o cadastro printf (" \t\t\t\tCADASTRAR USUARIO: \n"); printf ("\t\t\t\t----------------------\n"); printf ("\n\n\t\t\t\tCodigo do usuario: %d \n",i); // fflush (stdin); vet.codUsuario = i; printf ("\n \t\t\t\tDigite o nome do usuario: "); fflush (stdin); gets (vet.nomeUsuario); printf ("\n \t\t\t\tDigite o cpf do usuario: "); //fflush (stdin); scanf ("%d", &vet.cpf); printf ("\n\t\t\t\tUsuario cadastrado com sucesso!\n"); system ("PAUSE"); } void listaUsuarios (usuario *vet) { int i; printf (" \t\t\t\tUSUARIOS CADASTRADOS: \n"); printf ("\t\t ==========================================\n"); for (i=1;i<=retornaUltPosicao(vet);i++) { printf ("\n\t\t\t\t Usuario Numero: %d",i); printf ("\n\t\t\t\t Cod: %d", vet.codUsuario); printf ("\n\t\t\t\t Nome: %s ", vet.nomeUsuario); printf ("\n\t\t\t\t CPF: %d ", vet.cpf); printf ("\n \n"); } system ("PAUSE"); } void excluirUsuario (usuario *vet) { int i,cod; printf("Digite o codigo do usuario: "); scanf("%d", &cod); /*for (i=0;i<20;i++) { if (vet.codUsuario == cod) { vet.nomeUsuario = ""; vet.cpf = ""; }*/ } } void alterarUsuario (usuario *vet) { int i,cod; printf("Digite o codigo do usuario: "); scanf("%d", &cod); for (i=0;i<20;i++) { //CAI SEMPRE NO ELSE if (vet.codUsuario == cod) { printf("Digite o nome: "); fflush(stdin); gets(vet.nomeUsuario); printf("\n"); printf("Digite o cpf: "); scanf("%d", vet.cpf); printf("Usuario alterado com sucesso!"); } else { printf("Codigo invalido \n"); } system ("pause"); } } //FIM FUNCOES int main() { //vetor do tipo usuario de 20 posicoes usuario vet[20]; //variavel pra usar no switch int opEscolhida; //chamando o zerar vetor USUARIOS zerarVetor(vet); //while pra repetir while (1==1) { //limpa a tela system ("CLS"); //chama o cabeçalho cabecalho(); //op recebe o que foi escolhido no menu opEscolhida = menuPrincipal(); switch (opEscolhida) { case 1: //limpa a tela system("CLS"); //chama o cabecalho cabecalho(); //printf pra mostrar qual o menu printf ("\t\t\t\t MENU USUARIOS \n"); //chama o menu de usuarios menuUsuario(vet); int opmenuusuario; scanf("%d", &opmenuusuario); if (opmenuusuario == 1) { system ("CLS"); cabecalho(); cadastrarUsuario(vet); } if (opmenuusuario == 2) { system ("CLS"); cabecalho(); listaUsuarios(vet); } if (opmenuusuario == 3) { system ("CLS"); cabecalho(); alterarUsuario(vet); } /*if (opmenuusuario == 4) { system ("CLS"); cabecalho(); excluiUsuario (vet); }*/ break; case 2: //limpa a tela system("CLS"); //chama o cabecalho cabecalho(); //printf pra mostrar qual o menu printf ("\t\t\t\t MENU LIVROS \n"); //chama o menu de livros menuLivro(vet2); break; case 3: //limpa a tela system("CLS"); //chama o cabecalho cabecalho(); //printf pra mostrar qual o menu printf ("\t\t\t\t MENU EDITORA \n"); //chama o menu de editoras menuEditora(vet3); break; case 4: //limpa a tela system("CLS"); //chama o cabecalho cabecalho(); //printf pra mostrar qual o menu printf ("\t\t\t\t MENU EMPRESTIMOS \n"); //chama o menu de emprestimos menuEmprestimo(vet4); break; case 5: printf("VOCE ESCOLHEU SAIR DO PROGRAMA!\n"); printf("\n\n"); system ("PAUSE"); /* default: printf("OPCAO INVALIDA, POR FAVOR SELECIONE UM ITEM DO MENU"); printf("\n\n"); system ("PAUSE");*/ }//FECHA SWITCH }//FECHA WHILE }//FECHA MAIN
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.