Форматированный вывод на экран (print using)
Язык программирования QBASIC
Язык состоит из набора слов, знаков и команд, записанных по определенным синтаксическим правилам | ||
Алфавит языка QBASIC | Основные символы | 26 латинских букв от A до Z и цифры 0 – 9 |
специальные символы | знаки арифметических операций + - * \ / ^ | |
знаки отношений < > = <= >= <> | ||
знаки разделения , . ; : ( ) # $ “ ‘ & % ! <пробел> | ||
Слова | Неделимые последовательности символов | |
Ключевые (зарезервированные) слова | Некоторые слова, имеющие особый смысл, и связанные с определенными действиями ПК | |
Комментарии, записанные правее символа ‘ | Используются для объяснения тех или иных действий программы |
Типы данных
Определить тип данных – значит определить диапазон значений, набор допустимых операций и функций и тип результата.
По типу данные делятся на числовые, строковые, логические.
Тип | Символ | Содержание | |
Числовые | INTEGER | % | Целые в диапазоне – 32’768 + 32’768 |
LONG | & | Целые в диапазоне -2’147’483’648 + 2’147’483’648 | |
SINGLE | по умолчанию ! | Вещественные с плавающей запятой в интервале от ± 8,43 ·10-37 до ± 3,37 ·1038 | |
DOUBLE | # | Вещественные с плавающей запятой в интервале от ± 4,19 ·10-307 до ± 1,67 ·10308 | |
Строковые | STRING | $ | Любые тексты до 32 767 знаков |
Логические | BOULEAN | - 1, 0 |
Виды данных
Константы (числовые и символьные) | Переменные (числовые и символьные) |
Это данные, значения которых используются, но не изменяются. Константы могут быть представлены в явном или неявном виде | Это данные, которые во время выполнения программы изменяют свои значения |
числовая константа в явном виде | строковая (текстовая) константа в явном виде |
числа (3.1415, 25, -7.3…) | произвольный набор символов, заключенный в кавычки (“CAT”, “*L*”, “321”) |
Имя константы (в неявном виде) или переменной
Имя (Идентификатор) | Это набор длиной до 40 символов, начинающийся с буквы. Последним символом имени могут быть - %, &, !, #, $. По умолчанию – данные относятся к типу SINGLE. | |
C% | Числовая переменная (константа в неявном виде), целая, короткая, простая | |
PR%(3) | Числовая переменная (константа в неявном виде), целая, короткая, одномерный массив | |
FA& | Числовая переменная (константа в неявном виде), целая, длинная, простая | |
Z6D&(4,5) | Числовая переменная (константа в неявном виде), целая, длинная, двумерный массив | |
K3T | Числовая переменная (константа в неявном виде), вещественная, одинарной точности, простая | |
DOG! | ||
МР(K,L,M) | Числовая переменная (константа в неявном виде), вещественная, одинарной точности, трехмерный массив | |
LIRA# | Числовая переменная (константа в неявном виде), вещественная, двойной точности, простая | |
DON$ | Символьная переменная (константа в неявном виде), простая | |
Правило записиИмя [специальный символ] [ (индекс [, индекс [, … ] ] ) ]
Задание Определить, правильно ли записаны переменные или константы и охарактеризовать их |
SAH%, N17S, CO#, 2GLE, tent$, PI, INT*EGG, ER(1 , 6), PI$R, Z&, 628, N8F5! |
Оператор CONST
Константы в неявном виде определяют в начале программы операторомCONST
Формат оператора
CONST имя константы = выражение[, имя константы = выражение[, ...]]
выражение – значение, которое должно храниться в константе (число, другая константа, текст или арифметическое выражение, не содержащее операцию ^).
Пример CONSTPI = 3.14, MT% = 2, TEXT$ = ''Утро''
CONSTTP=PI / 2
Оператор DIM
Переменные определяют в начале программы операторомDIM
Оператор DIMрезервирует место в памяти ПК для значений переменных
Формат оператора
DIM[SHARED]имя переменной[, имя переменной[, ...] ]
[SHARED] – необязательный параметр, указывающий, что переменную можно использовать во всех функциях и процедурах программы.
ПримерDIM SHAREDS!, R%, KL#, telefon$, y
DIMST%, Z52(1 ТО 6), M(0 ТО 5, 0 ТО 7)
Оператор присвоения значений переменным
Формат оператора
Арифметическое выражение (а.в.)
Имя переменной =
Строковое выражение (с.в.)
Тип переменной должен соответствовать типу выражения
Примеры
R = 4 * PI ‘ а.в.
Z% = 2 / COS (R) ’ а.в.
С5 = R + Z% ’ а.в.
L$=“РЕШЕНИЕ” ’ с.в.
Стандартные функции
Стандартные функции | арифметические функции |
числовые функции строковых аргументов | |
строковые функции | |
функции ввода – вывода | |
функции доступа к памяти |
Имена стандартных функций зарезервированы
Таблица некоторых стандартных арифметических функций
| a | | ABS (A) | Формулы для вычисления некоторых функций log b a = ln a / ln b lg a = ln a / ln 10 |
SQR (A) | ||
ln a | LOG (A) | |
ea | EXP (A) | |
sin (a) | SIN (A) | Значения аргумента в радианах ctg (a) = 1 / tg (a) = tg –1 (a) |
cos (a) | COS (A) | |
tg (a) | TAN (A) | |
arctg(a) | ATN (A) | |
int a | INT (A) | Наибольшее целое, не превосходящее аргумент int (2,3) = 2, int (-2,3) = - 3 |
fix a | FIX (A) | Целая часть аргумента fix (2.3) =2, fix (-2.3) = -2 |
sgn a | SGN (A) | Функция сигнатуры, результат: – 1, 0, 1 SGN (A<0) = -1, SGN (A=0) = 0, SGN (A>0) = 1 |
Выражения
Выражение определяет порядок выполнения действий над операндами: константами и переменными, объединенными символами операций и круглыми скобками.
Порядок выполнения операций определяется приоритетом операции и скобками.
Операции с равным приоритетом выполняются последовательно слева направо.
Группы выражений | Арифметические (а.в.) |
Логические (л.в.) | |
Строковые (с.в.) |
Арифметические выражения
Арифметические выражения | комбинация числовых констант (в явном и неявном виде), переменных и функций, связанных между собой знаками арифметических операций, и разделенных, если необходимо, круглыми скобками |
Результат вычислений всегда будет числового типа (%, !, #) в соответствии с типом объектов выражения | тип INTEGER – h% +ABS(2*b%) тип SINGLE - sin( f ) - k! * 5 тип DOUBLE - cos( m# ) / g# |
Приоритеты выполнения арифметических операций | 1. Выполнение операций в скобках |
2. Вычисление функций | |
3. Возведение в степень ( ^ ) | |
4. Умножение, деление ( * /) | |
5. Целочисленное деление ( \ ) (пример 5 \ 3 = 1) | |
6. Нахождение целого остатка от деления (MOD), (пример: 5 MOD 3 = 2) | |
7. Сложение, вычитание ( + - ) |
Дроби записываются в одну строку.
Символы операций должны присутствовать в явной форме, т.е. a * b / c, но не a b / c.
Если в знаменателе дроби кроме операций умножения присутствуют также сложение и вычитание, знаменатель обязательно должен быть заключен в скобки.
Примеры
(A + B) / (C + D)
A * B / (C * D) или A * B / C / D
A^ (2*M) – SQR(X+A) + (5*X)^(1/(3+C))
COS(AL+BT)*SIN((DL+FI)^C) +TAN(2*PI)^3
1/TAN(3*PI)-ATN((PI-GM)^5) + ATN(PI+GM)^4
LOG(A)+LOG(C^2)+LOG(D)^3
ABS(2 - LOG(3*X) / LOG(10))
LOG((A+X)^C)/ LOG(10) + (LOG(A-D)/LOG(10))^X
LOG((2*X+A)^C)/ LOG(M+2) + (LOG(X+3*A )/LOG(M+B))^(D+2)
ABS(X*A^C+B) – EXP(A+3) – D^(X+3*A)+
A^ EXP(3*X)
ABS (SQR (SIN(X+2)^2-TAN(Y^3))-(LOG(2+X)/LOG(1-Y))^(1/B))^3/X →
Задание 1 Записать арифметические выражения в символах QB |
b b - a - m + + n (2+ d )½cos(2 x - (3+h) n2)½ log 2n (a + s) ½ - y½ |
Задание 2Выполнить обратные действия |
(3*COS(2-A) ^D+R/(TAN((P*X)^C)+H)–5.2 * W ^(F/(M+2)) +SQR(ATN(3*X+T)))/3*D EXP(A+B)/2.5 * X ^ 3 / X + ABS( LOG(2+C)/LOG(A^T))+ COS(A*X ^ D) |
Задание 3 Выполнить логические действия и получить результат |
Исходные данные: А = 2, В = 3, M = < истина >, N = < ложь > А > В AND 2 * А < = 4 OR А - В < = 0 AND 6 / B < > 8 AND N NOT M OR А + 1 > В AND В > = 2 - А OR NOT N AND А < = В |
Логические выражения
Логические выражения – это комбинация арифметических выражений, операций сравнения и логических операций. | |
Результат вычислений – одна из логических констант: | FALSE - ложь ( 0 ) |
TRUE - истина ( 1 ) |
Приоритеты выполнения логических операций | 1. Вычисление арифметических выражений |
2. Выполнение операций сравнения | |
3. Выполнение логических операций - логическое отрицание NOT - логическое умножение AND - логическое сложение OR - логическое равенство EQV |
Таблица результатов выполнения логических действий
A | И | И | Л | Л |
B | И | Л | И | Л |
NOT A | Л | Л | И | И |
A AND B | И | Л | Л | Л |
A OR B | И | И | И | Л |
A EQV B | И | Л | Л | И |
Операции сравнения
Пусть А = 2, В = 5
Логическое выражение А > 1 дает результат - истина
и
В + 2 < 3 А < > В А = В А + 2 > = 3 В / А < = 2.5
л и л и и
Логическое отрицание
Пусть А = 2, В = 5
Логическое выражение NOT А > 1 дает результат - ложь
и
л
NOT В + 2 < 3 NOT А < > В NOT А = В NOT А + 2 > = 3 NOT В / А < = 2.5
л и л и и
и л и л л
Логическое умножение
Пусть А = 2, В = 5, Х = 3 Пусть А = 2, В = 5, Х = 7
Х > А AND Х < = В Х > А AND Х < = В
и и и л
и л
Логическое сложение
Пусть А = 2, В = 5, Х = 3 Пусть А = 2, В = 5, Х = 7
Х < А OR Х > = В Х < А OR Х > = В
л л л и
л и
Логическое равенство
Пусть А = 2, В = 5, Х = 3 Пусть А = 2, В = 5, Х = 7
Х < А EQV Х > = В Х < А EQV Х > = В
л л л и
и л
Примеры: 2,3 > SIN (1,57) AND COS (0) > = 5
2,3 > 0,949 1 > = 5
и л
лрезультат– ложь
0,5 ^ 3 < EXP (2,4) OR SIN (0) < 0
0,015625 < 11,02318 0 < 0
и л
и результат- истина
NOT 2 < > SQR( 4) AND LOG (1) < 3
2 < > 2 0 < 3
л и
и
и результат– истина
Строковые выражения
С.в. – комбинация текстовых (символьных, строковых) переменных, текстовых констант (в явном и неявном виде) и функций, связанных между собой символом операции ''+''.
Текстовая константа в явном виде (текст) – это комбинация символов, взятая в двойные кавычки, используемая для вывода заголовков, комментариев, примечаний: ''начало работы'', ''S='', ''результат вычислений''…
Отдельные тексты можно объединить оператором ''+'' в более длинные строковые выражения.
№ примера | Фрагмент программы | Результат выполнения программы |
CONST A$ = ''ОГАСА'' PRINT''Высшее учебное заведение '' + A$ | Высшее учебное заведение ОГАСА | |
PRINT ''IBM''+CHR(80)+CHR(67) | IBM PC | |
PRINT''Собака'' + ''друг человека'' | Собака друг человека |
СТРУКТУРА ПРОГРАММ
|
содержит объявления констант, переменных и массивов
содержит любые операторы, кроме END
| |||
используется при наличии одной или нескольких процедур (функций или подпрограмм пользователя).
|
Завершение программного модуля
Если в программе есть обращение к процедуре, то такая программа называется головной (основной) программой или головным (основным) модулем.
В любой строке программы может быть комментарий к тексту основной программы или процедуры.
ОПЕРАТОРЫ ЯЗЫКА QBASIC
(исполняемые и неисполняемые)
ОПЕРАТОРЫ | ввода данных |
вывода данных | |
присваивания | |
безусловного перехода | |
условного перехода | |
выбора | |
организации циклов |
Оператор очистки экрана CLS (без параметров).
Курсор располагается в верхнем левом углу экрана
Операторы ввода
Ввод с клавиатуры (INPUT )
Ввод данных производится во время выполнения программы (знак ? означает запрос ввода).
Ввод завершается клавишей ENTER.
Формат оператора
;
INPUT[текст ,]имя переменной[, имя переменной[, ...] ]
Текст (строковая константа в явном виде) – выводит на экран ''подсказку''
;- выводит знак '' ?''
,- отсутствует '' ?''
имя переменной (список) – имена переменных, в которых сохраняются вводимые данные (их объявление выполнено заранее).
Оператор INPUT проверяет соответствие количества и типа вводимых величин количеству и типу указанных переменных.
№ примера | Фрагмент программы | Результат выполнения программы |
INPUT А, B, C | ?_ | |
INPUT “А, B, C“; А, B, C | А, B, C ? _ | |
INPUT “А, B, C“, А, B, C | А, B, C_ | |
INPUT “Введите А, B, C“, А, B, C | Введите А, B, C ? _ |
Оператор ввода из памяти (READ – DATA)
Оператор DATA – создает в памяти таблицу констант.
Формат оператора
DATA с[, c[, ...] ] c - любая числовая или символьная константа.
Оператор может размещаться в любом месте программы.
Данные из созданной таблицы считываются оператором READ
Формат оператора
READ а[, a[,... ] ]
a – имена переменных, которые получают значения из созданной таблицы DATA. Типы имен и присваиваемые им значения должны соответствовать друг другу.
Оператор READ может получать данные из нескольких операторов DATA, причем данные, приведенные во всех операторах DATA, просматриваются последовательно.
Также несколько операторов READ могут читать данные из одного оператора DATA.
Если список переменных в READ больше, чем список DATA, то выдается сообщение об ошибке.
Фрагмент программы | Результат выполнения программы |
READ A, H%, X, Z READ FF, R& DATA 10.1, 77 DATA 3.5, 0.06, 26.78 DATA 39 | Переменным будут присвоены следующие значения A = 10.1 H% = 77 X = 3.5 Z = 0.06 FF = 26.78 R& = 39 |
Вывод на экран (PRINT) и принтер (LPRINT)
Вывод данных на экран
Формат оператора
; ;
PRINT[выражение[, выражение[, ...]] ]
Выражение – арифметические или символьные выражения, значения которых выводятся.
;- устанавливает начало следующего вывода непосредственно за значением предыдущего
,- вывод в начале следующей зоны вывода.
Если в конце оператора отсутствуют знаки “ , ” или “ ; ”, то происходит перевод строки и вывод начинается с начала новой строки.
Строка делится на зоны по 14 позиций.
За числом всегда выводится пробел. Положительному числу предшествует пробел, отрицательному – знак ''-''.
№ примера | Фрагмент программы | Результат выполнения программы | |||||||||
PRINT“A=”; A ; ”B=”; B | A= _3_B= _-5 | ||||||||||
PRINT“A=”; A , ”B=” ; B | A= _3 _ _ _ _ _ _ _ _ _ _ B= _-5_ _ _ _ _ _ _ _ _ 1-я зона 2 - зона | ||||||||||
PRINT “Объем ”; V ; PRINT “куб. м. ” PRINT “Вес ”; Р ;” т ”, PRINT “ПЛОТНОСТЬ”; F | Объем _220_ куб. м. Вес _10_ т _ _ _ _ _ _ ПЛОТНОСТЬ_30_ _ 1-я зона 2 - зона |
При выводе данных на принтер используется оператор, в котором ключевое слово PRINT заменяется на LPRINT .
Форматированный вывод на экран (PRINT USING)
И принтер (LPRINT USING)
PRINT USING шаблон выражения[;]
Шаблон - определяет вид, в котором выводятся выражения. Шаблон всегда заключен в кавычки.
Выражение - а.в. или с.в., значения которых появляются на экране, преобразованные шаблоном.
[ ; ] – подавляет перевод строки.
Символы для вывода чисел
# -вывод одного цифрового разряда. Если число короче, то оно выравнивается по правому краю и лишние позиции слева заполняются пробелами.
. – вывод десятичной точки.
, – вывод запятой через каждые 3 цифры (100,000,000).
+ -выводзнака числа ‘’+’’ или ‘’-‘’.
- вывод пробела для положительного и ‘’-‘’ для отрицательного числа.
** - ведущие пробелы заменяются ‘’ * ’’.
$$ - ведущие пробелы заменяются ‘’ $ ’’.
& - вывод всего строкового выражения.
! - вывод только первого символа строкового выражения
\\ - вывод строки определенной длины, количество символов определяется интервалом между \ \.
Внутри шаблона может располагаться текст.
Наличие в шаблоне пробела означает вывод следующего символа в непосредственном виде.
Фрагмент программы | Результат выполнения программы |
T=132:V%=34: X=23.82:A=10:B=11:C=12: S =9835647.328 : Q = -3456.23 R$ =”Хорошая погода'': U$ = ''Морская'': D=3 : K=5 PRINT USING “+ # # # # ”; T PRINT USING “# # #. # # ”; V PRINT USING “# # #. # # ”; X PRINT USING “+# # # #- # #+”; A; B; C PRINT USING “# # # # # # #,. # # #”; S PRINT USING “# # # # # # # ,”; S PRINT USING “# # # # # # ”; S PRINT USING “**# # #. # # - ”; Q PRINT USING “**# # #. # # - ”; X PRINT USING “ & ”; R$ PRINT USING “ ! ”; R$ PRINT USING“ \ . . . \ ”; R$ PRINT USING “ ул. & дом № # # кв. # # ”; U$; D; K | _+132 _23.82 _34.00 +10 11- 12+ 9,835,647.328 9,835,647 % 9,835,647 *3456.23- **23.82- Хорошая погода Х Хорош ул. Морская дом № 3 кв. 5 |
Алгоритмы
Алгоритм – упорядоченная последовательность действий, выполнение которых позволяет преобразовать исходные данные в конечный результат.
|
|
Алгоритм оформляется в виде блок – схем