Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.c
- // ESAME MATRICE
- //
- // Created by Umberto on 04/07/15.
- // Copyright (c) 2015 Umberto . All rights reserved.
- //
- #include <stdio.h>
- #include <stdlib.h>
- #define N 10
- #define COSTRUZIONE '#'
- #define TERRENO 'O'
- int main(int argc, const char * argv[]) {
- FILE* Mapx1;
- FILE* Mapx2;
- char mappa1[10][10], mappa2[10][10];
- int i, j;
- 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//
- int r, c, M; //Saranno gli interi che estrapolerò i valori numeri dalla linea di comando//
- int d;
- int variazione, indice_riga, indice_colonna;
- if (argc!=4) {
- printf("Errore paramentri lineda di comando");
- exit(1);
- }
- Mapx1=fopen("Mapx1.txt", "r");
- Mapx2=fopen("Mapx2.txt", "r");
- if (Mapx1==NULL && Mapx2==NULL) {
- printf("Errore aperutra: impossibile aprire il file");
- exit(1);
- }
- for (i=0; i<N; i++) {
- for (j=0; j<N; j++) {
- if (d==(fgetc(Mapx1)!=EOF) && d!='\n') {
- mappa1[i][j]=c;
- } else {
- break;
- }
- }
- }
- for (i=0; i<N; i++) {
- for (j=0; j<N; j++) {
- if (d==(fgetc(Mapx2)!=EOF) && d!='\n') {
- mappa1[i][j]=c;
- } else {
- break;
- }
- }
- }
- fclose(Mapx1);
- fclose(Mapx2);
- r = atoi(argv[1]); //mi darà la coordinata del punto in alto a sinistra della mia matrci MxM//
- c = atoi(argv[2]); //mi darà la coordinata del punto in alto a sinistra della mia matrci MxM//
- M = atoi(argv[3]); // mi darà la dimensione della mia matrice quadrata da considerare rispetto alla mappa1 e mappa2//
- //Ora abbiamo salvato i valori di entrambe le mappe, per richiamarle faremo riferimento alla loro dichiariazioni di matrici nell'esucuzione delle richieste//
- indice_riga=0;
- indice_colonna=0;
- variazione=0;
- presunta_costruzione=0;
- for (i=r; i<r+M; i++) {
- for (j=c; j<c+M; j++) {
- if (mappa1[i][j]==TERRENO && mappa2[i][j]==TERRENO) {
- variazione=0;
- }
- else {
- if(mappa1[i][j]==TERRENO && mappa2[i][j]==COSTRUZIONE) {
- variazione=1;
- indice_riga=i;
- indice_colonna=j;
- printf("Nuova cotruzione nelle coordinate %d %d", indice_riga, indice_colonna);
- }
- while (mappa2[i][j]==COSTRUZIONE) {
- //Analizzando il caso Nord, diminuisco le righe
- if (mappa1[i-1][j]==COSTRUZIONE && i-1>=0) {
- presunta_costruzione=1;
- }
- //Analizzando il caso Sud, aumento le righe
- if (mappa1[i+1][j]==COSTRUZIONE && i+1<M) {
- presunta_costruzione=1;
- }
- //Analizzando il caso Ovest, dimuisco le colonne
- if (mappa1[i][j-1]==COSTRUZIONE && j-1>=0) {
- presunta_costruzione=1;
- }
- //Analizzando il caso Est, aumento le colonne
- if (mappa1[i][j+1]==COSTRUZIONE && j+1<M) {
- presunta_costruzione=1;
- }
- }
- }
- }
- }
- printf("\n");
- if (variazione==0) {
- printf("Nessuna nuova costruzione");
- }
- if (variazione==1 && presunta_costruzione==0) {
- printf("Nessuna nuova estensione della nuova costruzione");
- }
- if (variazione==1 && presunta_costruzione==1) {
- printf("Presunta estensione della nuova costruzione lungo le direzioni N, E, S, O");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement