PerguntasScript

Membros
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Neutro

About PerguntasScript

Recent Profile Visitors

669 profile views
  1. Fiz em C um programa no Linux de multiplicação de matrizes de ordem 1000 A e B, (Ou seja, matrizes quadradas 1000x1000) que resulta em uma outra matriz C, só que agora eu tenho que adicionar threads e não sei como e nem aonde coloca-las. Eu preciso de 4 threads: 1 para calcular de 0 à 249; 2 para calcular de 250 à 499; 3 para calcular de 500 à 749; 4 para calcular de 750 à 999; Segue código abaixo: #include <time.h> #include <stdio.h> #include <stdlib.h> #include <pthread.h> int main(){ pthread_t thread_1; pthread_t thread_2; pthread_t thread_3; pthread_t thread_4; int i; int j; int linhas; int colunas; int ordem; long T1; long T2; float delta; printf("Digite a ordem das matrizes quadradas A e B: "); scanf("%d", &ordem); T1 = clock(); printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem); ordem = ordem - 1; linhas = ordem; colunas = ordem; float A[linhas+1][colunas+1]; float B[linhas+1][colunas+1]; for(i = 0; i <= linhas; i++){ for(j = 0; j <= colunas; j++){ printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1); scanf("%f", &A[i][j]); printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1); scanf("%f", &B[i][j]); } } printf("\nA multiplicacao das matrizes A e B:\n\n"); for(i = 0; i <= linhas; i++) { for(j = 0; j <= colunas; j++) { float produto[linhas+1][colunas+1]; for(int AUX = 0; AUX <= ordem; AUX++) { produto[i][j] += A[i][AUX] * B[AUX][j]; } printf("%.2f ",produto[i][j]); } printf("\n"); } T2 = clock(); delta = (float)(T2-T1)/CLOCKS_PER_SEC; printf("\n\nTempo %.5f segundos",delta); return 0; } Desde já agradeço!
  2. Olá, você poderia me ajudar? Fiz em C um programa de multiplicação de matrizes de ordem 1000 A e B, que resulta em uma matriz C, só que agora eu tenho que adicionar threads e não sei aonde coloca-las. Eu preciso de 4 threads: 1 vai calcular de 0 à 249; 2 vai calcular de 250 à 499; 3 vai calcular de 500 à 749; 4 vai calcular de 750 à 999;

    Tenho o arquivo aqui, qualquer coisa te mando...

    1. vangodp

      vangodp

      2 matrizes de 1000? Não será vetores de 1000?
      Abra um tema para poder ser respondido. Lembre que isso é um fórum, as respostas servem de consulta para outros usuários. Não há nada de mal em pedir ajuda por correio, mas a resposta será dada no fórum. Quando quiser pedir ajuda a um usuário em concreto abra um tema, exponha seu problema e mande um email indicando o link da sua consulta.

    2. PerguntasScript

      PerguntasScript

      Sim, matrizes de ordem 1000, que é o mesmo que uma matriz quadrada 1000x1000. Entendo o que disse. Perdão!

      Não consigo escrever uma mensagem pra você. Segue link da pergunta:

       

  3. O sistema de cadastro está funcionando corretamente em todas as páginas; Tenho 3 níveis de usuários, o problema é que na seguinte páginas, quando estou logado em todos os usuários ele me redireciona sempre para a mesma página que é menuCliente.php; Algo que não deveria acontecer, visto que em determinados usuários ele deveria me liberar o acesso a página cadastrarCliente.php O que há de errado com o código? Página cadastrarCliente.php: <!DOCTYPE html> <html lang="pt-br"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="../styles/estilo.css"> </head> <body> <?php include "../conexao.php"; /* A sessão precisa ser iniciada em cada página diferente */ if (!isset($_SESSION)){ session_start(); /* Verifica se não há a variável da sessão que identifica o usuário */ } if (!isset($_SESSION['login'])){ /* Destrói a sessão por segurança */ session_destroy(); /* Redireciona o visitante de volta pro login */ header("Location: index.php"); exit; } ?> <?php /* A sessão precisa ser iniciada em cada página diferente */ if(!isset($_SESSION['idUsuario']['nivel'])){ $nivelNecessario = 1; /* Verifica se não há a variável da sessão que identifica o usuário */ if($_SESSION['idUsuario']['nivel'] = $nivelNecessario){ /* $alerta = echo "Você não tem permissão para realizar esta operação!"; */ echo "<script language='javascript'>alert($alerta);</script>"; /* Redireciona o visitante de volta pro login */ header("location:menuCliente.php"); } else{ if($_SESSION['idUsuario']['nivel'] > $nivelNecessario){ header("location:cadastrarCliente.php"); } } } ?> <table> <tr> <th> Você está logado com: <?php echo $_SESSION['login']; ?> | </th> <th> <a href="../logout.php"><p>Logout</p></a> </th> </tr> </table> </body> </html> Se precisarem do código das outras páginas me avisa, mas como eu falei, o erro está nesta página...
  4. Obrigado, mas agora o erro está na soma do A[1][1] e B[1][1], por exemplo:
  5. Não estou conseguindo identificar o erro, observe, se fazer uma matriz quadrada de ordem 2 o que acontece com a soma de [1][2] e [2][1]: #include <stdio.h> #include <stdlib.h> #include <time.h> int main (){ int i; int j; int linhas; int colunas; int ordem; float A[i][j]; float B[i][j]; long T1; long T2; float delta; printf("Digite a ordem das matrizes quadradas A e B: "); scanf("%d", &ordem); T1 = clock(); printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem); linhas = ordem; colunas = ordem; for(i = ; i < linhas; i++){ for(j = ; j < colunas; j++){ printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1); scanf("%f", &A[i][j]); printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1); scanf("%f", &B[i][j]); } } for(i = ; i < linhas; i++){ for(j = ; j < colunas; j++){ printf("\nA soma das matrizes A[%d][%d] e B[%d][%d] = %.2f",i+1,j+1,i+1,j+1,A[i][j] + B[i][j]); } } T2 = clock(); delta = (float)(T2-T1)/CLOCKS_PER_SEC; printf("\n\nTempo %.5f segundos",delta); return ; }
  6. Não estou conseguindo identificar o erro, observe, se fazer uma matriz quadrada de ordem 2 o que acontece com a soma de [1][2] e [2][1]: #include <stdio.h> #include <stdlib.h> #include <time.h> int main (){ int i; int j; int linhas; int colunas; int ordem; float A[i][j]; float B[i][j]; long T1; long T2; float delta; printf("Digite a ordem das matrizes quadradas A e B: "); scanf("%d", &ordem); T1 = clock(); printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem); linhas = ordem; colunas = ordem; for(i = ; i < linhas; i++){ for(j = ; j < colunas; j++){ printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1); scanf("%f", &A[i][j]); printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1); scanf("%f", &B[i][j]); } } for(i = ; i < linhas; i++){ for(j = ; j < colunas; j++){ printf("\nA soma das matrizes A[%d][%d] e B[%d][%d] = %.2f",i+1,j+1,i+1,j+1,A[i][j] + B[i][j]); } } T2 = clock(); delta = (float)(T2-T1)/CLOCKS_PER_SEC; printf("\n\nTempo %.5f segundos",delta); return ; }
  7. Alguém sabe calcular a complexidade de um programa em C, para o melhor e pior caso? Tenho os códigos fontes aqui dos programas (5), são programas simples.
  8. O que eu queria fazer é o seguinte, se a pessoa entrar com valores menores que 0, maiores que 510, float ou caracteres, ele irá direcionar para essa mensagem de erro! Pois os valores aceitos são inteiros compreendidos entre 0 até 510.
  9. PerguntasScript

    Dúvida em If

    Tenho essa condição, a dúvida é, como fazer corretamente a parte que está em destaque na cor verde? if((numDecimal < 0) || (numDecimal > 510) || (numDecimal != int)){ printf("\nValor invalido, tente novamente!\n"); }