Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/54: Рейтинг темы: голосов - 54, средняя оценка - 4.50
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163

Подскажите про оператор IF THEN END IF

23.11.2021, 19:51. Показов 13251. Ответов 161
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тема: Подскажите про оператор IF THEN END IF
Ограничено ли число команд выполняемых при соблюдении его условия или же это может быть любое число комманд?

Потому что в Паскале если пишут подобным образом: if then то это означает что в случае выполнения условия оператора может выполняться только одна инструкция следующаяя сразу за словом then. А следующая команда уже не будет относится к оператору. А если нужно чтобы количество комманд внутри условного оператора было любым нужно писать как:
if then begin end;. Я заинтересован в использовании только универсального варианта условного оператора Бейсика у которого число комманд внутри оператора может быть любым. Если же оператор IF THEN END IF как то переделывается в более уневерсальный вариант то не могли бы вы подсказать как это делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2021, 19:51
Ответы с готовыми решениями:

Excel 2013 32-bit URLDownloadToFile пишет "Compile error: only comment may appear after End Sub End Function or End Prop
Добрый день! перепробовал все варианты и не вызывается функция URLDownloadToFile: пишет "Compile error: only comment may appear...

Оператор Try . Except . Finally . End; при работе с ресурсами
Здравствуйте. Задача такая. Есть текстовый файл в ресурсах, который считывается и записывается в Memo. Требуется предусмотреть...

Оператор for. Для чего в коде дополнительные begin-end
Program DimanRu; Var name, surname: string; i:integer; Begin; Writeln('Введите имя...'); Readln(name); Writeln('Введите...

161
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
23.11.2021, 20:25
Лучший ответ Сообщение было отмечено wer1 как решение

Решение

Цитата Сообщение от Ixmil Посмотреть сообщение
Потому что в Паскале если пишут подобным образом: if then то это означает что в случае выполнения условия оператора может выполняться только одна инструкция следующаяя сразу за словом then.
В Бейсике тоже есть однострочная конструкция:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
Visual Basic
1
2
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Цитата Сообщение от Ixmil Посмотреть сообщение
или же это может быть любое число комманд?
Любое.
Visual Basic
1
2
3
4
5
6
7
8
' Multiline syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
2
1104 / 480 / 33
Регистрация: 05.07.2018
Сообщений: 1,870
Записей в блоге: 7
23.11.2021, 20:26
Уважаемый Ixmil
это как вы выразились универсальный оператор и выглядит так

IF (УСЛОВИЕ) THEN

оператор 1
оператор 2
....
оператор N

END IF

Число операторов может исчисляться сотнями и тысячами.
Всё зависит от сложности самих операторов и размера программы.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
23.11.2021, 20:51
Ничего сложного. Есть однострочный и многострочный If.
Однострочный вариант:
PureBasic
1
If a = b Then func()
Многострочный вариант
PureBasic
1
2
3
4
5
6
If a = b Then
    func1()
    func2()
    func3()
   ' и так далее
End If
Добавлено через 54 секунды
(Я не знаю почему тег кода BASIC превращается в PureBasic, наверное какая‐то ошибка движка форума)

Добавлено через 18 минут
Я рекомендую всегда использовать многострочный вариант, даже если он состоит из одного оператора, и использовать отступы.
Не пишите несколько выражений на одной строке, это создаёт сложно читаемый код.
Не используйте ElseIf, вместо него используйте Select Case.
(То что вы называете «оператором» на самом деле называется выражением, statements. Оператор же — это математическая функция в виде символа вроде * умножения, / деления, - разности, + сложения, Mod взятие остатка от деления и так далее.)
Цитата Сообщение от wer1 Посмотреть сообщение
Число операторов может исчисляться сотнями и тысячами.
Пожалуйста, не делайте IF на сотни тысяч операторов. Оформляйте внутренности в отдельные функции.
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
23.11.2021, 22:28
Цитата Сообщение от Замабувараев Посмотреть сообщение
Я не знаю почему тег кода BASIC превращается в PureBasic
Это фича, а не баг

Для этого раздела есть тег QBasic.
0
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
24.11.2021, 14:13  [ТС]
Большое спасибо за вашу помощь.

Добавлено через 4 часа 10 минут
Я недавно начал пытаться изучать этот язык и поэтому тут же начал искать варианты его сокращения и упрощения - это должно было вносить ясность. Сам на предыдущем языке ещё помню сколько времени потратил на одно его упрощение.
Упрощение вносит ясность.

Добавлено через 6 минут
На Паскале (Delphi) case of - работает медленнее чем if then begin end; и я там всегда использую if then... Если нужно чтоб работало ещё быстрее - надо подпрограмму с операторами поместить в модуль и запускать от него. А далее пришёл к выводу что лучше когда проще приёмы синтаксиса и меньше их в количестве.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
24.11.2021, 18:08
Расскажите, где и как вы применяете QBASIC?
Я вот даже не представляю где в настоящее время можно использовать QBASIC. Во‐первых, откуда‐то нужно достать древний компьютер с устанавленной MS DOS, потому что на современных материнских платах UEFI и MS DOS не ставится. Во‐вторых, невозможно полноценно работать на машине, нет сети, GUI, не работает оборудование.

Цитата Сообщение от Ixmil Посмотреть сообщение
тут же начал искать варианты его сокращения и упрощения - это должно было вносить ясность. Сам на предыдущем языке ещё помню сколько времени потратил на одно его упрощение
Если вас не устраивает язык и вы хотите его переделать, может быть выбрать другой язык?
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
24.11.2021, 23:42
Ixmil,
Цитата Сообщение от Замабувараев Посмотреть сообщение
торов. Оформляйте внутренности в отдельные функции.
такая конструкция позволит вам бесконечно повторять эти функции в других программах.
И вместо бейсика можно применять VB6 - он более современен и наследуте бейсик.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
25.11.2021, 08:59
Цитата Сообщение от vedunasv Посмотреть сообщение
VB6 - он более современен
Ну уж тогда FreeBasic. Он ещё более современен, и ещё больше наследует Qbasic
А PureBasic хоть и не наследует, но проще в освоении, если писать Оконные приложения или работать с 2D и 3D графикой.
А ещё есть VB .NET и его детский вариант SmallBasic, который умеет делать современные приложения.
Basic4Android, в котором легко делать приложения для смартфона и т.п., список огромный можно написать
Семейство Basic велико и многогранно, в зависимости от задачи всегда можно выбрать нужный.
0
25.11.2021, 16:47

Не по теме:

Цитата Сообщение от Замабувараев Посмотреть сообщение
выражением, statements
выражение = expression
statement = предложение, положение договора, пункт контракта

0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
25.11.2021, 17:21
Цитата Сообщение от politoto Посмотреть сообщение
выражение = expression
statement = предложение, положение договора, пункт контракта
https://en.wikipedia.org/wiki/... r_science)
0
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
25.11.2021, 20:58  [ТС]
. Расскажите, где и как вы применяете QBASIC?
Я вот даже не представляю где в настоящее время можно использовать QBASIC. Во‐первых, откуда‐то нужно достать древний компьютер с устанавленной MS DOS, потому что на современных материнских платах UEFI и MS DOS не ставится. Во‐вторых, невозможно полноценно работать на машине, нет сети, GUI, не работает оборудование.
Я считаю что на счёт компиляторов на которых что либо полезное можно для себя вообще делать - это Delphi от 6-й версии.
У меня Quick Basic 4 работает без Dos box эмулятора в оконном режиме.
Надо сначало убрать из его папки или удалить dos ярлык на него ссылающийся чтобы можно было запускать редактор. Это файл ярлыка с расширением *pif по моему. Далее надо отыскать программу которая выполняет саму компиляцию которая отдельно и создать для неё текстовой файл с расширением *bat в котором текстом надо написать имя файла компилирующей программы (это BC.EXE) а далее через пробел указать имя файла *bas текстовой программы. И запустить bat файл в результате чего сначало должен получиться obj файл кторый точно таким же методом приобразуется в exe файл программой LINK.EXE.
Если этот компилятор как-то неправильно себя ведёт я стараюсь перетащить его папку строго на диск C:\

Я давно ещё хотел изучить этот язык так как Бейсик был довольно классическим языком и при любом ещё покалении старых ЭВМ и только в последнее время по этому языку стали попадаться вразумительные инструкции.
Язык старый, без перспективный - это да. Но после трудностей с компилятором Delphi я от программирования чудес уже не жду.

Добавлено через 1 минуту
Я жду возможностей и реалий от программирования от того на что способен был бы сам. А это достаточно скромно.

Добавлено через 6 минут
Например подобный QBasic 4 компилятор Turbo Pascal 7 (DOS) через установленный PSP эмулятор DosBox компилировал на PSP. Возможно это сможет работать и на чём нибудь ещё.
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
26.11.2021, 20:53
Ixmil, программирование - это чудесно. Чудеса можно и на qbasic творить. Но всё таки прислушайтесь к мнениюPro_grammer - ещё больше чудес будет
Сделайте любую игру и удивитесь, как это прекрасно....
0
Эксперт по электронике
6582 / 3209 / 335
Регистрация: 28.10.2011
Сообщений: 12,525
Записей в блоге: 7
26.11.2021, 23:29
Цитата Сообщение от Ixmil Посмотреть сообщение
У меня Quick Basic 4 работает без Dos box эмулятора в оконном режиме.
Операционная система вероятно x86? На x64 работать не будет.

Не по теме:

Цитата Сообщение от Ixmil Посмотреть сообщение
Но после трудностей с компилятором Delphi
Какие были трудности если не секрет?

0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
26.11.2021, 23:56
Лучший ответ Сообщение было отмечено wer1 как решение

Решение

Цитата Сообщение от Ixmil Посмотреть сообщение
Я считаю что на счёт компиляторов на которых что либо полезное можно для себя вообще делать - это Delphi от 6-й версии.
Делать можно на чём угодно. Это зависит от прямоты конечностей, завихрённости извилин, мотивации,
свободного времени, вложенных сил, опыта и незасранности головы кучей лишней информации.
Уже приводил пример того, что можно писать на QB, TP, PB, FB.

Цитата Сообщение от Ixmil Посмотреть сообщение
Язык старый, без перспективный - это да.
Его т.н. "бесперспективность" выкована "псевдо учёным" дауном по фамилии Дейкстра и его фанатом-подхалимом
Виртом сугубо ради конкуренции, который в отличии от первого был всё таки программистом, но не успел
понять как его облапошили.
На деле нет никакой бесперспективности. Есть стада исторически некомпетентных людей, на поверку несущих
это чужое и ничем не подкреплённое мнение сквозь десятилетия. По иронии судьбы Паскаль стал
в равной степени бесперспективным, когда на повестку дня вышел сначала c, потом --, а потом и плюсы.
И если бы не демщики и всякие лётные\физические институты с рядом проф прогеров на дельфи - лёг бы
камнем туда же, в марианскую.
И уже десятки раз на примере багов и детсадовских ошибок показывал беспомощность современных
программистов в прикладном софтоделе. На их фоне ребята из середины 90-х - реальные минотавры, которые
легко аннигилируют этих придурков в любом ответственном мероприятии, будь то демосцена или разработка ПО.
Имена неоднократно перечислял: Ken Silverman, Bisquit, Antony Gual, locm(Высочанский Пётр), Stabud(Станислав Будинов),
The Trick (Анатолий). К тому же есть ряд людей на форумах(вкл CF), прекрасно программирующих на Basic
диалектах, которым плевать на вымышленную "бесперспективность", например Vodav, WQ, CatStail, Замабувараев.
Рекомендую почитать историю IT поглубже и взглянуть трезвым взглядом на то говно, которое в те времена
происходило, ибо на фоне технического прогресса люди перестали замечать важные событийные обстоятельства.
2
Эксперт по электронике
6582 / 3209 / 335
Регистрация: 28.10.2011
Сообщений: 12,525
Записей в блоге: 7
27.11.2021, 12:56
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Его т.н. "бесперспективность" выкована "псевдо учёным" дауном по фамилии Дейкстра и его фанатом-подхалимом
Вероятно речь идет про QBasic, а не о всех бейсиках.
Наверно речь о том что QBasic для DOS и с API современных ОС не взаимодействует, а на x64 вовсе не запускается. Его практическое применение сомнительно.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
27.11.2021, 13:34
Сейчас поясню, почему Я выбрал FreeBASIC.

1. Унаследовал синтаксис от QuickBasic, хотя я не программирую в стиле принятом в бейсике.
2. Нативно и без интерпретатора работает на x86 и x86_64 архитектурах.
3. Я могу полностью управлять компиляцией и бинарным кодом, на выходе иметь екзешники размером в два‐три килобайта.
4. Я конечно не пишу драйвер или операционную систему, но мысль что их можно делать на FreeBASIC — подогревает мои купленные у врагов души.
5. Можно копошиться в байтах.
6. Совместим с си, FreeBASIC и си имеют почти всюду пересекающиеся множества, мне не нужно переходить на си чтобы использовать какой‐нибудь код из MSDN или StackOverFlow.
7. Скомпилированные екзешники работают быстро, не нужно переписывать их на си для ускорения работы.
8. Я люблю Verbose синтаксис, например, And, Or, Not, Mod. В то время как в си принято вместо читаемых слов использовать ASCII‐арт и псевдографику: закорючки || && ^^, двойные двоеточия, бессмысленные точки с запятой в конце каждой строки.
9. Контекстно‐свободная грамматика, в отличие от контекстно‐зависимой грамматики в си.
10. Не могу не упомянуть такой пункт как «троллинг сишников», это важно. Меня забавляет что программирование на бейсике очень беспокоит поклонников си, привыкших в бейсике видеть 10 PRINT "HELLO WORLD" : 20 GOTO 10, но никак не программы вроде высокопроизводительного вебсервера.
0
Эксперт по электронике
6582 / 3209 / 335
Регистрация: 28.10.2011
Сообщений: 12,525
Записей в блоге: 7
27.11.2021, 14:15
Замабувараев, перечисленное можно отнести ко многим другим диалектам бейсика.
Некоторые из пунктов "на любителя" или не сильно важны.
2
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
27.11.2021, 14:54
Ну… Я могу себе позволить делать маленькие и быстрые программы.
В 21 веке программисты не то что не могут так делать, но вообще не могут делать что‐то без задачи и указания заказчика.
1
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
27.11.2021, 15:18  [ТС]
Операционная система вероятно x86? На x64 работать не будет.
Не разу на счёт подобных программ не видел у себя чтобы не работало хоть на 98, me, 2000, xp pro, 7.
На всех этих системах подобное было работоспособным а то что сейчас как железно для того что выше виндовс 7 я не беру и не думаю об этом. К чему эти реактивные самолётные цены?.
Там если будет старый ярлык то он не даст нормально запустить компилятор потому что при запуске exe сначало всё равно будет считываться ярлык и тогда будет появляться сообщение об ошибке.

Добавлено через 5 минут
Если есть Visual Basic как более современная программа то изучая qBasic - я хоть как то учусь и Visual Basic в то время как qBasic должен был быть проще и уже законченным как достижение.

Добавлено через 5 минут
А далее был такой инцидент когда я написал программу на Турбо Паскале 7 для приобразования файлов любого типа и вобщем-то и размера и это не получилось. Когда размер файла достигал какой-то отметки то на моей программе значилась ошибка и далее файл не обрабатывался и в сумме размер обрабатываемых данных останавливался на сотнях килобайт по моему. Тогда когда в режиме копирования программа на Турбо Паскале может копировать и 600 мегобайт. А тогда когда есть разница в размерах входящего и выходящего обработанного файла то похоже что Турбо Паскаль не справляется.

Добавлено через 1 минуту
Dos паскалевские программы от TMT-Pascal 3 могут в отличае от Delphi программ работать часами без перебоев и зависаний.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2021, 15:18
Помогаю со студенческими работами здесь

Оператор условия не открывает ветвь then begin end, несмотря, на то, что условие выполняется
Учусь по самоучителю "Песни о Паскале". Код программы предложенный автором не кидать, и ваши коды тоже т.к. сам хочу разобраться. Условие...

Про оператор IF
Добрый вечер. Переменная а получила значение а = "Иванов Иван", нужно найти в списке этого "Иванов Иван" Запускаем цикл и...

Не могу поставить end. после else – пишет "ожидался оператор"
uses crt; var a:integer; k:string; begin; randomize; repeat clrscr; a:=random(4); if a=1 then begin

Подскажите случаи, когда количество begin и end в программе не совпадают
подскажите случаи когда кол-во begin & end в прграмме не совпадают :swoon: вот первый : case .. of ..... end;

Простая задачка про тернарный оператор
Переписал с учебника простую задачку, однако на 10 и 12 строке показывает ошибки. Что тут не так? #include<iostream> ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru