Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Word отчет Сокуренко бейсик.doc
Скачиваний:
2
Добавлен:
20.12.2018
Размер:
715.78 Кб
Скачать

Задача 6.7.

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

Таблица переменных

Переменная

Тип

Имя

Назначение

Матрица

Действ.

Х

ИД

Кол-во строк и столбцов матрицы

Целый

n

ИД

Сумма

Действ

s

Результат.

Счетчик

Целый

k

Вспомогат.

Номер строки

Целый

i

Промежут.

Номер столбца

Целый.

j

Промежут

Блок-схема алгоритма

Проверка 1

Блок 1

Блок 2

Блок 3

Блок 4

Блок 5

Блок 6

Блок 7

Блок 8

Блок 9

Блок 10

Блок 11

Блок 12

Блок 13

1

начало

4

-1;2;3;4

2;3;4;5

-3;4;5;6

4;5;6;7

S=0

I=1

K=4

-1<0 да

S=-1

I=2

2<=4 да

2

2<0 нет

k=3

I=3

3<=4 да

3

-3<0 да

S=4

I=4

4<=4 да

4

4<0 нет

k=2

I=5

5<=4 нет

2<>0 да

Вывод 4

конец

Проверка 2

Блок 1

Блок 2

Блок 3

Блок 4

Блок 5

Блок 6

Блок 7

Блок 8

Блок 9

Блок 10

Блок 11

Блок 12

Блок 13

1

начало

4

1;2;3;4

2;3;4;5

3;4;5;6

4;5;6;7

S=0

I=1

K=4

1<0 нет

k=3

I=2

2<=4 да

2

2<0 нет

k=2

I=3

3<=4 да

3

3<0 нет

k=1

I=4

4<=4 да

4

4<0 нет

k=0

I=5

5<=4 нет

0<>0 нет

Вывод

“Нет строк с 1-м отрицательным элементом”

конец

Структура даних

При розв’язанні задачі вихідними даними є кількість рядків та стовпців матриці N та їх значення X(i,j), для введення цих значень використовується функція Inputbox. Результат виводиться за допомогою оператора Print, він друкується на форму. Результат залежить від вихідних даних, і користувач не може його довільно змінити.

Структура даних задачі подана в наступній таблиці.

Реквізит

Ім’я

Призначення

Кількість рядків та стовпців

N

Вихідні дані

Матриця

X

Вихідні дані

Сума

S

Результат

Інтерфейс з користувачем

Розв’язання задачі здійснюється за допомогою форми, наведеної нижче. У заголовку форми вказана назва додатка Задача 6.7. Введення значень виконується при натисненні кнопки Ввод значений.Обчислення виконуються при натисненні кнопки Расчет. Результат розрахунку друкується на форму.

Програма

Option Explicit

Option Base 1

Dim x(10, 10) As Single, s As Single, i, j, n, k As Integer

Private Sub vvod_Click()

n = CInt(InputBox("Введите количество строк и столбцов матрицы Х"))

Print "Матрица Х"

For i = 1 To n

For j = 1 To n

x(i, j) = CSng(InputBox("x(" & i & "," & j & ")="))

Print x(i, j);

Next j

Print

Next i

End Sub

Private Sub rascet_Click()

s = 0: k = n

For i = 1 To n

If x(i, 1) < 0 Then

s = s + x(i, i)

Else

k = k - 1

End If

Next i

If k <> 0 Then

Print "Сумма равна "; s

Else

Print "Нет строк с первым отрицательным элементом"

End If

End Sub

Реалізація проекту

  1. Запустити на виконання VB для створення нового проекту.

  2. Ввести заголовок форми Задача 6.7.

  3. Створити кнопку Ввод значений.

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

  5. Створити кнопку Расчет.

  6. Увести код процедури, яка обробляє подію клацання на кнопку Расчет.

  7. Зберегти форму і проект у підкаталозі папки студента на диску.

  8. Запустити програму на виконання і зробити обчислення з комплектом вихідних даних.

Аналіз проекту

Для виконання обчислень у правій частині оператора привласнення використовуються функції CSng() та CInt(), які перетворюють рядкові значення на тип Single і Integer відповідно.

У коді виконується явний опис змінних через наявність оператора Option Explicit. Оператор Option Base 1 вказує на те, що нумерація елементів матриці Х починається з 1.

Для реалізації циклічного обчислення використовується оператор For…Next.

Для реалізації розгалуження застосовується розширена форма умовного оператора.

Результат розрахунку друкується на форму за допомогою оператора Print.

Виконання програми й аналіз отриманих результатів

Результат розв’язання задачі залежить від початкових даних. Для перевірки працездатності використовувалися дані перевірки правильності алгоритму (тестування). Приклад такої перевірки наведено на малюнку вище. Отримані результати співпадають з результатами перевірки алгоритму.

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