Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Линейные программы. Стандартные операторы



Цель работы: изучение линейных вычислительных процес­сов. Использование операторов DATA, READ, INPUT, PRINT, RESTORE, END, CLS.

Содержание работы:

1 Порядок решения задач на компьютере.

2 Разработка линейных программ

3 Запуск QBASIC, ввод и редактирование программ.

 

Порядок решения задач на компьютере

Язык программирования QBASIC (QB) является языком высокого уровня и предназначендля составления программ для решения вычислительных задач на ЭВМ.

Порядок решения задачи на компьютере следующий:

1 Постановка задачи.

2 Разработка схемы алгоритма.

3 Составление программы по алгоритму решения задачи

4 Ввод программы в ЭВМ и отладка её работы.

5 Решение задачи.

Рассмотрим этапы решения на примере задачи 1.

Постановка задачи

Задача 1. Вычислить значение функции у = ax2 - bcos(x+340)

при а = 2, 15, b=1. Значение аргумента х может варьиро-

Ваться.

Постановка задачи должна однозначно определять формулы, вычисляемые выражения, условия ветвления, ограничения, границы изменения аргументов и функций, граничные условия и т.п. Постановка задачи должна быть строго математически формализована и не допускать никаких условностей и разночтений.

Составление алгоритмов

Алгоритм – это последовательность выполнения операций. Он разрабатывается в виде блок-схемы, в каждом элементе которой выполняется одна операция решения задачи.

Для обозначения блоков алгоритма используются следующие основные фигуры (рис. 1).

Блок начала и конца программы обозначается овалом или

прямоугольником с округлёнными углами, в блоке могут быть слова Начало, Конец, End, Программа №…, название программы и т.п.

Блоки ввода и вывода данных изображаются параллелограммами, в них возможен текст Ввод, Печать, Вывод, Print и др.

Элементы блок-схемы соединяются между собой стрелками, каждый блок должен иметь свой порядковый номер для организации ссылок и передачи ему управления от других блоков.

 

Вычислительный блок содержит формулы вычислительного процесса,

 

Начало и конец программы

Ввод данных и вывод результатов

 

Вычислительный блок

да нет Блок сравнения

 

 

Ссылка (переход) на другой блок или страницу

 

Рисунок 1 Основные элементы блок-схемы алгоритма

 

они могут быть написаны по общим правилам математики (с индексами, показателями степени, дробями, знаками ∑ , ∫ и т.п.). В тексте программы те же формулы должны быть записаны только по правилам языка программирования, т.е. в одну строку. В любом языке программирования допускается только линейная запись выражений, без индексов, показателей степени, много этажных дробей, пределов интегрирования и т.п.

Блок сравнения предназначен для проверки какого-либо условия, имеет два выхода – да и нет (или 1 и 0). Если условие выполняется, управление передаётся другому блоку, если нет, то следующему.

Блок Ссылка указывает номер блока, которому передаётся

управление. Если он расположен на другой странице, то и номер страницы.

Алгоритм составляется обязательно для сложных вычислительных

процессов, имеющих разветвлённую схему, с многочисленными переходами, циклами, подпрограммами, модулями и т.д.

Для таких процессов сразу составить работающую программу очень трудно, поэтому этап разработки блок-схемы алгоритма становится необходимым, а затем каждый блок записывается в программе одним (своим) оператором.

 

Составим блок-схему алгоритма для задачи 1:

Начало программы указывается первым

блоком - Начало.

 

В следующем блоке вводятся значения

неизвестных а, b и х.

 

В третьем блоке вычисляется функция

у = ax2 - bcos(x+340).

В четвёртом блоке значение у

выводится на экран.

Пятый блок указывает на завершение

программы.

Рисунок 2 Блок-схема алгоритма

 

Разработка линейных программ

Структура программы

Программа на языке QBASIC состоит из строк, формат строки:

[№ строки/метка] оператор[: оператор]…[ ' комментарий]

Примечание: Элементы в квадратных скобках могут отсутствовать.

Таким образом, в каждой строке может быть № строки или метка оператора, должен быть один оператор (или несколько операторов, записанных через двоеточие) и после знака " Апостроф" ( ' ) возможен комментарий - текстовая часть строки с пояснениями, которая не

выполняется программой. Комментарий содержит пояснения для программиста. Количество строк в программе от 0 до 65533 (216).

Ввод каждой строки должен заканчиваться нажатием клавиши

[Enter], при этом выполняется перевод строки в программе, её ввод с экрана в оперативную память. Если формула введена правильно, то её запись расширяется в строке, а маленькие буквы превращаются в заглавные.

Метка может содержать буквы и цифры, должна начинаться с буквы и заканчиваться двоеточием (например, М1:, Вариант14: ).

Каждый оператор записывается в своём формате, например, операторы присваивания t = 54, x = -.356, z = 2E-09, оператор ввода INPUT x, оператор вывода PRINT alpha, у.

Запись выражений

Выражения (формулы) записываются только линейно, в одну строку, без дробей, индексов, показателей степени, пределов изменения, например:

x1-4 + e-3x → x1^ (-4) + exp(-3*x);

→ sin(2*x)/((-TAN(z))^2;

→ SQR (a^2 – b^2);

lgD + ln5 → LOG10(D) + log(5) и т.д.

Стандартные функции языка QB содержатся в его программе, поэтому их можно писать маленькими (строчными) буквами, после нажатия клавиши [ Enter ] они станут большими.

Аргумент функции обязательно берётся в скобки.

Типичные ошибки при записи выражений:

1 Выражение cos3x, запись cos^3(x) неверна, в этом случае в третью степень возводится буква s, а не весь косинус. Правильная запись: cos(x)^3.

2 Выражение +ab, запись x + y / -t*z + ab неверна, т.к.:

· на знаменатель делится только у, а не весь числитель,

· два знака операций (" /" и " –" ) не могут стоять рядом,

· пропущен знак " *" между а и b.

Правильная запись: (x + y) / (-t*z) + a*b.

3 Выражение е, запись ЕХР^(2*х) неверна, т.к. возводится в степень не экспонента е, а буква Р. Правильная запись: ЕХР(2*х).

4 Выражение |x|, запись abc(x) неверна, т.к. функция названа по слову " absolute", правильная запись: abs(x).

Корень n-й степени, например, вычисляется как а^(3/8), функции ctg в языке нет, поэтому его нужно определять, как 1/tg(…) или как cos(…)/sin(…).

 

Приоритет выполнения арифметических операций в выражениях – cодержимое скобок, *, /, +, -, логические И, ИЛИ, НЕ. Скобки (, ) изменяют порядок вычислений.

Стандартные функции QBASIC

Наиболее часто в программах используются следующие основные функции (табл. 1)

Таблица 1

Функция Запись или значение
SGN (X)   Функция знака. Результат функции: если Х – положительный аргумент, то (+1); если Х - отрицательный аргумент, то (-1); если Х - нулевой аргумент, то 0.
ABS (X) |x|
INT (X) Определяет це­лую часть аргумента X
SIN (X)   sin X
COS(X) cos X
TAN(X) tgX
ATN(X) arctgX
SQR(X) Квадратный корень положительного аргумента Х
LOG(X) ln X
LOG10(X) lg X
RND(X) Генерирует псевдослучайное число или совокуп­ность чисел в интервале (0 - 1).
EXP(X) еX, экспонента аргумента Х
CINT(a) Округление числа а.
a MOD b   Определяет остаток от деления а на b. Пример: Y=A MOD (B+2)
FIX(a) Отбрасывание дробной части числа а.

 

Аргументы тригонометрических функций должны быть заданы в радианах, градусную меру нужно перевести в радианы (π радиан составляют 1800, 10=π /180 [рад]). Это можно сделать прямо под знаком функции, буква π в языке обозначена как PI.

Пример: cos 340 → cos(34*PI/180)

Стандартные функции могут быть вложены друг в друга, количество (глубина) вложений не ограничена.

Пример: → SQR(ABS(EXP(SIN(2*X))));

Количество открывающихся и закрывающихся скобок должно быть одинаково.

Операторы ввода

В языке QB используются для ввода следующие операторы:

1 Оператор присваивания – присваивает значение числовой или символьной переменной, например:

а) Х = 2.14;

б) T$ = " SUMMA";

в) L = x^4 + ABS(x).

Оператор служит для присваивания переменным числовых, символьных или смешанных значений - примеры а) и б), а также для записи выражений – пример в).

2 Оператор INPUT служит для ввода данных, имеет формат

INPUT < список>

где < список> – последовательность переменных через запятую.

Пример: INPUT A, B, N, J

INPUT " Ввести d, k, N"; d, k, N

Встретив оператор INPUT, среда QB печатает соответственно знак вопроса"? " или Ввести d, k, N? И ждёт ввода значений этих переменных через запятую, например 5, 2.2, 3Е-2.

Оператор INPUT применяется, если значение переменной может изменяться при каждом новом запуске программы.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 997; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.024 с.)
Главная | Случайная страница | Обратная связь