- •Основы системы программирования
- •Введение
- •1 Основы системы программирования Visual Basic
- •1.1 Загрузка системы программирования
- •1.2 Среда разработки
- •1.3 Последовательность разработки проекта
- •1.4 Сохранение проекта
- •1.5 Основные элементы управления
- •1.5.1 Надпись (Label)
- •1.5.2 Текстовое поле (TextBox)
- •1.5.3 Кнопка (CommandButton)
- •1.5.4 Окно списка (ListBox)
- •1.6 Последовательность разработки информационной технологии
- •1.6.1 Формализация задачи
- •1.6.2 Составление схемы алгоритма
- •1.6.3 Разработка проекта
- •1.6.4 Сохранение проекта
- •1.6.5 Выполнение проекта
- •1.6.6 Отладка программы
- •1.7 Основы языка программирования Visual Basic
- •1.7.1 Типы данных
- •1.7.2 Объявление данных
- •Dim имя переменной As Тип данных
- •1.7.3 Оператор присваивания
- •1.7.4 Встроенные функции языка Visual Basic
- •Имя функции(аргумент)
- •1.7.5 Организация ввода данных
- •1.7.6 Организация вывода данных
- •MsgBox сообщение [,атрибут] [,заголовок]
- •Format (параметр,"прототип")
- •2 Структурное программирование
- •2.1 Структура Следование
- •2.2 Структура Развилка
- •If условие Then
- •Iif(логическое выражение, выражение1, выражение2)
- •If условие Then
- •If Условие1 Then
- •Goto имя метки
- •Номер строки
- •2.3 Структура Цикл
- •3 Производные алгоритмические структуры
- •Dim Имя массива(размерность) As Тип данных
- •Dim Имя массива(количество строк, количество столбцов) As Тип данных
- •3.1 Производная алгоритмическая структура Формирование
- •3.2 Производная алгоритмическая структура Пересчёт
- •3.3 Производная алгоритмическая структура Поиск по ключу
- •3.4 Производная алгоритмическая структура Поиск максимума
- •3.5 Производная алгоритмическая структура Поиск минимума
- •3.6 Производная алгоритмическая структура Cумма
- •3.7 Производная алгоритмическая структура Произведение
- •3.8 Производная алгоритмическая структура Счётчик
- •3.9 Производная алгоритмическая структура Выборка
- •3.10 Производная алгоритмическая структура Перестановка
- •3.11 Сортировка элементов массива
- •Библиографический список
- •Приложение извлечения из межгосударственного стандарта
- •2 Описание схем
- •2.2 Схема программы
- •3 Описание символов
- •3.1 Символы данных
- •3.2 Символы процесса
- •3.3 Символы линий
- •3.4 Специальные символы
- •4 Правила применения символов и выполнения схем
- •4.1 Правила применения символов
- •4.2 Правила выполнения соединений
- •Содержание
- •Основы системы программирования
- •190031, СПб., Московский пр., 9.
3.8 Производная алгоритмическая структура Счётчик
Производная алгоритмическая структура Счётчик используется для подсчета количества элементов массива в соответствии с заданным условием или для вычисления количества итераций в итерационных циклах.
Особенности алгоритма аналогичны производной алгоритмической структуре Сумма (значение дополнительной переменной увеличивается на единицу) и Поиск по ключу (вводится понятие "Флажок").
Примечание. Следует заметить, что в производной алгоритмической структуре Счётчик роль "Флажка" может выполнять дополнительная переменная.
Пример 23.
Разработать информационную технологию, позволяющую вычислить количество отрицательных элементов в одномерном массиве А произвольной размерности m.
Входные данные: m – целое число;
A = [ai], – массив целых чисел.
Выходные данные:
t – количество элементов массива, имеющих отрицательные значения, целое число.
Описание математических и логических зависимостей.
t = 0;
для i = 1… m, если ai < 0, то t = t + 1.
После выполнения цикла проверяется: если t = 0 – вывод информа-ционного сообщения.
Схема алгоритма:
Нет
Да
Нет
Код приложения:
Private Sub Command1_Click()
Dim m As Integer, i As Integer, t As Integer, a() As Integer
m=InputBox(“Введите размерность”)
ReDim a(1 To m)
t=0
For i=1 To m
a(i)=InputBox(“a(“ & i & ”)”)
Print a(i);
If a(i)<0 then t = t+1
Next
If t=0 then
MsgBox “Отрицательных элементов в массиве нет!”
Else
MsgBox “ В массиве ” & t & ”отрицательных элементов”
End If
End Sub
3.9 Производная алгоритмическая структура Выборка
Эта структура предназначена для формирования массива в соответствии с заданным условием.
Особенности алгоритма.
1. При разработке алгоритма могут использоваться ранее рассмотренные производные алгоритмические структуры.
2. Массив, из которого осуществляется выборка, хранится в оперативной памяти.
Пример 24.
Разработать информационную технологию, позволяющую заполнить в вычислительной среде одномерный массив В значениями элементов массива А произвольной размерности m×n, имеющих чётные значения элементов.
Входные данные:
m – целое число;
n – целое число;
A = [aij], , – массив целых чисел.
Выходные данные:
B
= [bk],
– массив целых чисел (mn
– максимально возможная размерность
массива).
Описание математических и логических зависимостей.
k = 0;
для j = 1… n,
для i = 1… m,
если ai j – четное, то k = k + 1 и bk = ai j.
Схема алгоритма:
К
од
приложения:
Option Base 1
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, m As Integer, n As Integer
Dim a() As Integer, b() As Integer
m=InputBox(“Введите количество строк матрицы”)
n=InputBox(“Введите количество столбцов матрицы”)
ReDim a(m, n), b(m*n)
For i=1 to m
For j=1 to n
a(i, j)=InputBox(“a(“ & i & ”,” & j & ”)”)
Next j
Next i
k=0
' Обработка массива осуществляется по столбцам
For j=1 to n
For i=1 to m
If a(i,j) mod 2 =0 Then
k=k+1:
b(k)=a(i, j)
End If
Next i
Next j
Print “Исходный массив A”
For i=1 to m
For j=1 to n
Print a(i, j);
Next j
Next i
If k <>0 Then
Print Chr(10);“Заполнен массив В ”
For i=1 to k
Print b(i);
Next
Else
Print “Элементов, имеющих четные значения, в массиве А нет”
End If
End Sub
Пример 25.
Разработать информационную технологию, позволяющую заполнить вектор Q значениями элементов столбцов матрицы DX произвольной размерности k×g, в которых значение последнего элемента попадает в интервал [5, 8]. Подсчитать количество таких столбцов.
Входные данные:
k – переменная целого типа;
g – переменная целого типа;
DX
= [dxmn],
,
– массив целых чисел.
Выходные данные:
Q
= [qi],
– массив целых чисел (kg
– максимально возможная размерность
массива);
count – количество столбцов, содержащих элементы, попадающие в заданный интервал.
Описание математических и логических зависимостей.
сount = 0; i = 0;
для n = g … 1 с шагом -1,
если DXmn ∊[5, 8], то
count = count + 1, для m = 1… k, i=i+1, qi = DXn m .
После выполнения цикла проверяется: если count = 0, то вывод информационного сообщения.
С
хема
алгоритма:
Код приложения:
Private Sub Form_Click()
Dim m As Integer, n As Integer, Q() As Integer
Dim i As Integer, count As Integer
Dim DX() As Integer, k As Integer, g As Integer
Form1.Caption = "Синтез производных структур"
k = InputBox("Введите количество строк матрицы")
g = InputBox("Введите количество столбцов матрицы")
ReDim DX(1 To k, 1 To g)
For m = 1 To k
For n = 1 To g
DX(m, n) = InputBox("Введите элемент матрицы")
Next
Next
Print "Исходный массив DX"
For m = 1 To k
For n = 1 To g
Print DX(m, n);
Next
Next
count = 0: i = 0
For n = g To 1 Step -1
If DX(k, n) >= 5 And DX(k, n) <= 8 Then
count = count + 1
For m = 1 To k
i = i + 1
ReDim Preserve Q(i)
Q(i) = DX(m, n)
Next m
End If
Next n
If count <> 0 Then
Print Chr(10); "Заполненный вектор Q"
For n = 1 To i
Print Q(n);
Next
Print Chr(10), "Количество столбцов = "; count
Else
CurrentX = 1200
CurrentY = 1300
Print "УСЛОВИЕ ПОИСКА НЕ ВЫПОЛНЯЕТСЯ!!!"
End If
End Sub
Результат выполнения.
