На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


лабораторная работа Реализация алгоритма по устранению цепных продукций

Информация:

Тип работы: лабораторная работа. Добавлен: 15.05.2012. Сдан: 2011. Страниц: 14. Уникальность по antiplagiat.ru: < 30%

Описание (план):



Государственный комитет Российской Федерации
по общему и высшему образованию 

Донской Государственный Технический Университет
Кафедра "ПОВТ и АС". 
 
 
 
 
 
 
 
 

ЛАБОРАТОРНАЯ  РАБОТА.
По дисциплине "теория вычислительных процессов и структур"

На  тему:

«Реализация алгоритма по устранению цепных продукций» 
 
 
 

Выполнил:
студенты  группы Иc-3-39
.
ЦВЕТКОВ А.Е.
ГОЛОВАНЬ  С.
Проверил:
Деундяк В.М. 
 
 
 
 
 
 
 
 
 
 
 

Ростов - на - Дону
    - 2002 Г. - 
     

Содержание. 
 
 

    Постановка  задачи…………………………………………………………3
    Структурная схема программы (Алгоритм.)…………….………………4
    Выбор языка и средств……………………………………………………4
    Тестовый пример…………………………………………………………..5
    Руководство оператора…..………………………………………………..5
    Руководство программиста……………………………………………….7
    Текст программы…………………………………………………………...8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Постановка  задачи. 

1 Введение.
Наименование  программного продукта - "программа по устранению цепных продукций".
2 Основания для разработки:
    Задание для лабораторной работы  по дисциплине "теория вычислительных процессов и структур. Условное обозначение разработки - лабораторная  работа.
3 Постановка задачи.
      Разработать программу, реализующую алгоритм устранения цепных продукций в не укорачивающейся КС–грамматики G(N,E,P,S).
  
4 Требования к программе и программному изделию:
4.1 Требования к функциональным характеристикам:
    Программный продукт может быть реализован в  виде готового исполняемого модуля. Входные данные вводятся в интерактивном режиме. Выходные данные выводятся на дисплей.
    4.2 Требования к надежности:
    Должно  быть обеспечено устойчивое функционирование, контроль входной и выходной информации и, наконец, достоверность результата. Программа должна быть отказоустойчивой.
    4.3 Условия эксплуатации:
    Для нормального функционирования программного продукта необходимо соблюдение всех требований и правил эксплуатации компьютерной техники. Дополнительных требований и ограничений не вводится. Требования к персоналу работающему с данным программным продуктом: количество обслуживающего персонала - не менее одного. Необходимая квалификация - общие знания теории вычислительных процессов и структур.
    4.4 Требования к составу и параметрам технических средств:
    Программе требуется компьютер фирмы IBM или  совместимый с ним, с процессором  не ниже 80286 фирмы INTEL или с ним совместимый.
    4.5 Требования к информационной и программной совместимости:
    Реализовать программу на любом языке программирования. Информационные структуры на входе  и выходе и методы решения, а также  исходные коды могут быть разработаны на любом языке программирования в соответствии с его стандартам.
    4.6 Требования к маркировке и установке:
    Программа должна отвечать общим требованиям  по установке программных продуктов, т.е. программа должна быть переносима.
    4.7 Требования к транспортировке и хранению:
           Требования к транспортировке и хранению соответствуют общим требованиям предъявляемым к носителям информации, на которых содержится программный продукт.
     4.8 Требования к программной документации:
       Документация к ПО:
    - постановка задачи.
    - структурная схема программы.
    – выбор  языка программирования и средств.
    – руководство  пользователя.
    - руководство программиста.
    – текст  программы. 
     
     

5 Технико-экономические показатели:
Экономическая эффективность программного продукта отсутствует, т.к. программа носит  учебный характер. Информация о отечественных и зарубежных аналогах отсутствует. 

6 Стадии и этапы разработки:
    - постановка задачи
    - построение математической модели
    - машинный алгоритм
    - программа
    - тестирование (общее и экстремальных случаев)
    - документация
Разработчиками  являются : студенты ДГТУ группы Ис-3-39 Цветков А.Е,
Головань  С
7 Порядок контроля и приемки:
Визуальное  ознакомление и запуск с тестовыми  примерами заказчика.
Ознакомление  с документацией. 
 
 

Алгоритм.
(Устранение  цепных продукций  в КС-грамматики).
Вход: Не укорачивающаяся КС-грамматика G=(N, S, P, S).
Выход: Не укорачивающаяся КС-грамматика G’=(N’, S, P’, S’), без цепных продукций, у которой L(G’)=L(G).
Метод: Для каждого А из N строится подмножество ND={B|A?*B} Множества N и, на основе этого, конструируется новая грамматика.
Шаг 1: Для каждого А из N построить ND={B|A?*B}.
Шаг 1.1: Положить N0={A} и i=1.
Шаг 1.2: Положить
Шаг 1.3: Если Ni?Ni-1, то положить i=i+1 и повторить Шаг 1.2, в противном случае положить ND=Ni.
Шаг 2: Построить P’ так: если продукция B®a принадлежит Р и не является цепной, то включить в Р’ продукцию (A®a) для всех таких A, что BIND.
Шаг 3: Построить  грамматику G’=(N, S, P’, S).
 
 
Выбор языка и средств
                 Delphi. Основные характеристики .
Delphi - это комбинация  нескольких важнейших технологий:
    Высокопроизводительный компилятор в машинный код
    Объектно-ориентированная модель компонент
    Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
Компилятор  в машинный код
Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре "клиент-сервер". Этот компилятор в настоящее время  является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).
В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.
Объектно-ориентированная  модель программных  компонент
Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет  разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.
В стандартную  поставку Delphi входят основные объекты, которые образуют удачно подобранную  иерархию из 400 базовых классов. Для начала - неплохо. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, советуем, прежде чем попытаться начинать решать проблему "с нуля", просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250, хотя, возможно, я не обо всех знаю. Скептики, возможно, не поверят мне, когда я скажу, что на Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Тем не менее, это так. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.Диапазон разработанных при помощи Delphi программных продуктов также поражает - от игровых программ до мощнейших банковских систем. Прошло всего полгода - и столько результатов. Delphi как продукт имеет версию 6.0, уже имееются сведения о том, что предполагается реализовать в следующей версии Delphi, и поскольку Delphi разрабатывается на Delphi, можем быть уверены, что разработка новой версии ведется действительно скоростными методами. 
 
 

Тестовый  пример 

       Тестовый пример возят из учебного  пособия: «Элементы теории формальных  языков» В.М. Деундяк,    г.  Ростов-на-Дону 1997год.
       
         Пример: Рассмотрим не укорачивающуюся  КС– грамматику G=({W,S,A,B},{0,1},P,W)  где состоит P из продукций Применим к грамматике G алгоритм и получим не укорачивающуюся КС- грамматику G’==({W,S,A,B},{0,1},P’,W), где Р’ состоит из продукций(РИС 1)  
        Применим к грамматике G алгоритм и получим не укорачивающуюся КС- грамматику G’==({W,S,A,B},{0,1},P’,W), где Р’ состоит из продукций:Среди которых нет цепных. 

Руководство оператора.

4.1 Назначение  программы.

Программа предназначена для устранения цепных продукций в не укорачивающейся  КС–грамматики G(N,E,P,S).

4.2 Условия  выполнения программы.

     Для функционирования программы необходим  набор стандартных технических  средств. Набор необходимых программных средств данной программе обеспечивает библиотеки языка программирования –DELPHI. 

    Для выполнения программы требуется:
    Компьютер - IBM или совместимый с ним.
    Операционная система Windows 9X,
    Процессор - не ниже 80486 фирмы INTEL.
    Память - не менее 1 Mбайт.

4.3 Выполнение  программы.

  При запуске  программы появляется рабочий интерфейс программы (рис 2).Как вы видете у программы  три рабочих окна и три кнопки.
По порядку слева на право
          Кнопка MEMORY используется для внесения  Введенной подукции в буфер обмена (после ввода каждой продукции ее надо нажимать )
          Окно ввода левой части продукции (нетерминалов)
          Окно ввода правой части продукции (правую часть продукции вводить так например 0A|0|1B|1)
          Кнопка GO –приминение алгоритма к введенным продукциям, используется только после ввода всех продукций.
          Кнопка REPLAY -перезапуск программы (после нажатия выдает пример вводимых продукций )
          Окно вывода результата (изначально, названно, mmOutput) в этом редактируемом окне вы получаете искомый результат.
          Кнопка CLOSE предназначенна для выхода из программы.
 
Программа работает с заглавными и прописными буквами. 
 

4.5 Сообщения оператору
нет сообщений.

Руководство программиста.

3.1 Назначение  и условия применения.

       Программа предназначена для  устранения цепных продукций  в не укорачивающейся КС–грамматики G(N,E,P,S).
    Для функционирования программы необходим  набор стандартных технических  средств. Набор необходимых программных средств данной программе обеспечивает библиотека языка программирования – DЕLPHI
    Для выполнения программы требуется:
    Компьютер - IBM или совместимый с ним.
    Процессор - не ниже 80486 фирмы INTEL.
    Операционная система Windows 9X
    Память - не менее 1 Мбайт.

3.2 Характеристики  программы.

    Основные  характеристики программы:
    Временные характеристики - незначительны и зависят от количества вводимых продукций.
    Режимы работы - программа работает в текстовом режиме.
    Средства контроля правильности выполнения - контрольный пример.

3.3 Обращение  к программе.

    Файл  запуска программы: BIBOB.exe (без параметров).

3.4 Входные  и выходные данные.

    Входные данные: неукорачивающаяся КС- грамматика G(N,E,P,S).
    Выходные  данные: неукорачивающаяся КС- грамматика G(N,E,P’,S) без цепных продукций. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  7.       Текст программы.

  unit DE_CURSDELPROD; 

interface 

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls; 

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Bbrun: TBitBtn;
    Bbcloce: TBitBtn;
    edInput: TEdit;
    Label1: TLabel;
    mmOutput: TMemo;
    edInput1: TEdit;
    Bbrun1: TBitBtn;
    bbRun2: TBitBtn;
    St: TStaticText;
    procedure BbrunClick(Sender:TObject);
    procedure Bbrun1Click(Sender:TObject);
    procedure FormCreate(Sender:TObject);
    procedure bbRun2Click(Sender:TObject);
              private
    { Private declarations}
  public
    { Public declarations }
  end;
   const n=20;
var
  Form1: TForm1;
  s1:array[0..n,0..n] of string[6];
  s2:array[0..n,0..n] of string[6]; 
 

implementation 

{$R *.DFM} 

{procedure TForm1.Memo1Change(Sender: TObject);
begin 

end;} 

procedure TForm1.BbrunClick(Sender: TObject); 

Procedure Enter;
var
  S:String;
  i,j,i1:byte; 

  begin
    i:=Bbrun.tag;
    S1[i,0]:=edInput1.Text;
    i1:=length(s1[i,0]);
     s1[i,0]:=s1[i,0][i1];
     S:=edInput.Text;
     if S=' ' then
       Exit
      else
      begin
      for j:=1 to n do
      begin
        if  pos('|',S)=0
        then
        begin
          s1[i,j]:=Trim(S); break;
        end
        else
        begin
          s1[i,j]:=copy(S,1,pos('|',S)-1);
          Delete(S,1,pos('|',S));
        end;
      end;
      end;
     s:='';   j:=0;
     while (s1[i,j]<>'') do
     begin
       j:=j+1;
       if s1[i,j+1]<>''
       then
         begin
           s:=s+s1[i,j]+'|';
         end
       else
         s:=s+s1[i,j];
     end;
     s:=s1[i,0]+'->'+s;
     i:=i+1;  Bbrun.tag:=i;
     mmOutput.Lines.Add(s);
     edInput.Text :='' ;
     edInput1.Text:='';
end;
begin
enter;
end; 

procedure TForm1.Bbrun1Click(Sender: TObject);
    var
s3:array[1..n] of string[6];
l:'A'..'Z';
i,j:byte;     s:string;
{==========================================================}
procedure udprod;
var
i,i1,j,k1:byte;
begin
{===Удаление одинаковых значений=========}
for  k1:=0 to n do
for  i1:=0 to n do
  for i:=0 to  n-2 do
    for j:=i to n-2 do
    begin
      if s1[i1,i]=s1[i1,j+1]
      then
        s1[i1,j+1]:=s1[i1,j+2];
    end;
{============================================================}
end;
{============================================================}
Procedure end1;
var
i,j,k1:byte;  l:'A'..'Z';
begin
  {for i1:=1 to n do}
  for l:='A' to 'Z' do
    for i:=0 to n do
      if s1[i,0]<>'' then
    for j:=1 to n do
    begin
      if s1[i,j]=l then
      begin
        k1:=j;
        while s1[i,k1]<>'' do
        begin
          if s1[i,k1]<>'' then
          s1[i,k1]:=s1[i,k1+1];
          k1:=k1+1;
        end;
        s1[i,k1-1]:=l;
      end;
    end; 

end;
{============================================================}
procedure pr;
var
i,i1,i2,j,j1,k2,k3:byte;  l:'A'..'Z';
begin 

{------------------------------------------------------------}
k3:=0;
for i2:=0 to n do
if s1[i2+1,0]<>'' then
begin
k3:=k3+1;
for k2:=0 to n do
if s1[k2+1,0]<>'' then
begin
  for l:='A' to 'Z'do
  begin
     i:=i2; j:=0;i1:=0;
    repeat
      i:=i+1;
      repeat
        j:=j+1;
        if l=s1[i-1,j]
        then
        begin
          repeat
            i1:=i1+1;
            if s1[i1,0]=l
            then
            begin
{--------------------------Сдвиг------------}
             while s1[i-1,j]<>'' do
              begin
                s1[i-1,j]:=s1[i-1,j+1];
                j:=j+1;
              end;
              j1:=1;
{----Запоминаем  старые и вставляем новые---}
              repeat
                s3[j1]:=s1[i-1,j];
                s1[i-1,j-1]:=s1[i1,j1];
                j:=j+1;     j1:=j1+1;
              until s1[i1,j1]='';
              j1:=1;
{----Вставляем  новые-запомненые символы--}
              repeat
                s1[i-1,j]:=s3[j1];
                j:=j+1;     j1:=j1+1;
              until s3[j1]='';
{--------------------------------------}
            end;
        until s1[i1,0]='';
     end;
      until s1[i,j]='';
    until s1[i,j]='';
  end;
  udprod;
  end1;
end
else
    break
end
else
    break; 
 

{==================================================} 

{------------------------------------------------------------}
for i2:=k3 downto 0 do
begin
for k2:=0 to n do
if s1[k2+1,0]<>'' then
begin
for l:='A' to 'Z'do
  begin
     i:=i2; j:=0;i1:=n;
    repeat
      i:=i-1;
      repeat
        j:=j+1;
        if l=s1[i+1,j]
        then
        begin
          repeat
            i1:=i1-1;
            if s1[i1,0]=l
            then
            begin
{--------------------------сдвиг------------}
             while s1[i+1,j]<>'' do
              begin
                s1[i+1,j]:=s1[i+1,j+1];
                j:=j+1;
              end;
              j1:=1;
{----запоминаем  старые и вставляем новые---}
              repeat
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.