Форум программистов, компьютерный форум, киберфорум
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. Показов 9685. Ответов 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
3925 / 926 / 125
Регистрация: 16.04.2009
Сообщений: 1,981
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,312
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,312
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,312
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,312
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
Ответ Создать тему
Новые блоги и статьи
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru