Основы программирования на Бейсике Массивы
Задание:Найти все 3-хзначные числа, заканчивающихся на 2, 4, 8 и делящихся на 6.Ответ:CLSFOR I=100 TO 999 I3 = I – INT(I/10)*10 IF (I3 = 2) OR (I3 = 4) OR (I3 = 8) THEN IF I/6 = INT(I/6) THEN PRINT I END IF END IFNEXT I
Ответьте на вопросы 1. Для чего используется оператор цикла? 2. Назовите структуру цикла? 3. Что указывается в заголовке цикла? 4. Как записывается заголовок цикла в Бейсике? 5. Что показывает оператор NEXT? 6. Какие действия происходят по оператору NEXT? 7. Что показывает тело цикла ? .
ОпределенияМассивом называется упорядоченная совокупность однородных величин, обозначенных каждая одним и тем же именем с различными целочисленными индексами, изменяющимися по порядку.Массив - это набор однородных данных (чисел, символов, слов).
Рис. Изображение одно-, дву- и трехмерных массивов
Одномерный массивОдномерный массив можно рассматривать как список однотипных элементов. Например, одномерными массивами являются:список фамилий студентов группы численные данные о средней температуре за месяцбуквы русского алфавита
Каждый элемент массива обозначается именем массива и индексом.Индекс определяет положение элемента массива относительно его начала, его порядковый номер. <имя массива>(<индекс>) = <значение> 1. Из скольких элементов состоит этот массив? – 72. D(2) = ? D(4) = ? D(5) = ? D(7) = ? Если в программе используется массив, то он должен быть описан.
Описание массиваВ Бейсике элементы массива располагаются в последовательных ячейках памяти. Это означает, что массив занимает непрерывную область памяти. Прежде чем мы сможем обращаться к массиву из программы, надо указать, сколько памяти необходимо для размещения массива. Всему массиву, определяется объемом памяти, занимаемым одним элементом массива умноженным на число элементов в массиве. Поэтому нужно указать максимальное число элементов массива.
В Бейсике описание размера массива делается с помощью оператора DIM, который имеет следующий синтаксис:DIM имя массива (максимальное число элементов массива) Например:DIM D(7)DIM S(5) - где S имя массива, 5- максимальное число элементов массива,DIM M(25) - M имя массива, 25- максимальное число элементов массива.Первый элемент массива имеет номер 0. Наличие именно этого дополнительного элемента и приводит к тому, что массив занимает на один элемент больше памяти, чем это задано в его описании, но с единицы нам привычнее и удобнее, поэтому нулевой элемент можно пропустить. В момент описания массива (при обработке оператора DIM и выделению массиву места в памяти) значения элементов массива не определены; это значит, что в числовом массиве могут быть любые числа.
Доступ к элементам массиваМы должны обращаться к отдельным элементам массива, чтобы присвоить им значения, вывести их на печать, использовать в выражении и т. д.Для обращения к отдельному элементу массива мы должны указать имя массива и после него в скобках номер этого элемента в массиве: S(1), S(2), S(3). Значение в скобках называется индексом массива. Минимальное значение индекса 0, максимальное значение индекса - это значение, заданное в операторе DIM.Индекс - это метка ячейки памяти которая используется для обращения к этой ячейке.
Элементы массива могут быть введены с клавиатуры с помощью оператора INPUT или с помощью операторов DATA, READ или иным способом. Например, Ввод массива осуществляется с помощью цикла: FOR I = 1 TO 7INPUT A(I)NEXT I Вывод массива тоже осуществляется с помощью цикла: FOR I = 1 TO 7PRINT A(I)NEXT I Чтобы обратиться к элементу массива, надо указать его имя и индекс. D(1) = 0D(7) = 100
Присваивание значений элементам массиваПервый способCLSDIM S(5) в этой строке объявлен массив с именем S и пятью элементамиS(1)=53S(2)=31S(3)=-32 в этих строках элементам массива присваиваются значенияS(4)=44S(5)=-23PRINT "S(1) равно " ; S(1)PRINT "S(2) равно " ; S(2)PRINT "S(3) равно " ; S(3) PRINT "S(4) равно " ; S(4) PRINT "S(5) равно " ; S(5) Результаты работы этой программы будут выглядеть так:5331-3244-23
Второй способ (заполнение массива с помощью оператора INPUT)CLSINPUT “введите количество элементов массива”; NDIM A(N)FOR I=1 TO NPRINT “введите”; I; “элемент массива”INPUT A(I)NEXT IFOR I=1 TO NPRINT A(I)NEXT IРезультаты работы программы для 3-х элементов будут выглядеть так:Введите 1 элемент массива? 23Введите 2 элемент массива? -54Введите 3 элемент массива? 2123-5421
Третий способ (заполнение массива с помощью оператора DATA)CLSDATA 23, 13, 98, -8, 7DIM M(5)FOR I=1 TO 5READ M(I)PRINT M(I)NEXT IРезультаты работы этой программы будут выглядеть так:231398-87Четвертый способ (следующий короткий программный модульгенерирует случайные числа и записывает их в массив):DIM S(100)FOR I=1 ТО 100S(I) = 1+INT(100*RND)NEXT I
Алгоримы обработки одномерных массивов.Формирование массива случайным образом из области [A;B]FOR I=1 TO NM(I)=INT(RND*(A+B))-ANEXT IВывод массива в строкуFOR I=1 TO NPRINT M(I);" ";NEXT IВывод массива в столбецFOR I=1 TO NPRINT M(I)NEXT I
Поиск минимального элемента массиваMIN=M(1);FOR I=2 TO NIF M(I)<MIN THEN MIN=M(I)NEXT IПерестановка элементов на четных и нечетных местахFOR I=2 TO N STOP 2P=M(I-1):M(I-1)=M(I):M(I)=PNEXT IОбъединение 2-х массивовFOR I=1 TO N STEP 2M(2*I-1)=A(I):M(2*I)=B(I)NEXT I
Самостоятельная работа Задание 1:Найти сумму элементов массива D, длиной 7 элементовCLSDIM A (7)FOR I = 1 TO 7INPUT A(I)NEXT IS = 0FOR I = 1 TO 7S = S + A(I)NEXT IPRINT “S=”; S
Задание 2:Составить программу, которая обнуляет все отрицательные числа.CLSDIM D (7)FOR I = 1 TO 7INPUT A(I)NEXT IFOR I = 1 TO 7IF A(I) < 0 THENA(I) = 0NEXT IFOR I = 1 TO 7PRINT A(I)NEXT I
Задание 3:Найти среднее арифметическое всех положительных чисел массива D.CLSDIM D (7)FOR I = 1 TO 7INPUT A(I)NEXT IS = 0FOR I = 1 TO 7IF A(I) > 0 THENS = S + A(I) NEXT IS = S / 7PRINT “S=”; S
Вопросы для повторения1. Что называется массивом?2. Как обозначается элементы массива? 3. Каким оператором описывается одномерный массив в Бейсике? 4. С помощью какого оператора осуществляется ввод и вывод одномерного массива?5. Какой оператор является телом цикла при вводе массива?6. Какой оператор является телом цикла при выводе массива? Задание1:16 учащихся одного класса получили оценки. Составить программу которая подсчитывает, сколько учащихся получили оценку «5»Задание2:Составить программу, которая увеличивает все значения таблицы А(20) в два раза.