Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_3_1_Лс_27_11_2011.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.63 Mб
Скачать

Завдання на самостійну роботу(в,вс,лс)

ЗАВДАННЯ 10.12. Ilостановка задачи: ВЫПОЛНИТЬ ПРОЕКТ, В КОТОРОМ ПРОВЕСТИ СОРТИРОВКУ ЭЛЕМЕНТОВ ОДНОМЕРНОГО МАССИВА СООТВЕТСТВЕННО ВАРИАНТУ.

ВЫПОЛНИТЬ ЗАДАНИЕ ЛР 9А

Завдання на практичну роботу(вс,лс)

ЗАВДАННЯ 10.13. Постановка задачи: ВЫПОЛНИТЬ ПРОЕКТ, В КОТОРОМ:

  • ДЛЯ РАЗНЫХ НАИМЕНОВАНИЙ ТОВАРОВ, ВЫБОР КОТОРЫХ ОСУЩЕСТВЛЯЕТСЯ ИЗ СПИСКА, С КЛАВИАТУРЫ ВВОДЯТСЯ ЦЕНЫ;

  • ВЫВОДИТСЯ СПИСОК НАИМЕНОВАНИЙ ТОВАРОВ С СООТВЕТСТВУЮЩИМИ ЦЕНАМИ В НЕСОРТИРОВАННОМ И В СОРТИРОВАННОМ (ПО НАИМЕНОВАНИЮ) ПОРЯДКЕ. Форма выглядит следующим образом (рис. 10.11).

Рис. 10.11

Порядок действий

1. Расположите элементы управления на экранной форме в соответствии с рисунком.

2. Значения свойств элементов управления, которые определяют внешний вид приложения установите в соответствии с рисунком.

3. Для комбинированного окна cboName введите пять значений (свойство List): Плащ; Шарф муж.; Пальто; Платье; Шарф жен.

4. Подробно разберите программный код, а затем наберите его:

Option Explicit

Dim v As String 'цена товара

Dim i As Integer, j As Integer 'переменные циклов

Dim no As String 'переменная для обмена наименований

Dim co As Single 'переменная для обмена цен

Dim C(0 To 4) As Single 'массив цен (несортированный)

Dim Cs(0 To 4) As Single 'массив цен (сортированный)

Dim Ns(0 To 4) As String 'массив наименований (сортированный)

Private Sub cmdВвод_Click()

Cls

If cboName.ListIndex >= 0 And cboName.ListIndex <= 4 Then

v = InputBox("Введите цену товара: " + cboName.Text, "Ввод цены")

i = cboName.ListIndex

C(i) = Val(v)

Else

MsgBox "Выберите наименование товара", 48, "Ошибка"

End If

End Sub

Private Sub cmdВывод_Click()

Cls

Print: Print: Print: Print: Print: Print:

Print: Print: Print: Print: Print: Print: Print: Print

Print: Print: Print: Print

Print Tab(10); "Наименование"; Tab(40); "Цена"

Print

For i = 0 To 4

cboName.ListIndex = i

Print Tab(10); cboName.Text; Tab(40); C(i)

Next

End Sub

Private Sub cmdСортировка_Click()

For i = 0 To 4

cboName.ListIndex = i

Ns(i) = cboName.Text

Cs(i) = C(i)

Next i

For j = 0 To 3

For i = 0 To 3

If Ns(i) > Ns(i + 1) Then

Call Exchange(Ns(), i, i + 1) 'если происходит обмен в массиве названий,

Call Exchange(Cs(), i, i + 1) 'то соответствующий обмен происходит в массиве цен

End If

Next i

Next j

Cls

Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print

Print Tab(10); "Наименование"; Tab(40); "Цена"

Print

For i = 0 To 4

Print Tab(10); Ns(i); Tab(40); Cs(i)

Next i

End Sub

Private Sub Exchange(Mass As Variant, k As Integer, p As Integer)

Dim Box As Variant

Box = Mass(k)

Mass(k) = Mass(p)

Mass(p) = Box

End Sub

5. Сохраните проект под именем Лр10_Зад13_Фамилия

6. Проверьте правильность работы проекта.

7. Дополните проект еще одной командной кнопкой, при нажатии на которую список наименований товаров с соответствующими ценами выводится в порядке убывания цен.

8. Сохраните проект.

Лабораторна робота №11. Проектування додатків vb6, у яких дані організовані у вигляді двовимірних масивів

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

Пример:

j

i

1

2

3

1

0

-1

2

2

-3

4.5

2

3

8.3

0

7.1

4

10

1.8

-3

Под общим именем В объединено 12 ячеек памяти содержащих однотипные величины – десятичные числа где (i, j – индексы; i – номер строки; j – номер столбца). При обращении к элементу массива указывается имя массива и в скобках два индекса (номер строки и номер столбца).

Пример:

В(1,1)=0

В(2,3)=2

Обратите внимание на то, что в скобках сначала описывается нумерация строк (1 То 4), а затем нумерация столбцов (1 То 3).

Двухмерная таблица — объект, широко используемый в математике. В линейной алгебре его называют матрицей.. Особое место среди матриц занимают такие, у которых одинаковое число строк и столбцов — п. Такие матрицы называют квадратными п-го порядка. Главной диагональю такой матрицы называют совокупность элементов А(1, 1), А(2,2), А(3,3),..., А(n,n).

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

ЗАВДАННЯ 11.1. Постановка задачи: ЗАПОЛНИТЬ МАССИВ А(9,9) РАЗЛИЧНЫМИ СПОСОБАМИ:

  • произвольными числами с клавиатуры;

  • 0 и 1 в шахматном порядке;

  • нулями;

  • пятерками;

  • целыми случайными числами в диапазоне от 0 до 9;

  • индексом столбца;

  • индексом строки;

ВЫВЕСТИ МАССИВ НА ФОРМУ В ВИДЕ ТАБЛИЦЫ. Вид работающего приложения представлен на рис. 11.1 (0 и 1 в шахматном пopядке).

Рис. 11.1

Порядок действий

  1. Расположите объекты на форме в соответствии с рис.11.1.

  2. Значения свойств объектов, которые определяют внешний вид приложения, установите по своему усмотрению.

3. Значения свойств Caption формы и кнопок установите в соответствии с рис. 11.1.

4. Установите значения свойств Name кнопок в соответствии с табл. 11.1.

Табл. 11.1

Объект

Свойство

Значение свойства

Командная кнопка

Name

cmdNu1

Командная кнопка

Name

cmdFive

Командная кнопка

Name

cmdRnd

Командная кнопка

Name

cmdStolb

Командная кнопка

Name

cmdStr

Командная кнопка

Name

cmdInput

Командная кнопка

Name

cmd01

Командная кнопка

Name

cmdExit

Командная кнопка

Name

cmdCls

5. Ниже приведен прorраммный код процедур для заполнения массива единицами в шахматном порядке и вводом через окно InрutВох. Вывод массива на форму оформлен в виде отдельной процедуры Print_Form. Проанализируйте приведенные ниже коды, а затем наберите их.

Option Explicit

Dim x As Integer, y As Integer

Dim p(1 To 4, 1 To 4) As Integer

Dim sum As Single

Private Sub cmd01_Click()

For x = 1 To 4 Step 1

For y = 1 To 4 Step 1

If (x Mod 2) <> 0 And (y Mod 2) <> 0 Then

p(x, y) = 0

ElseIf (x Mod 2) = 0 And (y Mod 2) = 0 Then

p(x, y) = 0

Else

p(x, y) = 1

End If

Next y

Next x

Call print_form(p(), x, y)

End Sub

Private Sub CmdCls_Click()

Frm2Мас.Cls

TxtSum.Text = ""

End Sub

Private Sub CmdInput_Click()

For x = 1 To 4

For y = 1 To 4

p(x, y) = Val(InputBox("Введите элемент p(" _

& x & "," & y & ") ", "Ввод элементов массива"))

Next y

Next x

Call print_form(p(), x, y)

End Sub

Private Sub CmdSrglDiag_Click()

sum = 0

For y = 1 To 4

sum = sum + p(y, y)

Next y

TxtSrglDiag.Text = Str(sum / 4)

End Sub

Private Sub CmdTExit_Click()

End

End Sub

Sub print_form(mass() As Integer, i As Integer, j As Integer)

For i = 1 To 4

For j = 1 To 4

Print mass(i, j);

Next j

Print

Next i

End Sub

6. Проверьте правильность работы приложения и сохраните в папке ЛАБ11 под именем Лр11_Зад1_Фамилия.

7. Напишите самостоятельно остальные процедуры в соответствии с условием.

ЗАВДАННЯ 11.2. Постановка задачи: НАЙТИ:

  • СУММУ ЭЛЕМЕНТОВ ГЛАВНОЙ И ПОБОЧНОЙ ДИАГОНАЛЕЙ.

  • СРЕДНЕЕ ЗНАЧЕНИЕ ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ ГЛАВНОЙ ДИАГОНАЛИ.

  • СУММУ ЭЛЕМЕНТОВ 3 СТРОКИ.