-
Posts
5 -
Cadastrado em
-
Última visita
Reputação
5-
Assembly Programar em Assembly MARIE.js
João Vitor Pinheiro dos Sa postou um tópico em Programação - outros
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 -
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]; }
-
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