Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/47: Рейтинг темы: голосов - 47, средняя оценка - 4.60
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30

Вопрос про разные реализации бэйсиков

14.08.2009, 14:54. Показов 9712. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мы затеялинаписание самодельного интерпретатора бэйсика. На текущий момент какие-то несложные примеры уже работают, теоретическая база по принципам работы интерпретатора понятны, а потому для дальнейшей работы хотелось бы начать следовать синтаксису какого-то из существующих бэйсиков. Или по возможности близко подойти к этому

А потому вопрос, чем прициапиально отличаются разные реализации бэйсика и какой из них самый простой. На текущий момент решили работать без поддержки функций, а потому хотелось бы понять, насколько реально работать на бейсике при таком ограничении (или может такие реализации есть и на них работают).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2009, 14:54
Ответы с готовыми решениями:

Гиперссылки в ComboBox: вопрос реализации
привет всем) мне нужно из вылазиющих строчек в ComboBox сделать Гиперссылки на другую форму. (чтобы при нажатии на одно из слов в списке...

Вопрос по реализации блок-схем в VBA
Помогите пожалуйста реализовать блок -схему на VBA

Разные реализации одного интерфейса
Есть в javax.swing два класса, которые одновременно очень похожи, но в то же время и сильно различаются - это JList и JTable. Понадобилось...

49
 Аватар для Toxa33rus
3926 / 928 / 125
Регистрация: 16.04.2009
Сообщений: 1,983
20.08.2009, 13:53
Студворк — интернет-сервис помощи студентам
- к регистру НЕ чувствителен.
- приортитеты у логических операций есть
- метка бывает двух видов, все так
- список операций через двоеточие можно использовать как внутри если так и в другом месте
- в QB оператор вроде нельзя размазывать на две строки, хотя в новых бэйсиках можно через " _"
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 14:08  [ТС]
Toxa33rus, вот тут твой же пример https://www.cyberforum.ru/post166860.html
Там IF THEN по сути размазан (т.е. ветка THEN на следущей строке). Я правильно понимаю, что в этом случае нужно END IF лепить? Или может как-то можешь более формально (или на конкретных примерах) объяснить допустимые варианты
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
20.08.2009, 15:32
Оператор IF можно записать двумя способами:
-однострочная запись, записывается в одну строку
PureBasic
1
IF a > b THEN PRINT "a > b" ELSE PRINT "a < b"
точно не помню, но по моему при такой записи после THEN и ELSE может быть только один оператор.

-блочная запись
PureBasic
1
2
3
4
5
IF a > b THEN
 PRINT "a > b"
ELSE
 PRINT "a < b"
END IF
После THEN и ELSE может идти несколько операторов, завершаться блок должен обязательным
END IF

Более сложный вариант блочной записи:
PureBasic
1
2
3
4
5
6
7
IF a = b THEN
 PRINT "a = b"
ELSEIF a > b THEN
 PRINT "a > b"
ELSE
 PRINT "a < b"
END IF
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 15:41  [ТС]
А так можно?
PureBasic
1
IF a > b THEN PRINT "a > b" : PRINT "trampampam" ELSE PRINT "a < b" : PRINT "ku-ku-ku"
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
20.08.2009, 16:08
Цитата Сообщение от Evg Посмотреть сообщение
А так можно?
PureBasic
1
IF a > b THEN PRINT "a > b" : PRINT "trampampam" ELSE PRINT "a < b" : PRINT "ku-ku-ku"
Вроде можно, интерпритатор ошибок не выдает.

Цитата Сообщение от Evg Посмотреть сообщение
А есть где-нибудь краткий справочник по Q-Basic? Интересует синтаксис и краткое описание базовых конструкций и концепций.
У QBasic'а не плохой Help.

Цитата Сообщение от Evg Посмотреть сообщение
Видел исходники, где переменные никак не объявляются, а просто используются. В этом случае есть понятие типа переменной или её тип считается автоматически по записанному в неё значению?
Да, плюс к этому вместо явного объявления могут использоваться спецификаторы в конце имени переменной:
-знак долара "$" обозначает строку (пример VarString$)
-знак "%" обозначает целое число (VarInteger%)
-знак "&" обозначает длинное целое(VarLongInteger&)
-знак "!" обозначает число с плавающей точкой одинарной точности, 7 знаков(VarSingle!)
-знак "#" обозначает число с плавающей точкой двойной точности, 15 знаков(VarDouble#)
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 19:51  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
Да, плюс к этому вместо явного объявления могут использоваться спецификаторы в конце имени переменной:
-знак долара "$" обозначает строку (пример VarString$)
-знак "%" обозначает целое число (VarInteger%)
-знак "&" обозначает длинное целое(VarLongInteger&)
-знак "!" обозначает число с плавающей точкой одинарной точности, 7 знаков(VarSingle!)
-знак "#" обозначает число с плавающей точкой двойной точности, 15 знаков(VarDouble#)
Эксперименты показали, что этот символ является не только модификатором, но и частью имени. Т.е. "c", "c%" и "c&" - это три независимые переменные. А при записи в переменную делается дополнительное приведение значения к типу, соотвествующую модификатору

Добавлено через 2 минуты 36 секунд
При это м если переменная заведена как "DIM c AS INTEGER", то можно обращаться к "c" или "c%", но нельзя обращаться к "c&" или "c!" - ошибка. Как-то уж заумно
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
20.08.2009, 20:24
Возможно не совсем по теме, но в той версии бейсика, что в свое время учил я было только 2 типа переменных: строковые(завершаются $) и числа с плавающей точкой одинарной точности (без знака $).
Не было инструкций типа IF THEN ELSE, только IF THEN, причем запись только в 1 строчку, но возможны и такие.
PureBasic
1
IF a > b THEN PRINT "a > b" : PRINT "trampampam"
Т.е. более простой в реализации.
0
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
20.08.2009, 20:28
А что обязательно следовать строго синтаксису basic? можно сделать просто свой диалект,какая разница,цель же не сделать полностью язык,а просто потренироваться... или в твоих планах сделать (точнее чтобы я сделал) что-то серьёзное,что потом кто-то будет использовать?
Язык же можно придумывать по ходу написания,или этот номер не пройдёт?
0
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 446
20.08.2009, 20:41
Цитата Сообщение от Evg Посмотреть сообщение
Куда скачать и как поставить? Потому я и попросил "объяснить для идиотов"
Он поставлялся вместе с дистрибутивом DOS и был не упакован.
Т.е. что-то типа файл qbasic.exe (или qb.exe (не помню)) - копируете куда хотите, просто запускаете и работаете.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 20:48  [ТС]
Цитата Сообщение от #pragma Посмотреть сообщение
А что обязательно следовать строго синтаксису basic? можно сделать просто свой диалект,какая разница,цель же не сделать полностью язык,а просто потренироваться... или в твоих планах сделать (точнее чтобы я сделал) что-то серьёзное,что потом кто-то будет использовать?
Язык же можно придумывать по ходу написания,или этот номер не пройдёт?
Я в нашей теме ответил, а то ответ скорее туда относится, чем сюда

Добавлено через 1 минуту 50 секунд
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Возможно не совсем по теме, но в той версии бейсика, что в свое время учил я было только 2 типа переменных: строковые(завершаются $) и числа с плавающей точкой одинарной точности (без знака $).
Не было инструкций типа IF THEN ELSE, только IF THEN, причем запись только в 1 строчку, но возможны и такие.
Вкратце. Мне уже больше для себя стало интересно. И есть желание сделать как можно ближе к оригиналу - так будет проще собрать тестовую базу из готовых исходников. Но жёсткого требования строго придерживаться такого синтаксиса нет

Добавлено через 1 минуту 57 секунд
Цитата Сообщение от skvor Посмотреть сообщение
Он поставлялся вместе с дистрибутивом DOS и был не упакован.
Т.е. что-то типа файл qbasic.exe (или qb.exe (не помню)) - копируете куда хотите, просто запускаете и работаете.
В итоге скачал с микрософта. В идеале думал, что кто-то может нормальным языком напишет откуда конкретно скачивать или куда конкретно нажать, если оно по дефолту установлено. В итоге так никто и не сказал
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
20.08.2009, 21:13
Просто я, напр, думал, что спросить у гугла будет проще.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 21:16  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Просто я, напр, думал, что спросить у гугла будет проще.
И что дальше с этим DOS'ом делать-то? Сносить винду и ставить?
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
20.08.2009, 21:20
И что дальше с этим DOS'ом делать-то? Сносить винду и ставить?
Детский сад прямо.
Распаковать и найти QBASIC.EXE
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 21:22  [ТС]
Цитата Сообщение от odip Посмотреть сообщение
Детский сад прямо.
Распаковать и найти QBASIC.EXE
Плин, попросил же "специально для идиотов"...
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
20.08.2009, 21:22
Цитата Сообщение от Evg Посмотреть сообщение
И что дальше с этим DOS'ом делать-то? Сносить винду и ставить?
Просто скачать. Можно даже никуда специально не копировать, просто распаковать в любую папку и запускать оттуда сей файлик (qbasic.exe)
Слава богу есть эмулятор доса, встроеный в винду, поэтому ничего сносить и ставить дополнительно не надо
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 21:23  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Слава богу есть эмулятор доса, встроеный в винду, поэтому ничего сносить и ставить дополнительно не надо
Да я уже понял, что я тормоз....
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
20.08.2009, 21:50
Цитата Сообщение от Evg Посмотреть сообщение
При это м если переменная заведена как "DIM c AS INTEGER", то можно обращаться к "c" или "c%", но нельзя обращаться к "c&" или "c!" - ошибка. Как-то уж заумно
причем при
PureBasic
1
2
3
c = 4
c% =6
PRINT c, c%
получим на экране
4 6
при
PureBasic
1
2
3
4
DIM c AS INTEGER
c = 4
c% =6
PRINT c, c%
получим
6 6

З.Ы. Если все еще актуально могу выложить отдельно QBasic.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.08.2009, 21:52  [ТС]
Ну второй случай я уже наблюл, о чём я в посте #26 написал
Про выложить - спасибо, неактуально
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.08.2009, 14:34  [ТС]
Вопрос про операциинад строками

1. Есть A$="aa", B$="bb", что надо написать, чтобы получить C$="aabb"?
2. Есть A$="aa", B=5, что надо написать, чтобы получить C$="aa5"?
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
24.08.2009, 18:43
1. C$ = A$ + B$
2. C$ = A$ + STR$(B)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2009, 18:43

моя первая плата, хедеры - вопрос про eagle или про пайку
До сих пор я паял платы на однослойных платах для прототипирования - примерно вот таких http://www.ebay.som/itm/221207693405 Один из...

Вопрос про обратную связь, и про схемотехнику полумоста
Добрый день) Я сейчас делаю схему от уважаемого rost c форума http://www.psb-kots.ru/forum/ , и мне непонятны некоторые моменты, а тот...

Интересуют разные реализации сервер-клиент
Привет. Занялся изучениям простенького клиент-сервера. Изучил самый простой на мой взгляд способ реализации. Сервер ...

вопрос про Sape, про поиск площадок
Делаю поиск площалок. В каждом пункте результатов поиска есть кнопки BL и GBL. Что они значат и что делают (или что должны делать) -...

вопрос по реализации на C++
Условие: собственно сам вопрос: каким образом записать информацию о двух сотрудниках в одной функции, что бы после можно было...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru