Beispiel #1
0
 /** Matrix with back track of alignment.
 \see Track
 */
 int& track(int row0, int col0) const {
     ASSERT_MSG(in(row0, col0),
                (TO_S(row0) + " " + TO_S(col0)).c_str());
     int row = row0 + 1, col = col0 + 1;
     int index = row * cols_1() + col;
     return matrix_[index * MATRICES_NUMBER + 1];
 }
Beispiel #2
0
/*
 * Funcion auxiliar que muestra los puestos disponibles
 */
void
showfree(CLIENT *clnt)
{
  int *rows, *cols;
  char ** message;
  char *rows_1_arg;
  char *cols_1_arg;
  char *listfree_1_arg;

    // llamada remota para conocer el numero de filas del vagon
  rows = rows_1((void*)&rows_1_arg, clnt);
  if (rows == (int *) NULL) {
    clnt_perror (clnt, "call failed");
  }

    // llamada remota para conocer el numero de columnas del vagon
  cols = cols_1((void*)&cols_1_arg, clnt);
  if (cols == (int *) NULL) {
    clnt_perror (clnt, "call failed");
  }

    // llamada remota para conocer los puestos disponibles en el vagon
  message = listfree_1((void*)&listfree_1_arg, clnt);
  if (message == (char **) NULL) {
    clnt_perror (clnt, "call failed");
  }

    // imprimir en pantalla los puestos libres
  int i, j;
  for (i = 0; i < *rows; i++) {
    for (j = 0; j < *cols; j++) {
      if ((*message)[i*(*cols) + j] == '0') {
        printf("%d:%d;\t", i+1, j+1);
      }
    }
    printf("\n");
  }

}
Beispiel #3
0
 void adjust_matrix_size() const {
     int size = rows_1() * cols_1() * MATRICES_NUMBER;
     matrix_.resize(size, BAD_VALUE);
 }