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;

}

}


 

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

38919. Исследование способов интерполяции случайных стационарных процессов с разной степенью дифференцируемости 152 KB
  Цель работы Численное исследование погрешности интерполяции случайных стационарных процессов имеющих заданное количество производных. Экспериментальное определение погрешности интерполяции негауссовских процессов сопровождаемых аддитивным шумом. Такое восстановление непрерывного процесса по его дискретным отсчетам носит название интерполяции.
38920. Исследование Свойств энтропии одиночных отсчетов случайных последовательностей 107 KB
  Цель работы Численное определение величины энтропии последовательностей дискретных случайных величин. Краткие теоретические сведения Согласно классической теории информации минимальное количество данных на один отсчет необходимых при идеальном кодировании дискретной случайной величины X определяется распределением вероятностей этой величины Pxi. Квантование непрерывной случайной величины преобразует эту величину в дискретную. Очевидно что полученный при этом результат будет зависеть как от плотности распределения вероятностей...
38921. АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ, ИСПОЛЬЗУЕМЫЕ В ПРОЕКТИРОВАНИИ 2.4 MB
  В каждом узле присутствует 2 степени свободы: X –перемещение вдоль оси X; Z – перемещение вдоль оси Z. В каждом узле присутствует 3 степени свободы: X –перемещение вдоль оси X; Z – перемещение вдоль оси Z; UY – поворот вокруг оси Y. В каждом узле присутствует 3 степени свободы: Z – перемещение вдоль оси Z; UX – поворот вокруг оси X; UY – поворот вокруг оси Y. В каждом узле присутствует 3 степени свободы: X – перемещение вдоль оси X; Y – перемещение вдоль оси Y; Z – перемещение вдоль оси Z.
38922. МЕТАДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО АВТОМАТИЗИРОВАННЫМ СИСТЕМАМ, ИСПОЛЬЗУЕМЫМ В ПРОЕКТИРОВАНИИ 5.29 MB
  Расчёт элементов каменных и армокаменных конструкций по подпрограмме КАМИН SCD Office 11. Анализ результатов армирования бетонных элементов и конструкций по программе АРБАТ SCD Office 11. Расчёт элементов деревянных конструкций по подпрограмме ДЕКОР SCD Office 11. Расчёт элементов оснований и фундаментов по программе ЗАПРОС SCD Office 11.
38923. Автоматизированные системы, используемые в лабораторном проектировании 6.9 MB
  После этого щелкните по кнопке – Подтвердить. После этого щёлкните по кнопке – Применить. Щелкните по кнопке Сохранить. Щелкните по кнопке – Перерисовать.
38924. Измерение параметров оптического изображения 202.44 KB
  Таким образом в процессе вывода зарядов из ФЭП осуществляется второй этап преобразования: где – емкость выходной структуры ТВД.9 можно записать в виде Здесь в явной форме представлено соотношение между амплитудой сигнала от объекта и освещенностью создаваемой объектом на входе ФЭП. Амплитуда видеосигнала ; ток сигнала на выходе ФЭП; нагрузочное сопротивление коэффициент усиления видеоусилителя. Для описания свойств ФЭП как преобразователя световой энергии в энергию электрического...
38925. Основные алгоритмы телевизионных измерений 167 KB
  Алгоритмы предназначены для измерения геометрических энергетических и цветовых параметров протяженного объекта находящегося в поле зрения ТВД. Употребляемый по отношению к алгоритмам термин внутрикадровые означает чтo измерение параметра объекта выполняется на основе информации сосредоточенной в одном телевизионном кадре. Результат однократного измерения характеризует состояние объекта в момент съемки текущего кадра. Пересчет цифрового параметра объекта в его значение выраженное в соответствующих единицах измерения производится по...
38926. Межкадровая фильтрация и измерение динамических параметров 56 KB
  Кроме того изменения параметров динамического объекта за время Тк невелики опять же не всегда а в подавляющем большинстве случаев. применение к последним межкадрового усредения приведёт скорее всего к нежелательным последствиям например размазыванию изображения движущегося объекта. Но обычно перед ТВсистемами стоит задача измерения динамических параметров в частности непрерывный контроль за текущим состоянием объекта которые не могут быть определены однократным измерением. Так например скорость объекта где – положения...
38927. Представление и преобразование цифровых сигналов в телевизионных измерительных системах 31.5 KB
  Оцифровка представление объекта изображения или сигнала в дискретном наборе цифровых замеров. Для решения задач машинной графики обработки и распознавания изображений используются следующие этапы преобразования изображения: Предварительная обработка – операции восстановления фильтрации улучшения визуального восприятия изображения. Формирование графического препарата – обработка с целью вычленения характерных особенностей изображениясегментация выделение контуров скелетизация Анализ – выявление характерных особенностей...