Валерий Альмухаметов Программирование


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

– постановкой задачи;

– информацией об исходных данных;

– структурой используемой ЭВМ;

– представлением чисел; (точность, округление…);

– степенью универсальности задачи;

– требованиями к выходным данным.

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

При решении задачи на ЭВМ всегда получается не точное решение, а некоторое приближённое. Погрешность численного метода делится на:

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

– погрешность дискретизации или погрешность метода, она обусловлена заменой исходной задачи другой задачей, более удобной для решения на ЭВМ,

– погрешность округления, которая может нарастать в процессе вычислений.

Рассматриваюются базовые понятия современных универсальных языков программирования Basic, Visual Basic, Pascal и среда Delphi, а также C#. Представлены упражнения для освоения языков программирования.


©Альмухаметов В.




Язык программирования BASIC

Одна из разновидностей языка базовый BASIC, например GWBASIC.

Каждая программная строка начинается с номера строки. Минимальный номер строки = 0, максимальный номер строки = 65535. Ввод набранной строки осуществляется клавишей ENTER. Максимальная длина вводимой строки до 255 символов.

Программные строки можно вводить в любой последовательности, но выполняются они в порядке возрастания номеров. Нумерацию строк производят с некоторым шагом, например 10, 20, 30, …, это позволяет при необходимости добавлять внутрь программы новые строки.

Команды языка

LOAD -(клавиша F3) после команды необходимо указать набором полное имя (или маршрут и имя) загружаемого файла программы.

LIST – (клавиша F1) вызов строки или программы. Для исправления строки программы необходимо вывести строку с помощью команды LIST N, где N это номер строки или группу строк LIST N – M, либо набрать и ввести строку заново с тем же номером. После исправления не меняя положение курсора нажать ENTER.

DELETE N-M – удаление строк программы с номера N по M (удалить любую строку можно набором ее номера и нажатием клавиши ENTER).

RUN – (клавиша F2) запуск программы на исполнение.

Основные конструкции языка

Основной конструкцией языка является ОПЕРАТОР. Строка программы может состоять из одного или нескольких операторов, которые разделяются символом (:).

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

– 26 прописных и строчных букв латинского алфавита;

– десятичные цифры от 0 до 9;

– знаки арифметических операций (+, -, *, /, \, ^);

– знаки операций отношения ( >, <, >=, <=, =);

– специальные знаки ( ),(,”, %, ‘, ?, !, #, $, @, & );

Данные языка

Имя данного должно начинаться с буквы, а в конце может иметь знак, определяющий тип данного. В случае, если обозначение типа отсутствует, то идентификатору присваивается тип вещественный. Обозначения: % -целые данные, ! -вещественные, # -двойной точности, $ -символьные.

Индексированные переменные ( А(1,5); К#(7); D(3,3,3); N%(2,4)), имеют кроме имени индекс, заключаемый в круглые скобки.

ИНДЕКСЫ массива – целые выражения, принимающие положительные значения. Массивы чисел, использующиеся в программе, должны обязательно быть описаны с помощью оператора ОПИСАНИЯ РАЗМЕРНОСТИ МАССИВА: DIM, например:

10 DIM A(15),M(5,10,20)

Описывается два массива “А” из 16 элементов и “М” из 1386 элементов (начиная с нулевого). Количество элементов в массиве равно произведению его измерений. Оператор DIM должен располагаться в программе до первого обращения к массивам, которые он описывает.

Для определения переменных используется оператор ПРИСВАИВАНИЯ: LET.

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

120 LET V=A(4)

Ключевое слово LET в операторе может быть опущено.

130 C= А(6)+В

Ввод вывод данных

Для ввода данных из программы может использоваться оператор ДАННЫХ: DATA. Он может находится в любом месте программы.

Оператор ВВОДА: READ присваивает значения переменных величинам из оператора DATA. Должно соблюдаться соответствие количества элементов операторов READ и DATA.

Оператор ВОССТАНОВЛЕНИЯ: RESTORE возвращает к считыванию первого элемента оператора DATA после того как несколько из них или все были считаны.

200 DATA 2.5,7.1,5,9,12

210 READ A,B,C

220 READ K

Величинам A,B,C и К присвоятся соответственно значения: A=2.5; B=7.1; C=5; К=9.

230 RESTORE

240 READ M,N

Величинам М и N присвоятся значения 2.5 и 7.1.

Оператор ВВОДА С КЛАВИАТУРЫ: INPUT содержит список переменных, которые необходимо ввести.

250 INPUT “скорость=”;V

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

Для ввода из файла используется оператор ОТКРЫТИЯ ФАЙЛА: OPEN.

260 OPEN “A1.DAT” FOR INPUT AS #K

Открывается файл с именем A1 и расширением DAT, номер его К (1 – 3 ), затем из файла вводится с помощью оператора INPUT #K,R переменная R.

Оператор ЗАКРЫТИЯ файла: CLOSE K# закрывает открытый К# файл. Для вывода в файл используется оператор с записью ( FOR OUTPUT ) и затем ( PRINT # ).

Вывод на экран дисплея осуществляется оператором ВЫВОДА: PRINT со списком выводимых переменных.

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

300 PRINT “РЕЗУЛЬТАТ А и В =”,A;B

Для раздельного вывода по столбцам, запятая:

310 PRINT C,D

Оператор PRINT без списка данных выполняет перевод строки.

Функция TAB производит форматирование вывода.

330 PRINT TAB(5),X

Перед выводом числа Х будет пропущено 5 пробелов. Функция TAB часто используется для построения графиков или таблиц.

Операции

Действия, совершаемые над числовыми данными, называются ЧИСЛОВЫМИ операциями.

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

* – умножение; / – деление;

\ – деление нацело ( 10\4 = 2; 25.7\6.98 = 3 ), результат выполнения равен целому числу;

МOD – арифметический модуль ( 10 MOD 3 = 1 ), результат выполнения равен целому остатку от деления;

+ – сложение; – – вычитание.

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

Результатом выполнения операции ОТНОШЕНИЯ ( = равно, > больше, < меньше, >= больше или равно, <= меньше или равно, <> не равно ) является 1, если ответ положителен и 0, в противном случае.

Результатом ЛОГИЧЕСКИХ операций (AND-и, OR-или, NOT-нет) является истина или ложь.

Нестандартные функции

Повторяющиеся в программе арифметические выражения, можно представить в виде оператора функции.

Для описания типа функции используется оператор ОПИСАНИЯ ТИПА ФУНКЦИИ: DEF FNR1(X) = E, где DEF FN -оператор, R1– имя или идентификатор функции, Х – список ФОРМАЛЬНЫХ ПАРАМЕТРОВ ( имена фиктивных переменных фактических значений, которые должны быть вычислены к моменту выполнения функции, если их несколько, то все они перечисляются через запятую). Е – вид описываемой функции.

Например:

400 DEF FNFS1(X,Y)=A*(X^2+Y^2)

500 C=A+FNFS1(B,C)

где имя функции FS1, формальные параметры– X и Y, фактические значения– B и C.

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

МАТЕМАТИЧЕСКИЕ функции:

ABS(X) = +X ,число или выражение по модулю;

SIN(X) = sin(Х), синус числа или выражения;

COS(X) = косинус аргумента;

TAN(X) = тангенс аргумента;

SQR(X) = корень квадратный числа или выражения;

EXP (X) = ех – экспонента аргумента;

LOG(X) = натуральный логарифм;

RND(1) = случайное число из диапазона 0 – 1.

Функции ПРЕОБРАЗОВАНИЯ ДАННЫХ:

FIX(X) – отбрасывает числа после запятой;

СINT(X) – определяет наибольшее целое, не превосходящее значение аргумента;

INT(X) – округляет значение до ближайшего целого;

SGN(X) – определяет знак аргумента и присваивает результату значение -1, если знак аргумента отрицательный, 0, если аргумент равен нулю, и 1 , если положительный.

Функции ОБРАБОТКИ СТРОК:

STRING$(N,”Z”) – формирует строку из N знаков Z;

MID$(X$,N,M) – выделяет часть строки: с номера символа N всего M символов строкового аргумента Х$.

Функции ПРЕОБРАЗОВАНИЯ СТРОК:

VAL(X$) – преобразование цифровой строки в цифровое значение;

STR$(X) – преобразование цифрового значения в текстовую строку, содержащую цифры.

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

Операторы передачи управления

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

Оператор БЕЗУСЛОВНОГО ПЕРЕХОДА: GOTO N осуществляет переход к выполнению операторов с номера строки N. номер строки N – целая константа.

Оператор УСЛОВНОГО ПЕРЕХОДА: IF L THEN S , где L – выражение, принимающее логическое значение “истина” (не нуль) или “ложь” (нуль), S – оператор. Читается этот оператор таким образом: если условие выполняется, тогда выполнить предложенное действие (тоже оператор).

IF A>B THEN PRINT “A”

IF X<>B AND B<>0 THEN GOTO 500

или запись:

IF X<>B AND B<>0 THEN 500

или запись:

IF X<>B AND B<>0 GOTO 500

ПОЛНЫЙ оператор условного перехода дополняется ключевым словом ELSE – иначе, после которого расположен оператор, выполняемый при значении “ложь”. Если условие выполняется, то выполнить действие, а иначе выполнить другое действие.

IF L THEN S ELSE S1

IF A=B THEN 10 ELSE PRINT “A<>B”

IF A=B THEN IF B=C THEN

PRINT “A=C” ELSE PRINT “A<>C”

Последний из записанных операторов имеет вложенную структуру, одно условие содержит другое.

Операторы организации циклов

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

Для организации цикла также могут использоваться специальные операторы языка: оператор НАЧАЛА ЦИКЛА: FOR и оператор ОКОНЧАНИЯ ЦИКЛА: NEXT.

Цикл FOR – NEXT записывается в виде:

FOR I = E1 TO E2 STEP E3

Где I – простая числовая переменная, параметр цикла, Е1, Е2, Е3 – числовые выражения (начальное, конечное значения и шаг изменения параметра цикла). Читается этот оператор: для индекса I, изменяющегося от значения Е1 до значения Е2 с шагом Е3, выполнить следующие действия. Цикл завершается оператором NEXT I.

Если шаг изменения Е3 равен 1 то конструкция STEP опускается. Параметр I после слова NEXT можно не указывать, особенно если цикл в программе один.

600 FOR K=1 TO N

610 F=F*K

620 NEXT

После окончания данного цикла параметр К принимает значение К = N + 1. Циклы могут иметь вложенную структуру.

700 FOR I=1 TO 5

710 FOR J=0 TO -10 STEP -2

720 FOR K=5.5 TO 10.5 STEP .5

. . .

830 NEXT K

840 NEXT J

850 FOR L=2 TO 20 STEP 2

. . .

890 NEXT

Закрываются вначале внутренние циклы, а затем внешние. Используется одно окончание NEXT для циклов по I и L.

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

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

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

Вызов подпрограммы осуществляется оператором GOSUB N, где N – номер первой строки подпрограммы. Завершает подпрограмму оператор RETURN, возвращающий управление в основную программу на оператор, следующий за оператором обращения к подпрограмме GOSUB. Из подпрограммы также можно выйти с помощью операторов передачи управления: GOTO или IF – THEN. В операторе возврата в некоторых версиях Бейсика можно предусмотреть номер строки возврата RETURN N.

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

Графические операторы

CLS – очищает экран дисплея;

COLOR N1,N2,N3-устанавливает цвет экрана ( N1-номеp цвета переднего плана, задается от 0 до 8; N2 – номер цвета фона, задается от 0 до 8; N3 – номер цвета знакоместа);

SCREEN N – переключение экранов N=0 или N=1 символьный экран; N=2 или N=3 графический экран;

PSET (N1,N2),N3 – окрашивание точки экрана в цвет N3,выбирается от 0 до 8, N1 координата Х, N2 координата Y;

PRESET (N1,N2),N3 – окрашивание точки в цвет фона;

LINE (N1,N2)-(N3,N4),N5,A – вычерчивание линии или прямоугольника, N1,N3 – координаты Х; N2,N4 – координаты Y; N5 – цвет от 0 до 8; если А=В то чертится прямоугольник, если А=BF, то закрашенный прямоугольник;

CIRCLE (N1,N2),N3,N4,N5,N6,N7 – вычерчивание окружности, эллипса или дуги, N1,N2 – координаты центра X и Y ; N3 – радиус; N4 – цвет от 0 до 8; N5 – положение начальной точки дуги в радианах; N6 – положение конечной точки дуги в радианах; N7 – коэффициент сжатия эллипса;

PAINT (N1,N2),N3,N4 – окрашивание части экрана в один цвет, N1,N2 – координаты X и Y начальной точки, N3 – цвет, N4 – цвет границы закрашиваемой области.

Начало и конец задачи

Для обозначения начала задачи или отделения одного блока программы от другого, для лучшей ориентации по программе или для обозначения подпрограмм используется оператор КОММЕНТАРИЙ: REM, после оператора в строке можно записать любой текст. Для обозначения окончания программы используется оператор END.


Практические задания в среде языка BASIC

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

Задача 1: (линейный алгоритм)

а). Набрать текст программы, переходя в следующие строки, нажатием клавиши ENTER.

10 Q=5

20 Z=Q+8

30 PRINT Q,Z

40 END

б). Для просмотра записанного в память текста, выполнить команду LIST (F1).

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

г). В результате исполнения программы, на экране должен появиться ответ в виде двух чисел: 5 13

д). Очистить память ЭВМ от записанной программы, набрав в свободной строке и исполнив команду NEW. Очистить экран компьютера, набрав в свободной строке и исполнив команду CLS.

Задача 2: (линейный алгоритм)

а). Набрать текст программы, не забывая нажимать клавишу ENTER после каждой строки.

10 A=15

20 B=A/3+1

30 PRINT B

40 A=A+B

50 PRINT A,B

60 END

б). Просмотреть набранный текст, исполнив команду LIST.

в). Исполнить программу командой RUN.

г). Наблюдать на экране результат решения: 6 21 6

д). Очистить экран CLS, очистить память NEW.

Задача 3: (разветвленный алгоритм)

а). Набрать текст программы:

10 INPUT X

20 Y=SIN(X)

30 IF Y>0 THEN K=1 ELSE K=2

40 PRINT Y, K

50 END

б). Исполнить программу, выполнив RUN, при появлении на экране знака: ? , что означает запрос по команде INPUT на ввод числа с клавиатуры, набрать любое число и ввести его, нажав клавишу ENTER.

в). Наблюдать на экране результат решения в виде двух чисел, при этом, если первое из них положительно, то второе число будет равным 1, и наоборот, если первое число отрицательно, то второе равно 2.

г). Очистить память NEW и экран компьютера CLS.

Задача 4: (циклический алгоритм)

а). Набрать текст программы:

10 H=20

20 C=H-8

30 PRINT H, C

40 H=H-6

50 IF C>0 GOTO 20

60 END

б). Распечатать текст программы на экране.

в). Исполнить программу и наблюдать результат:

20 12

14 6

8 0

г). Очистить экран и память.

Задача 5: (разветвленный алгоритм)

Решить задачу с условием: подсчитать значение величины Y по формуле: Y=X2+А при X<0 и по формуле: Y=tg(X3)-sin(X/3)-А при X>=0.

а).Набрать текст программы:

10 INPUT “A, X=”;A,X

20 IF X>=0 GOTO 50

30 Y=X^2+A

40 GOTO 60

50 Y=TAN(X^3)-SIN(X/3)-A

60 PRINT “Результат=”,X,Y

70 END

б). Исполнить программу, при появлении на экране записи: A,X=? ввести с клавиатуры два числа через запятую и нажать клавишу ENTER.

в). Наблюдать результат в виде записи: Результат= с двумя числами, записанными с промежутком между ними.

г). Очистить экран и память ЭВМ.

Задача 6: (циклический алгоритм)

а). Набрать текст программы:

10 FOR X=0 TO 0.5 STEP 0.1

20 Y=10*X+5

30 PRINT X,Y

40 NEXT X

50 PRINT

60 PRINT “X=”,X

70 END

б). Исполнить программу и наблюдать на экране результат:

0 5

0.1 6

0.2 7

0.3 8

0.4 9

0.5 10


Х= 0.6

в). Очистить экран и память.

Задача 7: (циклический алгоритм, использование массива случайных чисел)

Заполнить массив размером 6 случайными числами в диапазоне от 0 до 10 и распечатать номер элемента массива и его значение.

а). Набрать текст программы:

10 DIM A(6)

20 FOR I=1 TO 6

30 A(I)=10*RND(1)

40 PRINT I,A(I)

50 NEXT I

60 PRINT “Индекс I стал равен:”,I

70 END

б). Исполнить программу и наблюдать результат:

в). Очистить экран и память.

Задача 8: (алгоритм, включающий условие и цикл)

Определить максимальное значение функции: Y=sin(X)+ln(X) в интервале значений аргумента от 1 до 3 с дискретностью 0.01 .

10 REM Программа

20 YMAX=0

30 GOSUB 60

40 PRINT XMAX,YMAX

50 END

60 REM Подпрограмма

70 FOR X=1 TO 3 STEP 0.01

80 Y=SIN(X)+LOG(X)

90 IF Y

100 YMAX=Y

110 XMAX=X

120 NEXT X

130 RETURN

Результатом решения будет два числа: значение аргумента, при котором функция имеет максимальное значение и значение функции.

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

Предел (A – B) разбивается на заданное число интервалов, выбираемое в зависимости от требуемой точности вычислений.

Например, функция Y=X2+2 в пределах от 0.1 до 2. Число интервалов задаем, например, равным 100.

10 DEF FNY(K)=K^2+2

20 INPUT “Входные пеpеменные A,B,N=”;A,B,N

30 H=(B-A)/N

40 S=0

50 X=A

60 FOR I=1 TO N-1

70 X=X+H

80 S=S+FNY(X)

90 NEXT I

100 S=0.5*H*(FNY(A)+FNY(B)+2*S)

110 PRINT S

120 END

При запросе входных переменных заносим значения: А, В и N соответственно: 0.1; 2; 100.


Программирование в среде Visual Basic

Среда систем визуального программирования

Построение приложений WINDOWS (в том числе разработка программ) в среде систем визуального программирования (Visual BASIC, Delphi, C…) существенно облегчается вследствие использования интегрированной среды разработчика.

Среда систем визуального программирования состоит: из строки меню с обязательным пунктом ФАЙЛ, через который выполняются действия с файлами: загрузка, сохранение, вывод на печать; панели инструментов, дублирующей пункты меню и ускоряющей действия пользователя; панели элементов, включающей компоненты приложений, помещаемые в окна.

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

На экране также обычно отображается окно свойств (Properties) объектов проекта и форма-окно приложения.


Стандартные компоненты

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

Курсор – это не компонент, просто пиктограмма для выбора или отмены выбора какого -либо объекта.

Label метка служит для отображения текста на экране. Можно изменить шрифт и цвет метки.

TextBox может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст или данные во время выполнения программы.

Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы.

CheckBox отображает строку текста с маленьким окошком для отметки выбора элемента рядом.

OptionButton позволяет выбрать одну опцию из нескольких.

ListBox нужен для показа прокручиваемого списка. Например, названий файлов или каталогов из ListBox.

Scrollbar полоса прокрутки, появляется автоматически в объектах редактирования, например, ListBox.

Image отображает графическое изображение.

Timer таймер, событие OnTimer периодически вызывается через промежуток времени, указанный в свойстве Interval.

Дополнительные компоненты

Для использования прочих компонент приложений можно добавить их на панель через меню: Project/Components/Insertable Objects.

MainMenu позволяет поместить главное меню в программу. При помещении MainMenu на форму это выглядит, как просто значок. Значки данного типа называют "невидимым компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: помещение MainMenu на форму, вызов Дизайнера Меню, определение пунктов меню в Дизайнере Меню.

PopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте.

Построение приложений в среде VisualBASIC

После загрузки среды программирования, выбора в окне NEW PROJECT, Standard EXE, ОТКРЫТЬ вы автоматически попадаете в среду построения приложения, где имеется пустая пока форма Form1, на этой форме вы и должны графически построить содержимое проектируемого приложения, используя компоненты панели ToolBox.

Выбор элемента выполняется щелчком левой кнопки мыши. Установка элемента на форме выполняется щелчком или протаскиванием мышью с нажатой левой кнопкой. Для установленного элемента, и для самой формы в окне свойств (Properties) можно выбрать необходимые свойства, например: шрифт, цвет, надпись (Caption), имя (Name), размеры (Left, Top, Height, Width) и т.д. Размеры и расположение компонента можно менять, используя перетаскивание мышью с нажатой левой кнопкой сам элемент или метки по его периметру. Для изменения общих свойств нескольких компонентов выделение их выполняется рамкой или по одному с удержанием клавиши Shift.

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

Private Sub Command1_Click()

программный код …

End Sub

Запуск программы для отладки выполняется щелчком по кнопке Start панели инструментов или через меню RUN (Start) или клавишей F5. Для выхода из программы можно использовать кнопку панели инструментов: End или закрыть окно программы. Имеются мощные графические отладчики, позволяющие находить и устранять ошибки в коде программ. Можно установить точки останова, щелчком справа от оператора текста программы, проверить ход программы, при помощи пошагового Debug выполнения. Для компиляции созданного приложения необходимо зайти в меню File, сохранить предварительно проект Save Project As, выбрав маршрут и указав имена файлов формы и проекта и затем в меню File выбрать Make ….EXE. Синтаксис языка Visual BASIC имеет некоторые отличия, но во многом совпадает с синтаксисом GWBasic.

Данные языка Visual BASIC

Комментарий в тексте программы начинается знаком апостроф (‘).

КОНСТАНТЫ объявляются в программе с помощью оператора Const, за которым через запятую перечисляются имена величин с их значениями, например: Const M=4,N=3 и т.д.

Оператор Dim объявляет тип переменных, например:

Dim My_Name As String

Dim Tel As String*9 (девять символов содержит переменная Tel)

Dim I As Integer ,J As Integer

Dim K As Double, A As Single

Оператор DIM также объявляет массивы, например:

Dim My_Mass(40) As String

Dim Mass1!(1 To 40)

Dim Mass2(1 To 30) As Double

ИНДЕКСЫ массива – целые выражения, принимающие положительные значения. Минимальное значение равно 0.

Массив с двумя индексами: Dim Ocenka(1 To 5, 1 To 20) As Integer

Удалить из памяти массивы можно оператором Erase с указанием через запятую списка имен массивов.

Для включения возможности изменения размеров массива их объявляют оператором ReDim и в диапазоне индексов можно указать имена переменных, значения которых, например, при решении ввести через текстовые поля. Чтобы при переопределении массива старые значения не были потеряны можно использовать оператор описания в виде: ReDim Preserve .

В случае, если обозначение типа данного отсутствует, то идентификатору присваивается тип Variant – произвольный. Основные обозначения: % -целые (Integer), например: Atip%, от -32768 до 32767, ! -вещественные (Single) от 1.41Е-45 до 3.4Е-38, # -двойной точности (Double) от 4.95Е-324 до 1.79Е-308, $ -символьные (String), обрамляются кавычками.

Для определения переменных используется оператор ПРИСВАИВАНИЯ:

V=A(4)

Itog_sceta=Itog_sceta+Ocenka(I,J)

C= А(6)+В

Ввод вывод данных

Для ввода данных может использоваться элемент текстовое поле (TextBox). Он может быть установлен на экранную форму. Оператор присваивания позволяет считать данные введенные с клавиатуры: A=Dlina.Text , где Dlina это имя поля (Name).

Считывание: В=InputBox("Комментарий","Заголовок окна","Начальное значение") позволяет вводить данные с помощью специального "окна ввода".

Данные можно выбрать из заранее подготовленного или заполняемого при решении задачи "окна списка". Например: Х=ИмяОкнаСписка.List(N).

Для ввода из файла используется оператор ОТКРЫТИЯ ФАЙЛА: OPEN.

Open "A1.TXT" For Input As #K

Открывается файл с именем A1 и расширением TXT, номер его К, затем из файла вводятся данные с помощью оператора Input #K,R переменная R. Оператор Line Input используется для ввода данных из файла построчно.

Оператор ЗАКРЫТИЯ файла: CLOSE #K закрывает открытый #К файл. Для вывода в файл используется оператор с записью ( For Output ) и затем (Print #K, … или Write #K, …).

Вывод на форму осуществляется оператором ВЫВОДА: PRINT со списком выводимых переменных.

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

Print “РЕЗУЛЬТАТ А и В =”,A;B

для раздельного вывода по столбцам, запятая:

Print C,D

Оператор PRINT без списка данных выполняет перевод строки.

Функция TAB производит форматирование вывода.

Print Tab(5),X

Перед выводом числа Х будет пропущено 5 пробелов. Функция TAB часто используется для построения графиков или таблиц.

Результат может быть показан в установленном "текстовом поле", например: ИмяПоля.Text=Y.

Нестандартные функции и процедуры

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

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

Для описания функции используется например описание:

Public Function AA(A As Single,B As Single,C As Single) As Double

P=(A+B+C)/2

AA=Int(Sqr(P*A*B*C)

End Function

где AA– имя или идентификатор функции, в скобках список ФОРМАЛЬНЫХ ПАРАМЕТРОВ ( имена фиктивных переменных фактических значений, которые должны быть вычислены к моменту выполнения функции, если их несколько, то все они перечисляются через запятую). внутри блока вид описываемой функции. В результате работы блока возвращается вычисленное значение АА. Функции как и процедуры могут быть локальными: Private и глобальными: Public.

Процедура отличается от функции тем, что она возвращает значения переменных описанных в списке параметров, например:

Вызов процедуры: Call ИмяПроцедуры(СписокПараметров)

можно записать без скобок и ключевого слова Call , список параметров это переменные через запятую. ИмяПроцедуры СписокПараметров . Сама процедура имеет описание:

Public Sub ИмяПроцедуры(СписокПараметров)

и операторы для обработки данных или вычислений

End Sub

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

Некоторые особые стандартные функции

Rnd = случайное число из диапазона 0 – 1 (r!=Rnd) (Для генерации псевдослучайных чисел используется оператор Randomize N, где N любое число, или Randomize Timer старт от счетчика времени).

Fix(X) – отбрасывает числа после запятой;

Сint(X) – определяет наибольшее целое, не превосходящее аргумент;

Int(X) – округляет значение до ближайшего целого;

Sgn(X) – определяет знак аргумента и присваивает результату значение -1, если знак аргумента отрицательный, 0, если аргумент равен нулю, и 1 , если положительный.

Val(X$) – преобразование цифровой строки в цифровое значение;

Str(X) – преобразование цифрового значения в текстовую строку, содержащую цифры;

Len(Х$) – возвращает длину строки;

Mid(Cтрока$,Позиция&,Длина&) – в строке выделяется подстрока с позиции заданной длиной;

Asc(Cтрока$) – преобразовывает строку в код ASCII первого символа строки;

Chr(Код&) – преобразует код в строку из одного символа.

InputBox(Приглашение,Заголовок,Начальное значение) – ввод данных с помощью окна ввода;

MsgBox(Текст,Вид значка,Заголовок окна) – вывод окна предупреждения (Вид значка: критическое сообщение=16, вопрос=32, предупреждение=48, информация=64; добавление к этому числу 0 означает кнопка ОК, 1 – это две кнопки: ОК и Отмена, 2 – Стоп, Повтор, Пропустить, 3 – Да, Нет, Отмена, 4 – Да, Нет, 5 – Повтор, Отмена); Функция возвращает значения: 1=ОК, 2=Отмена, 3=Стоп, 4=Повтор, 5=Пропустить, 6=Да, 7=Нет.

Загрузка...