Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шпоры к экз. по КП 1-й курс 2-й семестр

.doc
Скачиваний:
14
Добавлен:
16.12.2013
Размер:
2.92 Mб
Скачать

Вопрос 13. Управление базами данных.

Параллельно с развитием ЭВМ и их широким внедрением во все сферы деят-ти увелич. объемы и усложнялась структура обрабатываемой инф-ции. Для решения проблемы структуризации, хранения и обработки больших объемов инф-ции разработаны сис-мы управ. базами данных (СУБД). Примерами таких систем для ПК явл. Microsoft Access, MSFoxPro и др. VB исп. механизм БД Jet фирмы MS для подключения БД и доступа к инф-ции, хранящейся в ней. Доступ к данным из VB вып. посред. эл. упр. Data. Data служ. для установления связи между БД и др. эл-ми упр. для отображ. данных из базы. Один эл. упр. Data всегда обеспеч. доступ только к одной записи в текущий момент, позволяя отображать ее содержание на форме. Управление БД рассматривается на примере созд. однотаблич. базы и обработки ее в режиме VB с прим. динамич. массивов. Для созд. структуры БД необх.: 1) активизир. Access; 2) в раскрывш. окне в поле "Создание БД" щел. лев. кн. мыши по окну "Новая база"; 3) щелк. по кн. Ок; 4) в раск. окне вв. с клавы и запомнить имя БД и щелк. по кн. Создать; 5) в раск. окне снова щелк. по кн. Создать; 6) вв. режим Конструктор и щел. по кн. Ок; 7) в раск. окне в столбце Имя поля вв. имя NP (номер п/п), нажать Кл. Enter, в столбце Тип данных выбрать Имя типа "Счетчик" и щел. по кн. Ключевое поле в горизонт. меню; 8) вв. Имя второго поля NAZ (название), в столбце Тип данных оставить тип "Текстовой", поменяв размер поля (ввести, напр., 15); 9) повторить действия для всех полей в соответ. с заданием. При необх. внесения изменений в структуру БД вып. след. действия: 1) активиз. Access; 2) открыть БД по имени; 3) в раск. окне щел. по кн. Конструктор и внести необх. изменения; 4) закрыть окно. Для созд. БД необх. щел. мыш. по кн. Открыть, в раск. окне вв. необх. кол-во строк БД, сохранить и закрыть прил. Access. Считывание БД в среду VB производ. в след. порядке: 1) активиз. VB; 2) на раб. поле сформир. эл. упр. Data и задать соответ. значение след. св-вам: - знач. св-ва Connect – оставить Access (по умолч.); - DatabaseName – ввести путь и имя БД (А:\Предприятие1.mdb). Для исключ. ошибки ввода имя БД можно выбрать, найдя по имени БД в папке Мои док-ты; - Record Source – вв. в соответ. с запомненным именем табл.; 3) для того, чт. вывести на форму VB БД по строкам в соот. с зад. структурой, необх. сформир. соответ. кол-во эл. упр. Label для вывода заголовков полей и задать им соот. св-ва; 4) создать мас. эл упр. TextBox и для каждого из них задать соот. св-ва: Data Source – Data1 и Data Field – ввод из контекстного меню (NP и т.д.). Теперь при старте проекта (после наж. F5) первая строчка записей будет выведена в окна мас. эл. упр. TextBox. Для просмотра всех ост. строк БД необх. исп. эл. упр. Data щелчком мыши по стрелочкам влево-вправо; 5) сформир. мас. эл-тов упр. ListBox для вывода на форму всей БД в соответ. с программой; 6) сформ. команд. кнопки для упр-ния (Command Button).

Вопрос 2. Основные элементы управления.

Для созд. эл. упр. необх. щел. по нему лев. кн. мыши и перетащить указатель на форму: появл. перекрестие, кот. устанав. в том месте формы, где будет расп. лев. верх. угол формир. прямоуг. Далее необх. растягивать прямоуг. до нуж. размеров. Если кн. отпустить, то э.у. появ. на форме. Размеры уст. в завис. от конкрет. задачи. При необх. наж. кл. F4 выз. появл. окна св-тв. 1-й э.у.– метка Label служит для отображ. текста подсказок, подзаголовков, кот. польз. не может изменять. Содерж. текста подсказок вводится в окне св-тв, кот. расп. справа. Чтобы метка автоматич. изменяла свои размеры, полностью отображая текст, в св-ве Caption необх. устан. знач. св-ва AutoSize=True. Чтобы текст метки переносился на след. строку, а сама метка расширялась в вертик. направ., необх. испр. св-ва WordWrap=True. Для вырав. текста необх. испр. св-ва Alignment–по центру Center, по лев. краю Left Justify, по пр.- Right Justify. Для того, чтобы графич. интерфейс польз. соответ. эргономич. треб., след. пользоваться след. св-вами: BackColor и Font. 2-й э.у.– поле TextBox сл. для отображ. результатов работы программы: вывод вводимых данных, выв. найденных значений и т.д. Формир. анал. метке. В окне св-тв, исп. св-ва Text, удаляем надпись. 3-й э.у. – ListBox отображ. список эл., располож. вертик. В окне св-тв выделяем св-во List и двойным щел. мыши справа удал. надпись в окне. Часто для удобства напис. программ необх. сформир. массив эл-тов упр. ListBox (также как и TextBox). Для этого необх. копир. окно после его активации и вставлять необх. кол-во раз. 4-й э.у. – кн. упр. CommonButton сл. для запуска программ, и для этого э.у. пишется код. В окне св-тв выделяем св-во Caption, удал. надпись и набираем свою. 5-й э.у. MsFlexGrid сл. для отображ. инф-ции в таблич. формате (двумер. массивы, БД). Этот э.у. отсут. на экране ПК, т.к. он явл. нестандартным. Для вывода его на панель необх. вып след. действия: активиз. меню Project, акт. подменю Component, акт. Microsoft Flex Grid 6.0, слева щелк. мышью – появл. галочка. Э.у. данными Data обеспеч. доступ к данным с пом. процессора БД Jet, кот. поддерж. MSAccess.

Вопрос 7. Основные операторы

1. Оп. присваивания (куда запис.) = (что запис.). Пример:

MAX=0

2. О. безусловного перехода GоTo с указ. метки перехода (номер строки). Пример:

For I-1 To N

1 A(I) = InputBox ("Вв. числа")

If A(I)<=0 Then GoTo 1

Next I

3. Управляющие конструкции

If <условие> Then <операторы> - неполная развилка

If <усл.> Then <опер.> Else <опер.> - полная развилка

Пример

If A<0 Then C=1:B=0 - неполная развилка

If A<0 Then C=1:B=0 Else C=0:B=1 - полная развилка

или

If A<0 Then

C=1

B=0

Else

C=0

B=1

End if

4. Конструкция

For <имя цикла переменной> = <нач. цик.> To <кон. цик.>

Пример

For I = 1 To N

Next I

Шаг изменения цик. переем. м. б. любой. Он указ., если он не равен 1.

For I = 1 To N Step -1

Next I

5. Конструкция

DoWhile

Loop

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

PC=1

DoWhile PC=1

A=InputBox ("A=")

……………………….

PC=InputBox ("Вв. 1 для продолжения, иначе – 0")

Loop

6. Конструкция

Select Case

Делает более читаемой программу по срав. с блоком If при наличии большого числа вариантов выбора. Формат применения:

Select Case <проверяемое выражение>

Case <список выражений>

<операторы>

…………………………

Case Else

<операторы>

End Select

Кон. работает с единст. проверяемым выражением, кот. вычисляется один раз при входе в эту кон. Затем VB сравнивает получ. результат со значен., задаваемыми опер. Case. Если найдено совпадение, вып. соответ. блок операторов. Каж. список выражений явл. спис. одного или более значений, кот. раздел. запятой. Если окаж., что вычисляемому значению проверяемого выражения соответ. неск. опер. Case, то вып. первый из них. Пример:

X=InputBox ("x=")

Select Case x

Case 1, 5

A=10

Case 2, 6

A=100

Case else

A=0

End Select

Вопрос 4. Типы данных

VB, являясь алгоритмич. яз. программир., им. свой алфавит, использ. для напис. идентификаторов и операторов. VB вкл. 26 лат. букв, 10 араб. цифр и 26 символов. Данные характериз. типом и организацией. Тип данных обобщает след. понятия: 1) размещ. в ПК, 2) способ представления, 3) прикладной смысл. 1) Данные и программа в момент вып. размещ. в ОП, состоящей из пронумеров. ячеек, включ. 1 байт инф-ции. Номер определенной ячейки наз. адресом. 1-го байта хватает крайне редко, и данные заним. непрерывную последоват. байтов 2, 4, 8 и т.д. 2) Последоват. битов в байтах данного, кот. кодируют всю необх. инф-цию, определяющую данные. Правила кодирования и их реализация в разных ЭВМ опред. способ представления данного. Напр., для числовых данных сущ. способ представ. с фиксир. точкой и с плавающей точ. 3) Определяет возможность использования данных для тех или иных целей. Напр., числовые данные могут подвергаться различ. арифм. операциям, а с симв. данными можно произв. операции сцепления, выделения и т.д. Под организацией понимается их независимость (одиночные данные) или связанность (массивы). Если переменная объявлена оператором Dim, то значение переменных сущ. только во время ее выполнения. Такая переменная наз. локальной. Для того, чтобы одна и та же переменная могла использ. в разных процедурах одной формы, оператор описания переменной д. б. размещен в разделе общих объявлений General. Для того, чтобы одна и та же переем. могла использ. в разных формах проекта, она д. б. объявлена как глобальная с исп. оператора Global и размещена в модуле проекта. (1 байт – 8 ячеек).

Занимаемая память

2 байта

1 байт

8 байтов

8 байтов

8 байтов

2 байта

4 байта

4 байта

4 байта

10 байт+длина строки

16 байт

Диапазон значений

True или False

от 0 до 255

до 9*1015

до 31 декабря 9999г.

до 1Е+308

от -32768 до 32767

около |2*109|

от -1Е+38 до 1Е+38

до 2*109 символов

любой

Описание

логический

двоичные

денежный

дата

вещественный

целые

длинные

объект

вещественный

символьные

произвольный

Символ

@

#

%

&

!

$

Тип данных

Boolean

Byte

Currency

Date

Double

Integer

Long

Object

Single

String

Variant

Вопрос 10. Процедуры Function.

VB содержит встроенные стандарт. ф., напр., Sqr, Abs и др. Кр. того, с пом. оператора Function можно писать собственные ф. Формат применения процедуры Function:

Private Function <имя процедуры> (параметры) [As Type]

<операторы>

End Function

Как и проц. Sub, проц. Function явл. самостоят. и может принимать параметры, выполнять ряд операторов и изменять значения своих параметров. В отличие от проц. Sub проц. Function может возвращать значение в вызывающую процедуру. Пример. В одну и ту же переменную вводятся натур. числа, кол-во кот. заранее неизвестно. Треб. вывести на экран вводимые числа, простые числа (PR), а также факториал (MPR) тех простых чисел, кот. не больше 19.

Private Sub Command1_Click

Dim A As Integer, F As Integer, I As Integer

Dim ST As String, FL As String, PR As String, MPR As String

Dim PC As Byte' параметры цикла

PC=1' начальное знач., необх. для входа в цикл

ST="": MPR="": PR="": FL="" 'обнуление симв. переем.

Do while PC=1

1 A=InputBox ("Вв. натур. число")

If A<1 Or A<>Fix(A) Then GoTo1

Text1.Text=Str(A)

ST=ST+Str(A) +" " ' сцепление натур. чисел

F=0

For I=2 To A\2

If A Mod I=0 Then F=1

Next I

If F=0 And A<=19 Then

FL=FL+Str(FAC(Val(Text1.Text)))' при вызове ф. указ. имя ф. и текст. поле, в кот. запомнено симв. представление вводимого числа

MPR=MPR+Str(A)+" "

End If

If F=0 Then PR=PR+Text1.Text

PC=InputBox("Введите 1 или 0 для выхода")

Loop

Text1.Text=SP

Text2.Text=PR

Text3.Text=FL

Text4.Text=MPR

End Sub

Function FAC(X As Integer) As Double

Dim Y As Integer

FAC=1

For Y=2 To X

FAC=FAC*Y

Next Y

End Function

Вопрос 3. Структура программы.

Прогр. сост. из 4-х осн. блоков: 1) описание данных; 2) ввод дан.; 3) обработка дан. по усл. задания; 4) вывод результата.

1. Описание данных. Формат описания:

<опер. опис.>

<имя данного>

As

<тип дан.>

Dim

FAM

String

Мож. не объявлять переменную заранее: с одной стор. это удобно, но с др. прив. к трудно уловимым ошибкам. Если Вы случ. написали имя одной и той же переем., то воизбеж. таких проблем мож. дать указание VB-у, чтобы он предуп. программиста, когда встретится имя необъяв. перем. Для этого необх. поместить опер. Option Explicit в секции Declaration кажд. формы. Для объяв. массивов (пронумер. совокупностей однотипных данных) после указ. имени массива в круглых скобках указ. знач. ниж. и верх. границ индексов элементов (напр., Dim A (1 To 8) As Integer). Если размер массива заранее неизвестен, то прим. объявление динамич. массива, кот. предшест. опред. его размера напр.:

Dim A () As Integer

N = InputBox ("N=")

ReDim A (1 To N) As Integer

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

2. Ввод данных. Формат вв. дан. с клавы след.:

<имя переменной = InputBox ("подсказка")

FAM = InputBox ("Вв. фамилию")

Ввод элементов одномерного массива:

For I = 1 To N

A(I) = InputBox ("A("+Str(I)+")=")

Next I

Ввод данных мож. также произв. с пом. опер. присвоения (=). В этом случ. инф-ция запис. автоматич. при запуске программы FAM = "Иванов"; В = 10;

For I = 1 To N

A(I) = Int (Rnd*100)

Next I

3. Об. дан. по усл. зад. Для обр. дан. след. прим. ТА, кот. по сути явл. теоретич. основой программир., и только в крайнем случае необх. разраб. свои. ТА более 100. Пример ТА сортировки:

For I = 1 To N-1

For J = I + 1 To N

If A(I) > A(J) Then B=A(I):A(I)=A(J):A(J)=B

Next J, I

Нужно хор. понять работу ТА, т.к. их прим. треб. творч. подхода.

4. Выв. рез. Для выв. инф-ции исп. след. эл. упр.: 1) TextBox – выв. в строку, 2) ListBox – выв. в столбик, 3) MsFlexGrid – выв. табл.

1) Пример:

SP = ""

For I = 1 To N

SP = SP +Str (A(I))+" "

Next I

Text1.Text = SP

SP= ""

For I=1 To N

For J = 1 To N

SP = SP + Str (A(I))+" "

Next J

SP = SP + vbClrf

Next I

Text1.Text = SP

Для Text1 необх. св-во Multiline=True

2) Пример:

For I = 1 To N

List1.List (I-1) = A(I)

Next I

3) Пример:

With Ms FlexGrid1

. Rows = N

. Cols = N

For I = 1 To N

. ColWidth = 300' зад. разм. яч. по шир.

For J = 1 To N

. TextMatrix (I-1, J-1) = A(I,J)

Next J, I

Вопрос 5. Создание собственного типа данных.

Мож. комбинир. переменные неск. разных типов и созд. определяемые польз-лем типы, так наз. структуры. Этот тип полезен, когда необх. создать единст. перемен., в кот. запис. связанные фрагменты инф-ции. 1) Типы данных, опред. польз., созд. с пом. опер. Type. Доп., треб. создать тип, в кот. запис-ся инф-ция о сотруд. предприятия.

№ п/п

№ отд

Фамилия

Должность

Оклад

Год рожд.

Содержание типа данных можно хранить в одной ячейке.

Private Type ZAP (придумать имя переменной)

(Public)

NOM As Integer' порядковый номер

NO As Integer' номер отдела

FAM As String' фамилия

DL As String' должность

OKL As Currency' оклад

GR As Integer' год рождения

End Type

Command1.Click

Dim MAS () As ZAP' массив записи

N = InputBox ("Вв. кол-во записей")

ReDim MAS (1 To N) As ZAP

2) Ввод полей массива записей производится след. образом:

For I = 1 To N

With MAS (I)' подключаем оператор присоединения

.NOM = InputBox ("Вв. поряд. номер"+Str(I)+"-го сотруд.")

.NO = InputBox ("Вв. номер отдела"+Str(I)+")

.FAM = InputBox ("Вв. фамилию …")

.DL = …..

.OKL = …..

.GR = …..

End With

Next I

3) Вывод массива записей производ. с исп.: а) массива эл. уп. ListBox; б) нестандартного эл. уп. MSFlexGrid

а) For I = 1 To N

With MAS (I)

List1(0).List (I-1) = .NOM

List1(1).List (I-1) = .NO

List1(2).List(I-1) = .FAM

…………………………….

End With

Next I

б) With MSFlexGrid1

.Rows = N+1' задаем кол-во строк с учетом заголовка

.Cols = 6' зад. кол-во столбцов в соответ. с заданием

.TextMatrix(0,0) = "N п/п'' 'формируем заголовок

.TextMatrix (0,1) = "Номер отдела"

.TextMatrix(0,2) = "Фамилия"

…………………………………….

.Rows Height (0) = 300' высота строки (по умолч. 200)

.ColWidth(0) = 500' ширина столбца

.ColWidht(1) = 500

.ColWidth(2) = 1000

…………………………………….

For I = 1 To N

.TextMatrix(I,0) = MAS(I).NOM

.TextMatrix(I,1) = MAS(I).NO

.TextMatrix(I,2) = MAS(I).FAM

……………………………………

Next I

End With

Вопрос 8. Массивы данных

Массив – это пронумер. совокуп. однотип. данных. Мас. быв. одномер., двум. и т.д., а также статические, в т.ч. массивы-константы, а также динамич., размер кот. опред. польз. программы. 1) Объявление статич. масс. (одномер.):

Dim NAZ (1 To 12) As String' объяв. мас. с нумерацией яч. 1 до 12

2) Объявление двумер. масс.:

Dim A(1 To 5, 1 To 6) As Integer' в масс. 5 стр. и 6 столб.

3) Объявление динамич. масс.:

Dim FAM () As String

Dim N As Integer

N=InputBox ("N=")

ReDim FAM (1 To N) As String

4) Объявление динамич. двумер. масс.:

Dim A() As Integer

Dim N As Integer

Dim M As Integer

N=InputBox ("Вв. кол-во строк N=")

M=InputBox ("Вв. кол-во столбцов M=")

ReDim A (1 To N, 1 To M) As Integer

5) Ввод элементов одномер. мас.:

For I=1 To N

A(I)=InputBox ("A("+Str(I)+")=")

Next I

6) Ввод элементов двумер. мас.:

For I=1 To N

For J=1 To M

A(I)=InputBox ("A("+Str(I)+","+Str(J)+")=")

Next J,I

7) Вывод элементов одномер. масс. в строчку:

SP=""

For I=1 To N

SP=SP+Str(A(I))+" "

Next I

Text1.Text=SP

Если мас. символьный, то ф. Str отменяется.

8) Вывод элементов одномер. масс. в столбик:

For I=1 To N

List1.List(I-1)=A(I)

Next I

9. Вывод элементов двумер. мас.:

а) с исп. эл. уп. TextBox:

SP=""

For I=1 To N

For J=1 To M

SP=SP+vbCrlf – опер. перевода курсора на новую строчку

Next I

Text1.Text=SP

При этом свойство Multiline эл. уп. Text1.Text д. б. = True

б) с исп. эл. уп. ListBox

В том случае, если кол-во столбцов известное число:

For I=1 To N

For J=1 To 6

List1(J-1).List(I-1)=A(I,J)

Next J, I

В этом случае созд. мас. эл. упр. List1, сост. из 6 ячеек.

в) с исп. эл. уп. MSFlexGrid

With MSFlexGrid

.Rows=N

.Cols=M

For I=1 To N

For J=1 To M

.TextMatrix(I-1, J-1)=A(I,J)

Next J, I

End With

Вопрос 6. Осн. операции и стандартные функции

1. Арифметич.: + слож.; - вычит; * умнож.; / дел.; ^ возвед. в степень; \ целочисленное дел. с получ. частного; Mod получ. остатка от дел.: N Mod P = N-(N\P)*P; 15 Mod 7=1; 7 Mod 15=7; 129 Mod 10=9; N Mod 2=0.

2. Логич.: And; Or; Not. 3) Отношение: > больше; < мень-ше; <> не равно; >= больше или равно; <= меньше или равно; = равно (ставится после опер. If). 4) Математич.: Abs(x)=|x|; Rnd случ. число; Sin(x); Cos(x); Tan(x); Atn(x) arctgx; Exp(x) ex; Log(x); Fix(x) Fix (-3,9)=-3; Int(x) Int(-3,9)=-4; Sqr(x)=. 5. Символьные: + сцепление; Str(x) преобразование числа в симв. данные Str(x)="27,625"; Val(x) преоб. симв. данного в число, если символ не число Val=0; Len(x) кол-во символов в переменной х (х переем. типа String); Mid(x,I, ﺎ) ф. выделения х, нач. с позиции I l символов х-откуда, I-с какой позиции, l-сколько. х="Студент" Mid(x,4,3)="ден"; Mid(x,I) выд. с позиции I до конца слова; Instr (I,х.A) ф. поиска, опред. позицию первого вхождения подстроки А в строке х I-c какой позиции ищем, х-где ищем, А-что ищем. х="Студент" А="ден" P=Instr(4,x,A)=4 Instr(5,x,A)=0; Instr(x,A) поиск ведется с первого символа.

Вопрос 1. Основы VB – этапы построения приложения.

VB эффективен при обуч. технологии виз. проектир. различ. прил. Чтобы построить прил. VB, необх. сделать три шага:

1) создать графич. интерфейс (набор эл. упр.); 2) установить св-ва эл. упр.; 3) написать программу (код). После запуска устан. на ПК VB на экране появл. раб. среда, кот. наз. интегрированной ср. обработки, т.к. она совмещает в себе разнообр. функции: проектир., редактир., компиляцию и отладку приложений. ИСО сост. из след. эл.: 1) горизонт. строка меню и панель инструментов, кот. предоставляет быстрый доступ к наиб. часто использ. командам. 2) левая вертик. панель эл. упр.: Label, TextBox, Commund Button, ListBox. 3) правое окно св-тв.

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

Private Sub Command1_Click ()

End Sub

Вопрос 9. Процедуры Sub.

Мож. упростить программирование, разбивая задачи на небольшие логич. компоненты. Эти комп., наз. процедурами, могут впослед. стать строительными блоками, кот. позволяют сравнительно легко созд. сложные программы. Пр. Sub или подпрограмма – это блок кода, кот., выполняя опред. действия, не возвращает значения. Формат применения пр. Sub:

[Private/Public/Statistic] Sub <имя> (параметры)

операторы

End Sub

При вызове пр. выполняются операторы между ключевыми словами Sub и End Sub. Пр. Sub мож. помещать в стандартные модули, модули классов и форм. По умолч. пр. Sub во всех модулях имеет атрибуты Public, кот. означ., что их мож. вызывать из любого места приложения. Задания параметров пр. подобны объявлению переменных, за исключ. того, что слово Dim опускается. В VB следует четко отличать два типа пр. Sub: 1) общие процедуры; 2) пр. обработки события. 1) Об. пр. указ. приложению, как вып. конкрет. задачу. Однажды опред., она должна каждый раз вызываться спец. приложением. При этом указ. имя пр. и ее параметры в строгом соответ. с порядком описания параметров (формальных) в описании самой пр. 2) В противополож. ей пр. об. соб. после старта проекта остается в сост. ожидания события, вызванного польз-лем или инициированного системой. В программах, состоящих из пр. об. соб. и об. пр., мож. появиться необх. в применении глобальных переменных, определенных и сохраняющих значения во всех подпрограммах. Такие переем. объявляются в блоке общих объявлений General. Для создания новой об. пр. след. в окне кода после пр. об. соб. набрать на клаве заголовок пр., кот. состоит из слова Sub, за ним следует имя пр. с указ. в скобках формальных параметров пр.

End Sub

Sub P1 (N1 As Integer, A1 () As Integer)

текст программы

End Sub

Формат вызова пр.в программе обработки события

P1 N, A(),….

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

Блок General (общих объявлений)

Option Explicit (страховка от необъявления переменных)

Dim I As Integer, J As Integer

Dim SP As String

Private Sub Command1_Click

Dim N As Integer, C As Integer

Dim A() As Integer

N=InputBox ("N=")

ReDim A(1 To N, 1 To N) As Integer

For I=1 To N

For J=1 To N

A(I,J)=Fix(Rnd*100)

Next J, I

P1 N, A()' вызов процедуры

Text1.Text = SP

' поменять местами верх. и ниж. треугольники

For I=1 To N

For J=1 To N

If I>J And I+J<N+1

Then

C=A(I,J)

A(I,J)=A(I,N+1-J):A(I,N+1-J)=C

End If

Next J, I

P1 N, A()

Text2.Text=SP

End Sub

Sub P1 (N1 As Integer, A1() As Integer)

SP=""

For I=1 To N1

For J=1 To N1

SP=SP+Str(A1(I,J))+" ")

Next J

SP=SP+vbCrLf

Next I

End Sub

Вопрос 11. Файлы последовательного доступа.

Тип данных, содержащ. в файле, опред. тип доступа к файлу. VB поддерж. три типа доступа к файлу: 1) последоват. – для чтения и записей непрерывных блоков в текст. файл; 2) произвольный – для чт. и зап. в файлы, структурир. как записи данных фиксир. длины; 3) двоичный – для чт. и зап. в файлы произвольной структуры.

Схема обмена данными ОП и ВП выглядит след. обр.:

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

Open <путь_имя файла> For Output As # <номер файла>

Сначала данные запис. в переменную с исп. ф. InputBox, затем, применяя опер. Write, данные переменной запис. в файл с указ. его номера. После созд. файла файл д. б. закрыт с исп. опер. Close. Создание(Command1):

Open "A:\file1.txt" For Output As # 1

PC=1

Do while PC=1

FAM = InputBox ("Вв. фамилии")

Write # 1, FAM

PC=InputBox (Вв. 1 для продолж. или 0 для выхода")

Loop

Close #1

Чтение (Command2): Для того, чтобы прочитать созд. файл, его надо открыть для ввода.

Open "A:\file1.txt" For Input As # 1

Снач. данные файла запис. в переем. с исп. опер. Input, затем значения переем. выводятся на экран с исп. эл. упр. ListBox.

Open "A:\file1.txt" For Input As # 1

K=0' номер строки в эл. уп. ListBox

Do while Not EOF(1)' вып., пока нет конца файла # 1

Input #1, FAM' передача инф-ции с диска в ОП

List1.List(K) = FAM' передача инф-ции из ОП на экран в форму

K=K+1' переход к новой строчке

Loop

Close #1

Добавление (Command3): Для того, чт. дополнить файл, его надо открыть для дополнения. Формат дополнения файла:

Open "A:\file1.txt" For Append As # 1

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

Open "A:\file1.txt" For Append As # 1

PC=1

Do while PC=1

FAM=InputBox ("Добавьте фамилии")

Write #1, FAM

PC=InputBox ("Вв. 1 или 0")

Loop

Close #1

Обработка (Command4): Для обраб. файла в соот. с усл. задания его надо снач. считать в мас. в процедуре чтения, а затем в процедуре решения обраб. мас. и запис. его в файл.

Open "A:\file1.txt" For Input As # 1

K=0

Do while Not EOF(1)

Input #1, FAM

List1.List(1) = FAM

K=K+1

Loop

ReDim F(1 To K) As String

For I = 1 To K

F(I) = List1.List (I-1)

Next I

Close #1

Процедура обработки файла:

Private Sub Command4_Click

(Обработка мас. F(1 To K) в соответ. с заданием)

Open "A:\file1.txt" For Output As # 1

For I = 1 To K

Write #1, F(I)

Next I

Close #1

Вопрос 12. Файлы произвольного доступа.

Файлы произ. дос. в осн. прим. для записей (в типе данных, опред. польз-лем). Прежде чем открыть файл произ. дос., след. объявить в блоке General последоват. и стандартный типы глобальных переменных. Напр., необх. создать файл след. структуры: Поряд. номер, Фам., Оклад

Option Explicit

Private Type ZAP

PN As Byte

FAM As String

OKL As Currency

End Type

Dim I As Integer, PC As Byte

Dim K As Byte

Dim MAS As ZAP

Dim MS() As ZAP

Схема обмена файлами ОП и ВП выглядит след. образом:

Создание (Command1), Чтение (Command2), Дополнение (Command3), Обработка (Command4).

PC=1' параметр цикла (кол-во записей)

K=0' номер записи

Do While PC=1

K=K+1

MAS.PN=InputBox ("Вв. поряд. номер")

MAS.FAM=InputBox ("Вв. фамилию")

MAS.OKL=InputBox ("Вв. оклад")

Put #1, K, MAS

PC=InputBox ("Вв. 1 или 0")

Loop

Close #1

Open "A:\File1.txt" For Random As #1

K=0

Do While Not EOF (1) ' Программа чтения файла

K=K+1

Get #1, K, MAS

List1(0).List(K-1) = MAS.PN

List1(1).List(K-1) = MAS.FAM

List1(2).List(K-1) = MAS.OKL

Loop

ReDim MS (1 To K) As ZAP

For I = 1 To K

MS(I).PN=List1(0).List(I-1)

MS(I).FAM=List1(1).List(I-1)

MS(I).OKL=List1(2).List(I-1)

Next I

Close #1

Программа дополнения файлов:

Open "A:\File1.txt" For Random As #1

PC=1

Do While PC=1

Далее тоже самое (без К=0)

Программа обраб. файла. Для того, чт. обраб. файл, необх.: 1) написать процедуру чтения; 2) переобъявить и создать мас.; 3) обраб. мас. в соответ. с усл.; 4) списать мас. в файл, исп. опер. Put:

For I = 1 To K

Put #1, I, MS(I)

Next I

5) закрыть файл