Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11-20.doc
Скачиваний:
23
Добавлен:
07.02.2015
Размер:
916.99 Кб
Скачать

17. Версии языка Бейсик. Алфавит языка Бейсик. Основные типы переменных. Операторы описания переменных. Основные арифметические операции и выражения. Приоритет арифметических операций.

История

Бейсик был придуман в 1963 году преподавателями Дартмутского Колледжа Джоном Кемени и Томасом Курцем, и под их руководством был реализован командой студентов колледжа. Со временем, когда стали появляться другие диалекты, а изначальную реализацию стали называть Dartmouth BASIC.

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

При проектировании языка использовались следующие восемь принципов. Новый язык должен:

быть простым в использовании для начинающих

быть языком программирования общего назначения

предоставлять возможность расширения функциональности, доступную опытным программистам

быть интерактивным

предоставлять ясные сообщения об ошибках

быстро работать на небольших программах

не требовать понимания работы аппаратного обеспечения

защищать пользователя от операционной системы

В 1975 году Microsoft (тогда это были лишь двое — Билл Гейтс и Пол Аллен, при участии Монте Давидова), выпустила Altair BASIC. Затем его версии появились на другой платформе под лицензией и скоро в использовании были уже миллионы копий и вариантов; один из вариантов, Applesoft BASIC, стал стандартным языком на Apple II.

В 1979 году Microsoft обсуждала с несколькими поставщиками компьютеров (включая IBM) лицензирование интерпретатора Бейсик на их машинах. Одна из версий (ROM BASIC) была включена в ПЗУ IBM PC — компьютер мог автоматически загружаться в Бейсик.

Зрелость

В этот период было создано несколько новых версий Бейсика. Microsoft продавала несколько версий Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и Quick BASIC. Borland, известная своим Turbo Pascal, в 1985 году выпустила Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC). На домашних компьютерах появились различные версии Бейсика, обычно включавшие в себя расширения для работы с графикой, звуком, команды ОС, а также средства структурного программирования. Некоторые другие языки использовали хорошо известный синтаксис Бейсика в качестве основы, на которой строилась совершенно иная система (см. например, GRASS).

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

Вторую жизнь Бейсик получил с появлением Visual Basic от Microsoft. Хотя и трудно согласиться, что этот язык — действительно Бейсик (несмотря на множество привычных ключевых слов), спустя некоторое время он стал одним из наиболее часто используемых языков на платформе Windows. Microsoft создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант Visual Basic for Applications (VBA) был встроен в Excel 5.0 в 1993 году, затем в Access 95 в 1995 году, а после и во все остальные инструменты, входящие в пакет Microsoft Office. Internet Explorer 3.0 и выше, а также Microsoft Outlook, включали интерпретатор VBScript.

Ранние версии Бейсика (такие как BASICA, GW-BASIC) существенно отличаются от современных диалектов и сегодня практически не используются.

Алфавит.

В любом учебнике иностранного языка вначале дается его алфавит, т. е. набор символов для записи слов, предложений и всевозможных понятий этого языка. У языка Бейсик тоже есть алфавит, который содержит в себе следующие символы: Заглавные (или прописные) буквы латинского алфавита: А, В, С, D, E, F, G, H, I, J, К, L, M, N, О, Р, Q, R, S, T, U, V, W, X, Y, Z. При наборе программы, впрочем, нет нужды следить за тем, чтобы буквы были заглавными. Интерпретатор сам изменит строчные буквы на заглавные.

Арабские цифры: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.

Разделители: , (запятая), ; (точка с запятой), . (точка), : (двоеточие), ' (апостроф), " (кавычки), ( (открывающая скобка), ) (закрывающая скобка), символ <Пробел>.

Знаки арифметических операций: + (сложение), — (вычитание), * (умножение), / (деление), ^ (возведение в степень).

Знаки операций отношений: > (больше), < (меньше), = (равно), <> (не равно), >= (больше либо равно), <= (меньше либо равно).

Переменные. В Бейсике различают переменные следующих типов:

  • числовые переменные;

  • символьные переменные;

  • переменные пользовательского типа (записи);

  • переменные-массивы.

Таблица 1 – Типы переменных

Тип переменной

Символ

Описание

Объём

Пример

Целые числа

%

integer

2 байта

17; 123

Действит. числа

нет

real

4 байта

3.1415

Символьный

$

string

min 1бай

язык

Пользовательский

нет

type

Целый 2 точности

#

double

8 байт

1.2543786

Выражения

ABS (x) — модуль x

SIN (x) — sin x

COS (x) — cos x

TAN (x) — tg x

ATN (x) — arctg x

EXP (x) — e 5x

LOG (x) — ln x

LOG2(x) — логарифм x по основанию 2

LOG10(x) — lg x

INT (x) — целая часть х

SGN (x) — знак х (+1 при х > 0, 0 при х=0, −1 при x < 0)

SQR (x) — квадратный корень из х

LEN (а$) — количество символов а$

LEFT$(a$,n) — выбирает из a$ n символов, начиная с первого

MID$ (a$,m, n) — выбирает из a$ n символов, начиная с m-го

RIGHT$ (a$,n) — выбирает n символов а$, начиная с последнего

STR$ (x) — преобразует число к символьному виду

VAL (a$) — определяет числовое значение а$

ASC (a$) — определяет код первого символа а$

TAB (n) — указывает номер позиции для вывода следующего элемента в списке вывода оператора PRINT

SPC (n) — вывод n пробелов, используется в списке вывода оператора PRINT

RND [(x)] — выдает случайное число из интервала (0,1)

Приоритеты арифметических операций

1. Возведение в степень (^)

2. Умножение, деление (*,/ )

3. Деление нацело (\) (например, 5\2 равно 2)

4. Вычисление остатка от деления (MOD) (например, 45 MOD 19 равно 7)

5. Сложение, вычитание (+,-)

18 Линейная структура программы.

Программа имеет линейную структуру, если все операторы (команды) выполняются последовательно друг за другом.

Пример: Вычислите площадь прямоугольника по его сторонам.

REM Площадь прямоугольника INPUT "Введите сторону а", а INPUT "Введите сторону b", b s = a * b PRINT "Площадь равна: ", s END

Пример: Вычислите длину окружности и площадь круга по данному радиусу.

REM Вычисление длины окружности и площади круга INPUT "Введите радиус ", r PI = 3.14 l = 2 * PI * r s= PI * r * r PRINT "Длина окружности равна: ", l PRINT "Площадь равна: ", s END

20 Циклы а алгоритмах и программах

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

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

Такие циклы называются – циклы со счетчиком.

На языке Basic они записываются следующим образом:

FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг] тело цикла NEXT [Счетчик]

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

Пример: Вывести на экран все числа от 1 до 100.

REM Вывод чисел от 1 до 100 FOR I=1 TO 100 PRINT I NEXT END

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

REM Вывод чисел от b до a a=55 b=107 FOR I=b TO a STEP -1 PRINT I NEXT END

Пример: Вычислить сумму двухзначных натуральных чисел.

REM Вычислить сумму двухзначных натуральных чисел FOR I=10 TO 99 s=s+I NEXT PRINT "Результат = ",s END

Пример: вычислить факториал числа а (записывается так: а!). Факториал – это произведение чисел от 1 до а. Например, 5! (факториал пяти) – это 5!=1*2*3*4*5

REM Вычислить факториал числа a=5 f=1 FOR I=1 TO a f=f*I NEXT PRINT f END

В субботу вечером вы смотрите телевизор. Время от времени поглядываете на часы и если время меньше полуночи, то продолжаете смотреть телевизор, если это не так, то вы прекращаете просмотр телепередач.

Циклы такого вида называют – циклы с предусловием.

На языке Basic они записываются следующим образом:

DO WHILE условие Тело цикла LOOP

В этом цикле проверяется условие и если оно выполняется (ИСТИНА), то выполняется тело цикла до ключевого слова LOOP, затем условие проверяется снова ... и так до тех пор пока условие истино.

DO UNTIL условие Тело цикла LOOP

Этот цикл отличается от предыдущего только тем, что он выполняется до тех пор пока условие не истинно (т.е. совсем наоборот).

Пример: Вывести все натуральные числа меньше данного.

REM Вывод всех чисел меньше данного a=0 chislo=10 DO WHILE a<chislo PRINT a a=a+1 LOOP END

Вам надо поточить все карандаши в коробке. Вы точите один карандаш и откладываете его в сторону. Затем проверяете, остались ли карандаши в коробке. Если условие ложно, то снова выполняется действие 'заточить карандаш'. Как только условие становится истинным, то цикл прекращается.

Циклы такого вида называют – циклы с постусловием.

На языке Basic они записываются следующим образом:

DO Тело цикла LOOP WHILE условие

DO Тело цикла LOOP UNTIL условие

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

Пример: Вычислите сумму цифр в числе.

REM Сумма цифр числа DIM a, chislo, s AS INTEGER INPUT "Введите число: ", chislo a=chislo DO s=s+a MOD 10 a=a/10 a=INT(a) LOOP UNTIL a=0 PRINT "Сумма цифр числа ",chislo ," равна: ", s END

19 Ветвление в алгоритмах и программах.

Разветвляющий алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.

Рассмотрим запись условного оператора на языке Basic.

IF <УСЛОВИЕ> THEN <ОПЕРАТОР>

или

IF <УСЛОВИЕ>  <ОПЕРАТОР 1> <ОПЕРАТОР 2> <ОПЕРАТОР N>.

Условия – еще один тип логических выражений. В них используются следующие операторы сравнения:

=

равно

<>

не равно

>

больше

<

меньше

>=

больше или равно

<=

меньше или равно

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

IF...THEN...ELSE...END IF.

IF <УСЛОВИЕ> THEN  <ОПЕРАТОРЫ 1> ELSE <ОПЕРАТОРЫ 2> END IF

Пример: Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать на экран сообщение о равенстве чисел.

REM сравнить число со каким-то значением INPUT "Введите а", а IF a=7 THEN PRINT "Числа равны" END

Пример: Определить большее из двух чисел, вывести его на экран, затем – увеличить его в двое и вывести результат на экран.

REM определить большее из двух чисел... INPUT "Введите а", а INPUT "Введите b", b IF a=b TNEN PRINT "Числа равны" с=2*a ELSE IF a>b THEN PRINT "Большее число: ", a с=2*a ELSE PRINT "Большее число: ", b с=2*b END IF END IF PRINT "результат: ", c END

Пример: Решение квадратного уравнения. Решение квадратного уравнения зависит от значения дискриминанта.

REM Решение квадратного уравнения INPUT "Введите коэффициент a: ", а INPUT "Введите коэффициент b: ", b INPUT "Введите коэффициент c: ", c d=b*b-4*a*c IF d<0 THEN PRINT "Корней нет" ELSE IF d=0 THEN x=-b/(2*a) PRINT "корень уравнения: ", x ELSE x1=(-b-SQR(d))/(2*a) x2=(-b+SQR(d))/(2*a) PRINT "корни уравнения: ", x1, x2 END IF END IF END

Структура "Выбор".

Структура IF... позволяет выбрать между двумя вариантами. Если требуется осуществить выбор между большим числом вариантов, то это можно организовать используя лишь структуру IF... Но можно (что чаще проще) и с помощью структуры "Выбор". Эта структура имеет вид:

SELECT CASE <Выражение> CASE <условие 1> <серия 1> CASE<условие 2> <серия 2> ... CASE ELSE <серия иначе> END SELECT

Выражение, заданное после ключевых слов SELECT CASE, сравнивается с определенными значениями – условиями и если они истинны, то выполняется соответствующая серия команд. Если не одно условие не истинно, то выполняется серия команд между CASE ELSE и END SELECT.

Пример: Выдать словесное значение числа

REM Преобразование чисел в слова INPUT "Введите число", a SELECT CASE a CASE 1 PRINT "один" CASE 2 PRINT "два" CASE 3 PRINT "три" ... CASE 10 PRINT "десять" CASE ELSE PRINT "это число не могу перевести" END SELECT END

20 Циклы а алгоритмах и программах

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

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

Такие циклы называются – циклы со счетчиком.

На языке Basic они записываются следующим образом:

FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг] тело цикла NEXT [Счетчик]

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

Пример: Вывести на экран все числа от 1 до 100.

REM Вывод чисел от 1 до 100 FOR I=1 TO 100 PRINT I NEXT END

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

REM Вывод чисел от b до a a=55 b=107 FOR I=b TO a STEP -1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]