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

I.Информ. Программирование языком VB(кр1)

.pdf
Скачиваний:
10
Добавлен:
07.02.2016
Размер:
409.81 Кб
Скачать

31

потрібного елементу, використовують індексовану змінну. Тому, кожен окремий об’єкт, що належить до масиву, позначається як змінна з індексом. Для доступу до цієї змінної застосовується її номер (індекс).

Треба пом’ятати, що кожен масив, що оброблюється у програмі, повинен мати свій опис у спочатку програми. Для цього необхідно використати оператор Dim. Наприклад:

Dim A(8) As Integer

Об’являється, що A – масив, який складається з дев’яти елементів цілого типу. Першим елементом буде A(0), другим – A(1), т.д. до A(8). Відзначимо, що нумерація елементів починається з 0, а не з 1. Якщо потрібно починати індексацію всіх масивів з нуля, потрібно в секції (General) (Declarations) записати оператор Option Base 1.

Для установки інших границь масиву можна використовувати наступний синтаксис:

Dim B(10 To 200)

Де 10 – нижня границя, 200 – верхня границя індексів масиву B. Таким чином можна задавати любий діапазон індексів. Це особливо корисно, якщо індекс несе смислове навантаження (дата, номер замовлення та ін.).

Інколи при об’явленні масиву його розмір невідомий. Тоді треба об’являти динамічний масив без зазначення розміру, що дозволяє змінювати його розмір під час виконання програми за допомогою оператора ReDim, після якого вказується ім’я та розмір масиву.

В мові Visual Basic немає очевидних обмежень на розмірність масивів та кількість елементів по кожному виміру. Головне щоб загальний обсяг пам’яті, яка виділяється під всі даніне перевершував

64 Кб.

Введення, виведення та обробка масивів виконується в циклі, який організується по зміненню індексу.

32

4.3.2 Приклад виконання завдання

Постановка задачі.

Дана послідовність чисел x1, x2, … ,xn. Потрібно сформувати новий масив B, елементами якого є елементи масиву X, які задовольняють наступній умові xi < z, де z – надане число.

Рішення

I етап. Математичний опис рішення задачі.

Дано: n – ціле число: кількість елементів у масиві X; z – дійсне число;

X(n) – масив дійсних чисел.

Сформувати новий масив B, елементами якого є елементи масиву X, які задовольняють наступній умові x(i) < z, де i=1,...,n.

i – індекс елементів масиву X, де i = 1,…,n

j – індекс елементів масиву B, що змінюється за формулою j=j+1, коли знайдень елемент масиву X, який задовольняєте умові x(i) < z.

33

II етап. Блок-схема алгоритму рішення задачі

початок

n, z

i=1,n

x(i)

 

j=0

 

i=1,n

ні

так

 

x(i)<z

 

j=j+1

 

b(j)=x(i)

1

34

1

ні

так

j=0

i=1,j

у B немає

 

елементів

b(i)

кінець

IІІ етап. Складання програми мовою Visual Basic

1) Графічний інтерфейс користувача.

35

Використовуються елементи керування та їхні властивості. Форма (Form1): її властивість

Caption: Задача 3(одновимірний масив).

Написи (Label). Текстові поля (Textbox) і командна кнопка (Command Button). У процесі конструювання змінені їхні властивості.

Значення властивостей елементів керування

Елемент

Назва

Значення властивості

 

керування

властивості

 

1

Label1

Caption

число z

2

Label2

Caption

кількість елементів у масиві n

3

Label3

Caption

Масив X

4

Label4

Caption

Новий масив B

5

Text1

Name

txtZ

 

 

Text

порожньо

6

Text2

Name

txtN

 

 

Text

порожньо

7

Text3

Name

txtX

 

 

Text

порожньо

 

 

MultiLine

True

 

 

ScrollBars

1

8

Text4

Name

txtB

 

 

Text

порожньо

 

 

MultiLine

True

 

 

ScrollBars

1

9

Command1

Name

cmdRun

 

 

Caption

Пуск

2) Програмний код мовою Visual Basic.

Програмний код для кнопки cmdRun (подія Click):

Private Sub cmdRun_Click()

Dim n As Integer

Dim i As Integer

Dim j As Integer

Dim z As Single

Dim x() As Single

36

Dim b() As Single txtX.Text=””

txtB.Text=”” z=InputBox(“введи число z”)

txtZ.Text=CSng(z) n=InputBox(“введи число n”)

txtN.Text=CInt(n) ReDim x(n) As Single ReDim b(n) As Single For i = 1 To n

x(i)=InputBox(“Введи елемент x ” & CStr(i)) txtX.Text=txtX.Text & CStr(x(i)) & “ “

Next i j=0

For i = 1 To n

If x(i)<z Then j=j+1: b(j)=x(i)

Next i

If j=0 Then

txtB.Text=“у B немає елементів”

Else

For i = 1 To j

txtB.Text= txtB.Text & CStr(b(i)) & “ “ Next i

End If End Sub

ІV етап. Результати розрахунку.

4.4 Завдання 4

4.4.1 Короткі теоретичні довідки

Тема завдання – виконання операцій з двовимірними масивами.

37

У повсякденній практиці часто доводиться мати справу з матрицями, яким в мові Visual Basic відповідають двомірні масиви, де один індекс позначає номер рядка, а інший номер стовпця. Для роботи з двовимірними масивами вживають так звані вкладені цикли. Любий цикл, що вміщує внутри себе один або декілька інших циклів, називається вміщеним. Цикл, що захвачує інші цикли, називається зовнішнім, а інші – внутрішніми. Параметри цих циклів змінюються не одночасно, тобто при одному значенні параметра зовнішнього циклу параметр внутрішнього циклу принімає почергово усі свої значення.

Для організації вводу, виводу та обробки усіх елементів матриці, необхідно написати два вкладених циклі, яки змінюють перший та другий індекси матриці. Якщо необхідно провести якісь розрахунки для кожного рядка матриці, то зовнішній цикл організуємо за першим індексом, відповідним номерам рядків, якщо розрахунки проводяться для кожного стовпця, то зовнішній цикл організуємо за другим індексом, відповідним номерам стовпців.

4.4.2 Приклад виконання завдання

Постановка задачі.

Надана прямокутна матриця A розміром 10х8. Знайти у кожному рядку матриці добуток позитивних елементів.

Рішення

I етап. Математичний опис рішення задачі. Дано: m=10 – кількість рядків у масиві A; n=8 - кількість стовпців у масиві A;

A(m,n) – чисельний двовимірний масив

Знайти: p - добуток позитивних елементів у кожному рядку матриці.

Дана матриця представляє собою таблицю з 10 рядків і 8 стовпців. Вводить елементи матриці будемо за рядками. Для обчислення добутку позитивних елементів одного рядка матриці необхідно організувати цикл з метою перебору усіх елементів рядка,

38

тому параметром цього циклу слід вибрати номер стовпця j. Обчислювати добуток за формулою p=p*a(i,j). Перед циклом необхідно задати початкове значення добутку p=1. Після закінчення циклу результат необхідно вивести до друку. Якщо ці дії повторить у зовнішньому циклі, змінюючи індекс рядка і, то будуть обчислені всі 10 добутків.

II етап. Блок-схема алгоритму рішення задачі

початок

m n

i=1,m

j=1,n

a(i,j)

1

39

1

i=1,m

p=1

j=1,n

a(i,j)>0

p=p*a(i,j)

i, p

кінець

40

IІІ етап. Складання програми мовою Visual Basic

1) Графічний інтерфейс користувача.

Використовуються елементи керування та їхні властивості. Форма (Form1): її властивість

Caption: Задача 4(двовимірний масив).

Написи (Label). Текстові поля (Textbox) і командна кнопка (Command Button). У процесі конструювання змінені їхні властивості.

Значення властивостей елементів керування

Елемент

Назва

Значення властивості

 

керування

властивості

 

1

Label1

Caption

кількість рядків у матриці (m)

2

Label2

Caption

кількість стовпців у матриці (n)

3

Label3

Caption

Матриця A

4

Label4

Caption

Результат

5

Text1

Name

txtM

 

 

Text

порожньо

6

Text2

Name

txtN

 

 

Text

порожньо

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]