БАТЯЕВА В.Н., ШКОЛА 36, САРАНСК, МОРДОВИЯ МАССИВЫ
Решение многих задач на ЭВМ связано с обработкой большого количества численных данных. Эти данные обычно представляются в виде различных таблиц. Часто используются одномерные и двумерные таблицы. х1х2х3...хnхn n Одномерная таблица Х состоит из n элементов. Таблица линейная – Х(n) Двумерная таблица содержит N*M элементов и каждый элемент имеет 2 индекса. Двумерную таблицу называют прямоугольной. A11A12A13A14A15 A21A22A23A24A25 A31A32A33A34A35 Двумерная таблица А (3,5). Первый индекс показывает номер строки, второй номер столбца. Таблицу часто называют массивом. Массив – совокупность величин, при которой доступ к любой из них обеспечивается заданием имени массива и индексов, определяющих положение элементов в массиве. Одномерный массив – список учеников в классе. Многомерный массив – таблица умножения, аттестат зрелости, ж/д билет, классный журнал
Заполнение массива при помощи датчика случайных чисел Задача: Заполнить массив A(22) случайными числами из отрезка [-5,37] и вывести его на экран. Private Sub Command1_Click() DIM A(1 TO 22) AS INTEGER, X AS BYTE RANDOMIZE FOR X=1 TO 22 A(X)= - 5+FIX(RND*(37 - (-5)+1)) PRINT A(X); NEXT X End Sub Формула получения случайного числа из отрезка [N,M] : Z= N+FIX(RND*(M-N+1)) Демонстрация
Private Sub Command1_Click() Dim A(1 To 22) As Integer, I As Byte Randomize c = Fix(Rnd * 15) For I = 1 To 22 A(I) = -5 + Fix(Rnd * (37 - (-5) + 1)) ForeColor = QBColor(c) Print A(I); Next I: Print End Sub
Private Sub Command1_Click() Dim B(1 TO 17) As Byte, X As Byte RANDOMIZE FOR X=1 TO 17 В(X)= 12+FIX(RND*( )) PRINT В(X); NEXT X End Sub Определите имя массива, количество элементов, способ заполнения
Private Sub Command1_Click() Dim С(1 TO 44) As Integer, X As Byte RANDOMIZE FOR X=1 TO 44 С(X)= -34+FIX(RND*(70-(-34)+1)) PRINT С(X); NEXT X End Sub Определите имя массива, количество элементов, способ заполнения ЗАПОЛНЕНИЕ МАССИВОВ ПРОГРАММНЫЙ КОД
Private Sub Command1_Click() Dim К(1 TO 19) As Integer, X As Byte RANDOMISE FOR Y=1 TO 25 А(Y)= -60+FIX(RND*(-10-(60)+1)) PRINT К(Y); NEXT End Sub Найдите ошибки!
Private Sub Command1_Click() Dim К(1 TO 19) As Integer, X As Byte RANDOMIZE FOR X=1 TO 19 К(X)= -60+FIX(RND*(-10-(-60)+1)) With Font.Bold = True.Size = 14 ForeColor = vbRed End With PRINT К(X); NEXT X End Sub
Private Sub Command1_Click() Dim К(1 TO 19) As Integer, X As Byte, S As Integer RANDOMIZE FOR X=1 TO 19 К(X)= -60+FIX(RND*(-10-(-60)+1)) PRINT К(X); NEXT X: PRINT S=0 FOR X=1 TO 19 S=S + K(X) NEXT X PRINT S=;S End Sub
Private Sub Command1_Click() Dim К(1 TO 19) As Integer, X As Byte, S As Integer RANDOMIZE FOR X=1 TO 19 К(X)= -60+FIX(RND*(-10-(-60)+1)) PRINT К(X); NEXT X :PRINT S=0 FOR X=1 TO 19 IF K(X)/2 >< K(X)\2 THEN S=S + K(X) NEXT X PRINT S=;S End Sub
Private Sub Command1_Click() DIM К(1 TO 19) As Integer, Y As Byte, S As Byte RANDOMIZE FOR Y=1 TO 19 К(Y)= -60+FIX(RND*(-10-(-60)+1)) PRINT К(Y); NEXT Y : PRINT S=0 FOR Y=1 TO 19 IF K(Y)/2 >< K(Y)\2 THEN S=S + 1 NEXT Y PRINT S=;S End Sub
Этапы решения задач с массивами: 1. Определить массив. 2. Заполнить массив. 3. Вывести элементы массива на экран. 4. Выполнить требуемое задание.
Private Sub Command1_Click() Dim A(1 To 15) As Integer, I As Byte, MIN As Integer RANDOMIZE FOR I = 1 TO 15 A(I) = -7 + INT(RND * (20 - (-7) + 1)) PRINT A(I); NEXT I: PRINT FOR I = 1 TO 15 IF A(I)/3 = FIX(A(I)/3) THEN PRINT A(I); NEXT I: PRINT PRINT MIN = A(1) FOR I = 2 TO 15 IF A(I) < MIN Then MIN = A(I) NEXT I: PRINT PRINT Минимальный элемент массива = "; MIN PRINT End Sub
Private Sub Command1_Click() Dim К(1 TO 19) As Integer, X As Byte Dim S As Integer, S1 As Integer Dim P As Single, P1 As Single RANDOMIZE FOR X=1 TO 19 К(X)= -60+FIX(RND*(-10-(-60)+1)) PRINT К(X); NEXT X : Print S = 0: S1 = 0: P = 1: P1 = 1 For X = 1 To 19 S = S + K(X) If K(X) / 2 = K(X) \ 2 Then ForeColor = vbBlue: Print K(X);: S1 = S1 + K(X) P = P * K(X) If K(X) / 2 K(X) \ 2 Then ForeColor = vbMagenta: Print K(X);: P1 = P1 * K(X) Next X ForeColor = vbBlack Print «Сумма всех элементов ="; S Print «Сумма четных элементов ="; S1 Print «Произведение всех элементов ="; P Print " Произведение нечетных элементов ="; Р1 End Sub Демонстрация