- •Операторы языка
- •Операторы управления
- •Организация ветвлений
- •Программы к задаче 2
- •Input a,b,c input a,b,c
- •Input X
- •Input a,b,c
- •Input g
- •Организация циклов
- •Программа к задаче 9
- •Input "Введите числа X и y", X, y
- •Input X
- •Input X
- •Работа с массивами
- •Input "Введите число вкладчиков и процент ",n,p
- •Input X(I,j)
- •Input n
- •Контрольные задания
- •Литература
ПРОГРАММИРОВАНИЕ НА
АЛГОРИТМИЧЕСКОМ
ЯЗЫКЕ БЕЙСИК
Методические указания, лабораторный практикум
и контрольные задания по дисциплине
Информатика (раздаточный материал)
Алгоритмические языки предоставляют возможность человеку управлять действиями ЭВМ. Существует множество таких языков, среди которых самыми популярными в настоящее время являются языки: Си, Паскаль, Бейсик. Последний продолжительное время считался “школьным” языком, мало удобным для профессиональной работы. Однако твердая поддержка этого инструмента влиятельным мировым производителем программных продуктов – корпорацией Microsoft и, особенно, распространение этого языка на среду Windows (версия Visual Basic) сделали хрестоматийный Бейсик очень популярным и перспективным языком как начального, так и профессионального уровней.
Ниже мы рассмотрим средства, алгоритмического языка QBasic фирмы Microsoft в объеме, необходимом для программирования несложных процессов и выполнения контрольных работ.
В Бейсике разрешены следующие основные символы:
1. Буквы латинского и русского и языков (буквы кириллицы могут использоваться только в константах).
2. Цифры.
3. Специальные символы: + плюс, – минус; * умножение, / деление, ^ возведение в степень;
= равно, > больше, < меньше (отношение неравенства отображается двумя значками <>);
. точка, , запятая, ( ) скобки, ” кавычки, ; точка с запятой; : двоеточие и некоторые другие.
Все, используемые в программе, переменные снабжаются латинскими именами. Имя должно начинаться с буквы и может содержать до сорока букв и цифр. Программист выбирает имена произвольно, но таким образом, чтобы они указывали на смысл переменной. За каждой переменной компьютер закрепляет одну ячейку памяти. Большие и маленькие буквы в именах и операторах воспринимаются компьютером одинаково, т.е. буквы W и w обозначают одну и ту же переменную.
Примеры имен: Х, y, A24, VES, Netto, MAXIMUM.
Выражения используются для вычисления формул. Участники выражения соединяются знаками операций, которые были приведены выше. Выражения строятся по определенным правилам, учитывающим необходимость записи формул в строку. Вычисления в них реализуются слева направо в последовательности: 1. возведение в степень, 2. умножение-деление, 3. сложение-вычитание. Порядок действий может быть изменен скобками.
Следующие два примера иллюстрируют правила построения выражений.
Формулы в обычной записи: Выражения на Бейсике:
XC+2.5^H/(6*K)
F4/(B–3)+(C*B/(TM–5))*8.4
Кроме привычных математических операций (сложение, вычитание и т.д.) в языке имеется специальная операция вычисления модуля MOD. Она имеет следующий формат
число1 MOD число2
Здесь число1 делится на число2. Результатом остаток от деления. Примеры: 5 MOD 2=1; 2 MOD 6=2.
И, конечно, Бейсик располагает рядом математических функций. Вот некоторые из них.
SIN(число) – синус угла, заданного в радианах.
COS(число) – косинус угла, заданного в радианах.
TAN(число) – тангенс угла, заданного в радианах.
ATN(число) – арктангенс числа.
LOG(число) – натуральный логарифм числа.
ABS(число) – абсолютное значение числового выражения. Пример: ABS(–6)=6.
SGN(число) – функция, возвращающая знак числа. Если число положительно, возвращается +1, если равно нулю – ноль, если отрицательно – минус 1. Примеры: SGN(12)=1; SGN(0)=0; SGN(–13.4)=–1.
FIX(число) – усечение числа до целого. Примеры: FIX(1.2)= FIX(1.9)=FIX(1.5)=1; FIX(–1.2)=FIX(–1.5)=–1.
EXP(число) – основание натурального логарифма в степени аргумента – eЧИСЛО.
SQR(число) – квадратный корень числа.
Операторы языка
Оператор является основной единицей программы и выполняет какое-то элементарное действие. Во многих версиях Бейсика операторы в программе нумеруются. В QBasic, однако, сплошная нумерация не обязательна. При задании формата оператора символами [ ] будем ограничивать необязательную часть оператора.
Оператор присваивания. Формат оператора:
переменная=выражение
Такая запись означает, что выражение, стоящее справа, вычисляется и его результат присваивается переменной, стоящей слева.
Примеры операторов: Z=2, А=3.5+EXP(8), S=X^4+Y/2.
Присваивание не является равенством в обычном смысле. Справа и слева от знака “=” можно указывать одну и ту же переменную, например: М=М+2, X=X/3. Эти выражения следует понимать как реализацию так называемых рекуррентных соотношений, то есть новое содержимое ячейки М будет равно старому, увеличенному на 2, и новое Х будет равно старому, деленному на 3. По обе стороны равенства могут стоять переменные разных типов. Но если слева от знака равенства – целочисленная переменная, а справа получено вещественное число, то его дробная часть будет отброшена. Так, если А=2, то после вычислений в операторе М%=А*0.2+0.5 получим не М%=0.9, а М%=0.
Часто возникает необходимость в перестановке значений переменных. Так, если нужно поменять значения Х и Y, следует записать три оператора: A=X, X=Y, Y=A. Здесь понадобилась дополнительная “транзитная” переменная А, в которой временно запоминается значение Х.
Оператор
SWAP переменная1, переменная2
позволяет выполнить обмен значений сразу. Например: SWAP X,Y
Наше общение с компьютером имеет характер переписки. Мы пишем, он читает. Он пишет, читаем мы. Эти действия реализуются следующими специальными операторами ввода-вывода.
Оператор вывода. Для просмотра и анализа результатов вычислений необходимо вывести их на внешний носитель – бумагу или экран дисплея. Для этой цели используется следующий оператор.
PRINT [список_выводимых_переменных]
или ? [список_ выводимых_переменных]
Вопросительный знак может заменять слово PRINT, что экономит время ввода программы. Например, оператор:
PRINT a, m читается так – “Печатать переменные А, М”.
Оператор PRINT может вообще использоваться без аргументов. Тогда при выводе будет формироваться только пустая строка.
В оператор вывода могут включаться не только переменные, но константы и целые выражения. Например, если Х=12, а Y=100, то применение оператора
? “СУММА=” x+y
даст следующий результат: СУММА=112
При выводе данных имеет значение, какой разделительный знак использован для перечислении переменных. Если используется точка с запятой или пробел, следующая переменная будет выведена непосредственно за предыдущей. Если запятая – следующая переменная будет выведена с начала следующей зоны вывода. Бейсик разделяет каждую строку вывода на зоны по 15 символов. Это означает, что первое выводимое значение займет колонки с 1 по 15, второе – с 16 по 30, третье с 31 по 45 и т.д.
Если необходимо управлять положением и разрядностью выводимых данных, следует использовать оператор
PRINT USING шаблон; список,_выводимых_переменных
Здесь шаблон содержит символы, определяющие эти параметры. Символ “#” в шаблоне указывает на то, что в этой позиции будет выведена цифра. Символ “.” определяет место десятичной точки. Например, положим, что Х=2539.23745. Оператор
PRINT USING “######.##”; x
выведет число 2539.24, которому предшествуют два пробела, поскольку под целую часть числа отводиться 6 позиций, а фактически их 4. Дробная часть округляется до двух разрядов.
Оператор ввода. Исходные данные, обрабатываемые программой, можно задавать оператором присваивания. Пусть нужно вычислить площадь круга S=2ПR2. Если задать непосредственно в программе значение радиуса окружности, например оператором R=5, то программа будет вычислять площадь только такой окружности. Если нужно вычислить значение S с иным радиусом, придется изменить оператор непосредственно в программе. Это очень неудобно, поскольку пользователь программы не имеет квалификации и возможности изменять что-нибудь в программе. Необходимо сделать так, чтобы результаты вычислений зависели не от текста программы, а только от данных. Для этого имеется оператор чтения данных вида:
INPUT [приглашение ;/,] список_вводимых_переменных
где приглашение – необязательная символьная константа, указывающая, что именно нужно вводить. Если после приглашения указана точка с запятой, после приглашения будет выведен вопросительный знак. Если запятая – нет.
Все переменные в списке переменных разделяются запятыми. Если список переменных содержит более одной переменной, вводимые значения следует разделять запятыми. Число вводимых данных по количеству и типу должно соответствовать списку переменных. По завершении ввода всех переменных для данного оператора INPUT следует нажать клавишу ENTER. Если ввод был осуществлен неверно, ПК выдаст сообщение “Redo from start” о необходимости его повторить.
Пример: INPUT “Введите переменные R и L”; r, l
Дословно оператор интерпретируется следующим образом: “Читать в память ЭВМ, введенные с клавиатуры, переменные R и L”. При этом на экране сначала будет выведено приглашение вида “Введите переменные R и L?”
Задачи для самостоятельного решения.
1. Пусть известны координаты вершин треугольника X1,Y1;X2,Y2;X3,Y3. Найти: периметр треугольника P и площадь S.
2. Пусть некоторый процесс начался в H1 часов, Min1 минут, а закончился, когда было H2 часов и Min2 минут. Вычислить длительность этого процесса (в часах HD и минутах MinD). Считаем, что процесс длился не более суток.
Эти и другие задания “для самостоятельного решения” являются также материалом для лабораторных работ