Oparin
.pdfМинистерство образования и науки Российской Федерации ФГАОУ ВПО «УрФУ имени первого Президента России Б.Н.Ельцина»
Д.В. Опарин
ПРАКТИКУМ ПО АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЮ
НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ QBASIC
Учебное электронное текстовое издание Подготовлено кафедрой
«Интеллектуальные информационные технологии» Научный редактор: доцент, канд. техн. наук В.Г. Томашевич
Практикум по дисциплине «Информатика» для студентов всех форм обучения всех специальностей.
Дополняет конспект лекций «Алгоритмизация и программирование на языке высокого уровня QBasic» (2009 г.). Включает 7 лабораторных работ, рассматривающих основные вопросы раздела дисциплины «Информатика» «Программирование вычислительных задач с использованием алгоритмического языка высокого уровня». Приведены задания для самостоятельной подготовки и варианты заданий к работе.
© УрФУ, 2010
Екатеринбург
Содержание |
|
Лабораторная работа 1. Первые программы на QBasic ................................ |
3 |
Лабораторная работа 2. Организация работы пользователя в |
|
среде системы программирования QBasic ........................................... |
6 |
Лабораторная работа 3. Программирование алгоритмов |
|
разветвляющейся и циклической структур.......................................... |
8 |
Лабораторная работа 4. Обработка одномерных массивов........................ |
12 |
Лабораторная работа 5. Обработка матриц.................................................. |
16 |
Лабораторная работа 6. Знакомство с подпрограммами............................. |
20 |
Лабораторная работа 7. Программирование с использованием |
|
подпрограмм пользователя.................................................................. |
21 |
Библиографический список ........................................................................... |
26 |
Приложение. Примеры программ на языке QBasic (файлы |
|
prim0001.bas – prim0012.bas). .............................................................. |
27 |
2
Лабораторная работа 1
Первые программы на QBasic
Цель работы: первоначальное знакомство с работой программ, написанных на языке QBasic.
Задание для самостоятельной подготовки
1.Получить представление о программах, написанных на языке QBasic.
2.Познакомиться с простейшими приёмами работы в среде системы программирования QBasic (вход в среду, вход в меню, загрузка файла, сохранение изменений в файле, запуск программы на выполнение, пользование справкой).
Задание к работе
Запустить на выполнение и ознакомиться с работой программ, написан-
ных на языке QBasic (см. Приложение, файлы prim0001.bas – prim0012.bas). На основе программы, рисующей Российский флаг (файл prim0009.bas), создать программу, позволяющую в соответствии с вариантом задания (см. табл. 1) получить изображение флага одной из шестнадцати стран.
Таблица 1
Варианты заданий к лабораторной работе 1
|
|
№ |
Страна |
Флаг |
Цвета |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
1. |
Бельгия |
|
чёрный, жёлтый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
2. |
Дания |
|
красный, белый |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
Продолжение табл. 1 |
||
|
|
|
|
|
|
|
|
|
|
№ |
Страна |
Флаг |
Цвета |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
3. |
Франция |
|
голубой, белый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
4. |
Финляндия |
|
белый, светло-голубой |
|
||
|
|
|
|
|
|
|
|
|
5. |
Мадагаскар |
|
белый, красный, |
|
||
|
|
зелёный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
6. |
Италия |
|
зелёный, белый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
7. |
Исландия |
|
голубой, белый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
8. |
Чад |
|
голубой, жёлтый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
9. |
Норвегия |
|
красный, белый, |
|
||
|
|
голубой |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
10. |
Гвинея |
|
красный, жёлтый, |
|
||
|
|
зелёный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
11. |
Швейцария |
|
красный, белый |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4
Окончание табл. 1
|
|
№ |
Страна |
Флаг |
Цвета |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
12. |
Нигерия |
|
зелёный, белый, |
|
||
|
|
зелёный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
13. |
Швеция |
|
светло-голубой, |
|
||
|
|
жёлтый |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
14. |
Румыния |
|
голубой, жёлтый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
15. |
Мали |
|
зелёный, жёлтый, |
|
||
|
|
красный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
16. |
ОАЭ |
|
красный, зелёный, |
|
||
|
|
белый, чёрный |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5
Лабораторная работа 2
Организация работы пользователя в среде системы программирования QBasic
Цель работы: освоение порядка работы в среде системы программирования QBasic, овладение практическими навыками разработки и программирования вычислительного процесса линейной и разветвляющейся структур.
Задание для самостоятельной подготовки
1.Детально ознакомиться с порядком работы в среде системы программирования QBasic.
2.Изучить по конспекту лекций стандартные типы данных; правила записи арифметических выражений; работу оператора присваивания; операторов ввода и вывода, условных операторов, правила записи логических выражений.
3.Ознакомиться с программой вычисления площади треугольника.
Задание к работе
Набрать программу вычисления площади треугольника s по формуле Ге-
рона:
s = p( p −a)( p −b)( p −c) , где p =(a +b +c) / 2 .
Вычислить площадь треугольника при тестовом (a = 3; b = 4; c = 5; s = 6) и произвольном вариантах исходных данных.
Видоизменить программу, чтобы она учитывала то, что стороны треугольника не могут быть отрицательными и сумма двух любых его сторон не может быть меньше третьей стороны. Операцию произвести, воспользовавшись, например, путём выдачи сообщения: «Неверные исходные данные. Повторите ввод» и организации повторного ввода исходных данных.
6
Программа вычисления площади треугольника на языке
QBasic
'Лабораторная работа 2
'Иванов Иван Иванович
'Группа Мт-190000
CLS
INPUT "Введите сторону треугольника a"; a INPUT "Введите сторону треугольника b"; b INPUT "Введите сторону треугольника c"; c p = (a + b + c) / 2
s = SQR(p * (p - a) * (p - b) * (p - c))
PRINT USING "Площадь треугольника #####.##"; s END
7
Лабораторная работа 3
Программирование алгоритмов разветвляющейся и циклической структур
Цель работы: овладение практическими навыками разработки и программирования вычислительного процесса разветвляющейся и циклической структур.
Задание для самостоятельной подготовки
1.Изучить возможности языка программирования QBasic для реализации:
–условной и безусловной передачи управления;
–вычислительного процесса разветвляющейся и циклической структур;
–приёма программирования – табулирования функции (вычисления значений функции при изменении значений аргумента в заданном
диапазоне с шагом x).
2.Разработать алгоритм решения задачи в соответствии с заданием.
3.Составить программу табулирования функции.
4.Подготовить тесты (число тестов должно быть равно числу ветвей вычислительного процесса) для проверки правильности работы программы.
Задание к работе
Протабулировать функцию в соответствии с вариантом задания (см. табл. 2) путём многократного вычисления её значения при изменении аргумента в заданном диапазоне с заданным шагом (параметры, диапазон (начальное и конечное значения) и шаг изменения аргумента ввести с клавиатуры). Использовать один из трёх операторов цикла for – next, while – wend, do – loop (по указанию преподавателя). Проверить правильность работы программы, протестировав все три ветви алгоритма. Организовать вывод значений аргумента и вычисленных значений функции в виде таблицы:
8
ТАБЛИЦА ФУНКЦИИ Y(X)
X Y
………………
………………
Таблица 2
Варианты заданий к лабораторной работе 3
|
|
№ |
Функция |
|
|
|
|
|
|
|
|
Пара- |
Диапазон |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
метры |
и шаг |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
1, |
|
|
|
|
|
|
|
|
|
если |
x <1; |
a = –0,5; |
x [0; 3]; |
|
||||
|
1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
если 1 ≤ x ≤ 2; |
|
|||||
|
y = a x2 ln(x), |
|
|
|
|
b = 2 |
x = 0,15 |
|
|||||||||||||
|
|
|
|
|
a x |
|
cos(b x), |
|
|
если |
x > 2 |
|
|||||||||
|
|
|
e |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
π x |
2 |
−7 / x |
2 |
, |
если x <1,2; |
|
x [0,8; 2]; |
|
|||||||||
|
2. |
|
|
|
|
a = 1,5 |
|
||||||||||||||
|
y = a x3 + 7 |
|
x, |
|
|
если 1,2 ≤ x ≤1,4; |
x = 0,1 |
|
|||||||||||||
|
|
|
ln(x + 7 |
|
x ), |
|
если x >1,4 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
a x2 |
+b x +c, |
если x <1,1; |
a = 2,8; |
x [1; 2]; |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
3. |
|
|
|
|
|
|
+ |
x2 +1, |
если 1,1 ≤ x ≤1,3; |
b = –0,3; |
|
|
|
|||||||
|
y = a / x |
x = 0,05 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x2 +1, |
если x >1,3 |
c = 4 |
|
||||||
|
|
|
(a +b x) / |
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
π x |
2 |
−7 / x |
2 |
, |
если |
x <1,3; |
|
x [0,7; 2]; |
|
||||||||
|
4. |
|
|
|
|
a = 1,65 |
|
||||||||||||||
|
y = a x3 |
+ 7 |
|
x, |
|
если 1,3 ≤ x ≤1,5; |
x = 0,1 |
|
|||||||||||||
|
|
|
ln(x + 7 |
| x + a |), |
если |
x >1,5 |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,5 a x cos |
2 |
(x), |
если |
x <1; |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
||||||||||||||
|
5. |
|
|
a = 2,3 |
x [0,2; 3]; |
|
|||||||||||||||
|
y = |
1,8 a x (x −2)2 + 6 a x, |
если 1 ≤ x ≤2; |
x = 0,2 |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
если |
x > 2 |
|
|
||
|
|
|
3 a x tg(x), |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
−a x |
|
|
|
|
|
|
|
если x <a −0,25; |
|
|
|
|
|||
|
6. |
e |
|
|
|
cos(a x), |
a = 2,5 |
x [1; 5]; |
|
||||||||||||
|
y = x sin(a x), |
|
|
|
|
|
если a −0,25 ≤ x ≤a +0,25; |
x = 0,5 |
|
||||||||||||
|
|
|
|
|
|
3 |
x |
−a, |
|
|
|
|
|
если |
x >a +0,25 |
|
|
||||
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9
Продолжение табл. 2
№ |
Функция |
|
|
Пара- |
Диапазон |
|
|
метры |
и шаг |
||
|
|
|
|
||
|
|
|
|
|
|
|
b x −ln(b x), |
если |
b x <0,9; |
|
x [0,1; 1]; |
7. |
|
если |
0,9 ≤b x ≤1,1; |
b = 1,5 |
|
y = 1, |
x = 0,1 |
||||
|
|
если |
b x >1,1 |
|
|
|
b x + ln(b x), |
|
|
|
2 |
|
если |
|
|
a cos |
(b x), |
x <3,3; |
||
8. |
|
||||
y = a + b + c +1, |
если 3,3 ≤ x ≤3,7; |
||||
|
a sin(b x) ln(| c x |), |
если |
x >3,7 |
||
|
|
|
|
|
|
a = 1;
x [2; 5];
b = 2;
x = 0,25
c = 3
|
sin 2 | a x |, |
|
если x <0,85; |
|
|
x [0,5; 2]; |
|||||||||
9. |
|
|
|
|
|
|
|
|
|
если 0,85 ≤ x ≤1,15; |
a = 20,3 |
||||
y = a +1, |
|
|
|
|
|
x = 0,1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
если x >1,15 |
|
|
|||
|
ln(x +1), |
|
|
|
|
|
|
|
|
||||||
|
|
(ln3 | x | +x2 ) / | x +t |, |
если x <0,5; |
|
|
x [0,2; 2]; |
|||||||||
10. |
|
|
x +t +1/ x, |
если 0,5 ≤ x ≤0,9; |
t = 2,2 |
|
|||||||||
y = |
|
|
x = 0,2 |
||||||||||||
|
cos(x) +t sin 2 (x), |
если x >0,9 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(a + b) /(e |
x |
+ cos( x)), |
если |
x < 2,8; |
a = 2,6; |
x [0; 7]; |
|||||||
|
|
||||||||||||||
11. |
|
|
|||||||||||||
y = |
(a + b) /(x +1), |
если 2,8 ≤ x ≤ 6; |
b = –0,39 |
x = 0,5 |
|||||||||||
|
|
|
x |
+ sin( x), |
|
если |
x > 6 |
||||||||
|
e |
|
|
|
|
|
|
||||||||
|
|
2 a cos(x) +3 x2 , |
если x <1; |
|
|
x [0,8; 2]; |
|||||||||
12. |
|
1, |
|
|
|
|
|
|
если 1 ≤ x ≤1,3; |
a = 0,9 |
|
||||
y = |
|
|
|
|
|
|
|
x = 0,1 |
|||||||
|
|
|
|
|
|
|
|
|
|
если x >1,3 |
|
|
|||
|
a ln(x) + 3 | x |, |
|
|
||||||||||||
|
|
|
|
|
|
|
2 |
|
если |
|
a = 2,1; |
|
|
||
|
a / x + b x |
+ c, |
x < 4; |
|
|
x [1; 13]; |
|||||||||
13. |
|
|
b = 1,8; |
||||||||||||
y = x, |
|
|
|
|
|
|
если 4 ≤ x ≤ 6; |
x = 1 |
|||||||
|
|
|
|
|
|
|
|
|
|
если |
x > 6 |
c = –20,5 |
|||
|
a x + b x3 , |
|
|
||||||||||||
|
|
|
|
|
2 |
|
|
|
|
если |
|
|
|
|
|
|
a sin(( x |
+1) / n), |
x <5; |
a = 0,3; |
x [1; 10]; |
||||||||||
14. |
|
||||||||||||||
y = x, |
|
|
|
|
|
|
если 5 ≤ x ≤8; |
n = 10 |
Окончание табл. 2 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
a cos( x +1/ n), |
если |
x >8 |
|
x = 1 |
||||||||||
|
|
|
|
|
10