140 likes | 259 Views
МАССИВЫ. Решение многих задач на ЭВМ связано с обработкой большого количества численных данных. Эти данные обычно представляются в виде различных таблиц. Часто используются одномерные и двумерные таблицы. Одномерная таблица Х состоит из n элементов. Таблица линейная – Х( n ).
E N D
МАССИВЫ БАТЯЕВА В.Н., ШКОЛА № 36, САРАНСК, МОРДОВИЯ
Решение многих задач на ЭВМ связано с обработкой большого количества численных данных. Эти данные обычно представляются в виде различных таблиц. Часто используются одномерные и двумерные таблицы. Одномерная таблица Х состоит из n элементов. Таблица линейная – Х(n) 1 2 3 n Двумерная таблица содержит N*M элементов и каждый элемент имеет 2 индекса. Двумерную таблицу называют прямоугольной. Двумерная таблица А (3,5).Первый индекс показывает номер строки, второй номер столбца. Таблицу часто называют массивом. Массив – совокупность величин, при которой доступ к любой из них обеспечивается заданием имени массива и индексов, определяющих положение элементов в массиве. Одномерный массив – список учеников в классе. Многомерный массив – таблица умножения, аттестат зрелости, ж/д билет, классный журнал
Заполнение массивапри помощи датчика случайных чисел Формула получения случайного числа из отрезка [N,M] : Z= N+FIX(RND*(M-N+1)) Задача:Заполнить массив 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 Демонстрация
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*(55-12+1)) 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 FORI = 1 TO 15 IF A(I)/3 = FIX(A(I)/3) THEN PRINT A(I); NEXT I: PRINT PRINT MIN = A(1) FORI = 2TO 15 IFA(I) <MINThenMIN = 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 Демонстрация