Advertisement
Guest User

Untitled

a guest
Jul 4th, 2015
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.73 KB | None | 0 0
  1. //
  2. // main.c
  3. // ESAME MATRICE
  4. //
  5. // Created by Umberto on 04/07/15.
  6. // Copyright (c) 2015 Umberto . All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #define N 10
  12. #define COSTRUZIONE '#'
  13. #define TERRENO 'O'
  14.  
  15. int main(int argc, const char * argv[]) {
  16. FILE* Mapx1;
  17. FILE* Mapx2;
  18.  
  19. char mappa1[10][10], mappa2[10][10];
  20. int i, j;
  21. int presunta_costruzione;//è una variabile che mi indicherà come se gli elementi che andrò ad analizzarè a N, O, S, E saranno delle costruzioni o no//
  22. int r, c, M; //Saranno gli interi che estrapolerò i valori numeri dalla linea di comando//
  23. int d;
  24. int variazione, indice_riga, indice_colonna;
  25.  
  26. if (argc!=4) {
  27. printf("Errore paramentri lineda di comando");
  28. exit(1);
  29. }
  30.  
  31. Mapx1=fopen("Mapx1.txt", "r");
  32. Mapx2=fopen("Mapx2.txt", "r");
  33. if (Mapx1==NULL && Mapx2==NULL) {
  34. printf("Errore aperutra: impossibile aprire il file");
  35. exit(1);
  36. }
  37.  
  38. for (i=0; i<N; i++) {
  39. for (j=0; j<N; j++) {
  40. if (d==(fgetc(Mapx1)!=EOF) && d!='\n') {
  41. mappa1[i][j]=c;
  42. } else {
  43. break;
  44. }
  45.  
  46. }
  47. }
  48.  
  49.  
  50. for (i=0; i<N; i++) {
  51. for (j=0; j<N; j++) {
  52. if (d==(fgetc(Mapx2)!=EOF) && d!='\n') {
  53. mappa1[i][j]=c;
  54. } else {
  55. break;
  56. }
  57. }
  58. }
  59.  
  60. fclose(Mapx1);
  61. fclose(Mapx2);
  62.  
  63. r = atoi(argv[1]); //mi darà la coordinata del punto in alto a sinistra della mia matrci MxM//
  64. c = atoi(argv[2]); //mi darà la coordinata del punto in alto a sinistra della mia matrci MxM//
  65. M = atoi(argv[3]); // mi darà la dimensione della mia matrice quadrata da considerare rispetto alla mappa1 e mappa2//
  66.  
  67. //Ora abbiamo salvato i valori di entrambe le mappe, per richiamarle faremo riferimento alla loro dichiariazioni di matrici nell'esucuzione delle richieste//
  68.  
  69. indice_riga=0;
  70. indice_colonna=0;
  71. variazione=0;
  72. presunta_costruzione=0;
  73.  
  74. for (i=r; i<r+M; i++) {
  75. for (j=c; j<c+M; j++) {
  76. if (mappa1[i][j]==TERRENO && mappa2[i][j]==TERRENO) {
  77. variazione=0;
  78. }
  79. else {
  80. if(mappa1[i][j]==TERRENO && mappa2[i][j]==COSTRUZIONE) {
  81. variazione=1;
  82. indice_riga=i;
  83. indice_colonna=j;
  84. printf("Nuova cotruzione nelle coordinate %d %d", indice_riga, indice_colonna);
  85. }
  86.  
  87. while (mappa2[i][j]==COSTRUZIONE) {
  88.  
  89. //Analizzando il caso Nord, diminuisco le righe
  90.  
  91. if (mappa1[i-1][j]==COSTRUZIONE && i-1>=0) {
  92. presunta_costruzione=1;
  93.  
  94. }
  95. //Analizzando il caso Sud, aumento le righe
  96.  
  97. if (mappa1[i+1][j]==COSTRUZIONE && i+1<M) {
  98. presunta_costruzione=1;
  99.  
  100. }
  101.  
  102. //Analizzando il caso Ovest, dimuisco le colonne
  103.  
  104. if (mappa1[i][j-1]==COSTRUZIONE && j-1>=0) {
  105. presunta_costruzione=1;
  106.  
  107. }
  108.  
  109. //Analizzando il caso Est, aumento le colonne
  110.  
  111. if (mappa1[i][j+1]==COSTRUZIONE && j+1<M) {
  112. presunta_costruzione=1;
  113.  
  114. }
  115.  
  116. }
  117.  
  118. }
  119.  
  120.  
  121.  
  122.  
  123. }
  124. }
  125.  
  126. printf("\n");
  127.  
  128. if (variazione==0) {
  129. printf("Nessuna nuova costruzione");
  130. }
  131.  
  132. if (variazione==1 && presunta_costruzione==0) {
  133. printf("Nessuna nuova estensione della nuova costruzione");
  134. }
  135. if (variazione==1 && presunta_costruzione==1) {
  136. printf("Presunta estensione della nuova costruzione lungo le direzioni N, E, S, O");
  137. }
  138.  
  139.  
  140. return 0;
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement