Лекция по теме Массивы

  • ppt
  • 01.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

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

Иконка файла материала 223. Лекция по теме Массивы.ppt

ОСНОВНЫЕ ТИПЫ ПЕРЕМЕННЫХ VISUAL BASIC


п.п.

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

Описание типа

Количество занимаемой памяти

Принимаемые значения

1.

Integer

Целое число одинарной точности.

2 байта

-32768…32767

2.

Long

Целое число двойной точности.

4 байта

-2 147 483 648…
2 147 483 647

3.

Single

Десятичное число с плавающей точкой одинарной точности

±(10-45…3·1038)

4.

Double

Десятичное число с плавающей точкой двойной точности

8 байт

±(5·10-328…1.8·10308)

5.

Currency

Десятичное число с фиксированной точкой

8 байт

±9·1014

6.

String

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

1 байт/ 1 символ

До 65 400 символов

7.

Byte

Целое число

1 байт

0…255

8.

Boolean

Логическое значение

2 байта

True или False

9.

Date

Дата и время

8 байт

1/1/100…12/31/9999

10.

Object

Экземпляр класса объекта OLE

4 байта

11.

Variant

Любой из выше перечисленных типов

16 байт +
1 байт/1 символ

В Visual Basic для описания переменных используется оператор Dim. Формат оператора имеет следующий вид: DIM <имя переменной> AS <тип переменной> DIM <имя_переменной1> AS <тип_переменной1>,<имя_переменной2> AS <тип_переменной2> DIM <имя_ переменной1>, <имя_переменной2>, <имя_переменной3> AS <тип_переменной> Функции преобразования типов.

Функция

Описание

CBool()

Преобразует переменную строкового типа (String) в тип Boolean

Cbyte()

Преобразует переменную строкового типа (String) в тип Byte

Ccur()

Преобразует переменную строкового типа (String) в тип Currency

Cdate()

Преобразует переменную строкового типа (String) в тип Date

CDbl()

Преобразует переменную строкового типа (String) в тип Double

Cint()

Преобразует переменную строкового типа (String) в тип Integer

CLng()

Преобразует переменную строкового типа (String) в тип Long

CSng()

Преобразует переменную строкового типа (String) в тип Single

CStr()

Преобразует числовую переменную в строковый тип String

Val()

Преобразует переменную строкового типа (String) в числовой тип

ПРИМЕРЫ

Dim x As Single, y As Single, a As Single

x = CSng(Text1.Text)

a = CSng (Text2.Text)

Text3.Text = CStr(y)

Стандартные математические функции Visual Basic

ПРИМЕР

F=(X^(3/5)+COS(X)^2-EXP(-7*X+4))/(LOG(ABS(X-7))*X^2-4*SQR(ABS(X)))

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА

Линейный синтаксис

IF <условие> THEN <оператор1>
<оператор2>
<оператор3>


IF <условие> THEN <оператор1> ELSE <оператор2>
<оператор3>

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА

Блочный синтаксис

IF <условие> THEN
<блок операторов>
END IF


IF <условие> THEN
<блок операторов №1>
ELSE
<блок операторов №2>
END IF

IF <условие №1> THEN
<блок операторов №1>
[ ELSEIF <условие №2> THEN
<блок операторов №2> ]
[ ELSEIF <условие №3> THEN
<блок операторов №3> ]
[ ELSEIF <условие №4> THEN
<блок операторов №4> ]
[ ELSE
<блок операторов №5> ]
END IF

Пример

Private Sub Command1_Click()
Dim a As Integer, b As Integer, y As Single
a = CInt(InputBox("a="))
b = CInt(InputBox("b="))
If a < b Then
y = a + b
ElseIf a = b Then
y = (a + b) / 2
Else
y = a - b
End If
MsgBox "y=" + CStr(y)
End Sub

Операторы цикла

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

For <параметр>=<выражение1> To <выражение2> [Step <шаг>] <операторы>
Next [<параметр>]

Пример

For x = a To b Step h
<тело цикла>
Next x

Операторы цикла

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

1) DO WHILE <условие>
<тело цикла>
LOOP

2) DO UNTIL <условие>
<тело цикла>
LOOP

3) WHILE <условие>
<тело цикла>
WEND

Примеры

1)

x = a
Do WHILE x <= b

<тело цикла>

x = x + h
LOOP

Примеры

2)

x = a
DO UNTIL x > b

<тело цикла>

x = x + h
LOOP

Примеры

3)

x = a
WHILE x <= b

<тело цикла>

x = x + h
WEND

Операторы цикла

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

1) DO
<тело цикла>
LOOP WHILE <условие>


2) DO
<тело цикла>
LOOP UNTIL <условие>

Примеры

1)

x = a
Do

<тело цикла>

x = x + h
LOOP WHILE x <= b

Примеры

2)

x = a
DO

<тело цикла>

x = x + h
LOOP UNTIL x > b

Массивы

Массивом называется упорядоченный набор данных, имеющих один и
тот же тип и располагающихся в памяти непосредственно друг за
другом.
Массивы могут быть:
Статические и динамические;
Числовые и символьные;
Одномерные и многомерные.
Как правило, одномерный массив называют вектором:
A(7)={3,8,4,1,2,5,4}
Двумерный массив является частным случаем многомерного массива и
представляет собой матрицу (таблицу)
A(4,4)= {3,4,5,1
2,9,0,3
4,7,9,5
3,2,6,7}

Описание массивов осуществляется с помощью оператора Dim.


Статический массив:
Dim A(1 to 7) As Integer, B(1 to 7, 1 to 7) as Single
Динамический массив:
Dim N as Integer, A() as Single
___________________________
Private Sub Command1_Click()
………………………………………
N=CInt(InputBox(“N=”))
ReDim A(1 to N) as Single
………………………………………
End Sub

Основные способы ввода и вывода элементов массива

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

ПРИМЕР. Сумма десяти вещественных чисел.

Dim a(1 To 10) As Single .
Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 10
a(i) = CSng(InputBox("A(" + CStr(i) + ")="))
Next i
End Sub .
Private Sub Command2_Click()
Dim s As Single, i As Integer
s = 0
For i = 1 To 10
s = s + a(i)
Next i
Text1.Text = CStr(s)
End Sub .
Private Sub Command3_Click()
End
End Sub

СОРТИРОВКА
МЕТОД «ПУЗЫРЬКА»

Dim a() As Single, n As Integer .
Private Sub Command1_Click()
Dim i As Integer
List1.Clear
Open App.Path + "\massivin.txt" For Input As #1
Input #1, n
Label4.Caption = CStr(n)
ReDim a(1 To n) As Single
For i = 1 To n
Input #1, a(i)
List1.AddItem (CStr(a(i)))
Next i
Close #1
End Sub .
Private Sub Command2_Click()
Dim x As Single, i As Integer, k As Integer
For i = 1 To n - 1
For k = i To 1 Step -1
If a(k) > a(k + 1) Then
x = a(k)
a(k) = a(k + 1)
a(k + 1) = x
End If
Next k
Next i
For i = 1 To n
List2.AddItem (CStr(a(i)))
Next i
End Sub .
Private Sub Command3_Click()
End
End Sub

СОРТИРОВКА ВЫБОРОМ
МИНИМАЛЬНОГО ЭЛЕМЕНТА

Dim x() As Single, n As Integer

Private Sub Command1_Click()
Dim i As Integer
n = CInt(InputBox("N="))
MSFlexGrid1.Rows = n + 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "i"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "Не отсорт"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "Отсорт"
ReDim x(1 To n) As Single
For i = 1 To n
x(i) = CSng(InputBox("a(" + CStr(i) + ")="))
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = CStr(i)
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = CStr(x(i))
Next i
End Sub

Private Sub Command2_Click()
Dim z As Integer, i As Integer, k As Integer, L As Single
For z = 1 To n - 1
k = z
For i = z To n
If x(k) > x(i) Then k = i
Next i
L = x(k)
x(k) = x(z)
x(z) = L
Next z
MSFlexGrid1.Col = 2
For i = 1 To n
MSFlexGrid1.Row = i
MSFlexGrid1.Text = CStr(x(i))
Next i
End Sub

Private Sub Command3_Click()
End
End Sub