Есть ли в решении этой задачи действия, которые необходимо выполнить несколько раз? Сколько раз надо их выполнить? С помощью какой команды мы организуем решение нашей задачи?
CLS S=0 FOR i=1 TO 10 INPUT X S=S+X NEXT i PRINT S=; S END начало конец S=0 i = 1…10, 1 Ввод х S=S+x Вывод S + -
Индексы Значения переменных 0123… ,514…1817,5 - это упорядоченная совокупность однотипных данных, каждому из которых соответствует свой порядковый номер (индекс). Целый тип Действительный тип
А Имя 8 Размер одномерный Размерность temp Имя 24 Размер одномерный Размерность … ,514…1817,5
6 Если адрес элемента массива определяется одним индексом, то такой массив называется одномерным. Массивы бывают и многомерными. Примеры: Трёхмерный массив (координаты точек в пространстве) Одномерный массив (координаты точек на числовой прямой) Двумерный массив (координаты точек на плоскости) А(Х,У) А(Х,У,Z) А(Х)
7 Перед тем как начать работать с массивом, нужно зарезервировать для него место в памяти. Для этого имеется оператор DIM (от английского слова dimention – объём, величина, размер, измерить) Пример. DIM А(10) Обычно говорят, что зарезервировано место под 10 элементов массива А, однако в самом деле резервируется 11, т.к. нумерация ячеек начинается с 0. Но так как нам привычнее начинать считать с 1, то первая («нулевая») ячейка просто-напросто не используется. Способы заполнения одномерных массивов С клавиатуры INPUT N =, N DIM M(N) FOR I = 1 TO N INPUT M(I) NEXT I Заранее известными значениями DATA 23, -13, 9.8, 77, 45 DIM M(5) FOR I = 1 TO 5 READ M(I) NEXT I При помощи стандартных функций RANDOMIZE TIMER INPUT «N=»; N DIM M(N) FOR I = 1 TO N M(I) = INT(RND(1)*100) NEXT I Непосредственное присваивание значений элементам DIM D(3) D(1)=12.6 D(2)=5.96 D(3)=98
DIM имя (верхняя граница) !!! Пишется в начале программы DIM A(7) или DIM A(8) DIM temp(23) !!! Если в задаче используются несколько массивов, то они описываются в операторе DIM через запятую. В памяти компьютера:
CLS DIM A(10) S=0 FOR i=1 TO 10 INPUT A(i) S=S+A(i) NEXT i PRINT S=; S END начало конец S=0 i = 1…10, 1 Ввод a(i) S=S+a(i) Вывод S + -
B) Ввод элементов массива, заданных по формуле и заданного размера DIM A(10) FOR I=1 TO 10 A (I)= I^2+3 NEXT I A(1)=1^2+3=4 A(2)=2^2+3=7 … A(10)=10^2+3=103
C) Ввод элементов массива случайным образом. RANDOMIZE TIMER DIM A(8) FOR I = 1 TO 8 A (I)= INT(RND*10) NEXT I (присвоение элементу с номером I целого числового значения случайным образом из интервала от 0 до 10)
ВЫВОД МАССИВОВ. а) Вывод одномерного массива, как правило, целесообразно осуществлять в строку, опровождая поясняющим текстом. 200 PRINT «МАССИВ А» 210 FOR I=1 TO N 220 PRINT A (I); 230 NEXT I Вывод массива А в строку обеспечивается использованием точки с запятой в операторе PRINT (строка 220).
б) При выводе двух или нескольких одномерных массивов одного размера часто удобно вывести их как расположенные параллельно столбцы. 200 PRINT "МАССИВ А ", "МАССИВ В 210 FOR I=1 TO N 220 PRINT A(I), B(I) 230 NEXT I
в) Вывод двух или более массивов различных размеров, как правило, осуществляется в строку. Вывод массива начинается с новой строки. 200 PRINT "МАССИВ А:"; 210 FOR I=1 TO N 220 PRINT A(I) 230 NEXT I 240 PRINT 250 PRINT"МАССИВ В:"; 260 FOR I=1 TO M 270 PRINT В(I) 280 NEXT I (ставится для того, чтобы новый массив начался с новой строки)
СУММИРОВАНИЕ ЭЛЕМЕНТОВ МАССИВА. А) Для одномерного массива B= {b 1,b 2 …b N } необходимо вычислить S=B i 10 INPUT N 20 DIM B(N) 30 FOR I=1 TO N 40 INPUT B(I) 50 NEXT I 60 S=0 70 FOR I=1 TO N 80 S=S+B(I) 90 NEXT I 100 PRINT S объявление массива ввод элементов массива обработка элементов массива – нахождение суммы 100 вывод результата – суммы элементов массива
Суммирование двух массивов. А) Для одномерных массивов А и В размером N необходимо вычислить C i =A i +B i, I=1,2,…,N 100 FOR I=1 TO N 110 С(I)=A(I)+В(I) 120 NEXT I
РАЗБЕРЁМ ЗАДАЧИ: 1. Составьте программу, в которой формируется массив из 20 элементов, причем первые десять элементов являются квадратами чисел от 1 до 10, а остальные от 11 до 20 кубы чисел. 2. Вычислить среднее арифметическое элементов массива S(7) случайных чисел. 3. В массиве В (7) случайных чисел от 0 до 9 все числа больше 5 заменить Дан массив G(2,0,-7,-4,2,1,0,9) найти сумму отрицательных и положительных элементов.
-1- DIM D(20) FOR I=1 TO 10 D(I)=I^2 NEXT I FOR I=11 TO 20 D(I)=I^3 NEXT I FOR I=1 TO 20 PRINT D(I) NEXT I
-2- RANDOMIZE TIMER DIM S(7) FOR I=1 TO 7 S(I) = INT(RND*100) NEXT I SUM=0 FOR I=1 TO 7 SUM=SUM+S(I) NEXT I SR=SUM/7 PRINT «СРЕДНЕЕ АРИФМ=»;SR
-3- RANDOMIZE TIMER DIM B(7) FOR I=1 TO 7 B(I)=INT(RND*9) NEXT I FOR I=1 TO 7 IF B(I)>5 THEN B(I)=1 NEXT I FOR I=1 TO 7 PRINT B(I) NEXT I
-4- DIM G(8) FOR I=1 TO 8 INPUT G(I) NEXT I SP=0: SO=0 FOR I=1 TO 8 IF S(I) >0 THEN SP=SP+S(I) ELSE SO=SO+S(I) END IF NEXT I PRINT SUMMA POLOG=; SP PRINT SUMMA OTR=; SO
ЗАДАЧА. Дан массив В(20). Найти произведение отрицательных элементов массива, если таковых не было, то напечатать сообщение об этом.