Здавалка
Главная | Обратная связь

Цикл із заданою кількістю повторювань тіла циклу (цикл з параметром)



For…Next

Цей цикл вважається самою розповсюдженою конструкцією та має наступний синтаксис:

For лічильник = початкове_значення ТО кінцеве_значення [Step крок]

Оператори тіла циклу

Next [лічильник]

На початку виконання циклу значення лічильника встановлюється на початкове_значення. При кожному проходженні змінна лічильника збільшується на 1 або на величину кроку. Якщо вона досягає або стає більше (менше при від’ємному кроці) кінцевого_значення, то цикл закінчується та виконуються наступні оператори. Різниця між початковим та кінцевим значенням, ділене на величину кроку складає число проходів (число ітерацій циклу).

Стандартний алгоритм роботи такого циклу представлено на наступному рисунку

Приклад 5.1. Використовуючи циклічний алгоритм розрахувати суму перших 10 чисел натурального ряду. Тобто знайти S=1+2+3+4+5+6+7+8+9+10. Скласти блок-схему, макет форми та текст програми.

Рис 5.1 Макет форми (об’єкти та значення властивості Caption)

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

Програмний код кнопки “Розрахувати

Private Sub Command1_Click()

Dim S,I As Integer

S=0

For I=1 To 10

S=S+I

Next I

MsgBox "Сума перших 10 натуральних чисел дорівнює ” & S,0, “Вікно виведення”

End Sub

Програмний код кнопки “Вихід

Private Sub Command2_Click()

End

End Sub

Коли кількість повторень циклу невідома, використовують конструкцію типу . Існує два види цього оператора::

Do While <умова>

тіло циклу

Loop

Do

тіло циклу

Loop While <умова>

Різниця між такими циклічними блоками полягає в місці перевірки значення умовного виразу (на початку циклу або в кінці). Відповідно змінюється місце розташування змінної, значення якої аналізується в умові.

На кожному новому кроці циклу перевіряється умова; тому важливо при розробці програми стежити за тим, щоб у тілі циклу значення змінної в умові циклу могло бути змінено так, аби умова стала хибною, тобто цикл закінчився.

Приклад 5.2Використовуючи циклічний алгоритм розрахувати добуток перших 10 чисел натурального ряду. Тобто знайти D=1*2*3*4*5*6*7*8*9*10. Скласти алгоритм, макет форми та текст програми.

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

Рис. 5.4 Макет форми (об’єкти та значення властивості Caption)

Програмний код кнопки “Цикл з передумовою

Private Sub Command1_Click()

Dim D, I As Integer

D = 1

I = 1

Do While I <= 10

D = D * I

I = I + 1

Loop

MsgBox "Добуток перших 10 натуральних чисел дорівнює " & D, 0, "Вікно виведення"

End Sub

Модифікація програмного коду, коли перевірка значення умовного виразу знаходиться в кінці (цикл з постумовою)

Програмний код кнопки “Цикл з постумовою

Private Sub Command2_Click()

Dim D, I As Integer

D = 1

I = 1

Do

D = D * I

I = I + 1

Loop While I <= 10

MsgBox "Добуток перших 10 натуральних чисел дорівнює " & D, 0, "Вікно виведення"

End Sub

Програмний код кнопки “Вихід

Private Sub Command3_Click()

End

End Sub

Часто використовуються вкладені цикли, конструкції яких мають такий вигляд, який розглянемо на прикладі оператора For…Next.

For I=<початкове_значення> To <кінцеве_значення> [Step <к>]

For J=<початкове_значення> To <кінцеве_значення> [Step <к>]

Тіло циклу

Next J

Next I

Приклад 5.3. Скласти програму виведення на екран матриці розмірністю 4 х 3, елементами якої є числа натурального ряду. Тобто: 1 2 3 4

5 6 7 8

9 10 11 12

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

Рис. 5.6 Макет форми (об’єкти та значення властивості Caption)

Програмний код кнопки “Старт”

Private Sub Command1_Click()

Cls

Dim N, I, J As Integer

N = 1

For I = 1 To 3

For J = 1 To 4

Print N,

N = N + 1

Next J

Print

Next I

End Sub

Завдання для практичного виконання по темі 5

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

Обчислити значення функції Y=AX2+BX+C, де А,В,С – натуральні числа, на відрізку 1 ≤ Х ≤ 10 з кроком 1. Скласти блок-схему алгоритму рішення задачі, макет форми і програмні коди мовою VB. Введення даних здійснити через системне вікно (функція InputBox), а виведення результатів - в поле мітки (Label), границі якого повинні автоматично змінюються залежно від кількості даних, що відображатися в ньому

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

Порядок виконання

1. Завантажити VB, вибравши елемент Standard.exe

2. Створити діалогову форму за макетом (рис 5.8)

3. Задати властивість Caption об’єктів форми згідно таблиці 5.1, після чого форма буде мати вигляд як на рисунку 5.9

Рису. 5.8 Макет форми “Розрахунок значення функції”

Таблиці 5.1 Об’єкти форми та значення властивості Caption

Об’єкти Властивості Значення
Label 1 Caption Обчислення значень функції Y=A*X^2+B*X+C на відрізку [1; 10] з кроком 1
Label 2 Caption Поле_виводу
Label 2 AutoSize True
Label 2 WordWrap True
Label 3 Caption Виконав студент 1 курсу …..
Command 1 Caption Розрахувати
Command 2 Caption Вихід
Form 1 Caption Алгоритм циклічної конструкції

Примітка: пояснення щодо призначення властивостей AutoSize та WordWrap представлені нижче

Рисунок 5.9 Вигляд форми після завдання властивості Caption об’єктів

4. Змінити інші властивості об’єктів форми (шрифт, його розмір, колір, спосіб написання, вирівнювання, фон)

Рис. 5.10. Вікно результатів роботи програми Цикл_1

5. Створити програмні коди кнопок “Розрахувати” (використати конструкцію For…Next) та “Вихід”.

Програмний код кнопки “Розрахувати

(тип структури – "цикл з параметром")

Private Sub Command1_Click()

Dim A, B, C, X, Y As Integer

A= InputBox("Введіть значення А", "Вікно введення даних", , 1000, 1000)

В = InputBox("Введіть значення В", "Вікно введення даних", , 1000, 1000)

С = InputBox("Введіть значення С", "Вікно введення даних", , 1000, 1000)

For X = 1 To 10

Y = A * X ^ 2 + B * X + C

Label2.Caption = Label2.Caption & Chr(13) & "При Х =" & X & ".Y=" & Y

Next X

End Sub

Пояснення: Поле виведення Label 2 має властивості AutoSize=True та WordWrap=True, це позначає, що границі мітки Поле_виводу автоматично розширяються, щоб умістити текст, який буде там знаходитися. Символ & - оператор конкатенації (з’єднання) рядків, Chr(13) управляюча функція, яка позначає перехід на новий рядок.

Програмний код кнопки “Вихід

Private Sub Command2_Click()

End

End Sub

6. Виконати проект. Очікуваний результат може мати вигляд як на рисунку 5.10

7. Зберегти форму та проект в особистій папці під ім’ям Цикл_1

8. Створити завантажувальний файл. Зберегти його під тим же ім’ям. Перевірити його роботу.

9. Створити новий проект з модифікацією програмного коду кнопки "Розрахувати". Використати конструкцію “цикл з передумовою”. Зберегти форму та проект під ім’ям Цикл_2. Створити завантажувальний файл. Перевірити його роботу.

Програмний код кнопки “Розрахувати

(тип конструкції –" цикл з передумовою" –Do…Loop)

Private Sub Command1_Click()

Dim A, B, C, X, Y As Integer

A= InputBox("Введіть значення А", "Вікно введення даних", , 1000, 1000)

В = InputBox("Введіть значення В", "Вікно введення даних", , 1000, 1000)

С = InputBox("Введіть значення С", "Вікно введення даних", , 1000, 1000)

X = 1

Do While X <= 10

Y = A * X ^ 2 + B * X + C

Label2.Caption = Label2.Caption & Chr(13) & "При...Х=" & X & ".Y=" & Y

X = X + 1

Loop

End Sub

10. Створити новий проект з модифікацією програмного коду кнопки "Розрахувати". Використати конструкцію “цикл з постумовою”. Зберегти форму та проект під ім’ям Цикл_3. Створити файл, що завантажується. Перевірити його роботу.

Програмний код кнопки “Розрахувати

(тип конструкції –" цикл з постумовою" – Do…While)

Private Sub Command1_Click()

Dim A, B, C, X, Y As Integer

A= InputBox("Введіть значення А", "Вікно введення даних", , 1000, 1000)

В = InputBox("Введіть значення В", "Вікно введення даних", , 1000, 1000)

С = InputBox("Введіть значення С", "Вікно введення даних", , 1000, 1000)

X = 1

Do

Y = A * X ^ 2 + B * X + C

Label2.Caption = Label2.Caption & Chr(13) & "При..Х=" & X & "..Y=" & Y

X = X + 1

Loop While X <= 10

End Sub

11. Створити та зберегти в особистій папці проекти прикладів, розглянутих в теоретичних основах, створити завантажувальні файли (тобто .ехе файли)

6. Тема: "Робота з масивами та файлами"

Одновимірні масиви. Завдання для практичного виконання

Теоретичні відомості по роботі з масивами у Visual Basic розглянуто в темі 2.1. Для виконання практичних задач з даної теми наведено додаткові відомості.

У існують оператори, які дозволяють зчитувати вхідні дані та зберігати результати обробки у файлах на різноманітних носіях (гнучких або жорстких дисках). Процес відкриття та зберігання файлів складається з наступних етапів:

¾ отримання дескриптора файлу. Дескриптор – номер каналу введення-виведення, який можна використовувати для роботи з файлом. Це ціле число від 1 до 255, яке можна задати за допомогою функції FreeFile

¾ відкриття файлу

¾ читання або запис

¾ закриття файлу.

У Visual Basic реалізовано три типи доступу до файлів:

¾ послідовного доступу – для читання та запису текстовий файлів;

¾ прямого доступу – дані зчитуються та записуються в будь-якій послідовності, рядки повинні бути однакової довжини;

¾ двійковий – для читання та запису довільної групи байтів

Далі розглядається обробка файлів послідовного доступу. Основні команди для роботи з файлами:

Open "повне ім’я файлу" For Input As #N

Відкриває файл для читання із нього даних

Open "повне ім’я файлу" For OutPut As #N

Відкриває файл для введення до нього даних

#N – номер каналу введення-виведення

Line Input #N "змінна"

Зчитує один рядок із текстового файлу

Input #N

Зчитує послідовність даних, розділених комою

Close #N

Оператор закриття файлу

Print #N

Друкування даних у файл. В даному операторі можна використовувати конструкцію Tab(номер),яка задає номер позиції в рядку, куди необхідно вивести дані.

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

В текстовому файлі задано одновимірний масив цілих чисел з 10 елементами. Створити проект на Visual Basic, за допомогою якого можна розрахувати середнє значення заданих елементів. Результат вивести на екран монітору та записати до текстового файлу

Порядок виконання

1. За допомогою програми Блокнот в особистій папці створити файл початкових даних DAN1.TXT. Файл містить 1 рядок елементів одновимірного масиву 10 натуральних чисел, наприклад, 3, 6, 12, 2, 29, 5, 8, 11, 7, 32

2. Створити макет форми (представлено на рис. 6.1)

Рис. 6.1 Макет форми

Призначення об’єктів форми:

Picture1 – для виведення елементів масиву, записаних в текстовому файлі Dan1.txt

Command1– командна кнопка "Виведення елементів масиву", при натисненні на яку до об’єкту Picture1 виводяться елементи масиву, що записані в текстовому файлі Dan1.txt

Command2– командна кнопка, при натисненні на яку виконується розрахунок середнього значення, вивід результату на екран та запис результату до файлу Dan2.txt

Command3 – командна кнопка виходу із додатку

3. Властивості об’єктів (Form1, Picture1, Command1, Command2, Command3 задати самостійно, використовуючи набути навички)

4. Блок-схема виведення елементів масиву (рис.6.2)

5. Блок-схема розрахунку середнього значення елементів масиву (рис 6.3)

6. Програмний код кнопки "Виведення елементів масиву"

Оператори програмного коду Пояснення
Private Sub Command1_Click() Початок процедури
Dim X(1 To 10) As Integer Оголошення масиву Х, який містить 10 елементів
Open "D:\Учебный процесс\ Особиста папка\Dan1.txt" For Input As #1 Відкриття текстового файлу Dan1 для зчитування даних
For I = 1 To 10 Початок циклу зчитування даних із текстового файлу та виведення
Input #1, X(I) Зчитування І-го елементу масиву
Picture1.Print X(I); " "; Виведення І-го елементу до об’єкту форми Picture1
Next I Перехід до наступного елементу масиву
Close #1 Закриття текстового файлу з початковими даними
End Sub Кінець процедури

Рис. 6.2 Блок схема виведення елементів масиву із текстового файлу послідовного доступу до об’єкту Picture1

7. Програмний код кнопки "Розрахувати"

Оператори програмного коду Пояснення
Private Sub Command2_Click() Початок процедури
Dim X(1 To 10), S As Integer Оголошення масиву Х, який містить 10 елементів та змінної S (суми елементів масиву) цілого типу
Dim SR As Single Оголошення змінної SR (середнього значення) дійсного типу
Open "D:\Учебный процесс\ Особиста папка\Dan1.txt" For Input As #1 Відкриття текстового файлу Dan1 для зчитування даних
S = 0 Обнуління суми елементів масиву
For І = 1 To 10 Початок циклу зчитування елементів масиву та обчислення їх суми
Input #1, X(І) Зчитування І-го елементу масиву
S = S + X(І) Обчислення суми елементів масиву
Next І Перехід до наступного елементу масиву
SR = S / 10 Обчислення середнього значення елементів масиву
MsgBox "Середнє значення " & Str(SR), 0, "Вікно виводу результатів" Виведення результату розрахунку середнього значення елементів масиву
Close #1 Закриття текстового файлу з початковими даними
Open "C:\Dan2.txt" For Output As #2 Відкриття файлу послідовного доступу для запису результату обчислення
Print #2, "Середнє значення"; SR Запис результату обчислення до текстового файлу послідовного доступу
Close #2 Закриття файлу послідовного доступу
End Sub Кінець процедури

Рис. 6.3 Блок-схема алгоритму розрахунку середнього значення елементів масиву

8. Програмний код кнопки "Вихід"

Private Sub Command3_Click()

End

End Sub

9. Результати виконання проекту представлено на рис.6.4

Рис. 6.4 Результати виконання проекту

10. Проект зберегти в особистій папці.

11. Створити завантажувальний файл

Робота з матрицями. Завдання для практичного виконання

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

В текстовому файлі задано матрицю розмірністю 2 х 5. елементами матриці являються цілі числа. Створити проект на Visual Basic, за допомогою якого можна розрахувати суму елементів кожного рядка матриці. Результат вивести на екран монітору та записати до текстового файлу

Порядок виконання

1. За допомогою програми Блокнот в особистій папці створити файл початкових даних MATRIX.TXT. Файл містить 2 рядка елементів, відокремлених комами, наприклад, 3, 6, 12, 2, 2

5, 8, 11, 7, 32

2. Створити макет форми (зразок наведено на рис. 6.5)

Рис 6.5 Макет форми з елементами управління

Призначення об’єктів форми:

Picture1 – для виведення елементів матриці, записаних в текстовому файлі Matrix.txt

Picture2 – для виведення результатів розрахунку суми елементів кожного рядка матриці

Command1– командна кнопка "Виведення матриці", при натисненні на яку до об’єкту Picture1 виводяться елементи матриці, що записані в текстовому файлі Matrix.txt

Command2– командна кнопка, при натисненні на яку виконується розрахунок суми елементів кожного рядка матриці, вивід результату на екран та запис результату до файлу Rez.txt

Command3 – командна кнопка виходу із додатку

3. Властивості об’єктів (Form1, Picture1, Picture2, Command1, Command2, Command3 задати самостійно, використовуючи набути навички)

4. Блок-схема виведення елементів матриці представлено при розгляді прикладу 10 (тема 5).

5. Блок-схема розрахунку суми елементів кожного рядка матриці представлено на рис.6.6

6. Програмний код кнопки "Виведення елементів матриці"

Private Sub Command1_Click()

Dim X(1 To 2, 1 To 5) As Integer

Picture1.Print "Матриця"

Open "D:\Учебный процесс\Особиста папка студента\Matrix.txt" For Input As #1

For i = 1 To 2

For j = 1 To 5

Input #1, X(i, j)

Picture1.Print X(i, j);

Next j

Picture1.Print

Next i

Print

Close #1

End Sub

Рис. 6.6 Блок-схема алгоритму розрахунку суми елементів рядків матриці

7. Програмний код кнопки "Розрахунок суми елементів рядків"

Private Sub Command2_Click()

Dim X(1 To 2, 1 To 5) As Integer

Dim S(1 To 2) As Integer

Open "D:\Учебний процесс\Особиста папка студента\Matrix.txt" For Input As #1

Open "D:\Учебный процесс\Особиста папка студента\Rez.txt" For Output As #2

For i = 1 To 2

S(i) = 0

For j = 1 To 5

Input #1, X(i, j)

S(i) = S(i) + X(i, j)

Next j

Picture2.Print "Сума елементів " & Str(i) & " рядка " & Str(S(i))

Print #2, "Сума елементів " & Str(i) & " рядка " & S(i)

Next i

Close #1

Close #2

End Sub

8. Програмний код кнопки "Вихід"

Private Sub Command3_Click()

End

End Sub

9. Результати виконання проекту представлено на рис.6.7

Рис. 6.7 Результати виконання проекту

10. Проект зберегти в особистій папці.

11. Створити завантажувальний файл

7. Тема: "Робота з графічними об’єктами".

Теоретичні основи.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.