Методичка Язык программирования Basic. Можно использовать для самостоятельного изучения

Раздел Информатика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

1.Введение

Язык Basic разработан профессорами Дартмунского университета (США) Джоном Кенеми и Томасом Куртцем в начале 60 годов. С момента своего рождения язык Basic приобрел большую популярность. Этот язык постоянно развивается, он снабжен всем необходимым для профессиональной разработки программ. Но в то же время Basic сохранил свою привлекательность для начинающих и непрофессиональных программистов. Вот некоторые достоинства Basic (с точки зрения массового пользователя):

  • Простота синтаксиса

  • Простота организации данных и управляющих структур

  • Большое число встроенных команд и функций

  1. Алфавит языка

Алфавит - совокупность допустимых в языке символов.

  1. Латинские буквы

A,B,…,Z

A,b,…,z

2.2. Арабские цифры

0,1,2,…9

2.3. знаки арифметических операций

+-сложение

- -вычитание

*- умножение

/ - деление

\ - деление нацело

MOD - деление по модулю

^ - возведение в степень

2.4. Знаки операций отношения

= - равно; > - больше; < - меньше; >= - больше или равно;<= - меньше или равно; <> - не равно

2.5. Разделители и прочие символы

. , ; : ( ) " ' пробел

! - признак вещественной величины

# - признак вещественной величины двойной точности

% - признак целой величины

$ - признак текстовой величины

2.6. Служебные слова

LET, AND и др.

Используются так же буквы русского алфавита, но только в текстовых константах и комментариях.

  1. Данные

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

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

Числовые

Целые занимают в памяти 2 байта. Диапазон от -32768 до 32767

Присвоить переменной целый тип можно с помощью суффикса А% или использовать оператор описания DIM A AS INTEGER

Длинные целые занимают в памяти 4 байта. Диапазон от -2147483648 до 2147483647

Присвоить переменной целый тип можно с помощью суффикса А& или использовать оператор описания DIM A AS LONG

Одинарной точности(7-8 значащих цифр) занимают в памяти 4 байта. Диапазон от -1,4*10-45 до3,4*1038.

Присвоить переменной целый тип можно с помощью суффикса А! или использовать оператор описания DIM A AS SINGLE.

Двойной точности(15-16 значащих цифр) занимают в памяти 8 байта. Диапазон от -5,0*10-324 до1,7*10308.

Присвоить переменной целый тип можно с помощью суффикса А# или использовать оператор описания

DIM A AS DOUBLE

Вещественное число может быть представлено в двух формах:

-естественная форма

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

Пример:

+23.56; - 3456.0004

- форма с порядком

mEp

m - мантисса - либо целое число, либо действительное в естественной форме(не более 7 цифр и 1<|m|<10).

p - порядок - двузначное целое число (не более 38)

E - десятичное основание степени

Пример:

6,83Е7 (6,83*107=68300000); -2,1Е-7(-2,1*10-7=0,00000021)

Символьные

Строка переменной длины - это последовательность длиной до 32567 символов таблицы ASCII. В памяти занимает столько байт, какова ее длина + 4 байта на описатель.

Присвоить переменной целый тип можно с помощью суффикса А$ или использовать оператор описания DIM A AS STRING

Строка фиксированной длины -символьная строка длиной N байт. В памяти занимает N байт.

Присвоить переменной целый тип можно используя оператор описания DIM A AS STRING* N

Задачи:

  1. К какому типу относятся следующие последовательности символов? а) -123; б) 0,0003; в) "G"; г) "123"; д) "Учебник по информатике".

  2. Сколько байт памяти выделяется для хранения следующих последовательностей символов? а) -123; б) 0,0003; в) "G";

4. Выражения

Выражения определяют действия и порядок их выполнения. Выражения формируются из следующих элементов:

4.1. Константы

Константы - это величины (числа, символы, строки), которые в ходе выполнения программы не изменяют свое значение.

Неименованные константы применяются тогда, когда их значение заранее известно и не подлежит изменению.

Пример

45

"vf"

Именованные константы , тогда ее необходимо объявить при помощи ключевого слова CONST .

Пример

CONST М%=66

CONST Р$="число"

4.2. Переменные

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

Пример

Max

X1

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

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

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

Имя функции

действие

Примечание

SIN(X)

sin x

х задан в радианах

COS(X)

cos x

х задан в радианах

TAN(X)

tg x

х задан в радианах

ATN(X)

arctg x

х задан в радианах

SQR(X)

Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

х≥0

ABS(X)

|x|

х - числовое выражение

EXP(X)

ex

е - основание натурального логарифма, е=2,7

INT(Х)

Округляет до ближайшего меньшего целого

LOG(X)

ln x

Натуральный логарифм, х>0

RND

Выпадает случайное число в диапазоне от 0 до1

SGN(X)

Выдает знак х («+»-1, «0»-0, «-»- -1), х - числовое выражение

Для получения случайных чисел в различных диапазонах можно воспользоваться следующими соотношениями:

A=INT(RND*N)

А - целое положительное в диапазоне (0, N-1)

A=INT(RND*(N+1))

А - целое положительное в диапазоне (0, N)

A=INT(RND*N+1)

А - целое положительное в диапазоне (1, N)

A=INT(RND*1000)/10

А - целое в диапазоне (0,99.9)

A=INT(RND*1000- RND*100)/10

А - вещественное в диапазоне (-9.9,99.9) и т.д.

В общем случае выражение записывается в следующем виде: A=INT(RND*V+H) , где V - верхняя граница, H - нижняя граница

Для получения разных последовательностей случайных чисел используют оператор RANDOMIZE (перед первым использованием функции RND).

4.4. Знаки операций

- Арифметические операции - к ним относятся сложение, вычитание, умножение, возведение в степень, деление. Добавим две дополнительные:

Целочисленное деление

Знак операции « \ ». Перед выполнением операции операнды округляются до целого значения, а в частном отбрасывается дробная часть.

Пример

19 \ 4=4

19.57 \ 3.32=20 \ 3=6

Остаток от деления

Знак операции MOD

Запись операции А MOD В

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

Пример

19 MOD 4 = 3

19.57 MOD 3.32 =20 MOD 3 = 2

- операции отношение

См.п.2.4

- логические операции

X

Y

X AND Y

X OR Y

NOT X

false

false

false

false

true

false

true

false

true

True

true

false

false

True

false

True

true

true

True

false

4.5. Порядок вычисления выражения

  1. вычисления внутри круглых скобок

  2. возведение в степень

  3. умножение и деление

  4. сложение и вычитание

  5. операции отношения

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

Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения (a+b)/(c-d)+e/(f*g)

0.05*a*SIN(b*x^3)^2+2/5*EXP(2*x)

ABS(12/6-SQR(1+TAN(x)^2))

Задачи

  1. какие из следующих последовательностей символов являются именами (идентификаторами)? а)Х; б)Х1; в)Мах; г) 1Х; д) класс

  2. найти значение функции: а) SIN(30); б) INT(9.2); в) INT(-9.2); г) SQR(91); д) RND*50-10

  3. записать на языке программирования:

    1. Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

    2. Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

    3. Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

    4. Методичка Язык программирования Basic . Можно использовать для самостоятельного изученияМетодичка Язык программирования Basic . Можно использовать для самостоятельного изучения

5.Программа

Программа представляет собой последовательность строк. Последовательность операторов в одной строке разделяется двоеточием. Длина строки ограничена 256 символами. Строки могут иметь метки, позволяющие производить условные и безусловные переходы при необходимости изменить последовательность выполнения операторов. Как правило программа начинается с заголовка, для записи которого используется оператор REM (remark- замечание, комментарий)

REM [комментарий]

' [комментарий]

В квадратных скобках в дальнейшем будем обозначать необязательный элемент записи оператора

6.Программирование линейных алгоритмов

Линейные программы могут включать в себя операторы присваивания, ввода-вывода, обращения к процедурам

6.1. Оператор присваивания

[LET]А=В

А - переменная

В - выражение

Типы переменной А и значение переменной В должны совпадать. Если А - числовая, то В так же должна быть числовой.

Задачи

  1. какие из следующих последовательностей символов являются операторами присваивания?

    1. X=Y;

    2. Min=K+1

    3. Summa+1=W

    4. S=S

    5. A="fff"

    6. A$=56

    7. G=5>y

  2. Пусть значения переменных Х и Y равны, соответственно, 3 и 2, какие значения будут иметь эти переменные после выполнения операторов присваивания?

    1. X=X+2*Y : Y=Y/2

    2. Y=-Y: X=X+Y: Y=Y+1

    3. X=1: X=X+Y

    4. X=Y: Y=X

6.2. Операторы ввода-вывода

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

Выводит данные на экран монитора

PRINT [список][{ , | ; }]

Список - это числовые или строковые выражения, разделенные запятыми, точками с запятыми или пробелами.

Строка экрана разделена на зоны по 14 символов. Если разделитель запятая, один или несколько пробелов, то очередной элемент списка выводится в начале следующей зоны.

Если разделитель точка с запятой, то очередной элемент выводится непосредственно на следующую символьную позицию.

Если список пуст, то выводится пустая строка.

Если в конце списка стоит запятая или точка с запятой, то выполнение следующего оператора PRINT начинается в этой же строке через один пробел.

Примеры

В программе

На экране монитора

PRINT a; b, х

12.7 24 42

PRINT "a=";a,"b=";b

a=12.7 b=24

PRINT "При х= ";x,"y= ";y

При х= 42 y=2.6

Функция TAB в операторе PRINT служит для вывода значения величины в определенных позициях строки экрана

PRINT TAB(n);x

пример

PRINT TAB(41);А выводит значение А с 41-ой позиции строки экрана

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

Организует ввод данных с клавиатуры

INPUT["приглашение"{;/,}] переменные

Приглашение - подсказка, заключенная в двойные кавычки, которая сообщает, что нужно вводить

Переменные - список разделенных запятыми переменных, которым будут присвоены соответствующие значения в порядке их ввода с клавиатуры. Если после приглашения ставится точка с запятой, то при выводе приглашения на экран дисплея после него печатается знак вопроса, если ставится запятая - то знак вопроса отсутствует.

Оператор INPUT приостанавливает программу, печатает приглашение, если оно имеется, и ожидает ввода данных. При вводе недостаточного или слишком большого числа данных, а так же несоответствия типа данных появляется сообщение "? Redo from start" (повторить сначала)

Примеры

В программе

приглашение

Пример записи

ввод

INPUT a

?

?0.15

INPUT "Name"; a$

Name?

Name? asa

INPUT "a="; a

a=

a=?8.5

INPUT "a=,b="; a,b

a=,b=

a=,b=?7.4,3

6.3. Оператор REM

Служит для включения в текст программы комментарий.

REM [комментарий]

'[комментарий]

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

6.4. Оператор END

Завершает выполнение программы

6.5. кроме операторов INPUT и LET ввод данных в программу можно выполнить с помощью операторов DATA-READ

DATA хранит в программе числовые и строковые константы, считываемые оператором READ.

DATA константы

Константы - это любы числовые или строковые константы, разделенные запятыми.

Оператор DATA может стоять в любом месте программы. В прграмме может быть несколько операторов DATA.

Пример

DATA 1.2, 3, .5, 45

DATA сфера, "шар, ", зри в корень

DATA 1, Бейсик, 2, Паскаль

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

READ список

Список - список переменных, разделенных запятыми. При считывании должны совпадать типы переменных и данных.

Примеры

READ x

READ b$

READ y, c$

RESTORE -разрешает повторное считывание в операторе DATA.

Задачи

  1. какие из следующих последовательностей символов являются операторами ввода? а) LET х=5 ; б) PRINT а; в) INPUT х; г) REM вычисление корней

  2. какие числа будут выведены в результате выполнения последовательности операторов:

INPUT х; х=INT(х); x=SQR(x); PRINT x*4; если в качестве исходного данного использовалось число: а)2; б)16;в)6; г) 1.44

  1. вычислить расстояние между двумя точками с данными координатами X1,Y1 и X2,Y2

  2. на предприятии 2-м рабочим выделена премия (N рублей). Разделить эту премию между рабочими в зависимости от стажа их работы на предприятии (прямо пропорциональная зависимость ). Стаж вводится с клавиатуры.

  3. Найти площадь треугольника по 3-м сторонам (по формуле Герона).

  4. Дано целое число А. Не используя никаких функций и никаких операций кроме умножения получить: а) А8 за три операции; б) А10 за четыре операции; в) А7 за четыре операции

  5. даны числа A,B,C,D

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

Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

AМетодичка Язык программирования Basic . Можно использовать для самостоятельного изученияМетодичка Язык программирования Basic . Можно использовать для самостоятельного изученияМетодичка Язык программирования Basic . Можно использовать для самостоятельного изученияB C D

8. Составить программу «диалог с компьютером»

7. Программирование разветвляющихся алгоритмов


Для организации разветвления в программе в Бейсике используются следующие операторы:

  1. условный оператор

  2. оператор варианта

  3. оператор перехода


  1. условный оператор

условный оператор имеет вид:

IF Q THEN B1 [ELSE B2];

Блок-схема

Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

Q - выражение принимающее логическое значение

B1, B2 - любые операторы, в единственном числе либо разделенные двоеточием

Выполняется:

  1. вычисляется выражение Q, которое имеет логическое значение.

  2. Если это значение True, то выполняется оператор В1, если же выражение Q имеет значение False, то в случае полной формы условного оператора выполняется В2 , а в случае неполной формы управление передается следующему оператору программы.

Пример

Даны два числа. Найти максимальное из этих чисел.

Исходные данные: А=10, С=15

Результат: Максимальное число =15

Решение:

CLS

INPUT"Введите два числа";A,C

IF A>C THEN MAX=A ELSE MAX=C

PRINT "максимальное число = "; MAX

END

Задачи

  1. даны два числа. Вывести первое число, если оно больше второго и оба числа, если это не так.

  2. даны два числа. Найти С= MAX/MIN.

  3. сМетодичка Язык программирования Basic . Можно использовать для самостоятельного изученияоставить программу вычисление значения Y по введенному значению Х.

Y= (X+2)2,X≥0

X-2, X<0


  1. даны числа А,В,Х. Составить программу вычисления значения Y

Методичка Язык программирования Basic . Можно использовать для самостоятельного изученияМетодичка Язык программирования Basic . Можно использовать для самостоятельного изучения

  1. даны три различных числа. Найти максимальное из этих чисел.

  2. даны три числа. Определить сколько среди них нулей.

  3. даны три числа. Определить сколько среди них отрицательных и сколько положительных чисел.

    1. Использование составных логических условий (связки «и»; «или»).

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

Пример

Даны числа X,Y,Z. Проверить, можно ли построить треугольник с данными сторонами.

Решение

REM треугольник

CLS

INPUT "ВВЕДИТЕ ТРИ ЧИСЛА"; X,Y,Z

IF (X+Y>Z) AND (X+Z>Y) AND (Y+Z>X) THEN PRINT "существует" ELSE PRINT "не существует"

END

Задачи

  1. даны числа А,В,С. Определить, есть ли среди них отрицательные числа.

  2. по введенной температуре, определить, здоров человек или болен.

  3. *даны различные числа А, В, С. Определить какое из них лежит между двумя другими.

  4. * даны числа А,В,С. Вывести на экран упорядоченными по возрастанию.

  5. дана точка M(X,Y). Определить, лежит ли данная точка внутри области D

Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

  1. Оператор варианта

SELECT CASE выражение для проверки

CASE список 1

Блок операторов 1

CASE список 2

Блок операторов 2

……

CASE ELSE

Блок операторов N

END SELECT

Параметр выражение для проверки - любое числовое или строковое выражение, в зависимости от значения которого выполняется соответствующий блок операторов. Параметры список 1, список 2 и т.д. - это списки выражений, записанных в следующих формах:

  • Выражение: CASE 1,3,4,5; CASE f, h, k

  • Выражение TO выражение: CASE 1 TO 5; CASE a TO d

  • IS Операция отношения: CASE IS <20; CASE IS<>a

Пример1

REM определение четности числа

CLS

INPUT "введите целое число в диапазоне 1…10";k

SELECT CASE K

CASE 1,3,5,9

PRINT "Число ";K;"нечетное"

CASE 2,4,6,8,10

PRINT "число ";K;"четное"

CASE IS <1

PRINT "Введено число меньшее, чем требуется"

END SELECT

END

Пример 2

REM определение символа

CLS

INPUT "введите символ";k$

SELECT CASE K$

CASE 1,2,3,4,5,6,7,8,9

PRINT "символ";K$;"цифра"

CASE a TO z

PRINT "символ ";K$;"-латинская буква"

CASE ELSE

PRINT K$"другой знак"

END SELECT

END

Задачи

  1. определить по введенному номеру месяца, количество дней в нем

  2. определить, принадлежит ли введенное целое число к десяткам, сотням или тысячам

  3. по номеру квартала определить принадлежащие ему названия месяцев.

  4. по номеру четверти координатной плоскости вывести знаки X, Y


  1. Оператор перехода

Оператор перехода имеет вид

GOTO метка

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

Пример

Даны три отрицательных числа. Найти предыдущее и следующее значение максимального из этих чисел.

Решение

REM оператор перехода

CLS

1 INPUT "введите три отрицательных числа";А,В,С

IF A>0 OR B>0 OR C>0 THEN GOTO 1

(далее задачу решаем самостоятельно)


  1. Программирование циклических алгоритмов

В Бейсике существуют три структуры цикла:

8.1.Цикл с параметром

FOR I=A TO B [STEP h]

Операторы

NEXT

FOR для

TO до

STEP шаг

I - счетчик- числовая переменная(параметр цикла)

A и B - начальное и конечное значение счетчика соответственно.

Значение счетчика при прохождении цикла каждый раз увеличивается на величину параметра шаг h. Если h=1, то его можно опустить. Шаг может быть отрицательным числом. В этом случае начальное значение счетчика должно превышать конечное. При выходе из цикла параметр счетчик имеет значение параметра В, увеличенное (уменьшенное ) на величину параметра шаг.

Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

Выполняется:

  1. вычисляется значение А, В

  2. I=A

  3. Проверяется условие

    • I<=А , если шаг положительный

    • I>=А , если шаг отрицательный

  4. если условие не выполнено, то выполнение оператора цикла заканчивается,. Иначе выполняются "операторы".

  5. I - получает приращение

  6. переход к пункту 3.

Пример1

Вывести на кран 10 случайных чисел в диапазоне от 0 до 100.

REM цикл 1

RANDOMIZE

FOR I=1 TO 10 STEP 1

X=RND*101

PRINT I;"-е случайно число = "; X

NEXT

END

Пример 2

REM цикл 2

FOR I=10 TO 1 STEP -1

PRINT I;

NEXT

END

8.2. Цикл с предусловием

WHILE условие

[операторы]

WEND

WHILE - пока

WEND -

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

Выполнение начинается с проверки условия, записанного после слова WHILE. Если оно соблюдается, то выполняется операторы , а затем вновь проверяется условие

Пример1

Даны числа от 1 до N (N - четное). Найти Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

REM сумма дробей

PRINT "введите четное число"

INPUT N

WHILE K

K=K+2

S=S+1/K

WEND

PRINT "S="; S

END

Задачи

  1. Даны числа от 1 до N. Найти Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

  2. Даны числа от 1 до N (N - нечетное) Найти Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

  3. Найти значение Х: Х=()1*3*5*…*N)/(1+3+5+…+N) (N нечетное)

  4. Даны числа от 1 до N. Вычислять Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения , вплоть до слагаемого меньшего заданного Е (Е<1)

  5. Вычислять сумму чисел: S=K+(K+1)+(K+2)+(K+3)+…+(K+N); (K<N)

  6. числить среднее арифметическое чисел K, K+1, K+2, K+3,…K+N; (K<N)

  7. Вычислить произведение чисел: Р=K*(K+1)*(K+2)*(K+3)*…*(K+N); (K<N)

  8. Вычислить: Р=1+(1*2)+(1*2*3)+(1*2*3*4)+…+(1*2*3*…R)

  9. Вычислить: Р=1*(1+2)*(1+2+3)*(1+2+3+4)*…*(1+2+3+…R)

  10. Найти значение функции M=N2-N при N={2,4,6,…,T}(Т - четное)

  11. Найти значение функции X=Y2*(Y2-Y)/Y при Y={N*1,N*2,,…N*M}(N<M.)

8.3. Цикл с постусловием

DO

[операторы]

LOOP {WHILE/UNTIL} условие

Операторы циклически выполняют до тех пор, пока условие - истинно (при использовании ключевого слова WHILE) или до тех пор, пока условие не станет истинным (при использовании ключевого слова UNTIL).

«Делай»( DO) «петлю» (LOOP) до тех пор, «пока» (WHILE) условие выполняется, или «пока» (UNTIL) условие не будет выполнено.

Пример 1

Найти произведение чисел от 1 до 10

Решение

REM произведение 1

DO

К=К+1

Р=Р*К

LOOP WHILE К<=10

PRINT K

REM произведение 2

K=0

DO WHILE К>10

К=К+1

Р=Р*К

LOOP

PRINT K

Эту структуру можно использовать и как цикл с предусловием. Тогда запись будет следующей :

DO {WHILE/UNTIL} условие

[операторы]

LOOP

Задачи

  1. Даны числа от 1 до N. Найти: а) сумму всех чисел, б) произведение всех чисел, в) среднее арифметическое.

  2. вычислить сумму всех двухзначных чисел

  3. вычислить сумму чисел: S=1+3+5+…+R, где R - четное

  4. найти значение функции y=x2 при х=1,3,5,…,15

  5. найти значение функции Е=(р2 +15) при р=2,4,6,…,20


  1. Символьные функции

Строкой символов или просто строкой в qbasic'е называют ограниченный двойными кавычками набор различных вводимых с клавиатуры символов: букв, цифр, знаков препинания, скобок, пробелов, знаков операций, специальных символов ("xchjl45 89hg7"). Строка может быть пустой и между кавычками не иметь ни одного символа ("").

Следующая функция позволяет выделить часть строки символов, а оператор - заменить часть строки другой строкой

  • MID$ - символьная функция

Выделяет из заданной строки часть заданной длины, начиная с заданного символа.

X$=MID$(строка, начало[, длина])

Строка - заданная строка символов

Начало - номер символа, с которого начинается выделение

Длина - количество выделяемых символов(если параметр «длина» опущен, то выделение выполняется до конца заданной строки)

Пример1:

A$="информатика"

B$=mid$(A$,3,6)

PRINT B$

Результат

Из слова «информатика» получим слово «формат».

Пример 2

B$=mid$("паровоз",5)

PRINT B$

Результат

Из слова «паровоз» получим слово «воз».

Пример 3

Что получим в результате работы следующей программы?

Rem функция mid$

A$="редактор"

B$=mid$(A$,4,3):C$=mid$(A$,6)

PRINT B$,c$


  • MID$- оператор

Заменяет часть символов одной строки символами другой строки

MID$(строка1, начало[, длина])=строка2

Строка1 - строка символов, часть которой должна быть заменена строкой2

Начало - номер символа, с которого начинается замена

Длина - количество заменяемых символов

Пример

Rem опрератор mid; заменяет часть символьной переменной

A$="скобка": B$="кат"

MID$(A$,2)=B$

PRINT A$

END

Результат

Будет напечатано скатка

Такой же результат можно получить, если строку

MID$(A$,2)=B$

заменить равенством

MID$(A$,3)=MID$(B$,2)

Самостоятельно

Путем замены букв получить

  • из слова «вирус» слово «фокус»

  • из слова «курсор» слово «танцор»

Аналогично работают функции

  • LEFT$(x$,n)… выделяет n символов в левой части символьной строки

  • RIGHT$(x$,n)… выделяет n символов в правой части символьной строки

Пример

A$="парогенератор"

B$=LEFT$(A$,3)

C$=RIGHT$(A$,9)

PRINT B$,C$

РЕЗУЛЬТАТ

Будет напечатано пар и генератор


  • STR$ -функция

Превращает численные данные в символьную строку

X$=STR$(целое выражение)

Пример

REM функция STR$;число-символьная строка

X=1945 'исходное число

X$=STR$(X) 'Переход от числа к строке Х $=" 1945"

N=LEN(X$) 'длина символьной строки

Y$=MID$(X$,3,2) 'вырезка из строки двух символов

PRINT"N=";N,"Y$=";Y$


  • VAL - символьная функция

Переводит символьную строку в число

X=VAL(строка)

Пример

REM функция VAL; символьная строка - число

PRINT VAL("Z12");VAL("23Z12"); VAL(MID$("Z12",2))

Программа напечатает 0, 23, 12


  • INKEY$ - символьная функция

Дает один символ введенный с клавиатуры

X$=INKEY$

Используется для создания программным путем паузы ожидания ввода информации с клавиатуры. При нажатии клавиши функция INKEY$ вводит символ в программу. Для создания паузы применяют оператор DO…LOOP

Пример

REM функция INKEY$ Режим ожидания

DO

X$=INKEY$

LOOP WHILE X$=""

Выход из цикла при нажатии клавиши, когда X$ становится непустой строкой


  • OCT$, HEX$ округляют число х до ближайшего целого и возвращают запись полученного числа в восьмеричной и шестнадцатеричной системах счисления.

Задачи

  1. Вывести коды всех строчных символов латинского алфавита

  2. Дано название футбольного клуба.

    • Определить количество символов в нем

    • Определить, четно или нет количество в нем

    • Напечатать его на экране столбиком

  3. дано слово. Вывести на экран его третий символ и дважды его последний символ.

  4. дано слово из четного числа букв. Поменять местами его половины. Задачу решить двумя способами:

    • без использования оператора цикла

    • с использованием оператора цикла

  5. Дано предложение

    • Все буквы «е» в нем заменить на букву «и»

    • Заменить в нем все вхождения буквосочетания «да» на «не»

    • Заменить в нем все вхождения подстроки Str1 на подстроку Str2

  6. дан текст, в котором имеется несколько идущих подряд цифр. Получить число, образованное этими цифрами.

  7. дано предложение. Определить, каких букв в нем больше «м» или «н».

  8. дано слово:

    • удалить из него третью букву

    • удалить из него k-ю букву


  1. Подпрограммы

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

Особенности записи подпрограммы

  • подпрограмма обычно помещается в конце рабочей программы

  • в подпрограмме может содержаться обращение к другой подпрограмме

  • подпрограмма не должна содержать оператор END

оператор вызова подпрограммы

GOSUB n

GOSUB - означает «перейти в п\п»

n - метка строки

оператор запоминает номер строки программы, следующей за ним по тексту, и переходит к выполнению п\п, начиная n-ой строки

оператор RETURN

обеспечивает возврат из п\п в рабочую программу непосредственно к строке, следующей за оператором GOSUB

пример

REM пример вычисления факториала

INPUT "x=";x

GOSUB 1

PRINT "факториал числа ";X;"равен";FACT

END

1 REM далее следует подпрограмма вычисления факториала

A=1

DO

A=A*X

X=X-1

LOOP WHILE X>0

FACT=A

RETURN

Задачи

  1. Вычислить Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения

  2. рассчитать значение х.(целесообразно в п\п вычислять значение Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения )

    • Методичка Язык программирования Basic . Можно использовать для самостоятельного изучения


11. Массивы

11.1. таблицы и табличные величины

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

Пример

На метеостанции каждый час измеряется температура воздуха, и значения измерений за сутки записываются в таблицу:

Temp - название таблицы.

Время измерения, ч

1

2

3

4

5

6

23

24

Температура, С

12

13

11

15

10

12

11

11

Эта линейная таблица содержит 24 элемента, пронумерованные от 1 до 24

Например, второй элемент таблицы имеет значение - 13, а пятый - значение 10.

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

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

Пример:

Составим таблицу размещения пассажиров в первых 6 вагонах на местах с 15 по 19 (элементами таблицы будут имена пассажиров)

VAGON

1 вагон

2 вагон

3 вагон

4 вагон

5 вагон

6 вагон

15

Катя

Наташа

Юля

Римма

Рома

Лиля

16

Олег

Марат

Ирек

Адель

Петя

Эльвина

17

Вася

Таня

Люба

Костя

Луиза

Лиза

18

Лена

Иля

Наташа

Артур

Рустем

Руслан

19

Коя

Мансур

Антон

Саша

Раиль

Марат

Например, элемент таблицы, стоящий в строке с индексом 17 и в столбце 1 вагон, имеет значение - Вася.


  1. Объявление массива

В gbasic существует возможность работы с таблицами, они имеют название - массивы.

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

DIM переменная(списки индексов)

Переменная - имя массива

Список индексов - определяет размерность массивов, разделяются запятыми.

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

  1. Одномерные массивы

Рассмотрим работу с одномерными массивами

Дадим таблице название - Tab

1

2

3

4

5

6

7

8

15

20

33

13

11

4

12

8

Индексы данной таблицы изменяются от 1 до 8. У одномерных массивов один список индексов.

Таким образом, описание этого массива выглядит так:

DIM Tab(8)

Задав конкретные значения индексов, можно выбрать определенный элемент массива. Например, оператор:

N=Tab(5)

Присвоит переменной N значение элемента массива, имеющего индекс 5, т.е. число 11.

Пример 1

Задан одномерный массив из N чисел. Изменить все элементы массива, увеличив их на единицу.

Работу с массивом можно разделить на 4 этапа:

  1. Описание массива (выделить место в памяти компьютера для данного массива)

  2. Ввод элементов массива (с клавиатуры, с помощью оператора присваивания, считывая из базы данных, с помощью функции RND)

  3. Работа с массивом (изменить элементы массива в соответствии с заданием)

  4. Вывод массива (на экран или принтер)

Последовательный доступ к каждому элементу массива удобно осуществлять в цикле.

Решение

'1

REM Mass 1

DIM Tab(8)

'2

FOR I=1 TO 8 STEP 1

PRINT "введите"; I ;"элемент массива"

INPUT Tab(I)

NEXT

'3

FOR I=1 TO 8 STEP 1

Tab(I)= Tab(I)+1

NEXT

'4

FOR I=1 TO 8 STEP 1

PRINT "Tab("; I;")="; Tab(I)

NEXT

Задачи

  1. задан одномерный массив из N чисел. Изменить значения элементов массива: а) все уменьшить на 100; б) если элемент больше 100 - заменить на 100; в) если элемент отрицательный - заменить на квадрат.

  2. задан одномерный массив из N чисел. Сосчитать количество элементов массива: а)положительных; б) отрицательных; в) нулевых

  3. заполнить одномерный массив элементами, значения которых равны их удвоенным индексам

  4. задан одномерный массив из N чисел. Найти те элементы массива, значения которых совпадают с их индексом.

  5. задан одномерный массив из N чисел. Сосчитать: сумму, произведение и среднее арифметическое всех элементов массива.

  6. задан одномерный массив из N чисел. Определить сумму положительных элементов и отрицательных элементов массива.

  7. задан одномерный массив А из N чисел. Создать новый массив путем деления всех элементов массива А на число Х.

11.4.Нахождение максимального элемента массива

Пример1

задан одномерный массив из N чисел. Найти максимальный элемент массива.

Решение

REM Mass 2

INPUT "введите количество элементов массива": N

DIM А(N)

FOR I=1 TO N STEP 1

А(I)=RND*101

NEXT

MAX=A(1)

FOR I=2 TO N STEP 1

IF MAX < A(I) THEN MAX=A(I)

NEXT

FOR I=1 TO N STEP 1

PRINT "A("; I;")="; A(I)

NEXT

PRINT "Max=";MAX

END

Задачи

  1. задан одномерный массив из N чисел. Найти минимальный элемент массива.

  2. задан одномерный массив из N чисел. Найти разницу между наибольшим и наименьшим элементами массива.

  3. * задан одномерный массив из N чисел. Проверить, есть ли в массиве отрицательные элементы и если есть, то найти среди них максимальный.

    1. Сортировка одномерного массива

Пример1

задан одномерный массив из N чисел. Отсортировать все элементы по возрастанию.

Решение

REM Mass 3

INPUT "введите количество элементов массива": N

DIM А(N)

FOR I=1 TO N

PRINT "введите"; I ;"элемент массива"

INPUT А(I)

NEXT

F=1

WHILE F=1

F=0

FOR I=1 TO N-1

IF A(I) > A(I+1) THEN SWAP A(I),A(I+1): F=1

NEXT

WEND

FOR I=1 TO N

PRINT "A("; I;")="; A(I)

NEXT

END

Оператор SWAP - обменивает значения двух переменных.

Задачи

  1. задан одномерный массив из N строк, имеющих вид фамилий. Отсортировать все элементы массива по алфавиту.

  2. В массиве каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы вначале массива расположились все нули, затем все единицы и, наконец, все двойки.

  3. задан одномерный массив из N чисел. Переставить элементы массива, чтобы отрицательные элементы предшествовали неотрицательным.

  4. * задан одномерный массив из N чисел и число В. Упорядочить массив по возрастанию и поместить переменную В в соответствующее место массива.

    1. Решение задач, используя одномерные массивы.

    1. задан одномерный массив из N чисел. Составить новый массив, состоящий из тех же чисел , но идущих в обратном порядке.

    2. задан одномерный массив из N чисел и число К. Напечатать «Да», если К совпадает хотя бы с одним из элементов массива и «Нет» в противном случае.

    3. задан одномерный массив из N чисел. Найти количество элементов массива, больших среднего арифметического всех его элементов.

    4. задан одномерный массив из N чисел. Определить в массиве число соседств из двух чисел одного знака.

    5. задан одномерный массив из N чисел. Найти сумму произведений всех троек соседних чисел.

    6. * задан одномерный массив из N чисел. Подсчитать наибольшее число одинаковых элементов, идущих в массиве подряд

    7. * задан одномерный массив из N чисел. Заменить все элементы массива на сумму предыдущего и последующего их значений.

    8. * задан одномерный массив из N чисел. Подсчитать количество неповторяющихся элементов массива.

    9. * задан одномерный массив из N чисел. Составить массив Y, где Y(I)=MIN(X(1),X(2),…X(I)).

    1. Двумерные массивы.

Рассмотрим работу с двумерными массивами (в алгебре их называю матрицами) на примере таблицы:

Дадим таблице имя - Tab

1

2

3

4

1

20

33

15

11

2

11

-1

4

7

3

5

0

3

6

Индексы данной таблицы изменяются: строки от 1 до 3; столбцы - от 1 до 4. У двумерных массивов два списка. Таким образом, описание этого массива выглядит так:

DIM Tab (3,4)

Задав конкретные значения индексов, можно выбрать определенный элемент массива. Например, оператор:

N=Tab(1,3)

Присвоит переменной N значение элемента массива, имеющего индекс строки 1, индекс столбца 3, т.у. число 15.

Пример 1

Задан массив из целых чисел, размерностью N*M (N - строки, M - столбцы). Вывести на экран:

а) N-ю строку; б) M-й столбец; в) весь массив.

Решение

REM Mass 4

INPUT "введите количество строк массива": N

INPUT "введите количество столбцов массива": M

DIM А(N, M)

FOR I=1 TO N

FOR J=1 TO M

PRINT "введите элемент массива"

INPUT А(I,J)

NEXT

PRINT "вывод "; N;"строки"

FOR I=1 TO M STEP 1

PRINT "A(";N;","; I;")="; A(N, I)

NEXT PRINT "вывод "; N;"строки"

FOR I=1 TO M STEP 1

PRINT "A(";N;","; I;")="; A(N, I)

NEXT

PRINT "вывод массива"

FOR I=1 TO N STEP 1

FOR J=1 TO M STEP 1

PRINT "A(";I;","; J;")="; A(I, J)

NEXT

NEXT

END

Пример 2

Задан массив из строк, размерностью N* M (N - строки, M - столбцы). Отсортировать все элементы массива по возрастанию.

Решение

REM Mass 5

INPUT "введите количество строк массива": N

INPUT "введите количество столбцов массива": M

DIM А(N, M)

' ввести двумерный массив

FOR I=1 TO N

FOR J=1 TO M

PRINT "введите элемент массива"

INPUT А(I,J)

NEXT

F=1

WHILE F=1

F=0

FOR I=1 TO N STEP 1

FOR J=1 TO M-1 STEP 1

'меняются местами 2 соседних элемента строки

IF A(I,J) > A(I,J+1) THEN SWAP A(I,J),A(I,J+1): F=1

NEXT

NEXT

FOR I=1 TO N-1 STEP 1

FOR J=1 TO M STEP 1

'меняются местами 2 соседних элемента столбца

IF A(I,J) > A(I+1,J) THEN SWAP A(I,J),A(I+1,J): F=1

NEXT

NEXT

WEND

PRINT "вывод массива"

FOR I=1 TO N STEP 1

FOR J=1 TO M STEP 1

PRINT "A(";I;","; J;")="; A(I, J)

NEXT

NEXT

END

37

© 2010-2022