Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2010 16:56:22

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

И так мне нужно задать такие операторы
отрицание - (&)
коньюнкция - (>)
дизюнкция - (<)
еквиваленция - (=)
импликация - (_)

так чтобы они могли состыковатся с буквами только таким способом:
Если у нас буквы X,Y
(&X), (X>Y), (X<Y),(X=Y),(X_Y).
Также чтоб могли состыковатся теперь эти скобки между собой( таким же способом), только представьте что эти скобки это наши буквы.И скобки по краям тоже обязательны.

Но чтоб если гдето не хваало скобки,
&X), или (&X)>Y)
или операторы состыковывались между собой например вот так
(X_=Y),
ещё оператор & , не может соеденять 2 буквы, он работает только с 1 , тоесть выражение вида:
(X&Y) должно выдать ошибку.

А выражение вида :

(X>(&Y)) уже должно пройти без ошибок.

Тоесть,
1 что надо сделать……., это написать программу которая определяет что кол-во открывшихся = колву закр. скобок( но это легко, и давно сделано)
2 что надо сделать……., это чтоб программа выдавала ошибку при соеденении 2и более операторов например (X>=Y)( вот это я уже не знаю как реализовать)
3 что надо сделать………. Это чтоб Оператор & выдавал ошибку если он состыкует 2 переменные.

По сути дела мне надо определить является ли заданая функция ФАВ или нет, если вы не поняли моего обьяснения, то вот можно скачать методичку, где более подробно описывается что можно делать а что нельзя http://fmponmu.narod.ru/metodichki/odm.exe



Офлайн

#2 Март 26, 2010 18:25:22

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Alex_Kutsan
http://fmponmu.narod.ru/metodichki/odm.exe
Уменя Linux, как я могу прочитать odm.exe?



Офлайн

#3 Март 26, 2010 19:40:53

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2742
Репутация: +  183  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Что то я ничего не понял :(, хотя и пытался.

> Уменя Linux, как я могу прочитать odm.exe?

Это обычный архив его wine распаковать может, Но всё равно вникать в Основы дискретной математики у меня нет никакого желания.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Март 26, 2010 20:26:10

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Кстати. Хочу построить самолёт. Он должен уметь взлетать и совершать посадку. Хочу в салоне множество датчиков. Обязательно нужен автопилот. Ещё будет клёво, если там будет система тушения пожара.
Вот методичка по сопромату - http://sopromat.org
Если вы не поняли моего обьяснения, убейтесь, тупые, ленивые твари.

Итак, нужно:
1) Найти много железа. (я знаю где взять)
2) Написать программу для автопилота (это я не представляю как сделать, напишите ктонить)
3) Сделать чертёж самолёта, чтобы он не развалился.



Офлайн

#5 Март 26, 2010 20:37:12

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Я уже придумал как это сделать( прошу прощения конечно что так нагло пытался обучить ОДМ, но про самолёт очень смешно:)) конечно осталось только ооочень много писанины.

По ходу выполнения столкнулся с 1 проблемой:
как в операторе цикла wile пропустить первый случай совпадения?
просто мне нужно сделать параметры возможности для всех открывающихся скобок КРОМЕ ПЕРВОЙ!!!, но цикл while захватывает 1 тоже, что делать? как сделать так чтоб цикл while пропустил 1 символ строки



Офлайн

#6 Март 26, 2010 20:46:04

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Alex_Kutsan
как сделать так чтоб цикл while пропустил 1 символ строки
Начать считать со второго?



Офлайн

#7 Март 26, 2010 20:51:21

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Alex_Kutsan
как в операторе цикла wile пропустить первый случай совпадения?
Например завести переменную, значение которой равно нулю. При совпадении проверить значение переменной. Если нулевая, то присвоить единицу и идти дальше. Если не нулевая, то…



Офлайн

#8 Март 26, 2010 21:06:47

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

О боже мой, какой же я идит, как я не додумался…. Спасибо огромное.
Но меня остаановила новая проблема. Вот мой код( его не нужно разбирать, там ничего важного):

n= "(((!x)>x)_((!y)=(!x)))"
ch=["x","y"]
tf = False
for simv in n:
for oprt in opr:
if simv==oprt:
tf=True
if tf==False:
print "NO"
tf = False
for simv in n:
if simv == "(":
tf = True
if tf==False:
print "NO"
brackets = 0
for letter in n:
if letter == '(':
brackets += 1
elif letter == ')':
brackets -= 1
if brackets != 0:
print "NO"

for simv in n:
for chya in ch:
if simv == chya:
t=0
while t<len(n):
if n[t]==simv:
q=t
break
t=t+1
if n[q+1]== "(" or n[q+1]=="&":
tf = False
if n[q-1]==")":
tf = False
if tf = False:
print "NO"
так вот я не знаю как сделать чтоб при первом же выпавшем “print ”NO“” программа завершалась.
что нужно написать после каждого “print ”NO“”



Офлайн

#9 Март 26, 2010 21:20:39

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

Самым красивым решением будет изменить архитектуру так, чтобы “NO” возвращала некая функция при нарушении некоторых условий. Тогда проблема отпадёт сама собой.

А в этом коде можно понатыкать слово break после каждого print “NO”.

Хотя нет. break тут не будет работать. Я думаю, имеет смысл изменить архитектуру.



Отредактировано (Март 26, 2010 21:29:23)

Офлайн

#10 Март 26, 2010 21:41:48

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Сочетание символов, как задать операторы.

О боже мой, не пугайте меня изменением архитектуры, я так над этой мучался, да и вобще я уже 3 раза менял архитектуру и всё заново переписывал.
Или скажите хоябы как полегче её изменить, смысл ведь прост, везде где у меня “print ”NO“ нужно чтобы если так случилось что эты фраза высветится( она появляется только при определёных условиях) по нажатию Энтер программа просто вырубалась. Неужели это так сложно вырубить программу в любом месте?

Если чесно я ещё немного не понял эту фразуЖ
”Самым красивым решением будет изменить архитектуру так, чтобы “NO” возвращала некая функция при нарушении некоторых условий. Тогда проблема отпадёт сама собой."



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version