Процессы разветвляющейся структуры. Операторы разветвления среды программирования QBasic

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

GOTO N/

Например GOTO 100 (идти к строке с меткой 100).

2. оператор условного перехода IF…then (если то)

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

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

Если выражение «истина», то действие выполняется. В противном случае управление передается строке, непосредственно следующей за IF…then.

Например If a>b then y=a+b

Примечание. В операции IF…then часто используется логические операции and(и), or(или)

Например

If x=12 and y<0 then c=x+y

If x=12 or y<0 then c=1

3. условный оператор IF…then…else (если…то…иначе)

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

If a>3 then y=a+b else y=a-b

If a>0 then print a else goto 100/

Пример.

Решить систему уравнений.

Если d<6

Если d=6

Если d>6

1 способ

Rem решение системы уравнений

Input «введите d, c, b, x»;d,c,b,x

If d<6 then z=d*c^2-b*tan(d)

If d=6 then z=cos(5*x+0,5*d) else z=exp(c)+sqr(d+b^8)

Print «d=»;d, «z=»;z

End.

2 способ

Input d,c,b,x

If d<6 then z=d*c^2-b*tan(d)

If d=6 then z=cos(5*x+0,5*d) else z=exp(c)+sqr(d+b^8)

Print z

End.

Вопрос 20.

Циклами называются многократно повторяющиеся участки программы.

Для организации цикла с заданным числом повторений удобно использовать операторы цикла FOR, TO, STEP, NEXT.

FOR идентифицирует начало циклического участка программы. Например:

FOR L=1 TO 10 STEP 2; FOR N=-5 TO 5; FOR A=10,5 TO 0 STEP -0,5.

(Обычно, если STEP(шаг)=1, то STEP не пишут, опускают).

Пример:

Составить программу для вычисления значений по формуле: , где , .

REM Пример 1

INPUT Введите A, B, C; A, B, C

FOR x= A TO B STEP C

Y=10^x

PRINT «x^»; x, «x=»; Y

NEXT x

END.

Вопрос 21.

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

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

· Данные удобно представлять в виде линейных и прямоугольных таблиц.

· Массивы объединяют однотипные элементы, упорядоченные по индексам, определяющие положение каждого элемента в массиве. За это они получили название регулярный тип.

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

· Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива.

· Индекс представляет собой выражения любого скалярного типа, кроме вещественного. Тип индекса определяет границы изменения значений индекса.

· В Бейсике предусмотрены средства, позволяющие давать имена целому набору переменных.

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

· Определение 2. Под массивом понимается набор данных (констант, чисел, числовых констант) объединенных общим признаком.

· Определение 3. Массив – это упорядоченная совокупность однотипных данных, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами.

Характеристика.

1) Имя. Имя образуется по общему правилу.

2) Размерность. Число индексов определяет размерность массива.

3) Размер. Размер – кол-во элементов в массиве.

Описание массивов.

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

· Размеры массива задаются границами изменения индексов по каждому измерению.

Для задания размерности массивов в Basic предназначен оператор DIM – DIMENSION (размерность).

Общий случай.

DIM A1(n1), A2(n1,n2),…, Ak(n1,n2,…,nk)

A1,A2,…An - имена массивов.

n1,n2,…nk – верхние границы индексов.

DIM A(20) – одномерный массив, содержащий 20 элементов.

DIM B(10,30) – двумерный массив В, содержащий 10 строк и 30 столбцов.

DIM A(N), B(N,M)

DIM A(20), C$(15), K(5,10)/

Примечание.

1) DIM может быть записан в любом месте программы, но до первого оператора, использующего соответствующую индексную переменную.

2) Общепринята структура, при которой все описания объединяются в начале программы.

Вопрос 22.

· Запись элемента массива в зарезервированную область памяти может осуществляться в диалоговом режиме при помощи оператора INPUT.

· Более распространен ввод массив а, реализованный с помощью циклического вычислительного процесса.

Пусть дан массив действительных чисел:

А1,А2,…,А10.

· Имя – А.

· Кол-во элементов – 10.

· Индекс (I) изменяется от 1 до 10.

1. Ввод элементов.

DIM A(10)

FOR I=1 TO 10

PRINT «Введите», I, «Элемент массива А»

INPUT A(I)

NEXT I

Когда кол-во элементов неизвестно, то будем писать N.

2. Вывод элементов.

PRINT «Вывод одномерного массива»

FOR I=1 TO 10

PRINT «А («; I;») =», A (I)

NEXT I

Вопрос 23.

Вначале рассмотрим задачу:

Создать программу, которая формирует одномерный массив тремя способами:

1. По формуле: A(I)=sin(I)

2. Случайным образом B(I)

3. Ввод с клавиатуры C(I)

DIM A(N) B(N) C(N)

FOR I=1 TO N

A(I)=sin(I)

NEXT I

FOR I =1 TO N

B(I)=Random (I)

NEXT I

FOR I=1 TO N

PRINT «Введите», I

INPUT C(I)

NEXT I

PRINT «Вывод массива А»

FOR I=1 TO N

PRINT B(I)

PRINT «Вывод массива С»

FOR I=1 TO N

PRINT C(I)

NEXT I

Теперь нахождение суммы массивов.

REM summa

PRINT «Введите кол-во элементов массива»

INPUT N

DIM X(N)

FOR I=1 TO N

PRINT «Введите», I, «Элемент массива x»

INPUT X(I)

NEXT I

S:=0

FOR I=1 TO N

S:=S+X(I)

NEXT I

PRINT «Вывод массива»

FOR I=1 TO N

PRINT X(I)

NEXT I

PRINT «Сумма элементов равна», S

END

Произведение массивов.

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

PRINT «Введите кол-во элементов массива»

INPUT N

DIM X(N)

FOR I=1 TO N

PRINT «Введите», I, «Элемент массива x»

INPUT X(I)

NEXT I

P:=0

FOR I=1 TO N

P:=P*X(I)

NEXT I

PRINT «Вывод массива»

FOR I=1 TO N

PRINT X(I)

NEXT I

PRINT «Сумма элементов равна», S

END

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

REM максимум

PRINT «Введите кол-во элементов массива»

INPUT N

DIM X(N)

FOR I=1 TO N

PRINT «Введите», I, «Элемент массива x»

INPUT X(I)

NEXT I

MAX:=X(I)

FOR I=1 TO N

IF X(I)>=MAX THEN MAX:=X(I)

NEXT I

PRINT «Вывод массива»

FOR I=1 TO N

PRINT X(I)

NEXT I

PRINT «Наибольший элемент равен», MAX

END

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

REM минимум

PRINT «Введите кол-во элементов массива»

INPUT N

DIM X(N)

FOR I=1 TO N

PRINT «Введите», I, «Элемент массива x»

INPUT X(I)

NEXT I

MIN:=X(I)

FOR I=1 TO N

IF X(I)<=MAX THEN MIN:=X(I)

NEXT I

PRINT «Вывод массива»

FOR I=1 TO N

PRINT X(I)

NEXT I

PRINT «Наименьший элемент равен», MIN

END.

Вопрос 24.

Алгоритмы сортировки одномерных массивов

Сортировка - один из наиболее распространённых процессов совре-

менной обработки данных. Сортировкой называется распределение

элементов массива в соответствии с определёнными правилами. Нап-

ример, сортировка массива по возрастанию или убыванию его элемен-

тов.

Обменная сортировка (метод "пузырька").

Алгоритм начинается со сравнения 1-го и 2-го элементов массива.

Если 2-й элемент меньше 1-го, то они меняются местами. Этот про-

цесс повторяется для каждой пары соседних элементов массива, пока

все N элементов не будут обработаны. За один "проход" массива са-

мый большой элемент встанет на старшее (N-е) место. Далее алго-

ритм повторяется, причем на р-м "проходе" первые (N-p) элементов

сравниваются со своими правыми соседями. Если на очередном "про-

ходе" перестановок не было, то алгоритм свою работу закончил. Та-

ким образом, самые "легкие" элементы в процессе исполнения алго-

ритма постепенно "всплывают".

Сортировка вставками.

Вначале упорядочиваются два первых элемента массива. Они образу-

ют начальное упорядоченное множество S. Далее на каждом шаге бе-

рется следующий по порядку элемент и вставляется в уже упорядо-

ченное множество S так, чтобы слева от него все элементы были не

больше, а справа - не меньше обрабатываемого. Место для вставки

текущего элемента в упорядоченное множество S ищется методом де-

ления пополам. Алгоритм сортировки заканчивает свою работу, когда

элемент, стоящий на N-м месте, будет обработан. (Именно таким об-

разом игроки в бридж обычно упорядочивают свои карты).

Сортировка выбором.

Находится наибольший элемент в массиве из N элементов (пусть он

имеет номер р) и меняется местами с элементом, стоящим на N-м

месте, при условии, что N<>p. Из оставшихся (N-1) элементов снова

выделяется наибольший и меняется местами с элементом, стоящим на

(N-1)-м месте и т. д. Алгоритм заканчивает свою работу, когда

элементы, стоящие на 1-м и 2-м местах в массиве, будут упорядоче-

ны (для этого понадобится N-1 "проход" алгоритма). Аналогично

данный алгоритм можно применять и к наименьшим элементам.

(Ответ на вопрос 24 скачал с интернета).

Вопрос 25.

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

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

А11 А12 А13...А1m

А21 А22 А23...А2m

...................

An1 An2 An3...Anm

Здесь: n – строка m – столбец.

Можно записать: DIM A(N,M), где N – кол-во строк, а M – кол-во столбцов.

Если число строк равно числу столбцов (N=M), то матрица квадратная, появляется главная диагональ (I(от 1 до N)=J(от 1 до M)).

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

1 Ввод элементов матрицы.

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

2 Вывод элементов матрицы.

FOR I=1 TO N

FOR J=1 TO M

PRINT A(I,J);

NEXT J

PRINT

NEXT I

Вопрос 26.

Нахождение минимального элемента в матрице.

REM min

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

Min:= A(1,1)

FOR I=1 TO N

FOR J=1 TO M

IF A(I,J) <=Min THEN Min:=A(I,J)

NEXT J

NEXT I

PRINT «min=», min.

END

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

REM max

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

Max:= A(1,1)

FOR I=1 TO N

FOR J=1 TO M

IF A(I,J) >=Max THEN Max:=A(I,J)

NEXT J

NEXT I

PRINT «max=», max.
END.

Нахождение минимального элемента каждой строки и запись его в массив.

REM min

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N
Min (I):= A(I,1)
FOR J=1 TO M
IF A(I,J) <= Min (I) THEN Min (I):= A(I,J)
NEXT J
NEXT I
PRINT “Вывод массива минимальных”
FOR I=1 TO N
PRINT Min (I)
NEXT I
END
Аналогично находят максимальный элемент каждой строки. Также аналогичным методом находят максимальный и минимальный элемент каждого столбца.

Вопрос 27.

Запись суммы каждой строки в массиве.

REM сумма

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N
S (I):=0
FOR J=1 TO M
S(I):=S(I)+A(I,J)
NEXT J
NEXT I
PRINT “Вывод массива суммы строк”
FOR I=1 TO N
PRINT S(I)
NEXT I
END

Запись произведения каждой строки в массиве.
REM произведение

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N
P (I):=1
FOR J=1 TO M
P(I):=P(I)+A(I,J)
NEXT J
NEXT I
PRINT “Вывод массива произведения строк”
FOR I=1 TO N
PRINT P(I)
NEXT I
END

Запись суммы каждой строки в дополнительный столбец

REM сумма

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N
A(I,M+1):=0
FOR J=1 TO M
A(I,M+1):=A(I,M+1)+A(I,J)
NEXT J
NEXT I
PRINT “Вывод матрицы с дополнительным столбцом”
FOR I=1 TO N
FOR J=1 TO M
PRINT A(I,J)
NEXT J
PRINT
NEXT I
END

Запись произведения каждой строки в дополнительный столбец.

REM Произведение

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N
A(I,M+1):=1
FOR J=1 TO M
A(I,M+1):=A(I,M+1)*A(I,J)
NEXT J
NEXT I
PRINT “Вывод матрицы с дополнительным столбцом”
FOR I=1 TO N
FOR J=1 TO M
PRINT A(I,J)
NEXT J
PRINT
NEXT I
END

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

DEF FNa(x)=E

где DEF - определить;
FNa - имя функции, состоящее из обязательных букв FN и произвольных a, позволяющих различать несколько заданных функций;
x - формальные параметры (переменные);
Е - арифметическое выражение, зависящее от параметров а

Пример:
DFF FNA(B)=SIN(B)* COS(B)
Имена переменных, входящих в состав выражения Е, но не являющихся формальными аргументами, должны совпадать с именами, используемыми в программе и должны быть определены до обращения к данной функции.
QBASIC позволяет определить нестандартные функции с использованием верхнего меню:
- Alt ---> Редактирование ---> Новая FUNCTION...
- запрашивается имя новой функции a
- появляется окно для создания новой функции с именем a

FUNCTION a
END FUNCTION

В данном окне производится создание функции "a" как в обычном редакторе QBASIC. Вводятся необходимые формальные параметры выражения для определения тех действий, которые функция должна осуществить. После определения функции необходимо войти в верхнее меню:
- Alt ---> Просмотр ---> SUBs... --->
- выбрать имя своего файла, в который хотите вернуться. При следующем сохранении вашего файла в нём появится строчка:

DECLARE FUNCTION a(),

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

Вопрос 29.

В каждой задаче полезно вычленять логически завершенные фрагменты и оформлять их как отдельно программные единицы – подпрограммы или функции. Что это дает?

Во-первых, упрощается логика программ за счет вынесения многочисленных деталей за рамки основного алгоритма. Появляется возможность конструировать программу «сверху - вниз», составляя ее по началу из пустых блоков (заглушек), о которых известно только их функциональное назначение. Потом каждый из блоков детализируется, разбиваясь на более мелкие программные единицы и т. д. Подпрограммы, текст которых обычно превышает одну – две страницы, гораздо легче анализировать и отлаживать. Во-вторых, выделение подпрограмм позволяет уменьшить общий объем программы особенно в тех случаях, когда к ним приходится многократно обращаться из разных точек. Наконец, многие подпрограммы могут быть использованы повторно при решении других задач.

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

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

Текст программы на алгоритмическом языке, оформленный в виде дискового файла с соответствующим расширением (bas,c,cpp,pas), принято называть исходным модулем. В решении задачи может принимать участие один или несколько исходных модулей. В системе QBasic такие модули сменяют друг друга в оперативной памяти с помощью оператора CHAIN.

Вопрос 30.

Объектно-ориентированное программирование (ООП) зародилось в языках программирования Паскаль, C++. Основной точкой опоры при проектировании программы является объект.

Программа ООП – это не последовательность операторов, а совокупность объектов и способов их взаимодействия.

1) Объектом назовем понятия, абстракцию или любой предмет с четко очерченными границами.

Наличие механизма наследования является самым существенным различием между обыкновенным программированием на Basic и ООП программированием в Visual Basic.

2) Основное понятие – класс – особая структура, которая может иметь в своем составе поля, методы и свойства. Класс – множество объектов, обладающих внутренними свойствами, присущими любому объекту класса.

3)

Эллипс
Окружность
Без вершин
С вершинами
Плоские
Обычные объемные
Фигуры вращения
Объемные
Геометрические фигуры
Иерархия объектов класса. Каждый конкретный класс может иметь свои особенности поведения и характеристик определяющих этот класс. Например:

4) Наследование – один тип наследует характеристики другого типа.

5) Операции и методы. Функцию (или преобразование), которую можно применить к объектам данного класса, называется операцией.

Метод – это процедура или функция, включенная в объект таким образом, что экземпляр данного типа становится доступным для нее изнутри.

6) Определение методов. Процесс определения методов напоминает создание модулей. Внутри объекта метод определяется заголовком процедуры или функции.

7) Свойства объекта – совокупность данных и методов, их чтение и записи называется свойствами.

8) События и их обработка. События – это взаимодействие на объект (перемещение курсора, нажатие на кнопку и т. п.) Программирование сводится к описанию события.

9) Вывод: объект можно определить, как совокупность свойств и методов, а также событий, на которые он может реагировать.

Вопрос 31.

Система программирования – это комплекс программ и файлов, позволяющий выполнить полный набор операций, связанных с изготовлением программы и работы с ней. Система программирования Visual Basic является развитием известной системы QBasic.

Visual - графический пользовательский интерфейс.

Встроенные элементы управления – это заготовки графических объектов.

Основные возможности языка Visual Basic:

1) Максимально удобный и гибкий интерфейс.

2) Создание различных меню.

3) Обработка событий мышью и клавиатурой.

4) Использование стандартных диалоговых окон.

5) Работа с графикой.

6) Использование таймера.

7) Обработка файлов и каталогов на жестком диске.

8) Работа с базой данных

9) Разработка собственных элементов управления AktiveX.

Элементы среды разработки Visual Basic.

1) Компилятор программы c Basic на внутренний язык ЭВМ.

2) Программа – оболочка – позволяет управлять работой среды с помощью главного меню.

3) Интеллектуальный редактор текстов.

4) Отладчик программ.

Вопрос 32.

I. Техника работы в VB.

1) Вывод на экран компонентов среды.

2) Создание форм и объектов управления на форме.

3) Задание свойств объекта.

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

5) Создание событийных подпрограмм (п/п).

6) Создание модулей и общих п/п.

7) Запись проекта на диск и вызов проекта в среду.

8) Запуск и остановка проекта.

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

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

1) Файл проекта.

2) Файл форм.

3) Файл основных модулей.

4) Файлы модулей классов.

II. Разработка приложений в VB.

Для создания приложения выполняют последовательно приложения.

1) Создание интерфейса.

2) Определение свойств всех элементов приложения.

3) Описание методов.

4) Запуск приложения.

Интерфейс – ее основной частью является форма. Тут располагаются элементы управления.

Свойства: конкретные значения каждого объекта, определяющие внешний вид и особенности работы.

Код – написание программного кода для обработки.

III. Сохранение объекта.

Файл формы и файл проекта.

VB – Standard ExE.

Сохранение:

1) Создаем папку для самого проекта.

2) Сохраняется сначала файл формы внутри папки проекта.

3) Сохранение файла проекта внутри папки проекта.

Вопрос 33.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: