Программирование алгоритмов линейной структуры
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторным работам по курсу “Информатика” Программирование на языке QBasic
Общие указания
Алгоритмический язык Бейсик является одним из распространенных языков программирования высокого уровня, отличается просто той, доступ-ностью и используется при организации диалогового режима человека и ЭВМ. В предлагаемых методических указаниях дается описание языка Бейсик.
Лабораторные работы предусматривают обязательную предваритель-ную подготовку, которая включает изучение операторов языка Бейсик, раз-работку алгоритма и программы расчета на ЭВМ. Перед выполнением лабо-раторной работы студент, должен представить преподавателю подготовлен-ную программу и получить разрешение на выполнение работы на ЭВМ. Отчет по лабораторной работе оформляется каждым студентом и должен содержать: задание с исходными данными; схему алгоритма решаемой задачи; распечатку разработанной программы; результаты расчетов на ЭВМ.
Алгоритм представляет собой четкое описание действий,которые не-обходимо выполнить для решения задачи. Для его разработка задача разби-вается на последовательно выполняемые этапы, определяется содержание каждого этапа, порядок их выполнения. Изобретается алгоритм графически в виде схемы.
Программа на алгоритмическом языке Бейсик состоит из последова-тельности операторов, записываемых построчно большими латинскими бук-вами. Операторы предназначены для задания ЭВМ операций обработки ин-формации. В одной отроке может быть один оператор или несколько, разде-ленных двоеточием (:). Программа завершается оператором END.
Лабораторная работа №1
Операторы ввода и вывода.
Цель работы: Изучить операторы ввода и вывода,особенности ихприменения и приобрести навыки их практического использования в про-граммах на ЭВМ.
Задание:
1. Изучить операторы ввода и вывода алгоритмического языка Бейсик и особенности их применения.
2. Составить программу и осуществить на ЭВМ ввод в диалоговом режиме оператором INPUT и вывод на дисплей оператором PRINT переменных разных типов. Значения переменных задать произвольно.
3. Выполнить пункт 2 задания с использованием в операторе вывода PRINT функции табулирования TAB.
4. Выполнить пункт 2 задания с использованием при вводе и выводе комментариев.
5. Составить программу и выполнить ввод исходных данных в программном режиме с помощью операторов DATA и READ. Значения и тип водимых переменных задать произвольно. Выполнить пример использования оператора восстановления банка данных RESTORE.
6. Получить распечатки разработанных программ.
7. Оформить отчет по лабораторной работе.
Указания по выполнению работы
При решении задач на ЭВМ в программах предусматривается ввод исходных данных и вывод результатов вычислений. Для выполнения этих операций в Бейсике используются операторы ввода и вывода. Оператор ввода в диалоговом режиме имеет вид:
INPUT < список переменных >
где <список переменных> - переменные, разделенные запятыми, значения которых задаются с клавиатуры по запросу ЭВМ во время выполнения программы. Например, при выполнении оператора
INPUT А,В,С
на экране дисплея высвечивается знак вопроса и ЭВМ ждет ввода данных. На клавиатуре нужно набрать три числа, разделяя их запятыми, значения которых будут присвоены соответственно переменным А,В,С. После ввода значений всех переменных, перечисленных в списке, выполнение программы продолжится.
Для вывода результатов вычислений на экран дисплея используется оператор вывода, имеющий вид
PRINT <список вывода>
где <список вывода> - имена переменных, числа, арифметические выражения и тексты. Если в списке вывода содержатся арифметические выражения, то они сначала вычисляются, а затем выводятся результаты вычислений.
Оператор PRINT без списка вывода выводит строку пробелов. Если элементы списка разделены запятыми, вывод производится в зонном формате, когда каждый последующий элемент выводится в следующей свободной зоне (экран дисплея ЭВМ включает 5 зон по 14.позиций в каждой зоне). Например, при выполнении оператора
PRINT -1,2,-3,4,-5
на дисплей будет выведено
-1 2 -3 4 -5
При наличии запятой после последнего элемента списка, следующий оператор PRINT будет выводить элементы своего списка в следующей зоне без перевода строки. Например, При выполнении операторов
PRINT 1,-2,
PRINT 3,-4
на дисплей будет выведено в одну строку
1 -2 3 -4
Отсутствие запятой после последнего элемента в списке приводит к переводу строки и следующий оператор PRINT начинает вывод с новой строки. Например, при выполнении операторов
PRINT 1,-2
PRINT 3,-4
на дисплей будет выведено
-2 | |
-4 |
Если между элементами списка вывода стоят точка с запятой, то вывод производится в плотном формате (через одну позицию). Точка с запятой в конце списка вывода подавляет операцию возврата каретки. Например, при выполнении операторов
PRINT 1;-2;
PRINT 3;-4;
на дисплей будет выведено
1 -2 3 4
Применение в операторе PRINT функции ТАВ(< арифметическое выражение >) позволяет позиционировать положение элемента строки при выводе. Номер позиции, с которой начинается вывод, задается аргументом функции ТАВ. Например, при выполнении оператора
PRINT ТАВ(6) 2; ТАВ(14) -32
число 2 выводится в 7 -ю позицию строки экрана (6-я позиция отводится под знак числа), число -32 выводится с 14-й позиции.
Для большей наглядности в программы с помощью оператора REM включаются комментарии, позволяющие проследить логическую, взаимосвязь и функции отдельных ее частей. Программные комментарии выводятся на дисплей или на печатающее устройство только при выводе текста программы. Кроме того, для удобства работы в программах рекомендуется предусматривать вывод пояснений или сообщений, для чего используется оператор PRINT, в котором выводимый текст заключается в апострофы. Оператор PRINT располагают обычно перед каждым оператором INPUT, что позволяет выводить на дисплей текст, идентифицирующий выполняемый оператор ввода. Например, в приведенной программе
REM ПРИМЕР ИСПОЛЬЗОВАНИЯ КОММЕНТАРИЕВ
PRINT “ВВЕДИТЕ ЗНАЧЕНИЕ ЧИСЛА А”
INPUT А
PRINT “ЗНАЧЕНИЕ А=”,А
END
при выполнении первых операторов PRINT и INPUT на экран дисплея выводится запрос
ВВЕДИТЕ ЗНАЧЕНИЕ ЧИСЛА А
?
После этого нужно ввести с клавиатуры значение А (например,34). При выполнении второго оператора PRINT выводится сообщение
ЗНАЧЕНИЕ А= 34
Если после текста в первом операторе PRINT расположить точку с запятой, то знак вопроса при выполнении оператора INPUT будет выводиться в ту же строку, что и текст запроса.
Для ввода исходных данных программным способом служат операторы
DATA <список констант>
READ <список переменных>
где <список констант> - целые, вещественные или символьные константы, записанные через запятую; <список переменных > - переменные, которым присваиваются значения из списка констант оператора DATA.
Эти операторы в программе всегда присутствуют одновременно. Оператор DATA невыполняемый, может быть записан в любом месте программы, но должен быть единственным в строке. Оператор READ может стоять в любом месте строки.
Повторное считывание одних и тех же данных в области DATA осуществляется с помощью оператора RESTORE, который может стоять в любом месте строки. Например, при выполнении программы
REM ПРОГРАММА ВВОДА ИСХОДНЫХ ДАННЫХ
DATA 1,2,3
READ A,B,С
RESTORE
READ D,E,F
PRINT “ЗНАЧЕНИЯ ПЕРЕМЕННЫХ РАВНЫ:”
PRINT”А=”А;”В=”В;”С=”С;”D=”D;”Е=”Е;”F=”F
END
на дисплей будет выведено
ЗНАЧЕНИЯ ПЕРЕМЕННЫХ РАВНЫ:
А= 1 В= 2 С= 3 D= 1 Е= 2 F= 3
ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ:используя символы (* \ | / - _ # и другие), функции ТАВ и SPC оператором PRINT вывести на экран дисплея, высотой не менее 7 строк первые буквы фамилии, имени, отчества. Программа должна быть составлена таким образом, чтобы символ, которым нарисованы буквы, легко можно было изменить (используя операторы DATA, READ и INPUT).
Лабораторная работа №2
Программирование алгоритмов линейной структуры
Цель работы:изучить оператор присваивания и приобрести практические навыки в программировании алгоритмов линейной структуры.
Задание
1. Изучить оператор присваивания, арифметические операции и стандартные математические функции языка Бейсик.
2. Для заданного варианта составить схему алгоритма линейной структуры и реализующую его программу.
3. Произвести на ЭВМ расчеты по разработанной программе для исходных данных, приведенных в табл. 2.1.
4. Получить распечатку программы и результатов расчета.
5. Оформить отчет по лабораторной работе.
Указания по выполнению работы
Программы линейной структуры имеют алгоритм, в котором каждая исследующая операция выполняется строго за предыдущей. При этом все операции исполняются от начала до конца.
При выполнении лабораторной работы используются операторы ввода и вывода, рассмотренные в лабораторной работе № 1, стандартные математические функции и оператор присваивания
LET <переменная> = <арифметическое выражение>
или
< переменная > = < арифметическое выражение >.
Оператор присваивания может записываться в любом месте строки. Арифметическое выражение в Бейсике составляется из чисел, временных и стандартных функций с помощью знаков арифметических действий и круглых скобок. Пишется арифметическое выражение, в строку, при этом Бейсик вычисляет значение арифметического выражения согласно приоритету операций: первыми вычисляются стандартные функции, затем действия в скобках, возведение в степень, умножение и деление, сложение и вычитание.
В случае сложного выражения для искомой функции программа может включать несколько последовательных этапов расчета с введением промежуточных переменных.
В качестве примера на рис.2.1 приведены алгоритм и программа расчета значения функции по формуле
у = (х2+2)/sin3 х.
Программа предусматривает вывод результатов на дисплей.
Начало
Ввод x
REM ПРОГРАММА РАСЧЕТА ФУНКЦИИ PRINT “ВВЕДИТЕ ЗНАЧЕНИЕ АРГУМЕНТА Х=”; INPUT X
Y = (Х^2 + 2)/SIN(X)^3
PRINT “ЗНАЧЕНИЕ ФУНКЦИИ Y=”,Y END
б)
Y=f(x)
Вывод
Y
Конец
a)
Рис.2.1. Пример программирования алгоритма линейной структуры: а - схема алгоритма; б - его: программная реализация
Вывод результатов работы программы на принтер организуется в следующей последовательности:
Таблица 2
Варианты заданий к лабораторной работе № 2
№ | Составить программу расчета функции по формуле | Исходные данные | |||
п.п | a | b | c | ||
1. | a 2−( c −cos b ) /(5c −a2) | 2,13 | 0,17 | 5,68 | |
2. | 5a 2c − ln(b + c ) /(b −ac) | 1,12 | 6,84 | 1,25 | |
3. | a +2b /(3ac − b )+tg 2a | 2,67 | 3,01 | 2,58 | |
4. | ( a 2 c − 4b ) /(ln a + 3b ) −cos3 b | 8,92 | 5,87 | 13,2 | |
5. | cos 3 c ⋅ sin bc /( ab 2 −c) | 1,28 | 4,11 | 0,76 | |
6. | 2tg ( a + b ) 2 /(ln c −2 ac) | 2,68 | 1,11 | 0.98 | |
7. | (b 2 c + cos b ) /( c +a ln b) | 1,12 | 4,85 | 3,47 | |
8. | (b − c 2 + ln c ) /(2 a 3 +4b) | 8,95 | 11,8 | 26,7 | |
9. | (ln c −sin b 2 ) / | Bc | 1,31 | 2,06 | 0,89 | |||||
10. | sin b /(b 2 + 6c ) +a3 | 0,52 | 11,2 | 2,13 | ||||||
11. | e a −2cos c 3 b /( ab −c) | 2,36 | 15,8 | 10,2 | ||||||
12. | sin( a − b ) /(3b 2 − c +a ) | 0,28 | 1,15 | 3,46 | ||||||
13. | 1 + bc /( c 2 +a ln b) | 0,35 | 11,3 | 4,52 | ||||||
14. | sin( a 2 + cos b ) /(1 +tg 2c) | 1,28 | 3,46 | 9,56 | ||||||
15. | (ln c − 10 a ) / bc +eab | 0,24 | 3,28 | 0,91 | ||||||
16. | 2sin( a + b 2 c ) /( a 2 c −b3 ) | 0,24 | 1,28 | 0,42 | ||||||
17. | a ln b /(bc −sin(4 ac +b2)) | 3,42 | 5,08 | 6,47 | ||||||
18. | (ln c −10 a 4b ) / | Bc | 1,71 | 0,11 | 1,52 | |||||
19. | (ln b − a ) / | ( a + 3c )(b 2 +4 ac) | 5,71 | 1,75 | 0,95 | |||||
20. | ( a 2 sin a − 1) / | ac +b | 3,45 | 4,53 | 4,02 | |||||
21. | 2cos 2 ( a + b ) /(4b + 1) −eac | 0,24 | 4,22 | 3,56 | ||||||
22. | sin 2 ac /( a 2 − 3b + 2c ) +arctg a | 0,37 | 0,56 | 0,89 | ||||||
23. | (cos c 2a + ea ) /( a −4b) | 2,94 | 1,05 | 1,13 | ||||||
24. | sin 2 b − 20 | /( a −cos c)2 | 3,14 | 7,28 | 0,74 | |||||
25. | cos b ( a − sin c 2 ) / ln( a +b) | 6,73 | 5,81 | 1,35 | ||||||
26. | ba 2−( c −cos b ) /( c −a2) | 2,13 | 0,17 | 5,68 | ||||||
27. | a 2c −ln(b + c ) /(b −ac) | 1,12 | 6,84 | 1,25 | ||||||
28. | a +3b /( ac − b )+tg 2a | 2,67 | 3,01 | 2,58 | ||||||
29. | ( a 2 − 4b ) /(ln a + cb ) −cos3 b | 8,92 | 5,87 | 13,2 | ||||||
30. | cos 3 c ⋅ sin | b /( ab 2−c) | 1,28 | 4,11 | 0,76 |
Лабораторная работа №3