Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диссертация_2013_Даулбаева ММ.doc
Скачиваний:
67
Добавлен:
10.03.2016
Размер:
2.34 Mб
Скачать

Продолжение приложения а

  1. perniz=perver=0;

  2. } //**** IF ********

  3. else

  4. {

  5. fprintf(fil,"Point not found ! Change direction to UP\n");

  6. napr = 4;

  7. perniz = 1;

  8. }

  9. break;

  10. case 3:

  11. printf("Search to the left -->");

  12. fprintf(fil,"Search to the left -->");

  13. if((nst=levpoisk(ik,jk))>=0)

  14. {

  15. if((top2=(struct cik*)malloc(sizeof(struct cik))) == NULL)

  16. abort();

  17. printf("founded\n\r"); fprintf(fil,"founded\n");

  18. if(!topnast1)

  19. topnast1=top2;

  20. else

  21. top3->next=top2;

  22. top3=top2;

  23. top2->next=NULL;

  24. top2->ick = ik;

  25. top2->jck = jk;

  26. ch++;

  27. //************ PRODOLZHENIE 3 POISKA *************

  28. top2->prnapr = 3;

  29. pr("top2",top2);

  30. napr = 4; jk = nst;

  31. perlev = perpr = 0;

  32. } // ******* IF *****

  33. else{

  34. fprintf(fil,"Point not found ! Change direction to RIGHT\n");

  35. napr = 1;

  36. perlev = 1;

  37. }

  38. break;

  39. case 4:

  40. printf("Search to the up --->");

  41. fprintf(fil,"Search to the up --->");

  42. if((nstr=verpoisk(ik,jk))>=0)

  43. {

  44. if((top2=(struct cik*)malloc(sizeof(struct cik)))==NULL)

  45. abort();

  46. printf("founded\n\r"); fprintf(fil,"founded\n");

  47. if(!topnast1) topnast1=top2;

  48. else top3->next=top2;

  49. top3=top2;

  50. top2->next=NULL;

Продолжение приложения а

  1. top2->ick=ik;

  2. top2->jck=jk;

  3. ch++;

  4. top2->prnapr = 4;

  5. pr("top2",top2);

  6. napr = 1;

  7. ik = nstr;

  8. perver = perniz = 0;

  9. }

  10. // *****If **************

  11. else

  12. {

  13. fprintf(fil,"Point not found ! Change direction to DOWN\n");

  14. napr = 2;

  15. perver = 1;

  16. }

  17. break;

  18. }

  19. // ************ SWITCH ********************

  20. // ************** PRODOLZHENIE 4 POISKA ********************

  21. if(perlev == 1 && perpr == 1)

  22. {

  23. *(matr2+ik*n+jk) = 0;

  24. ik = top3 ->ick;

  25. jk = top3 ->jck;

  26. napr = top3->prnapr;

  27. top3 = topnast1;

  28. printf("Zerro 1\n\r");

  29. for(top2=topnast1;top2->next !=NULL;top2=top2->next)

  30. top3 = top2;

  31. top3 -> next=NULL;

  32. perlev = perpr = 0; // if(ch == 1)

  33. if(top2==top3)

  34. {

  35. fl3=1;

  36. break;

  37. }

  38. else

  39. {

  40. top3->next=NULL;

  41. free(top2);

  42. ch--;

  43. printf("Viynimaem tochky: (%d,%d)=%d\n",ik,jk,*(matr2+ik*n+jk));

  44. fprintf(fil,"Viynimaem tochky: (%d,%d)=%d\n",ik,jk,*(matr2+ik*n+jk));

  45. pr("top2",top2);

  46. }

  47. perpr = 0;

  48. perlev = 0;

  49. }

  50. // IF

Продолжение приложения а

  1. if(perver == 1 && perniz == 1)

  2. {

  3. *(matr2+ik*n+jk)=0;

  4. printf("Zerro 2\n\r");

  5. ik=top3->ick;

  6. jk = top3->jck;

  7. napr = top3->prnapr;

  8. top3 = topnast1;

  9. for(top2 = topnast1;top2->next !=NULL;top2=top2->next)

  10. top3 = top2; perver = perniz = 0;

  11. if(top2==top3)

  12. {

  13. fl3=1;

  14. break;

  15. }

  16. else

  17. {

  18. top3->next = NULL;

  19. free(top2);

  20. ch--;

  21. // ******* PRODOLZHENIE 5 POISKA *********************

  22. printf("Viynimaem tochky: (%d,%d) = %d\n",ik,jk,*(matr2+ik*n+jk));

  23. fprintf(fil,"Viynimaem tochky: (%d,%d) = %d\n",ik,jk,*(matr2+ik*n+jk));

  24. pr("top2",top2);

  25. }

  26. perver = 0;

  27. perniz = 0;

  28. } // IF

  29. if(ch==0)

  30. {

  31. fl3=1;

  32. break;

  33. }

  34. } //while

  35. } //while

  36. i=0;

  37. if((zi = (int*)calloc(ch,sizeof(int))) == NULL ) abort();

  38. if((zj = (int*)calloc(ch,sizeof(int))) == NULL ) abort();

  39. printf("\n\r");

  40. ch2 = ch;

  41. for(top2 = topnast1;top2 !=NULL;top2 = top2->next)

  42. {

  43. *(zi+i) = top2 ->ick;

  44. *(zj+i) = top2 ->jck;

  45. i++;

  46. }

  47. return(0);

  48. }

  49. // *********** cikl ****************************

  50. int prpoisk(int i1, int j1)