Ir para conteúdo
Fórum Script Brasil

PerguntasScript

Membros
  • Total de itens

    13
  • Registro em

  • Última visita

Posts postados por PerguntasScript

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

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

          

    }

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

    }

     

    001.JPG

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

  6. 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");

    }

  7. Ele executa, mais na tela não aparece nada!

     

    #include <iostream>

    #include <time.h>

     

    /* Função format - Retornar um ponteiro para uma variavel do tipo char com o valor da conversão */

     

    char *format(int number){

       

        char *retorno;

        char ret[100];

     

        if (number < 10){

           

            sprintf(ret,"0%d",number); /* Retorna o resultado em uma variável */

            retorno = ret;

            return retorno;

           

        } else {

           

            sprintf(ret,"%d",number);

            retorno = ret;

            return retorno;

           

        }

       

    } /* Fim Função Format */

     

    /* Função que retorna a hora */

     

    char *hora(void){

         

        int hora;

        int minuto;

        int segundo;

       

        char varHora[100];

        char varMinuto[100];

        char varSegundo[100];

        char varHoraFormatada[100];

        char *retornoHoraFormatada;

       

        struct tm *local;

        time_t t;

        t = time(NULL);

        local = localtime(&t);

         

       /* Obter hora, minuto e segundo e os alocar em uma variavel do tipo */

      

       hora = local -> tm_hour;

       minuto = local -> tm_min;

       segundo = local -> tm_sec;

      

       /* Converter os valores retornados pelos ponteiros da função em variaveis do tipo char */

      

       sprintf(varHora,"%s",format(hora));

       sprintf(varMinuto,"%s",format(minuto));

       sprintf(varSegundo,"%s",format(segundo));

      

       /* criar a variavel de retorno dos dados e cria um ponteiro para essa variavel */

      

       sprintf(varHoraFormatada,"%s:%s:%s",varHora,varMinuto,varSegundo);

      

       /* Retorna hora no formato hh:mm:ss com um ponteiro */

      

       retornoHoraFormatada = varHoraFormatada;

      

       return retornoHoraFormatada;

      

    } /* Fim Função Hora */

     

    int main(){

       

        char horaSistema[100];

     

        sprintf(horaSistema,"%s",hora());

       

        printf("%s\n",horaSistema);

       

    }

     

    /* Mudar o Fuso Horário */

     

     

×
×
  • Criar Novo...