Показаны сообщения с ярлыком qbasic. Показать все сообщения
Показаны сообщения с ярлыком qbasic. Показать все сообщения

пятница, 12 июня 2009 г.

лимитированный ввод

Есть ли какой нибудь оператор ограничивающий кол-во вводимых символов через Input? В Егэ есть задания, где надо вводить например фамилию, но она должна не превышать 20 символов.

такой функции нет - поэтому пишем свою, тем более что она действительно нужна


DECLARE SUB BufInput (StringVar$, Limit%)
'NOTE: DECLARE не поддерживается Microsoft
' Quick Basic версии 3.0 или более ранней версией и может быть удалено

CLS
Limit% = 10 ' Число символов для ввода

' приглашение для ввода строки
LOCATE 10, 5
PRINT "Введите строку из 10 символов: ";
COLOR 0, 7: PRINT SPACE$(Limit%)
LOCATE 10, 46

' ввести строку в буффер
CALL BufInput(a$, Limit%)

COLOR 7, 0
CLS

' вывести результат
LOCATE 10, 10
PRINT "Вы ввели: ";
COLOR 0, 7
PRINT a$
COLOR 7, 0

END

SUB BufInput (StringVar$, Limit%)
BackSp$ = CHR$(8)
Enter$ = CHR$(13)
Length% = 0

' Цикл ожидания ввода. ENTER завершает процедуру
WHILE char$ <> Enter$
char$ = INKEY$
IF char$ <> "" THEN
IF (Length% < Limit%) OR (char$ = BackSp$) THEN
SELECT CASE char$
CASE " " TO "~" ' Ввод только печатных символов
StringVar$ = StringVar$ + char$
PRINT char$;
Length% = Length% + 1
CASE BackSp$ ' если BackSpace - то удалять
IF Length% <> 0 THEN
Length% = Length% - 1
StringVar$ = LEFT$(StringVar$, Length%)
CurrX% = CSRLIN
CurrY% = POS(0) - 1
LOCATE CurrX%, CurrY%
PRINT " "
LOCATE CurrX%, CurrY%
END IF
END SELECT
ELSE
PLAY "o1AL32"
END IF
END IF
WEND

END SUB


тут можно скачать исходники

воскресенье, 7 июня 2009 г.

ветвление: найти максимальное

Составить программу на языке программирования с использованием команд ветвления.

Товарищи скадите пож. как составить программу нахождения максимального числа из трех заданных чисел A=5, D=9, C=3 в TURBO BASIC'е

Сравниваем всё между собой и...
Тут для QBasic исходники
тут для Pascal

четверг, 4 июня 2009 г.

26026811

По информатике задали задачку и дали образец листинга. Так на этот образец сам QBasic ругается... В чем ошибка? Он пишет, что Else без IF...



По информатике задали задачку и дали образец листинга. Так на этот образец сам QBasic ругается... В чем ошибка? Он пишет, что Else без IF...


Input "U=", u
if u<5 then i=0.55*u+3.75
else if u<7 then i=-0.1*u+7
else if u<11 then i=-1.05*u+13.65
else if u<13 then i=-0.4*u+6.2
else i=0.5*u-5.5
End if
Print "I=",i


тут у вас несколько ошибок


  • перенос ELSE на новую строку (может это и не так страшно, но QBasic-у это не нравится

  • End if - это что?..

  • тут исправленный вариант