6804

Автоматизация разметки блок-схем алгоритмов

Лабораторная работа

Информатика, кибернетика и программирование

Автоматизация разметки блок-схем алгоритмов. Номер зачётной книжки: 831910 =100000011111112 Алгоритм обнаружения бесконечных циклов: Проверяем все операционные вершины на наличие перехода назад, если есть переход назад - помечаем блок д...

Русский

2013-01-08

84.4 KB

4 чел.

Автоматизация розметки блок-схем алгоритмов.

Номер зачётной книжки: 831910 =100000011111112;

Алгоритм обнаружения бесконечных циклов:

Проверяем все операционные вершины на наличие перехода назад, если есть переход назад  -  помечаем блок для проверки на зацикливание. Проверяем каждый такой блок на наличие переходов за пределы этого блока алгоритма. Если существует переход на врешину после исходной, то в данном блоке зацикливание не происходит. Если существует переход раньше входной то, то устанавливаем новую верхнюю границу блока, и вызываем функцию повторно.

Иначе выводим сообщение о бесконечном цикле, и номер вершины в которой обозначен неверный переход.

Скриншоты программы:

Листинг программы:

import java.io.Serializable;

import java.util.ArrayList;

public class Algorithm implements Serializable{

 private static final long serialVersionUID = 1L;

 

 private int[][] mConnections;

 private int[][] mSignals;

 private ArrayList<String> signals;

 private boolean[] isY;

 

 public Algorithm(){}

 public Algorithm(int[][] mC, int[][] mS, ArrayList<String> signs){

 System.out.println("Connection matrix:  ");

 mConnections =mC;

 mSignals = mS;

 signals = signs;

 isY = new boolean[mC.length];

 for(int i = 0; i < mC.length; i ++){

 int sum = 0;

  for(int j = 0; j<mC.length;j++) {

   sum+= mC[i][j];

  }

  if(sum>1) isY[i] = false;

  else isY[i] = true;

 }

}

 public boolean isY(int i){

 return isY[i];

}

 

 public boolean checkInfinite(int from, int to) {

 if((to - from) == 1){return true;}

 for(int i = from; i < to; i++){

  if(isY(i)){

   if(fromTo(i)>to){ return false;}

   if(fromTo(i)<from){

    boolean inF = checkInfinite(fromTo(i), to);

    if(inF){return false;}

   }

  } else if(!isY(i)){

   if(fromTo_0(i)>to){ return false;}

   if(fromTo_0(i)<from){

    boolean inF = checkInfinite(fromTo(i), to);

    if(inF){return false;}

   }

   if(fromTo_1(i)>to){ return false;}

  }

 }

 return true;

}

 

 public String findInfiniteLoop(){

 String messageLine="algorithm is correct";

 int nNodes = mConnections.length;

 for(int out = 0; out < nNodes; out++){

  if(!isY(out)) continue;

  for(int in = 0; in < nNodes; in++){

   int current = mConnections[out][in];

   if((current==1)&&(out>in)){

    if(checkInfinite(in, out))

    messageLine = " infinite loop at  "+(out+1);

    return messageLine;

   }

  }

 }  

 return messageLine;

}

 

 public int fromTo(int from){

 int to=0;

 for(int i = 0; i<mConnections.length; i++) {

  if(mConnections[from][i]==1){ to = i+1; break; }

 }

 return to;

}

 

 public int fromTo_1(int from){

 return from+1;

}

 

 public int fromTo_0(int from){

 int to=0;

 for(int i = 0; i<mConnections.length; i++) {

  if((mConnections[from][i]==1)&&(i!=from)){ to = i+1; break; }

 }

 return to;

}

}


 

А также другие работы, которые могут Вас заинтересовать

1220. Технологический процесс термической обработки деталей машин 1.5 MB
  Основные задачи и исходные данные для курсового проектирования. Общие методические указания к выполнению курсовой работы. Разработка технологического маршрута изготовления детали. Разработка технологического процесса термической обработки. Основные требования к оформлению расчетно-пояснительной записки и чертежей.
1221. Экономика и организация производства 1.01 MB
  Бизнес-план - основной документ для оценки и обоснования реализации проекта в условиях конкуренции. Требования к оформлению и защите курсовой работы. Цели и задачи курсовой работы.
1222. Бухгалтерский финансовый учет 476 KB
  Учет кассовых операций. Учет операций на счетах в банках. Учет материально - производственных запасов. Учет внеоборотных активов. Учет финансовых вложений. Учет кредитов и займов. Ведения кассовых операций с банкнотами и монетой банка России.
1223. Технологический процесс подготовки и производства издания художественной литературы 710.5 KB
  История офсетной печати. Роль офсетной печати в полиграфическом производстве. Тенденции развития современных полиграфических технологий. Анализ действующего предприятия по выпуску аналогичной продукции. Выбор и обоснование выбора способа печати.
1224. Економіка та економічні системи України 901.5 KB
  Агропромисловий комплекс України і його адаптація до ринкових умов. Особливості банківської системи її Україні. Валовий внутрішній продукт та його структура. Валютні операції та їх види. Досконала і недосконала конкуренція. Економічна конкуренція, її форми та методи.
1225. Информационная основа управления финансами 862.5 KB
  Информационное обеспечение финансового менеджмента предприятия. Внешние и внутренние пользователи финансовой отчетности. Финансовая отчетность в системе финансового менеджмента. Использование информационной системы в финансовом менеджменте. Информационное обеспечение контроллинга.
1226. Компьютерное моделирование 1.06 MB
  Язык моделирования GPSS. Неформальное введение в имитационное компьютерное моделирование на языке GPSS. Аналитическое и имитационное моделирование. Проверка адекватности и корректировка модели. Экономико-математические модели и методы.
1227. Земельное законодательство в практике деятельности предприятия 767.5 KB
  Изучение применения земельного законодательства в практике данной организации. Основные принципы земельного законодательства. Нормативно-правовые документы в области земельного права муниципального уровня. Изучение методов вычислительной оценки имущественного комплекса. Перечень документов, необходимых для постановки на государственный учёт.
1228. Организация производства общественного питания 802 KB
  Технология продукции общественного питания. Характеристика и особенности приёмов и режимов технологической обработки сырья, продуктов для приготовления блюд. Разработка структуры предприятия и взаимосвязи групп помещений. Анализ потенциальных опасностей и производственных вредностей на предприятии. Экономическое обоснование эффективности дипломной работы. Смета затрат на производство и реализацию продукции общественного питания.