Ir ao conteúdo
  • Cadastre-se

João Vitor Pinheiro dos Sa

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

5
  1. Bom dia gente, preciso de uma ajuda para desenvolver um programa usando o Marie que carregue previamente 8 bits (no caso é um DEC, conforme o exemplo abaixo) e verifique se a paridade par da sequência está correta (Considere o último bit como bit de paridade). O programa deverá executar para qualquer sequência, não apenas para o exemplo que estou mostrando. A saída deverá ser 0 para a paridade estar correta e 1 para identificar um possível erro. Word, DEC 0 DEC 1 DEC 1 DEC 0 DEC 1 DEC 0 DEC 1 DEC 0 <<<<----bit de paridade
  2. Gente, meu professor disse que esse código ta muito extenso e pediu para eu enxugar ele um pouco, alguém me ajuda por favor /* Trabalho Prático: Autômatos Celulares Disciplina: AEDS 1 */ #include <iostream> #include<conio.h> #include <locale> //biblioteca do comando de acentuação using namespace std; #define LINHA 5 #define COLUNA 5 //Funções int atribuir ( int l, int c, int nivel, int option, int mat[LINHA][COLUNA]); int fun_decrementar (int mat[LINHA][COLUNA]); int fun_imprimir (int mat[LINHA][COLUNA]); void stop_program (int value, int sistema, int correção); void clear_screen (int sistema, int historico_exe, int correção); int main() { setlocale(LC_ALL,"portuguese");//comando para acentuação int mat[LINHA][COLUNA] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; cout <<"Seja bem vindo(a) ao Autômatos Celulares. "<<endl; int sistema; int historico_exe; int correção; int loop =0; do //loop teclas Enter e Esc { do //coleta de preferências de execução { cout <<"Antes de começar, por favor me diga qual o seu sistema operacional: \n1: Sistema Windows \n2: Sistema Mac ou linux"<<endl; cin >> sistema; if (sistema !=1 && sistema !=2) { cout<<"Por favor digite uma das duas opções"<<endl; } cout <<"Deseja ver o histórico de execução das matrizes: \n1: Sim \n2: Não"<<endl; cin >> historico_exe; if (historico_exe !=1 && historico_exe !=2) { cout<<"Por favor digite uma das duas opções"<<endl; } }while ((sistema !=1 && sistema !=2) || (historico_exe !=1 && historico_exe !=2)); correção = sistema; //corrigindo bug clear_screen (sistema, 2, correção); int option; float l=0; float c=0; const char Enter = 10; const char ESC = 27; cout <<"-------------------------------------------------------------------------------------------"<<"\n"; do { cout <<"Tamanho da matriz: 5x5. "<<endl; cout <<"Escolha uma das opções de interação: \n1: Interação nas coordenadas do ponto Lin 2 e col 2 \n2: Interação no ponto Lin 1 e Col 3 (mesmo do que está nas instruções do trabalho)"<<endl; cout <<"Qual opção você deseja? "; cin >> option; cout <<endl; if ((option != 1) && (option != 2)) { clear_screen (sistema, 0, correção); cout << '\a' <<endl; cout <<"Opção inválida"<<endl; } } while ((option != 1) && (option != 2)); //Posicionando o valor 2 na coordenada escolhida pelo usuário if (option==1) { l=2,c=2; } if (option==2) { l=1,c=3; } //------------------------------------------------------------- clear_screen (sistema, historico_exe, correção); cout <<"--------------------------------------"<<endl; cout<<"\n1 interação, tempo 0: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 0, option, mat); fun_imprimir (mat); cout <<"--------------------------------------"<<endl; !getchar (); //negação do getchar para evitar que acione o próximo comando cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) {clear_screen (sistema, historico_exe, correção); cout<<"\n2 interação, tempo 1: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 1, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n3 interação, tempo 2: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 2, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n4 interação, tempo 3: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 3, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n5 interação, tempo 4: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 4, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n6 interação, tempo 5: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 5, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n7 interação, tempo 6: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 6, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } if (option == 2 ) { //clear_screen (sistema, historico_exe, correção); cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n8 interação, tempo 7: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 7, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } cout <<"--------------------------------------"<<endl; cout<<"\nPressione Enter para o próximo estágio: "; if (getchar ()== Enter) { clear_screen (sistema, historico_exe, correção); cout<<"\n9 interação, tempo 8: \n\n"; mat [LINHA][COLUNA] = atribuir ( l, c, 8, option, mat); fun_imprimir (mat); } else //se tecla diferente de enter o programa vai parar para evitar erros com a matriz { stop_program (1, sistema, correção); break; } } cout <<"\n-----------------------------------------------\n Aplicação Concluída com Sucesso!!!\n-----------------------------------------------\n"; cout << "-----------------------------------------------\n Deseja executar novamente? \n-----------------------------------------------\n Enter para executar ou Esc para sair "; char resp; resp = getch (); if (resp == ESC ) { loop=9; } if (resp == Enter) { loop=0; } cout <<endl; } while (loop != 9); cout <<endl; system ("PAUSE"); } //Espaço pra funções-------------------------------- int fun_imprimir (int mat[LINHA][COLUNA]) // esta função imprime as matrizes { for(int i=0; i<LINHA; i++) { for(int j=0; j<COLUNA; j++) { cout<< mat[i][j] <<" "; } cout<<"\n\n"; } return ( mat[LINHA][COLUNA]); } int fun_decrementar (int mat[LINHA][COLUNA]) //esta função decrementa os valores 2 pra 1 e 1 pra 0 { for(int i=0; i<LINHA; i++) { for(int j=0; j<COLUNA; j++) { if(mat[i][j]==1) { mat[i][j]=0; } if(mat[i][j]==2) { mat[i][j]=1; } } } return ( mat[LINHA][COLUNA]); } void stop_program (int value, int sistema, int correção) //esta função para a execução do programa quando é digitada a tecla incorreta { if (value == 1) { cout <<"--------------------------------------------------------------------------"<<endl; clear_screen (sistema, 2, correção); cout <<'\a'<<"Por favor, clique em apenas Enter para ir pra próxima interação."<<endl; cout<< "Infelizmente será necessário reiniciar a aplicação."<<endl; cout <<"--------------------------------------------------------------------------"<<endl; } } void clear_screen (int sistema, int historico_exe, int correção) //esta função limpa a tela { if (correção != sistema)//correção de bug o sistema mudando de valor { sistema = 1; } if (sistema == 1 ) //sistema Windows { if (historico_exe == 2 ) { system("cls"); } } if (sistema == 2) //sistema Mac { if (historico_exe == 2) { system ("clear"); } } } int atribuir ( int l, int c, int nivel, int option, int mat[LINHA][COLUNA]) //esta função faz atribuição do valor 2 { //espaço para as variáveis int a0 = l-1; int a1 = l+1; int b0 = c-1; int b1 = c+1; int a= l; int b=c; int lii0 = l-1-1; int lii1 = l+1+1; int coo0 = c-1-1; int coo1 = c+1+1; int li0 = l-1; int li1 = l+1; int co0 = c-1; int co1 = c+1; int li= l; // variavel linha int co=c; // variavel coluna int cooo0 = coo0 -1; int liii1 = lii1 +1; if (nivel == 0) //posicionando o 2 onde o usuário escolher { for(int i=0; i<LINHA; i++) { for(int j=0; j<COLUNA; j++) { if(mat[a][b]==0) { mat[a][b]=2; } } } } if (nivel == 1) //Decrementando o 2 e atriuindo a vizinhança { for(int i=0; i<5; i++) { for(int j=0; j<5; j++) { if(mat[a][b]==0) { mat[a][b]=2; } if(mat[a][b]==2) { mat[a][b]=1; } if(mat[a0][b]==0) { mat[a0][b]=2; } if(mat[a1][b]==0) { mat[a1][b]=2; } if(mat[a][b1]==0) { mat[a][b1]=2; } if(mat[a][b0]==0) { mat[a][b0]=2; } } } } if (nivel == 2) { fun_decrementar (mat); //os valores 2 e 1 são decrementados if (option == 1) //atribuindo valor 2 as células vizinhas com base na opção escolhida pelo usuário { mat [lii0][co]=2, mat[lii1][co]=2, mat[li][coo0]=2, mat[li][coo1]=2, mat[li0][co0]=2, mat[li0][co1]=2, mat[li1][co0]=2, mat[li1][co1]=2; } if (option == 2) //atribuindo valor 2 as células vizinhas com base na opção escolhida pelo usuário { mat [lii0][co]=2, mat[lii1][co]=2, mat[li][coo0]=2, mat[li][coo1]=2, mat[li0][co0]=2, mat[li0][co1]=2, mat[li1][co0]=2, mat[li1][co1]=2, mat[li1][cooo0]=0 ; } } if (nivel == 3) { fun_decrementar (mat); //os valores 2 e 1 são decrementados if (option == 1) //atribuindo valor 2 as células vizinhas com base na opção escolhida pelo usuário { mat[lii0][co0]=2, mat[li0][coo0]=2, mat[li1][coo0]=2, mat[lii1][co0]=2, mat[lii0][co1]=2, mat[li0][coo1]=2, mat[li1][coo1]=2, mat[lii1][co1]=2; } if (option == 2) { mat[lii0][co0]=2, mat[li0][coo0]=2, mat[li1][coo0]=2, mat[lii1][co0]=2, mat[lii0][co1]=2, mat[li0][coo1]=2, mat[li1][coo1]=2, mat[lii1][co1]=2, mat[lii1+1][co]=2, mat[lii1][coo0-1]=0; } } if (nivel == 4) { fun_decrementar (mat); //decrementando a matriz if (option ==1) { mat[lii0][coo0]=2, mat[lii0][coo1]=2, mat[lii1][coo0]=2, mat[lii1][coo1]=2; } if (option ==2) { mat[lii0][coo0]=2, mat[lii0][coo1]=2, mat[lii1][coo0]=2, mat[lii1][coo1]=2, mat[li1][cooo0]=2,mat[liii1][co0]=2,mat[liii1][co1]=2,mat[liii1][cooo0]=0,mat[lii1][cooo0]=0; } } if (nivel == 5) { fun_decrementar (mat); if (option ==2) { mat[liii1][cooo0]=0, mat[liii1][coo0]=2, mat[lii1][cooo0]=2; } } if (nivel == 6) { fun_decrementar (mat); if(option == 2) { mat[liii1][cooo0]=2; } } if (nivel == 7) { fun_decrementar (mat); } if (nivel == 8) { fun_decrementar (mat); } return mat[LINHA][COLUNA]; }
  3. @devair1010 mano, por favor... me da uma luz do próximo passo q eu tenho q fazer para transformar o 2 em 1 e as casas vizinhas em 2 int n[5][5]= {{0,0,0,0,0}, {0,0,0,2,0}, {0,0,0,0,0}, {0,0,0,0,0}, {0,0,0,0,0}}; for (int i=0; i<5; i++){ for (int j=0; j<5; j++){
  4. @devair1010 ainda não fiz o código, comecei definindo a matriz inicial mas depois disso eu fiquei perdido
  5. Beleza? Estou preso nessa questão, você conseguem me ajudar? "Bom dia, estou com duvida de como armazenar esses valores lido de uma matriz [][] principal, e coloca-los em uma matriz auxliar. Sei que tenho que usar 2 laços " for ", mas não sei como armazenar esses, valores Sendo mais especifico estou tentando fazer automatos celulares greenberg hasting, e preciso ler uma celular da matriz e ler tambem seus vizinhos Mas não sei como armazenar essas informações na matriz auxiliar. Tenho que fazer igual na foto abaixo, alguém me ajuda pfv, a conseguir ler e armazenar esses valores em uma matriz auxiliar sem alterar a matriz principal"

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!