Ir para conteúdo
Fórum Script Brasil

rika1987

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que rika1987 postou

  1. o meu problema é que encontrei o código em C++ tive alterar algumas coisas que sabia, mas de facto eu só sei trabalhar com C porque nunca me deram em C++, estou nu 1ano ainda e precisava de uma ajudita.
  2. Boas malta, em baixo esta um código de um programa para um trabalho de faculdade ao qual querem que desenvolva em C mas eu fiz lo em C++, logo não me aceitaram, e com sorte, deixaram me que o volta se a fazer em C, então vim aqui pedir a vossa ajuda a ver se conseguem traduzir me. ficaria grato com vocês. O problema é construir uma programa que desenhe o famoso quadrado magico em C #include <iomanip> #include <iostream> #include <stdio.h> using namespace std; class cMagicSquare { private: int **m_ippMagicSquare; const int m_iDim; int m_iOtherDiagonal; public: cMagicSquare(int iInput); ~cMagicSquare(); void print() const; }; cMagicSquare::cMagicSquare(int iInput):m_iDim(iInput) { int iCol, iRow; m_ippMagicSquare = new int *[m_iDim+1]; for(int i = 0; i <= m_iDim; m_ippMagicSquare[i++] = new int[m_iDim+1]); for(iRow = 0; iRow <= m_iDim; iRow++) for(iCol = 0; iCol <= m_iDim; m_ippMagicSquare[iRow][iCol++] = 0); iRow = 1; iCol = m_iDim / 2 + 1; m_iOtherDiagonal = 0; for(int iValue = 1; iValue <= m_iDim * m_iDim; iValue++) { if(m_ippMagicSquare[iRow][iCol] > 0) { iRow += 2; if(iRow > m_iDim) iRow -= m_iDim; if(--iCol < 1) iCol = m_iDim; } m_ippMagicSquare[iRow][iCol] = iValue; m_ippMagicSquare[0][iCol] += iValue; m_ippMagicSquare[iRow][0] += iValue; if(iRow == iCol) m_ippMagicSquare[0][0] += iValue; if(iRow+iCol == m_iDim+1) m_iOtherDiagonal += iValue; if(--iRow < 1) iRow = m_iDim; if(++iCol > m_iDim) iCol = 1; } } cMagicSquare::~cMagicSquare() { for(int i = 0; i <= m_iDim; delete [] m_ippMagicSquare[i++]); delete [] m_ippMagicSquare; } //funçao que imprime a matriz void cMagicSquare::print() const { cout<<"\n O numero que escolheu e o "<<m_iDim<<", e o quadrado e: \n\n"; int iCol, iRow; for(iRow = 1; iRow <= m_iDim; iRow++) { cout<<" "; for(iCol = 1; iCol <= m_iDim; cout<<setw(5)<<m_ippMagicSquare[iRow][iCol++]); cout<<" = "<<setw(5)<<m_ippMagicSquare[iRow][0]<<"\n"; } for(iCol = 0; iCol <= m_iDim; iCol++, cout<<"-----"); cout<<"\n"<<setw(5)<<m_iOtherDiagonal; for(iCol = 1; iCol <= m_iDim; cout<<setw(5)<<m_ippMagicSquare[0][iCol++]); cout<<" "<<setw(5)<<m_ippMagicSquare[0][0]<<endl; } int main() { printf("Quadrado Magico \n"); //testa o caracter introduzido, e para sair do programa for(int i = 1; i != 0;) { cout<<"\n-Introduza o numero impar (0 para sair): "<<flush; cin>>i; if(1) { if(i <= 0) { if(i != -1) printf("ERRO:\nO inteiro tem de ser positivo.\n"); } else if(i % 2 == 0) { printf("ERRO:\nO numero tem de ser impar.\n"); } else if(i >= 14) { printf("ERRO:\nO inteiro tem de ser menor que 14.\n"); } else { cMagicSquare *mspMySquare = new cMagicSquare(i); mspMySquare->print(); delete mspMySquare; } } } return 0; } Ficarei a espera. comprimentos
×
×
  • Criar Novo...