Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы с 12-35.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
101.99 Кб
Скачать

Пример 1.

Постановка задачи:

Вычислить сумму эл. квадратной матрицы С размерности m×n, располож. на ее главной диагонали

С=

Входные данные:m,с – целый тип

Выходные данные: S – целый тип

Математическое описание:

S= , , Cij , если i=j

Схема алгоритма:

Начало

m,

S=0

i=1

i<=m

S=S+Cij

i=i+1

S

конец

Ход программы

Privat Sub Command 1_ Click()

Dim m As Integer, I As Integer

Dim c() As Integer, S As Integer

m= inputbox (“m=”)

ReDim c(m<m)

For i=1 to m

For j = 1 to m

c(i,j) = inputbox (“c(“&i&”,”&j&”)=”)

Next j

Next i

S=0

For i=1 to m

S=S+c(i,j)

Next

Mcg Box “S=”&S

End Sub

Пример 2

Вычислить произведение элементов матрицы А разм. m×n, имеющих чет. знач. индексов строк

Входные данные: m-переменная целого типа

n-переменная целого типа

Выходные данные: p- вещ. число

Математическая модель

i=i+2

Алгоритм:

Начало

m,n, A

p=1

i=2

j=j+1

i<=m

j=1

p, A

j<=n

p=p*aij

j=j+1

конец

Код программы

Privat Sub Command 1_ Click()

Dim i As Integer, j As Integer, m As Integer, n As Integer

Dim p As Single, a() As Single

m= inputbox (“введите количество строк”)

n= inputbox (“введите количество столбцов”)

ReDim a(m,n)

For i=1 to m

For j = 1 to n

a(i,j) = inputbox (“a(“&i&”,”&j&”)=”)

Next

p=1

For i=2 to m step 2

For j = 1 to n

p=p*aij

Next Next

Print “произведение элементов матрицы, имеющих чет. знач. инд. строк=”&p

Print”для матрицы”

For j=1 to n

Print Format (a(i,j), “0.00”)

Next

Next

End Sub

  1. Производная алгоритмическая структура ЗАПОЛНЕНИЕ. Примеры.

Заполнение:

  • Формирование

  • Пересчет

  • Выборка

1. Формирование - формирует в памяти ЭВМ новый массив, у которого значения элементов определяются по установленным правилам

2. Пересчет – пересчитывает по установленным зависимостям значения ранее записанные в памяти ЭВМ элементов массива на нов. их знач.

3. Выборка – выбирает из памяти ЭВМ по определенным правилам элементы одного или неск. массивов.

  • Формирование

Используется для заполнения вычисл. среды конкретного значения в соответствии с заданными математическими зависимостями

Особенности алгоритма:

  1. Вводится только размерность массива, а значения массива формируется в соответствии с зад. правилом заполнения

  2. В зависимости от размерности массива организуется простой циклический процесс (одномерный массив) или цикл в цикле (двумер. массив)

Телом цикла служит правило заполнения, в соответствии с которым формируется значение массива.

  1. Значения элементов массива хранятся в памяти. Для визуального анализа значений элементов массива их требуется вывести на экран монитора или печатающее устройство.

Пример 1.

Заполнить в памяти комп. единичную матрицу произвольной размерности m×n/

Входные данные: m – целое число

Выходные данные: матрица Е= -массив целых чисел

j =1,m i=1,m

Математическая модель:

e ij= j =1,m i=1,m

Схема алгоритма:

Начало

m

i=1

i<=m

j=1

E

j<=m

i=j

eij=1

Конец

i=i+1

eij=0

j=j+1

Код приложения:

Dim m As Integer, i As Integer, j As Integer, e() As Byte

m=Inputbox (“Введите размерность массива m”)

Re Dim e(m,m)

For i = 1 To m

For j = 1 To m

If i=j Then

e(i,j)=1 Else e(i,j)=0 End if Next Next “Вывод значений элементов матрицы на форму Print”Значение элементов матрицы Е:”

For i= 1 To m Print For j = 1 To m Print e(i,j); Next Next End Sub

  • Пересчет

Используется для изменения значений элементов массива, в соответствии с заданной математической зависимостью.

Пример 1.

Уменьшить значения элементов массива в К раз (К произвольной размерности m×n. Новый массив не заполняется.

Входные данные:

А= -массив вещ. чисел

К-целое число, m-целое число

Выходные данные:

А= -пересчит. массив вещ. чисел

Мат. модель:

для i=1….m, ai=ai/K K

Начало

m, A

A

K

K=0

На ноль делить нельзя

i=1

i<=m

i=i+1

аi=ai/K

A

Конец

Код:

Private Sub Command1_Click()

Dim m As Integer, k As Integer, i As Integer Dim a() As Single m=InputBox(“Введите размерность массива”)

ReDim a(1 To m)

Print “Введите значения элементов массива”

For i= 1 To m

a(i)=InputBox(“a(“&i&”)”)

Next

Print”Исходный массив”

For i=1 To m

Print”a(“&i&”)=”&Format(a(i),”0.00”) Next k=InputBox(“Введите значение k”)

If k=0 Then

Print “На ноль делить нельзя”

Else

For i=1 To m

a(i)=a(i)/k

Next

Print Chr(10);”Результирующий массив”

For i=1 To m

Print Format(a(i),”0.00”)

End If

End Sub

  • Выборка

Эта структура предназначена для формирования массива в соответствии с заданным условием

Особенности алгоритма:

  1. При разработке алгоритма могут использоваться ранее рассмотренные производные алгоритмические структуры

  2. Массив, из которого осуществляется выборка, хранится в оперативной памяти