- •Введение
- •Интегрированная среда qbasic Запуск и завершение qbasic
- •Главное меню qbasic
- •Встроенный справочник qbasic
- •Формальные сведения о qbasic Алфавит qbasic
- •Д Данные Переменные анные в языке qbasic
- •Длинная целая –2147483647 до 2147483648 (&)
- •Переменные
- •Переменные
- •Defint X-X (целые числа, inTeger)
- •Константы
- •Выражения в языке qbasic
- •Арифметические выражения
- •Условные выражения
- •Логические выражения
- •Символьные выражения
- •Встроенные функции
- •Input "Сообщение", список переменных
- •Оператор вывода данных
- •Статический ввод данных
- •Команды управления ходом выполнения программы
- •Безусловная передача управления
- •Условная передача управления
- •Формат записи вложенных условных операторов
- •Множественный выбор (select case)
- •Работа с датой и временем
- •Цикл со счетчиком (for…next)
- •Цикл while … wend
- •Вложенные циклы
- •Массивы
- •Одномерные массивы
- •Определение массивов
- •Заполнение массива
- •Порядок работы с массивами
- •Действия над элементами одномерного массива
- •Двумерные массивы Основные понятия
- •Заполнение массива
- •Действия над элементами двумерного массива
- •Подпрограммы
- •Функции, определяемые пользователем
- •1 Вариант
- •2 Вариант
- •Работа со строковыми типами данных Оператор line input
- •Операции со строковыми данными
- •Функции для работы с текстами
- •Графическая обработка данных
- •Оператор screen
- •Оператор color
- •Операторы pset, preset
- •Прямые линии – отрезки
- •Рисование прямоугольников
- •Оператор circle
- •Оператор paint
- •Вывод текста в графическом режиме
- •Графическое “перо” draw
1 Вариант
Дан массив с оценками учащихся. Найти средний балл учащихся. Подсчитать количество 5 и 4. Заполнение массива, подсчет среднего балла и подсчет количества оценок оформить отдельными подпрограммами.
Задана матрица W(5,6). Отрицательные элементы матрицы заменить на 0. измененный массив вывести на экран. Обработку элементов массива оформить в подпрограмме.
2 Вариант
Дан одномерный массив со значениями веса кур на птицефабрике. Найти средний вес кур. Найти вес самой тяжелой курицы. Заполнение массива, подсчет среднего веса и нахождение веса самой тяжелой курицы оформить отдельными подпрограммами.
Найти произведение элементов массива R(7,5) в строках с четными номерами. Обработку элементов массива оформить в подпрограмме.
Работа со строковыми типами данных Оператор line input
Оператор LINE INPUT позволяет ввести с клавиатуры строку длиной до 255 символов
Формат:
LINE INPUT “комментарии”,T$
T$ - строковая переменная.
Выполнение команды LINE INPUT проводится аналогично команде INPUT с той лишь разницей, что:
Вводится обязательно строковое и только одно значение;
За поясняющим сообщением нет знака вопроса;
Среди вводимых символов могут быть и запятая, и кавычки.
Например:
LINE INPUT”введите фамилии”,T$
<набираем: Иванов, Петров, Николаев >
после этого T$ будет содержать: Иванов, Петров, Николаев
Операции со строковыми данными
Со строковыми данными возможна одна операция конкатенация – объединение двух строковых последовательностей в одну.
Формат:
A$ + B$
Например:
A$=”Графический”
D$=” редактор”
T$=A$+B$
PRINT T$
<На экране появится: Графический редактор>
Функции для работы с текстами
Функция LEN предназначена для определения длины символьного выражения
Формат:
LEN (текст)
Функция определяет длину значения строкового выражения.
Например:
T$=”Москва”
K=LEN(T$)
PRINT “длина текста = “;K
<На экране появится: длина текста = 6>
В QBASIC существует несколько функций, позволяющих выделять символы из текстового выражения.
Функция LEFT$ возвращает строку символов из n левых символов
Формат:
LEFT$ (текст, n)
Например:
T$=”контрабас”
A$=LEFT$(T$,6)
? A$
<На экране появится: контра>
Функция RIGHT$ возвращает строку символов из n правых символов
Формат:
RIGHT$ (текст,n)
Например:
T$=”контрабас”
A$=RIGHT$(T$,3)
? A$
<На экране появится: бас>
Если число n больше длины текста, то обе функции возвращают весь исходный текст.
Функция MID$ (возвращает фрагмент из текста: n символов, начиная с k-го символа.
Формат:
MID$ (текст,k,[n])
К – порядковый номер символа.
N – количество символов, подлежащих обработке.
Например:
T$=”информатика”
A$=MID(T$,3,5)
? A$
<На экране появится: форма>
Если n не указано, то функция возвращает символы начиная с к-го и до конца текста.
Например:
T$=”Москва, Париж и Лондон”
A$=MID(T$,9)
? A$
<На экране появится: Париж и Лондон>
Пример 1. Задан текст. Подсчитать каких букв в тексте больше “а” или “о” и на сколько.
LINE INPUT “введите текст”;T$
L=LEN(T$)
KA=0 : KO=0
FOR I=1 TO L
IF MID$(T$,I,1)=”A” OR MID$(T$,I,1)=”a” THEN KA=KA+1
IF MID$(T$,I,1)=”O” OR MID$(T$,I,1)=”o” THEN KO=KO+1
NEXT I
IF KA>KO THEN PRINT “Букв а больше, чем о на “;KA-KO
IF KO>KA THEN PRINT “Букв o больше, чем a на “;KO-KA
IF KA=KO THEN PRINT “Букв а и о равное количество “
Пример 2. Задан текст. Подсчитать сколько предложений в тексте.
LINE INPUT “введите текст”;T$
L=LEN(T$)
К=0
FOR I=1 TO L
IF MID$(T$,I,1)=”.” OR MID$(T$,I,1)=”!” OR MID$(T$,I,1)=”?” THEN K=K+1
NEXT I
PRINT “В тексте “;K;” предложений”
Пример 3. Дано слово “информатика”. Составить из букв этого слова 3 новых слова.
T$=”информатика”
T1$=MID$(T$,3,3)+MID$(T$,7,1)
T2$=MID$(T$,5,1)+LEFT$(T$,1)+MID$(T$,3,1)+MID$(T$,6,2)
T3$=MID$(T$,2,1)+MID$(T$,4,2)+RIGHT$(T$,2)
PRINT T1$;”, “;T2$;”, “;T3$
<на экране появится: фора, рифма, норка>
Пример 4. Дано слово. Выяснить является ли это слово перевертышем, то есть читается слева направо и наоборот одинаково. Например “казак”.
LINE INPUT “Введите слово”;T$
M$=””
FOR I=LEN(T$) TO 1 STEP -1
M$=M$+MID$(T$,I,1)
NEXT I
IF T$=M$ THEN PRINT “Да является” ELSE PRINT “Нет не является”
Для самостоятельного решения:
Задание1:
Задано слово “энциклопедия”. Кто составит больше слов из букв этого слова и кто составит самое длинное слово
Задание 2:
Задано слово. Напечатать это слово в обратном порядке.
Задание 3:
Задан текст. Напечатать каждое предложение этого текста с новой строки.
Функция INSTR ищет подстроку в строке начиная с позиции n. Если n не задано, то поиск осуществляется с первой позиции. Функция INSRT дает номер позиции, начиная с которой заданная подстрока появляется в исходной строке. Функция возвращает 0, если подстрока не найдена в строке.
Формат:
INSTR ([n],текст,подстрока)
Например:
T$=”информатика”
A$=”форма”
N=INSTR(1,T$,A$)
? N
<На экране появится: 3>
Пример 1. Задан текст. Подсчитать сколько раз в тексте встречается словосочетание “кот”.
1 способ:
LINE INPUT “Введите текст”;T$
L=LEN(T$)
FOR I=1 TO L
IF MID(T$,I,3)=”кот” THEN K=K+1
NEXT I
? “Количество словосочетаний кот = ”;K
2 способ:
LINE INPUT “Введите текст”;T$
T=INSTR(1,T$,”кот”)
WHILE T<>0
K=K+1
T=INSTR(T+1,T$,”кот”)
WEND
? “Количество словосочетаний кот = ”;K
Пример 2. Задан текст, в котором есть несколько двоеточий. Напечатать текст между первыми двумя двоеточиями.
LINE INPUT “Введите текст”;T$
T1=INSTR(1,T$,”:”)
T2=INSTR(T1+1,T$,”:”)
PRINT MID$(T$,T1+1,T2-T1-1)
Пример 3. Задан текст. Подсчитать количество слов в первом предложении. Слова разделены пробелом.
1 способ
LINE INPUT “Введите текст”;T$
K=1
PT=INSTR(T$,”.”)
FOR I=1 TO PT
IF MID$(T$,I,1)=” “ THEN K=K+1
NEXT I
PRINT”Количество слов в первом предложении=”;K
2 способ
LINE INPUT “Введите текст”;T$
K=1
I=1
WHILE MID$(T$,I,1)<>”.”
IF MID$(T$,I,1)=” “ THEN K=K+1
I=I+1
WEND
PRINT”Количество слов в первом предложении = ”;K
Пример 4. Задан текст. Подсчитать количество слов «ученик» в последнем предложении.
LINE INPUT “Введите текст”;T$
K=0
I= Len(T$)-1
WHILE MID$(T$,I,1)<>”.”
B$= MID$(T$,I,8)
IF B$=” ученик “ OR B$=” Ученик “ THEN K=K+1
I=I-1
WEND
PRINT”Количество слов ученик в последнем предложении = ”;K
Оператор MID$ замещает часть строковой переменной другой строкой.
MID$(строк_переменная$,k[,n])=строк_выражение$
строк_выражение$ - строка, из которой функция MID$ возвращает подстроку, или строка замещения, используемая в операторе MID$. Может быть любым строковым выражением.
K - позиция первого возвращаемого или замещаемого символа в строке.
N - число символов в подстроке. Если длина опущена, MID$ возвращает или замещает все символы справа от начальной позиции.
строк_переменная$ - строковая переменная, изменяемая оператором MID$.
Пример:
Text$ = "Париж, Франция"
PRINT Text$ 'Вывод: Париж, Франция
MID$(Text$, 8) = "Сиэтл "
PRINT Text$ 'Вывод: Париж, Сиэтл
Функция INKEY$ или как получить власть над клавиатурой
Функция INKEY$ предназначена для поддержки интерфейса между программой и клавиатурой. Предположим, необходимо создать паузу ожидания в определенном месте программы. Чтобы организовать такую паузу, нужно использовать условный цикл, в котором проверяется значение, возвращаемое функцией INKEY$.
Например:
PRINT “Нажмите любую клавишу
WHILE INKEY$ = “”
WEND
В этом случае программа будет находиться в режиме ожидания до момента нажатия произвольной клавиши. Однако можно задать и конкретную клавишу, по нажатию на которую выполнение программы будет продолжено.
Например:
PRINT “Нажмите ‘ESC’ “
WHILE INKEY$ <> CHR$(27)
WEND
(27 – код ASCII для клавиши ‘ESC’)
Каждая клавиша имеет свой код ASCII. Обращаясь к функции INKEY$, нельзя забывать, что она используется только вместе с условным циклом.