Форум программистов, компьютерный форум, киберфорум
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. Показов 9516. Ответов 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
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,946
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
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,302
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
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,302
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
Сообщений: 442
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
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,302
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
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,302
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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru