Ir ao conteúdo
  • Cadastre-se

ucas_santoss

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

9
  1. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Calculadora de Anti-base</title> <style> /* Estilo para a fonte do textarea */ textarea { font-family: monospace; } </style> </head> <body> <h1>Calculadora de Anti-base</h1> <!-- Entrada da matriz de adjacência --> <label for="matriz">Insira a matriz de adjacência:</label><br> <textarea id="matriz" rows="5" cols="50"></textarea><br><br> <!-- Botão para calcular a anti-base --> <button onclick="calcularAntiBase()">Calcular Anti-base</button><br><br> <!-- Exibição do resultado --> <div id="resultado"></div> <!-- Script JavaScript --> <script> function calcularAntiBase() { // Obtém a matriz de adjacência a partir da entrada do usuário const matrizStr = document.getElementById("matriz").value; const matrizLinhas = matrizStr.trim().split("\n"); const matrizAdjacencia = matrizLinhas.map(linha => linha.trim().split(" ").map(num => parseInt(num))); // Calcula a anti-base da matriz de adjacência const antiBase = encontrarAntiBase(matrizAdjacencia); // Exibe o resultado const resultadoStr = "Anti-base: " + antiBase.join(", "); document.getElementById("resultado").innerText = resultadoStr; } function encontrarAntiBase(matrizAdjacencia) { const numLinhas = matrizAdjacencia.length; const numColunas = matrizAdjacencia[0].length; // Inicializa matriz aumentada com os mesmos valores da matriz de adjacência const matrizAumentada = []; for (let i = 0; i < numLinhas; i++) { matrizAumentada[i] = []; for (let j = 0; j < numColunas; j++) { matrizAumentada[i][j] = matrizAdjacencia[i][j]; } } // Aplica eliminação gaussiana para obter matriz escalonada for (let k = 0; k < numLinhas; k++) { // Encontra a linha com o maior valor absoluto na coluna k let maxLinha = k; for (let i = k + 1; i < numLinhas; i++) { if (Math.abs(matrizAumentada[i][k]) > Math.abs(matrizAumentada[maxLinha][k])) { maxLinha = i; } } // Troca a linha atual com a linha com o maior valor absoluto na coluna k const temp = matrizAumentada[k]; matrizAumentada[k] = matrizAumentada[maxLinha]; matrizAumentada[maxLinha] = temp; // Aplica eliminação gaussiana para tornar zeros abaixo da diagonal principal // Aplica eliminação gaussiana para tornar zeros abaixo da diagonal principal for (let i = k + 1; i < numLinhas; i++) { const fator = matrizAumentada[i][k] / matrizAumentada[k][k]; matrizAumentada[i][k] = 0; for (let j = k + 1; j < numColunas; j++) { matrizAumentada[i][j] = matrizAumentada[i][j] - fator * matrizAumentada[k][j]; } } } // Encontra a anti-base da matriz de adjacência const antiBase = []; for (let i = 0; i < numLinhas; i++) { let naoNulo = false; for (let j = 0; j < numColunas; j++) { if (matrizAumentada[i][j] !== 0) { naoNulo = true; break; } } if (!naoNulo) { antiBase.push(i); } } return antiBase; } </script> </body> </html>
  2. @devair1010 entrei em contato com o coordenador do meu curso ele observou e informou que eu deveria localizar o ponto critico do código e localizar qual seria a complexidade do mesmo, porém o desafio seria seria criar este código que verificar a excentricidade de um grafo, porém essa parte da complexidade me deixou digamos que "encucado"
  3. alguém poderia me ajudar a localizar o ponto especifico e qual seria a complecidade do mesmo? #include <stdio.h> #include <stdlib.h> #include <string.h> int char_em_int(int n); //Função no qual transforma o arquivo char em uma matriz de numeros inteiros int excentricidade(int *e,int cont,int z, int x);//Função no qual pega a excentricidade dos vertices e guarda no vetor int matriz[100][100]; //Matriz de Adjacencia do Grafo int i, j, i1, j1; //indices auxiliares para varrer a matriz FILE *arquivo;//Localizar o arquivo texto bool verificacao (int *v,int j1,int x);//Função de verificação, a mesma verifica se o vertice ja foi visitado/inserido no vetor bool arquivloc; //Verifica se o arquivo foi encontrado ou nao bool Sair;//escolher sair do programa ou solicitar novo arquivo char qualarquivo[30];//Digite o nome do arquivo que vai utilizar //*-=-=-=-=-=-=--=-* VARIAVEIS DECLARADAS *-=-=-=-=-=-=--=-*// int x,z; //Auxiliares apenas para varrer os vetores int *vlonge; //Vetor para verificação de qual vertice mais longe int *vexcentri; //Vetor para verificação da excentricidade int quant; //A quantidade de Vertices do grafo char correrm; //Variavel usar para pecorre toda a matriz do arquivo texto char auxconv[1]; //Variavel auxiliar que vai está recebendo apenas um caractere do arquivo para a conversão para int int contador = 1; //Dependendo da função que está variavel auxiliar esteja, ela irá contar a excentricidade e o numero de vertices //*-=-=-=-=-=-=--=-* INICIO DO SOFTWARE *-=-=-=-=-=-=--=-*// main(){ Sair = false; do{ //verifica se o user gostaria de inserir outro arquivo ou sair do sistema arquivloc = false; do{//Verificando se o arquivo digitado e valido system("cls"); printf("\n<----------------------> EXCENTRICIDADE <----------------------> \n Informe o nome do arquivo desejado ou S para finalizar: "); scanf ("%s",qualarquivo); if (!strcmp (qualarquivo,"S") || !strcmp(qualarquivo,"s")) { goto fim; } strcat (qualarquivo,".txt"); if((arquivo = fopen(qualarquivo,"r")) != NULL) { arquivloc = true; printf("\nPesquisando arquivo..\n"); printf("Arquivo localizado com sucesso!\n"); system ("pause"); }else{ printf("\nPesquisando arquivo..\n"); printf ("Arquivo inexistente, tente novamente!\n"); system ("pause"); } }while(arquivloc != true);//Fim da Verificação se o arquivo foi valido ou não for (i=0; i<100; i++){//Zerando a Matriz for (j=0; j<100; j++){ matriz[i][j] =0; } } system("cls"); printf("\nMatriz de adjacencia do arquivo:\n\n"); quant = char_em_int(quant); vlonge = (int*)calloc(quant, sizeof(int));//alocação dinamica do tamanho do vetor v vexcentri = (int*)calloc(quant, sizeof(int));//alocação dinamica do tamanho do vetor e for(i=0; i<quant ; i++) { //Realizando a impressão da Matriz de Adjacencia for(j=0; j<quant; j++){ printf("%d ",matriz[i][j]); } printf("\n");// pulando linha } printf("\n"); //*-=-=-=-=-=-=--=-* CODIGOS DEVEM SER IMPLEMENTADOS A PARTIR DESTA LINHA *-=-=-=-=-=-=--=-*// for(i=0; i<quant; i++){ //Iniciando o for para verificar a excentricidade e o vertice mais distante x=0; z=0; contador = 1; vlonge[x] = i; for(j = 0; j < quant; j++){ if(i != j && matriz[i][j] == 1){ //Esta inserindo os vertices que tem caminho direto no vetor (v[x]) x++; // vertice no qual esta sendo comparado. vlonge[x] = j; vexcentri[x] = contador;//já que temos um caminho direto, esta inserindo a "excentricidade" que é 1 } } contador++;//Cont da "Excentricidade" recebe 2, ja que se entra no proximo loop while(x < quant-1){ z++; i1 = vlonge[z];//Vai ser testado outro vertice, o proximo da posição do vertor (v[]x) for(j1=0; j1<quant; j1++){ if(i1 != j1 && matriz[i1][j1] == 1 && verificacao(vlonge,j1,x) != true){ //Esta inserindo no verto (v[x]) os vertices que tem caminho direto com x++; //o vertice no qual esta sendo comparado e não foi inserido ainda. vlonge[x] = j1; contador = excentricidade(vexcentri,contador,z,x); } } } //rodando o loop ate o vetor v[x] não for totalmente preenchido printf("Excentricidade do Vertice %d: %d\n",i+1,vexcentri[quant-1]); //Realizando a Impressão da Excentricidade dos Vertices } //Fim do FOR dda excentricidade e do vertice mais distante printf("\n\nDesenvolvido por: Erickson ian, Joao Lucas, Leiliane dantas, Adrielison\n"); //*-=-=-=-=-=-=--=-*FIM DO CODIGO *-=-=-=-=-=-=--=-*// fclose(arquivo);//Para fechar o arquivo free(vlonge); //Realizando a Liberação de memoria do vetor v free(vexcentri); //Realizando a Liberação de memoria do vetor e printf("\n\n"); system ("pause"); }while(Sair != true); //Fim da verificação se o usuario quer inserir outro arquivo ou se deseja sair fim: return 0; } int char_em_int(int n){ j1= 0; i1= 0; contador = 1; while((correrm=fgetc(arquivo))!=EOF){ //Função para correr todo o arquivo adcionado. if(correrm == '1' || correrm == '0'){ //Comparando se o caractere é 1 ou 0 auxconv[0] = correrm; // apenas uma variavel auxiliar que vai recebe 0 ou 1(apenas um deles) matriz[i1][j1] = atoi(auxconv); //convertendo de char para int e jogando na matriz j1++; } if(correrm == '\n'){ // \n caso o arquivo vernha a ter alguma quebra de linha i1++; // percorrendo outra linha j1 = 0; // j1 niciando na posição em 0 contador++; //Contador das linhas recebendo +1 } } return contador; //Retornando a quantidade total de linhas da Matriz } bool verificacao (int *vlonge,int j1,int x){ int y; for(y=0; y<=x; y++){ //Realizando a verificação se o vertice j1 ja foi ou está inserido no vetor if(vlonge[y] == j1){ //se estiver inserido ele irá retornar True(verdadeiro) return true; } } return false; //se não estiver ele irá retorna false(falso) } int excentricidade(int *vexcentri,int cont,int z, int x){ if(vexcentri[z] < contador){ //Já aqui ele está Esta inserindo em um vetor e[x] a distancia entre todos os outros vertices vexcentri[x] = contador; //Auxiliar para colocar na mesma prosição que ele se encontra no outro vetor v[x] }else{ //o ultimo indice do vetor e[] teoricamente é a excentricidade e o ultimo do v[] seria o vertice mais distante contador++; vexcentri[x] = contador; } return contador; }
  4. mas ele passou pra gente resolver devido a quarentena do covid-19, não seria refente a nota, so exercita, porém ta muito complexo a questão
  5. Boa tarde pessoal, sou iniciante em programação, estou no 2 segundo periodo da faculdade o meu professor passou questoes de maratonas pra gente exercitar porém eu não faço a minima ideia de como se faz essa questão. já fui em varios foruns so veja algumas explcações, porém ainda sou bem leigo no assunto. Um número primo natural tem unicamente dois divisores naturais distintos: o número um e ele mesmo. TAREFA Sua tarefa é criar um programa que, à medida que for sendo utilizado, vá aprendendo se um número é ou não primo de forma que, da próxima vez que o número for solicitado, não precisa mais ser processado para se obter a resposta. ENTRADA A entrada é uma lista de números que deve ser lido do dispositivo de entrada (normalmente o teclado). Cada um destes números é um valor inteiro N (0 ≤ N ≤ 10000) que se deseja saber se é ou não primo. N igual a zero indicará o final das entradas. Obs: A lista de números não passará de 1000 itens. SAÍDA O programa deverá imprimir na saída padrão, uma linha contendo uma String informando o numero pesquisado, espaço, a informação “Primo” ou “NaoPrimo”, espaço, e a quantidade de iterações realizadas para identificar a resposta.
  6. @Mauro Britivaldo O professor da faculdade sempre aconselhou a usar essa biblioteca adicionado 1 minuto depois @brund321 muito obrigado, ajudou bastante
  7. @Herbertbahia ao solicitar para ver a cidade que mais produz lixo o codigo ainda nao mostra e volta para a parte que adciona uma nova cidade
  8. /*1-Faça um programa que receba como entrada o nome e a população de um número indeterminado de cidades e informe qual a quantidade diária de resíduos sólidos (LIXO) gerados por cada uma delas. A leitura será finalizada quando a população digitada for zero. Informe ainda qual a cidade que produz mais resíduo, dentre as que foram informadas. DICA: pesquise na internet a produção per capita de lixo do brasileiro (kg/hab/dia). */ OBS: SOU NOVATO #include <stdio.h> #include <stdlib.h> #define MAX 1000 int main(){ int i, j; int maior[MAX], maior2,lixo; Cidade[MAX][30] six[MAX]; printf("==============DESCUBRA A QUANTIDADE DE LIXO QUE SUA CIDADE PRODUZ===============\n\n"); for (i=1; i<MAX; i++){ printf("1-)Informe o Nome da Cidade Desejada:\n"); scanf("%s",&six.cidades); printf("\n2-)Informe a Populacao da Cidade Informada a cima: "); scanf("%d",&six.populacao); maior2=six.populacao; system("pause");// limpar a tela system("cls");// limpar a tela lixo=six.populacao*1.0993*30; } }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!