Разработка программы, моделирующей алгоритм работы машины Тьюринга
Основы объектно-ориентированного программирования. Методы применения готовых компонентов для решения практических задач. Создание программы, реализующей процесс поиска и отслеживания положения экстремума простейших унимодальных функций с течением времени.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.06.2016 |
Размер файла | 602,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
while redt3.Lines[t] <> '' do //пока не конец данных удалять
begin
zapoln(redt3.Lines[t], ' '); Inc(t);
end;
if edt1.Text <> '' then //если изменена позиция на ленте
begin
Val(edt1.Text, t, k);
if k<>0 then
begin
Showmessage('Неверный синтаксис команды! Проверьте правильность набора и повторите ввод.');
exit
end;
if StrToInt(edt1.Text)>len-1 then //если выход за границы ленты
begin
Showmessage('Выход за границы ленты! Измените параметры команды.');
Exit;
end;
if flag then Exit; //если неправ. ввод чисел
poss:= StrToInt(edt1.Text); i:= (poss div 51)*51;
Form1.perezap_R(i); //перезапись с эл-та №i
Form1.trckbr1.Position:= poss - i; prib:= 0;
end
else
begin
if flag then Exit;
if len-1>=(poss+prib) then //если изменённая длина ленты >= исходной дл.
begin
i:= (poss+prib)-Form1.trckbr1.Position;
Form1.perezap_R(i);
end
else begin //иначе занесение в таблицу последних 51 ячеек
for t:= 0 to 50 do
begin
// Form1.lv1.Columns[t].Caption:= mas[len-1-50+t];
//Form1.lv2.Columns[t].Caption:= IntToStr(len-1-50+t);
Form1.lv3.Cells[t, 0]:= mas[len-1-50+t];
Form1.lv3.Cells[t, 1]:= IntToStr(len-1-50+t);
Application.ProcessMessages
end;
Form1.trckbr1.Position:= 50;
poss:= len-1; prib:= 0;
end;
end;
Val(edt3.Text, t, k);
if k<>0 then //Если неправ. команда
begin
k:= 0; ShowMessage('Неправильный ввод данных. Повторите ввод'); exit
end;
c:= t; //Пауза между командами
end;
///Заполнение ленты
procedure TForm2.zapoln(st: string; o_i: char);
var
i, n, m, k: Integer;
s, str: string;
begin //занесение в s очередной строки
i:= 1; s:= ''; s:= s+Trim(st); Insert(' ', s, 1);
while i<= length(s) do //пока тек. № эл-та <= длины строки
begin
if s[i]=' ' then
begin //Выделение числа из строки
Inc(i);
repeat
str:= str+s[i];
Inc(i);
until (s[i] = ' ')or(s[i] = '-')or(s[i]=#0);
Val(str, n, k);
if k<>0 then
begin
Showmessage('Неверный синтаксис команды! Проверьте правильность набора и повторите ввод.');
exit
end;
n:= StrToInt(str); m:= StrToInt(str); str:= '';
end;
if s[i] = '-' then
begin //выделение числа из строки(диапазона)
Inc(i);
repeat
str:=str+ s[i];
Inc(i);
until (s[i] = ' ')or(s[i]=#0);
Val(str, m, k);
if k<>0 then
begin
Showmessage('Неверный синтаксис команды! Проверьте правильность набора и повторите ввод.');
exit
end;
m:= StrToInt(str); str:= '';
end;
if m>len-1 then //если число > границы ленты, то стоп
begin
Showmessage('Выход за границы ленты! Измените параметры команды.');
flag:= true; Exit;
end;
for k:=n to m do //внесение эл-тов в соответств. ячейки
mas[k]:= o_i;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
edt2.Enabled:= False;
end;
///Возможность изменения длины ленты
procedure TForm2.chk1Click(Sender: TObject);
begin
if chk1.Checked then
edt2.Enabled:= True
else edt2.Enabled:= False;
end;
///Отмена
procedure TForm2.btn2Click(Sender: TObject);
begin
Close;
end;
///Обновление данных
procedure TForm2.FormActivate(Sender: TObject);
begin
edt1.Text:= IntToStr(poss+prib); //тек. позиция
edt2.Text:= IntToStr(len) //тек. длина ленты
end;
end.
unit Unit6; //О разработчике
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm6 = class(TForm)
pnl1: TPanel;
lbl1: TLabel;
lbl2: TLabel;
pnl2: TPanel;
lbl3: TLabel;
lbl4: TLabel;
pnl3: TPanel;
lbl5: TLabel;
lbl6: TLabel;
pnl4: TPanel;
lbl7: TLabel;
lbl8: TLabel;
pnl5: TPanel;
lbl9: TLabel;
lbl10: TLabel;
lbl11: TLabel;
btn1: TBitBtn;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
///Закрыть
procedure TForm6.btn1Click(Sender: TObject);
begin
close
end;
end.
Основная программа:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1}, //Осн. программа
Unit2 in 'Unit2.pas' {Form2}, //Настройки
Unit6 in 'Unit6.pas' {Form6}; //О разработчике
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm6, Form6);
Application.Run;
end.
Приложение 2
Руководство пользователя
1. Запуск программы.
После запуска программы перед пользователем появится следующее окно:
Рис. 10. Окно программы
Опишем основные компоненты программы:
§ В верхнем правом углу экрана дан набор команд и их значения. Этими командами осуществляются все необходимые для реализации алгоритмов действия.
§ В левом углу располагается окно, куда непосредственно вводятся команды, каждая с новой строки. Ниже находится окно для заметок по выполняемому алгоритму.
§ Внизу находится сама "лента", воспроизводящая при нажатии на кнопку "Пуск", все введённые команды. Также по бокам имеются кнопки, позволяющие просматривать "ленту".
2. Окно «Настройки»:
В главном меню на закладке "Настройки" имеется возможность: задать положение ползунка, изменить длину ленты, удалить или установить элементы как в отдельной ячейке, так диапазону ячеек. Номера ячеек отделяются пробелами, а чтобы указать диапазон используется дефис. При написании не должно быть пустых строк. Оно имеет вид:
Рис. 11. Окно «Настройки»
3. Основное меню:
Оно имеет вид:
Рис. 12. Меню «Файл»
Рис. 13. Меню «Помощь»
4. Сохранение и примеры:
Также возможно сохранить введённые команды, примечания и команды из "Настройки" и открыть ранее сохранённый проект. Для этого необходимо выбрать соотетствующие пункты из меню-файл.
5. Меню «Помощь»:
При выборе в меню «Помощь» пункта «Справка» откроется файл-справка в формате chm.
Кликнув мышкой по пункту «О разработчике» появится окно, содержащее информацию о разработчике данного программного средства:
Рис. 14. «О разработчике»
Размещено на Allbest.ru
...Подобные документы
Создание программы на языке объектно-ориентированного программирования С++, реализующей построчный перевод текста (по словам) с английского на русский. Описание алгоритма решения задачи. Основные функции программы, примеры результатов ее работы.
отчет по практике [527,5 K], добавлен 10.04.2016Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Принципы работы и основы программирования машины Тьюринга, а также перечень правил написания алгоритмов на ее эмуляторе. Особенности решения задачи по сложению нескольких чисел в двоичной системе путем реализации ее алгоритма на эмуляторе машины Тьюринга.
контрольная работа [82,4 K], добавлен 05.12.2010Разработка прикладной программы для операций создания и уничтожения объектов в системе визуального объектно-ориентированного программирования C++Builder. Алгоритм работы программы, набор функций и операторов, компонент и модулей, кнопки событий.
дипломная работа [672,5 K], добавлен 16.08.2012Создание блок-схемы алгоритма и реализующей его программы, снабженных пояснениями, для решения задач. Реализация программы в среде Delphi как проекта консольного приложения. Основные алгоритмические структуры, соответствующие операторы для их реализации.
контрольная работа [447,4 K], добавлен 08.10.2012Инфологическое проектирование базы данных "Читальный зал" в среде СУБД MS Access. Расширение теоретических и практических знаний по использованию готовых и созданию собственных БД, применяя систему объектно-ориентированного программирования Delphi.
курсовая работа [3,8 M], добавлен 10.12.2013Разработка игры "Экзамен" с применением объектно-ориентированного программирования и языка Java (в среде Eclipse Helios). Структура программы и алгоритм решения задачи. Описание методов и переменных. Экспериментальное тестирование и оценка программы.
курсовая работа [122,5 K], добавлен 19.05.2011Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.
курсовая работа [500,4 K], добавлен 13.01.2015Характеристика основных принципов объектно-ориентированного программирования. Этапы разработки программы на языке C++, реализующей игру "Морской бой". Выбор языка программирования. Характеристика необходимых классов, наследований, виртуальных методов.
курсовая работа [657,6 K], добавлен 17.06.2012Особенности объектно-ориентированного программирования. Основные возможности языка программирования Java, классификация платформ. Создание программы, обеспечивающей вычисление арифметических выражений. Руководство пользователя и характеристика функций.
курсовая работа [1,2 M], добавлен 07.07.2012Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Характеристика структурированного языка программирования С, его основных структурных компонентов, области памяти, библиотеки. Методы поиска в массивах данных. Описание программы, функции сортировки и меню выбора, последовательного и бинарного поиска.
курсовая работа [1,7 M], добавлен 19.05.2014Разработка приложения "Калькулятор с переходом в строковый калькулятор" с применением объектно-ориентированного программирования. Концепция и понятия объектно-ориентированного программирования. Язык программирования Java. Листинг программы "Калькулятор".
курсовая работа [966,9 K], добавлен 11.02.2016Определение назначения и описание функций дискового кэша как промежуточного буфера с быстрым доступом к информации. Процесс кэширования внешних накопителей. Построение алгоритма, описание интерфейса и разработка программы для работы с двусвязным списком.
курсовая работа [2,1 M], добавлен 21.01.2014Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Осуществление работы разрабатываемой программы на основе алгоритма, использующего Z-буфер. Аналитическое описание программной реализации. Алгоритмы основных функций программы. Содержание руководства пользователя. Файлы программы, пункты главного меню.
курсовая работа [1,7 M], добавлен 15.04.2015Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных.
курсовая работа [1,2 M], добавлен 22.01.2012Изучение методик языка Javascript по формализации и решению поставленной задачи, технологических приемов разработки программ на языке Javascript, HTML, CSS. Формально определение машины Тьюринга, распознающую язык. Ее программная модель, протоколы работы.
курсовая работа [220,7 K], добавлен 03.03.2015Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014