Форум переехал на новый адрес: http://qsp.su



АвторСообщение
moderator


ссылка на сообщение  Отправлено: 23.03.08 23:35. Заголовок: Примеры кода


В этой теме будут примеры работающего кода для QSP.

Спасибо: 0 
Профиль Цитата Ответить
Ответов - 84 , стр: 1 2 3 4 5 All [только новые]







ссылка на сообщение  Отправлено: 28.03.08 07:40. Заголовок: ладно-ладно. НО хоро..


ладно-ладно. НО хорошо бы, что бы в новом хелпе было упомянуто, какие значения может возвращать та или иная функция. в-принципе, информации о том, что ложь=0 , истина= не 0 вполне достаточно, НО в хелпе не было сказано и этого и я думал так: ложь=0, истина=1. не ожидал других значений.

Спасибо: 0 
Профиль Цитата Ответить



ссылка на сообщение  Отправлено: 28.03.08 09:50. Заголовок: noname пишет: QSP м..


noname пишет:

 цитата:
QSP мне начинает нравиться...


Ну мы же тебе говорили! :)

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 12:01. Заголовок: noname, значение ..


noname, значение "-1" было выбрано не спроста :) в том же basic'е "истина" тоже -1. сделано для того, чтобы сократить число булевых / логических операций (т.к. отрицание 0 это не 1, а именно -1. отрицание -1 как раз 0). если бы 1 означала "истину", то пришлось бы вводить дополнительные операции, схожие с "and","or","no".. а это сильно запутывает новичков.

для примера - в c/c++ есть "||","&&","!" и есть "|", "&", "~".

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 12:03. Заголовок: noname пишет: хорош..


noname пишет:

 цитата:
хорошо бы, что бы в новом хелпе было упомянуто, какие значения может возвращать та или иная функция.


похоже, что только для strcomp забыл это указать :) уже добавил в новую версию...

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 28.03.08 18:59. Заголовок: следующий код получи..


следующий код получился в процессе разборок с массивами и вставками:

A['актёр1место']=22
$A['игрок']='1'
$x='1'
*pl $A['игрок']
*pl $x
if $A['игрок']=$x: *pl 'O.K!'
*pl A['актёр<<$x>>место']
*pl '--------------'
*pl A['актёр<<$A['игрок']>>место']
*pl '--------------'

как вы думаете, что выведет этот кусок кода?
по результатам я понял, что с массивами и вставками я разобрался,
а вот как теперь относиться к QSP?

я попробую организовать данные ещё как-нибудь иначе,
но терпение уже на исходе.

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 28.03.08 19:03. Заголовок: Byte пишет: $свойс..


Byte пишет:

 цитата:
$свойство['11_7_2'] = 'несъедобно'


свойство чего? вещи, непися, контейнера или ещё чего?
в большом проекте я хочу видеть:
$A['поле11вещь7свойство2']
где $A-все переменные создаваемого мира
'поле11вещь7свойство2'- второе свойство 7-й вещи из тех, что находятся на поле с координатами 1,1
(в моём случае мир пока небольшой)

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 19:07. Заголовок: в строке *pl A>&..


в строке *pl A['актёр<<$A['игрок']>>место'] ошибка. у тебя строка содержит внутри строку, которая задана неверно. нужно через дублирование кавычек (кавычки, включенные в строку):

 
*pl A['актёр<<$A[''игрок'']>>место']


Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 19:10. Заголовок: Плюс код можно немно..


Плюс код можно немного сократить до: ("*pl" можно убрать, также как лишние строки)

 
A['актёр1место']=22
A['игрок']=1
x=1
A['игрок']
x
if A['игрок']=x: 'O.K!'
A['актёр<<x>>место']
'--------------'
A['актёр<<A[''игрок'']>>место']
'--------------'


Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 28.03.08 19:30. Заголовок: Byte пишет: в строк..


Byte пишет:

 цитата:
в строке *pl A['актёр<<$A['игрок']>>место'] ошибка. у тебя строка содержит внутри строку, которая задана неверно. нужно через дублирование кавычек (кавычки, включенные в строку


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

собственно мне нужна такая строка:
*pl ' Вы находитесь '+$A['поле<<A[''актёр<<$A[''игрок'']>>место'']>>вид']
надеюсь, сработает...
без операторов *pl ИМХО текст проги труднее читать

и вообще, зря вы так URQL изуродовали. добавили бы всяких функций- и ладно. ну и интерфейс тоже неплох. управление инвентарём и кнопками(ACT) реализовано- суперкласс! моя первая прога на qsp будет обязательно кнопочной. хочу с вашими кнопочками побаловаться.

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 28.03.08 19:34. Заголовок: *pl ' Вы находит..


*pl ' Вы находитесь '+$A['поле<<A[''актёр<<$A[''игрок'']>>место'']>>вид']
не фурычит.
не соответствие открывающих и закрывающих...
причём не помогает делание $A[''актёр<<$A[''игрок'']>>место''] строковой переменной
та же ошибка

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 19:56. Заголовок: noname, это ни разу ..


noname, это ни разу не ошибка, всё логично..
в строках ты используешь ещё строки.. интерпретатор изначально должен получить исходную строку (пропустив "вложенные"). вложенность кавычек задается их дублированием.. то есть 2 подряд идущих апострофа "превращаются" в один апостроф. затем полученная строка проверяется на "подвыражения".. если нашли, то в подвыражении получаем ещё строку, которая, опять же, должна быть верно задана.. снова вложенность кавычек..

noname пишет:

 цитата:
собственно мне нужна такая строка:
*pl ' Вы находитесь '+$A['поле<<A[''актёр<<$A[''игрок'']>>место'']>>вид']


не сработает. опять же у тебя с вложенными кавычками проблемы..

 
A['игрок']=1
a['актёр1место']=2
$a['поле2вид']='лес'

*pl ' Вы находитесь ' + $A['поле<<A[''актёр<<A[''''игрок'''']>>место'']>>вид']

как это разбирается:
сначала получаем строку 'поле<<A[''актёр<<A[''''игрок'''']>>место'']>>вид', и определяем кавычки, включенные в строку. получаем:
поле<<A['актёр<<A[''игрок'']>>место']>>вид
далее здесь есть подвыражения. при вычислении A['актёр<<A[''игрок'']>>место'] находим строку 'актёр<<A[''игрок'']>>место', и определяем кавычки, включенные в строку. получаем:
актёр<<A['игрок']>>место
далее здесь есть подвыражения. при вычислении A['игрок'] находим строку 'игрок'. в ней нет кавычек, включенных в строку.
то есть при обратных подстановках получаем:
$a['поле<<A[''актёр1место'']>>вид']
затем
$a['поле2вид']
и далее
'лес'

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 20:09. Заголовок: noname пишет: причё..


noname пишет:

 цитата:
причём не помогает делание $A[''актёр<<$A[''игрок'']>>место''] строковой переменной
та же ошибка



представь что ты ничего не знаешь об этой строке и начинаешь её разбирать.. находишь первую кавычку. считается, что началась строка..
в QSP строка завершается кавычкой, после которой нет ещё одной кавычки (если там 2 подряд кавычки, то это кавычка, включенная в строку).. то есть в твоём примере движок определяет сначала пустую строку '', что сразу же "ломает" дальнейший разбор.. в итоге получаем странные ошибки.

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 20:30. Заголовок: noname пишет: '..


noname пишет:

 цитата:
'поле11вещь7свойство2'- второе свойство 7-й вещи из тех, что находятся на поле с координатами 1,1


если здесь "поле11" это 2 координаты, то нужно разделить их каким-нибудь символом "_","," ...
иначе, к примеру, для строки "поле112" - не ясно, толи это координаты "1,12", толи "11,2".

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 28.03.08 20:47. Заголовок: noname пишет: и вооб..


noname пишет:

 цитата:
и вообще, зря вы так URQL изуродовали. добавили бы всяких функций- и ладно.


у QSP и URQ крайне отдалённое сходство.

URQL уродлив изначально. повторю, что за поверхностной "простотой" скрывается куча ограничений (я говорю о непосредственно самом языке).

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 28.03.08 21:14. Заголовок: Byte пишет: повторю..


Byte пишет:

 цитата:
повторю, что за поверхностной "простотой" скрывается куча ограничений


например?

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

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 29.03.08 11:32. Заголовок: noname, например в т..


noname, например, в текущем синтаксисе URQL (можно ли формально описать грамматику языка?) невозможно реализовать нормальную работу со строками. могу заверить, что кавычки - это наоборот положительная сторона. кстати, в 5.4 с ними более удобно работать..
"схожая организация" - в отличии от URQ, QSP похож на Basic.

в URQ не понятно, где идёт код, а где данные.. всё вперемешку подстановками..

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 29.03.08 12:20. Заголовок: Byte пишет: невозмо..


Byte пишет:

 цитата:
невозможно реализовать нормальную работу со строками


пример?

Byte пишет:

 цитата:
в URQ не понятно, где идёт код, а где данные.. всё вперемешку подстановками..


в qsp не понятная фигня с этими кавычками, к тому же ты сам убираешь *pl и тебе всё равно понятно, где данные, где код, хотя "x" - она переменная, но в то же время это её вывод на экран.

в URQ гораздо удобнее и понятнее. и это не ИМХО. смотри сам:
в строчке "поле11вещь7свойство2" я разделяю числа понятными и удобными мне "пояснениями"
а ты предлагал: "$свойство['11_7_2']" - где тут понятность?
для больших проэктов наглядность и простота критичны- иначе можно запутаться и никогда его не закончить

что привлекает как в QSP, так и в URQ- так это "вольности" обращения с данными и подстановки <<>> #$
так же привлекает неструктурность и необъектность языка- на URQ я отдыхаю после дельфей, в которых обязательно всё заранее описывать и заморачиваться с организацией процедур.

и ещё по поводу QSP:
Byte пишет:

 цитата:
представь что ты ничего не знаешь об этой строке и начинаешь её разбирать..


я бы понял, что в выражении 'fhg<<$fhg<<$a>>>>' кавычки соблюдены. начинаем разбор с самого глубокого вхождения (насколько я понял, в ОПЗ ты не переводишь). делаем подстановку переменной $a (тут сложностей не больше, чем если бы вместо <<>> были обычные круглые скобки), допустим, она равна 'qqq'-> подставляем переменную $fhgqqq-> подучаем искомую строку. конечно, одинаковые кавычки открытия и закрытия уменьшают читабельность кода и добавляет головной боли автору языка, конечно двойной знак <<>> не так краток, как #$. НО своими 2*n кавычками во вложениях ты ещё раз показал мне, что QSP- хотя и лучшее, что есть на сегодняшний день, но томится это лучшее в уродливом синтаксисе.
Byte пишет:

 цитата:
в отличии от URQ, QSP похож на Basic.


проги на URQ пожалуй, больше похожи на Basic.

Спасибо: 0 
Профиль Цитата Ответить
администратор




ссылка на сообщение  Отправлено: 29.03.08 14:06. Заголовок: noname пишет: приме..


noname пишет:

 цитата:
пример?


пример - код:
if #aaa$ = sdsdsds sdfsdf then oooo=7

если строка aaa это "sdfsdf<4 then end & " или "sdasd = asdasd"
то при подстановке будет:
if sdfsdf<4 then end & = sdsdsds sdfsdf then oooo=7
if sdasd = asdasd = sdsdsds sdfsdf then oooo=7
и т.п.
аналогично - подстановки среди другого кода.. данные смешались с кодом.
как задать строку "asdfasd asdasd & asdasd & if sdsd else" без кавычек? как определить где начало, а где конец строки?

noname пишет:

 цитата:
а ты предлагал: "$свойство['11_7_2']" - где тут понятность?


был предложен и "более понятный" вариант.
а если при подстановке в "поле11вещь7свойство2" вместо 11 / 7 / 2 будет строка с пробелом или недопустимым в имени переменной символом - будет ошибка при выполнении. см. 1ый "пример".

noname пишет:

 цитата:
я бы понял, что в выражении 'fhg<<$fhg<<$a>>>>' кавычки соблюдены.


это не логично. идея такова, что внутри << и >> находится выражение.
в данном случае $fhg<<$a>>. здесь уже нет строки, поэтому <<$a>> воспринимается как часть выражения. для того, чтобы воспринималось как подвыражение, необходима строковая константа.
чтобы сделать то, что ты предлагаешь, необходимо присутствие подвыражений не только для строк, но и для кода. а это уже отрицательно скажется на языке.

noname пишет:

 цитата:
проги на URQ пожалуй, больше похожи на Basic.


смешно :)

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 29.03.08 14:56. Заголовок: Byte пишет: как зад..


Byte пишет:

 цитата:
как задать строку "asdfasd asdasd & asdasd & if sdsd else" без кавычек?


кавычки в URQ использовать можно. я использовал.
строки, подобные твоей пробовал- всегда можно реализовать понятным для интерпретатора способом
и вывести что угодно (хотя не знаю, зачем выводить такое)
и строка будет простой для понимания
и вообще, я не знаю такого случая, когда бы синтаксис URQL помешал сделать что-либо

мой же пример более реален. на дельфях ему соотвествуют массивы записей с массивами в них.
точнее, не массивы, а какие-нибудь индексированные связанные списки (через указатели)
я стремлюсь не напечатать какое-нибудь выражение с невыразимым сочетанием кавычек
(кому это нужно?)
а реализовать кратко, просто и понятно свою структуру данных.
похоже, что в QSP ты хотел, чтоб можно было вывести абсолютно любую строку как можно проще-
похвальное желание. но ты увлёкся и переборщил.

да, на урке может быть и можно придумать трудновыводимую строку, но это можно обойти (с трудом)
на куспели можно (с трудом) работать со структурами данных, аналогичным вышеупомянутым

Byte пишет:

 цитата:
необходимо присутствие подвыражений не только для строк, но и для кода


вот, этого-то QSP и нехватает.

URQL хорош свободой программирования
в QSP за каким-то непонятным делом её урезают.
неужели ты на самом деле думаешь, что проги на QSP понятнее аналогичных на URQL?

ну, бэйсик я почти не знаю- спорить не буду

и ещё:
при отладке "в строке 43 ошибка" - как её найти?
пишу потихонечку небольшую прогу на куспели. дело продвигается со скрипом, но хочу разобраться.
по-моему rand(1,2) в 75% случаях даёт '1' - буду сделать спец-прогу для проверки рандома.

Спасибо: 0 
Профиль Цитата Ответить





ссылка на сообщение  Отправлено: 29.03.08 15:17. Заголовок: извиняюсь, с random ..


извиняюсь, с random всёв порядке.
просто в моём двумерном массиве несколько раз подряд получилось очень необычное распределение
иду вдоль одной строки, и вижу одно и тоже.

а зачем jump-у кавычки?
при отладке "в строке 43 ошибка" - как её найти?

Спасибо: 0 
Профиль Цитата Ответить
Ответов - 84 , стр: 1 2 3 4 5 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия