Ir ao conteúdo
  • Cadastre-se

RafaLorenzzo

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

2
  1. O que ta errado? Matriz A; Matriz B; Matriz C; 1.4 2.5.6.2 -1.3 4.2 -0.4 4.4 2.1 6.5 -9.4 9.9 -2.3 -0.2 4.2 0.0 -0.1 0.6 4.2 4.4 6.0 -2.2 3.1 -4.0 3.0 0.3 -4.7 -7.7 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { int i = 0, j = 0, a, b; int matriz[2][3]; FILE* f; f = fopen("matrizA.dat", "r"); printf("lendo a matriz\n"); while (fscanf(f, "%d", &matriz[i][j]) != EOF) { printf("%d ", matriz[i][j]); j++; if (j > 2) { printf("\n"); j = 0; i++; } } int main(); { int i,j,k1,k2; int linA,colA,linB,colB; printf("PRODUTO A X B \n \n"); printf("Quantidade de linhas da Matriz A = "); scanf("%d",&linA); printf("Quantidade de colunas da Matriz A = "); scanf("%d",&colA); printf("Quantidade de linhas da Matriz B = "); scanf("%d",&linB); printf("Quantidade de colunas da Matriz B = "); scanf("%d",&colB); float A[2][3]; float B[3][4]; float C[3][3]; float temp; } / Imprimindo a matriz A printf("\n MATRIZ A \n \n"); for(i=0;i< 3;i++) { for(j=0;j< 3;j++) { if(j!=(3-1)) printf("%.2f \t",A[i][j]); else printf("%.2f \n",A[i][j]); } } printf("\n \n"); system("pause"); // Imprimindo a matriz B printf("\n MATRIZ B \n \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(j!=(3-1)) printf("%.2f \t",B[i][j]); else printf("%.2f \n",B[i][j]); } } for(k1=0;k1<3;k1++) { for(k2=0;k2<3;k2++) { temp=0.0; for(i=0;i<3;i++) { temp=temp+A[k1][i]*B[i][k2]; } C[k1][k2]=temp; } } printf("\n \n"); system("pause"); printf("\n MATRIZ C = A x B \n \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(j!=(3-1)) { printf("%.2f \t",C[i][j]); } else { printf("%.2f \n",C[i][j]); } } } return 0; } }
  2. até aqui eu consegui.... #include<stdio.h> #include<stdlib.h> int main() { int matriz[2][3]; int i,j; int a,b; FILE *file; file= fopen("matrizA.dat","r"); while(!feof(file)) { for(i=0;i<3;i++) { for(j=0;j<3;j++) { fscanf(file,"%d",&matriz[i][j]); } } } printf("Matriz lida com sucesso\n"); for(a=0;a<3;a++) { for(b=0;b<3;b++) { printf("%d",matriz[a][b]); } printf("\n"); } fclose(file); return 0; }
  3. termine a função lerMatrizArquivo. A função em questão deve receber o nome de um arquivo que contenha uma matriz, por exemplo "matrizA.dat", e dois parâmetos que sejam referências para inteiros que irão armazenar as dimensões (quantidade de linhas e quantidade de colunas) da matriz lida do arquivo. Após ler as dimensões da matriz armazenada no arquivo, a função deve alocar dinamicamente uma matriz do tamanho exato registrado no arquivo e armazenar os dados do arquivo na matriz alocada, além de atualizar as referências m e n para conterem as dimensões da matriz lida. A matriz lida deve ser retornada ao final da funçao #include <stdio.h> #include <stdlib.h> float **lerMatrizArquivo(char *nomeArquivo, int *m, int *n){ //Q1: Le o arquivo cujo nome eh passado no primeiro parametro (nomeArquivo), retorna a matriz que esta armazenada no arquivo lido e atualiza os parametros m e n com as dimensoes da matriz lida. } float **produtoMatrizes(float **A, int mA, int nA, float **B, int mB, int nB){ //Q2: Calcula o produto de matrizes A * B. Retorna o resultado do produto. } void imprimeMatriz(float **A, int m, int n){ //Q3: Imprime na tela a matriz passada como parametro. } int main(){ float **A, **B, **R; int mA, nA, mB, nB; A = lerMatrizArquivo( "matrizA.dat", &mA, &nA); B = lerMatrizArquivo( "matrizB.dat", &mB, &nB); if(nA == mB){ R = produtoMatrizes(A, mA, nA, B, mB, nB); printf(" A = "); imprimeMatriz(A, mA, nA); printf("\n B = "); imprimeMatriz(B, mB, nB); printf("\n A * B = "); imprimeMatriz(R, mA, nB); return 0; } else { printf("As dimensoes das matrizes nao permitem o calculo do produto entre elas na ordem pedida\n"); return 1; } }
  4. @mauro_b o numero é "2018104009" Exemplo de decodicação Supondo que o valor da mensagem codicada C e da chave K sejam C = {18, 17, 14, 4, 12, 0, 14, 55, 0, 71, 55, 36, 54, 59, 22} e K = "Segredo", a decodicação seria a seguinte. 18 17 14 4 12 0 14 55 0 71 55 36 54 59 22 ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ 'S' 'e' 'g' 'r' 'e' 'd' 'o' 'S' 'e' 'g' 'r' 'e' 'd' 'o' 'S' 'A' 't' 'i' 'v' 'i' 'd' 'a' 'd' 'e' ' ' 'E' 'A' 'R' 'T' 'E' Com isso produzimos a mensagem M, que neste exemplo tem o seguinte valor. M = "Atividade EARTE".
  5. tenho outro programa que nao consigo fazer sobre codificação e decodificação com XOR, alguém me ajuda? @JorgeGus tenho outro programa que nao consigo fazer sobre codificação e decodificação com XOR, alguém me ajuda?
  6. Considerando o método de decodificação por XOR explicado abaixo, utilize seu número como a chave K e escreva o código em linguagem C que decodifique a mensagem codificada contida no arquivo .dat cujo nome é o seu número. Tenha em mente que a mensagem codificada contida no arquivo.dat tem tamanho de 200 números inteiros. Após decodificada, a mensagem exibirá um número de 7 dígitos . Decodificação O método a ser aplicado utiliza uma operação matemática simples aplicada entre cada letra da mensagem codificada C e da chave K, progressivamente. A operação mate- mática que será utilizada na codificação chama-se XOR, matematicamente é simbolizada por ⊕ e na linguagem C é executado utilizando o símbolo de acento circunflexo (^). Quando estamos de posse da mensagem codificada C e da chave K e temos o interesse de gerar a mensagem M, este processo é chamado de decodificação. Este processo é feito aplicando a mesma operação XOR, uma a uma, entre cada número da mensagem codificada C e cada letra da chave K, gerando assim cada letra da mensagem M.
  7. cheguei ate aqui, nao to conseguindo fazer as contas #include <stdio.h> #include <stdlib.h> int main(void) { FILE *arqInteiros, *piramide; int vetor[20]; int i; arqInteiros = fopen("seqInteiros.dat", "r"); for(i = 0; i < 20; i++) fscanf(arqInteiros, "%d", &vetor[i]); fclose(arqInteiros); piramide = fopen("piramide.dat", "w"); for(i = 0; i < 20; i++) fprintf(piramide, "%d\n", vetor[i]); }
  8. Crie um programa em C que leia o arquivo seqinteiros.dat, contendo uma sequência de 20 números inteiros. Ao final o programa deve criar o arquivo piramidif.dat contendo 19 linhas. Sendo que a primeira linha deve conter 19 números inteiros, onde cada número representa a diferença entre cada dois números consecutivos da sequência lida originalmente. A segunda linha deve conter 18 números inteiros, onde cada número representa a diferença entre cada dois números consecutivos da primeira linha. A terceira linha deve conter 17 números inteiros, onde cada número representa a diferença entre cada dois números consecutivos da segunda linha. E assim por diante, cada linha deve ter um número a menos que a anterior e o valor de cada número deve representar a diferença entre cada dois números consecutivos da linha anterior. A última linha do arquivo terá apenas um número.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!