Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.06.2016
Сообщений: 3
1

Реализовать программу, проверяющую цепочку действий на верность заданныму графом алгоритму

13.06.2016, 22:03. Просмотров 1003. Ответов 2
Метки нет (Все метки)

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

граф является неким алгоритмом , по которому должна проверяться введенная цепочка

Примеры правильных цепочек:
1. DO A10 = 13.3 LOOP UNTIL C=0
2. DO D = -40 LOOP UNTIL A = 10 OR B10 < 18
0
Миниатюры
Реализовать программу, проверяющую цепочку действий на верность заданныму графом алгоритму  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2016, 22:03
Ответы с готовыми решениями:

Реализовать программу шифрования/дешифрования по алгоритму Трисемуса
Пожалуйста помогите написать программу срочно!!! Заранее спасибо!!!

Реализовать программу шифрования/дешифрования по алгоритму Гронсфельда
1/ Реализовать программу шифрования/дешифрования по алгоритму Гронсфельда 2/ Реализовать программу...

Реализовать программу шифрования/дешифрования по алгоритму омофонов
Задание: Реализовать программу шифрования/дешифрования по алгоритму омофонов!

Реализовать программу шифрования/дешифрования по алгоритму Афинная система подстановки Цезаря
Помагите пожалуйста!)))

2
395 / 335 / 120
Регистрация: 09.09.2011
Сообщений: 1,208
16.06.2016, 10:53 2
Лучший ответ Сообщение было отмечено Bossy1611 как решение

Решение

ну я подозреваю что вам нужно реализовать конечный автомат для решения.

но с практической точки зрения можно и регулярное выражение подобрать.
Вот мой вариант, хотя наверняка регулярка не самая оптимальная. Программа консольная но переделать в графику не проблема (ИМХО):

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
program regexp_match;
{программа по заданию с https://www.cyberforum.ru/delphi/thread1762160.html}
{$mode objfpc}{$H+}
 
uses
  Classes, sysutils, RegExpr;
 
const
  S1  = '^DO\x20{1,}';                   // DO_
  S2  = '[A-Z]';                         // A..Z
  S3  = '([A-Z]|\d){0,}';                // A..Z 0..9
  S4  = '\x20{0,}=\x20{0,}';             // =
  S41 = '\x20{0,}(=|<|>|<=|>=)\x20{0,}'; // = < > <= >=
  S5  = '(\d|-\d)';                      // 0..9 -0..9
  S6  = '(\d{0,}|\d{0,}.\d{1,})';        // .
  S7  = '\x20{1,}LOOP UNTIL\x20{1,}';    // _LOOP UNTIL_
  S8  = S2 + S3 + S4 + '\d{1,}';         //
  S9  = '(' + S8 + '\x20{0,}$' +  '|' + S8 + '(' + '\x20{0,}(AND|OR)\x20{0,}' + S2 + S3 + S41 + '\d{1,}' + '){1,}' + ')';
 
var
  testSt1: String = 'DO A10 = 13.3 LOOP UNTIL C=0';
  testSt2: String = 'DO D = -40 LOOP UNTIL A = 10 OR B10 < 18';
  testSt3: String = 'DO D  = -40.00 LOOP UNTIL A = 10 AND  B10 > 18';
  regExp: TRegExpr;
 
begin
  RegExp:= TRegExpr.Create;
  //writeln('expression = ', S1 + S2 + S3 + S4 + S5 + S6 + S7 + S9);
  regExp.Expression:= S1 + S2 + S3 + S4 + S5 + S6 + S7 + S9;
  writeln(regExp.Exec(testSt1));
  writeln(regExp.Exec(testSt2));
  writeln(regExp.Exec(testSt3));
  FreeAndNil(regExp);
  readln;
end.
тестировал на freepascal из поставки lazarus 1.4.2
1
0 / 0 / 0
Регистрация: 13.06.2016
Сообщений: 3
27.06.2016, 22:15  [ТС] 3
спасибо!!! очень помогли!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2016, 22:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Реализовать в виде модуля набор подпрограмм для работы с графом
Определим граф как набор точек, некоторые из которых единены отрезками, подграф — как граф,...

Реализовать цепочку вызовов
Добрый день, ребята! Скажите пожалуйста, правильно ли я решил задачку ... Есть ... $b = new...

написать программу с графом
В клубе N человек. Многие из них - друзья. Так же известно, что друзья друзей так же являются...

Как правильно реализовать цепочку вызовов? $o->first()->second();
$o = new Circle(); $o-&gt;first()-&gt;second(); class Circle{ ... }

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

Реализовать шифрование по алгоритму IDEA
Необходимо реализовать шифрование по алгоритму IDEA, однако возник вопрос, на который преподы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.