Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

Нашел в учебнике "Языки и грамматики программирования"... :)   Найти похожие ветки 

 
oldman ©   (2006-04-25 17:43) [0]

Причем на полном серьезе пишут:
"if b then E else E"
бедные, бедные студенты...


 
Calm ©   (2006-04-25 17:47) [1]

очепятка ?


 
Мефисто   (2006-04-25 17:48) [2]

А что они этим хотели сказать??? К чему там пример то хоть был?


 
McSimm ©   (2006-04-25 17:48) [3]

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


 
Cashmare ©   (2006-04-25 17:49) [4]

Либо там рядом смайл нарисован, либо одна из букв Е - это Ё :)


 
oldman ©   (2006-04-25 17:49) [5]


> Calm ©   (25.04.06 17:47) [1]


Вряд ли, там рассматривается этот пример листах на двух...


 
McSimm ©   (2006-04-25 17:49) [6]

если условие то выражение иначе выражение

не то же самое ?


 
Джо ©   (2006-04-25 17:50) [7]

>
>
> [3] McSimm ©   (25.04.06 17:48)
> я наверное в танке, но можно пояснить, в чем тут причина
> несчастий для студентов ?

Наверное, что данные код можно сократить в незамысловатую конструкцию: E.


 
oldman ©   (2006-04-25 17:51) [8]


> McSimm ©   (25.04.06 17:49) [6]
> если условие то выражение(1) иначе выражение(2)
>
> не то же самое ?


Просто, зачем там if, если
выражение1 = выражение2


 
Мефисто   (2006-04-25 17:51) [9]

McSimm ©   (25.04.06 17:49) [6]

Сомневаюсь :)
Ибо  >> выражение иначе выражение по ихней схеме равны. И смысл такое выполнять? Может я теперь в танке? ;)


 
McSimm ©   (2006-04-25 17:56) [10]

Ты эту задачу неправильно решил. Мы вчера проходили, что Икс равен пяти, а у тебя в ответе 7


 
McSimm ©   (2006-04-25 17:57) [11]

Если других несчастий у студентов нет, то я за них спокоен :)


 
oldman ©   (2006-04-25 17:58) [12]

Причем, пример дан, как пример "правильной" грамматики...


 
McSimm ©   (2006-04-25 18:05) [13]


> Джо ©   (25.04.06 17:50) [7]

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

Но смысла в подобных придирках я не вижу. Тем более вырвано из контекста (на двух листах :)


 
McSimm ©   (2006-04-25 18:06) [14]


> как пример "правильной" грамматики...

вот я так и подумал. с точки зрения грамматики что не так ?

А если я, к примеру, пишу схему предложения естественного языка, мне тоже надо предлог1 прилагательное1 и т.п. нумеровать ? Или студенты все-таки не настолько бедные :) ?


 
oldman ©   (2006-04-25 18:08) [15]


> McSimm ©   (25.04.06 18:06) [14]


Батенька, я не про грамматику языка (разговорного)...
Я про грамматику математическую (помнишь, небось!)...


 
Piter ©   (2006-04-25 18:09) [16]

Ну вообще желательно, чтобы неоднозначностей не было, ибо многие скажут, что приведенному примеру соответствует код:

if b then
 beep
else
 beep;


понятное дело, что такой код не есть оптимальный. Да прямо скажу - корявый код :)


 
oldman ©   (2006-04-25 18:11) [17]


> Piter ©   (25.04.06 18:09) [16]
> понятное дело, что такой код не есть оптимальный.


оптимальный можешь привести?
:)))))))))))))))))))
О том и речь!


 
McSimm ©   (2006-04-25 18:16) [18]


> ибо многие скажут

Ты бы так сказал ?


> О том и речь!

а мне кажется, что просто придраться очень хочется, а о чем речь надо в книжке смотреть, там два листа текста про эту конструкцию написано.


 
MBo ©   (2006-04-25 18:18) [19]

Да совершенно нормальное описание, подобное форме Бэкуса-Наура.
Подразумевается, что E - любое выражение


 
Мефисто   (2006-04-25 18:19) [20]

McSimm ©   (25.04.06 18:06) [14]

>> вот я так и подумал. с точки зрения грамматики что не так ?

Все не так т.к. программирование, а не урок родного языка :)

Вот правельный пример по F1

if ... { expression1 } then
begin
 if ... { expression2 } then
   ... { statement1 }
 else
   ... { statement2 }
end;

неправельный т.к. не имеет смысла.

if ... { expression1 } then
begin
 if ... { expression2 } then
   ... { statement1 }
 else
   ... { statement1 }
end;

Но мы, я так полагаю сойдемся, просто на очепятке в книжке ;)


 
oldman ©   (2006-04-25 18:20) [21]


> MBo ©   (25.04.06 18:18) [19]
> подобное форме Бэкуса-Наура.


Ни фига себе, ты еще помнишь эти фамилии...


 
nt   (2006-04-25 18:34) [22]

> Подразумевается, что E - любое выражение

не оператор?


 
KilkennyCat ©   (2006-04-25 18:41) [23]


>  [17] oldman ©   (25.04.06 18:11)
>
> > Piter ©   (25.04.06 18:09) [16]
> > понятное дело, что такой код не есть оптимальный.
>
>
> оптимальный можешь привести?


beep


 
Piter ©   (2006-04-25 20:32) [24]

oldman ©   (25.04.06 18:11) [17]
оптимальный можешь привести?


могу. Вместо:

if b then
beep
else
beep;


просто:

beep;

если "b" есть только проверка условия, а не вызов функций и т.д.


 
лшдлуттн   (2006-04-25 20:46) [25]


> если "b" есть только проверка условия, а не вызов функций
> и т.д.


вот имено. в этом варианте и е е оправдано.


 
Piter ©   (2006-04-25 21:04) [26]

лшдлуттн   (25.04.06 20:46) [25]
в этом варианте и е е оправдано


не оправдано.

Тогда уж:

b;
beep;


 
лшдлуитнСфе   (2006-04-25 21:17) [27]


> [26] Piter ©   (25.04.06 21:04)


спорим на бутылку виски, что данный метод есть метод защиты от пиратского копирования на основе вышеприведенного?


 
atruhin ©   (2006-04-25 21:39) [28]

Ну ведь McSimm и MBo вам давно дали "тонкий" намек!
Если это описание алгоритма, то это ошибка, если это описание грамматики (языка), то абсолютно корректная конструкция.


 
Думкин ©   (2006-04-26 06:03) [29]

var a : boolean;

function b : boolean;
begin
       if a then Halt(0) else Halt(2)
end;

procedure WyIDummy;
var z : boolean;
begin
      a := ......
      z := .....
      if z then b else b
end;


 
TUser ©   (2006-04-26 09:12) [30]

Нормально, если Е - нетерминальный символ.

Зы, пример не является примером грамматики, правильной или нет.


 
TUser ©   (2006-04-26 09:14) [31]


> Ну ведь McSimm и MBo вам давно дали "тонкий" намек!

Если учиться по намекам, даже и правильным, - такому можно научиться, что лучше сразу в гроб. Лучше пролистать этот учебник назад, страниц на 50.


 
Чапаев ©   (2006-04-26 09:37) [32]


> Да совершенно нормальное описание, подобное форме Бэкуса-
> Наура.
> Подразумевается, что E - любое выражение

Если бы было if <condition> then <expression> else <expression>, тогда бы это была вполне приличная БНФ, к которой не придерёшься... А если угловых скобок нету, то сие можно рассматривать лишь как обрывок глупого кода...


 
Думкин ©   (2006-04-26 09:39) [33]

> Чапаев ©   (26.04.06 09:37) [32]

1. в Бэкусе -Науре главное - скобки?
2. Я привел пример в рамках любимого Дельфи - где сие вовсе не глупость.
3. жду возражений.


 
Чапаев ©   (2006-04-26 09:50) [34]


> 1. в Бэкусе -Науре главное - скобки?

Для выделения нетерминальных символов -- таки да.


 
Думкин ©   (2006-04-26 10:04) [35]

> Чапаев ©   (26.04.06 09:50) [34]

А... вы о формлизации конкретного. - тоды ой... боня.


 
Piter ©   (2006-04-26 17:44) [36]

Думкин ©   (26.04.06 9:39) [33]
Я привел пример в рамках любимого Дельфи - где сие вовсе не глупость


бред ты какой-то привел:

Думкин ©   (26.04.06 6:03) [29]
var a : boolean;

function b : boolean;
begin
      if a then Halt(0) else Halt(2)
end;

procedure WyIDummy;
var z : boolean;
begin
     a := ......
     z := .....
     if z then b else b
end;


вырождается в:

var a : boolean;

function b : boolean;
begin
      if a then Halt(0) else Halt(2)
end;

procedure WyIDummy;
begin
     a := ......
     b;
end


 
oldman ©   (2006-04-26 17:51) [37]

разобрался я с этим примером...
это пример, как удлинить цепочку вывода.
например:
G({" ",i,f,t,h,e,n,l,s,b,A},{<E>},P,<E>)
P: E->(if b then E else E) или (A)
Можно построить цепочку: Е-А
А можно: Е-Е-Е-Е-Е-А

Действительно - пример из грамматик. Именно грамматик!
Меня просто смутил тупизм написания того самого "if"... :)))



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.025 c
2-1146724155
Мурзилка
2006-05-04 10:29
2006.05.21
выпадающее меню у кнопки ToolButton1


2-1146379449
ForX
2006-04-30 10:44
2006.05.21
Округлить число


15-1145618178
megabyte-ceercop
2006-04-21 15:16
2006.05.21
Сравнить с похожими играми.


15-1145547611
Mozgan
2006-04-20 19:40
2006.05.21
Как обработать событие OnClick???


15-1145764548
Der Nechk@ssoff
2006-04-23 07:55
2006.05.21
CRC





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский