Similar presentations:
Основы программирования на Бейсике. Массивы
1. Основы программирования на Бейсике
Массивы2.
Задание:Найти все 3-хзначные числа, заканчивающихся на 2, 4, 8 и
делящихся на 6.
Ответ:
CLS
FOR 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 IF
NEXT I
3.
Ответьте на вопросы1. Для чего используется оператор цикла?
2. Назовите структуру цикла?
3. Что указывается в заголовке цикла?
4. Как записывается заголовок цикла в Бейсике?
5. Что показывает оператор NEXT?
6. Какие действия происходят по оператору
NEXT?
7. Что показывает тело цикла ?
.
4.
ОпределенияМассивом называется упорядоченная
совокупность однородных величин, обозначенных
каждая одним и тем же именем с различными
целочисленными индексами,
изменяющимися по порядку.
Массив - это набор однородных данных (чисел,
символов, слов).
5.
Рис. Изображение одно-, дву- и трехмерных массивов6.
Одномерный массивОдномерный массив можно рассматривать как
список однотипных элементов.
Например, одномерными массивами являются:
•список фамилий студентов группы
•численные данные о средней температуре за
месяц
•буквы русского алфавита
7.
Каждый элемент массива обозначается именем массива ииндексом.
Индекс определяет положение элемента массива относительно его
начала, его порядковый номер.
<имя массива>(<индекс>) = <значение>
i
A(i)
1
2
3
4
5
1.6
5
-6.02
8.78
-10.1
А(1) = 1,6
А(2) = 5
А(3) = -6,02
А(4) = 8,78
А(5) = -10,1
Дан массив D:
i
D(i)
1.
2.
1
2
3
4
5
6
7
5
2.5
-6
7
8.1
-5.6
0.2
Из скольких элементов состоит этот массив? – 7
D(2) = ?
D(4) = ?
D(5) = ?
D(7) = ?
Если в программе используется массив, то он должен быть описан.
8.
Описание массиваВ Бейсике элементы массива располагаются в последовательных
ячейках памяти.
Это означает, что массив занимает непрерывную область памяти.
Прежде чем мы сможем обращаться к массиву из программы, надо
указать, сколько памяти необходимо для размещения массива.
Всему массиву, определяется объемом памяти, занимаемым
одним элементом массива умноженным на число элементов в
массиве.
Поэтому нужно указать максимальное число элементов массива.
9.
В Бейсике описание размера массива делается с помощью оператораDIM, который имеет следующий синтаксис:
DIM имя массива (максимальное число элементов массива)
Например:
DIM D(7)
1
2
3
4
5
6
7
D
DIM S(5) - где S имя массива, 5- максимальное число элементов массива,
DIM M(25) - M имя массива, 25- максимальное число элементов массива.
Первый элемент массива имеет номер 0. Наличие именно этого
дополнительного элемента и приводит к тому, что массив занимает на
один элемент больше памяти, чем это задано в его описании, но с
единицы нам привычнее и удобнее, поэтому нулевой элемент можно
пропустить.
В момент описания массива (при обработке оператора DIM и
выделению массиву места в памяти) значения элементов массива не
определены; это значит, что в числовом массиве могут быть любые
числа.
10.
Доступ к элементам массиваМы должны обращаться к отдельным элементам массива,
чтобы присвоить им значения, вывести их на печать,
использовать в выражении и т. д.
Для обращения к отдельному элементу массива мы должны
указать имя массива и после него в скобках номер этого
элемента в массиве: S(1), S(2), S(3).
Значение в скобках называется индексом массива.
Минимальное значение индекса 0, максимальное
значение индекса - это значение, заданное в операторе
DIM.
Индекс - это метка ячейки памяти которая используется для
обращения к этой ячейке.
11.
Элементы массива могут быть введены с клавиатуры с помощьюоператора INPUT или с помощью операторов DATA, READ или иным
способом. Например,
Ввод массива осуществляется с помощью цикла:
FOR I = 1 TO 7
INPUT A(I)
NEXT I
Вывод массива тоже осуществляется с помощью цикла:
FOR I = 1 TO 7
PRINT A(I)
NEXT I
Чтобы обратиться к элементу массива, надо указать его имя и индекс.
D(1) = 0
D(7) = 100
12.
Присваивание значений элементам массиваПервый способ
CLS
DIM S(5) в этой строке объявлен массив с именем S и пятью элементами
S(1)=53
S(2)=31
S(3)=-32
в этих строках элементам массива присваиваются значения
S(4)=44
S(5)=-23
PRINT "S(1) равно " ; S(1)
PRINT "S(2) равно " ; S(2)
PRINT "S(3) равно " ; S(3)
PRINT "S(4) равно " ; S(4)
PRINT "S(5) равно " ; S(5)
Результаты работы этой программы будут выглядеть так:
53
31
-32
44
-23
13.
Второй способ (заполнение массива с помощью оператора INPUT)CLS
INPUT “введите количество элементов массива”; N
DIM A(N)
FOR I=1 TO N
PRINT “введите”; I; “элемент массива”
INPUT A(I)
NEXT I
FOR I=1 TO N
PRINT A(I)
NEXT I
Результаты работы программы для 3-х элементов будут выглядеть так:
Введите 1 элемент массива
? 23
Введите 2 элемент массива
? -54
Введите 3 элемент массива
? 21
23
-54
21
14.
Третий способ (заполнение массива с помощью оператора DATA)CLS
DATA 23, 13, 98, -8, 7
DIM M(5)
FOR I=1 TO 5
READ M(I)
PRINT M(I)
NEXT I
Результаты работы этой программы будут выглядеть так:
23
13
98
-8
7
Четвертый способ (следующий короткий программный модуль
генерирует случайные числа и записывает их в массив):
DIM S(100)
FOR I=1 ТО 100
S(I) = 1+INT(100*RND)
NEXT I
15.
Алгоримы обработки одномерных массивов.Формирование массива случайным образом из
области [A;B]
FOR I=1 TO N
M(I)=INT(RND*(A+B))-A
NEXT I
Вывод массива в строку
FOR I=1 TO N
PRINT M(I);" ";
NEXT I
Вывод массива в столбец
FOR I=1 TO N
PRINT M(I)
NEXT I
16.
Поиск минимального элемента массиваMIN=M(1);
FOR I=2 TO N
IF M(I)<MIN THEN MIN=M(I)
NEXT I
Перестановка элементов на четных и нечетных местах
FOR I=2 TO N STOP 2
P=M(I-1):M(I-1)=M(I):M(I)=P
NEXT I
Объединение 2-х массивов
FOR I=1 TO N STEP 2
M(2*I-1)=A(I):M(2*I)=B(I)
NEXT I
17.
Самостоятельная работаЗадание 1:
Найти сумму элементов массива D, длиной 7 элементов
CLS
DIM A (7)
FOR I = 1 TO 7
INPUT A(I)
NEXT I
S=0
FOR I = 1 TO 7
S = S + A(I)
NEXT I
PRINT “S=”; S
18.
Задание 2:Составить программу, которая обнуляет все отрицательные числа.
CLS
DIM D (7)
FOR I = 1 TO 7
INPUT A(I)
NEXT I
FOR I = 1 TO 7
IF A(I) < 0 THEN
A(I) = 0
NEXT I
FOR I = 1 TO 7
PRINT A(I)
NEXT I
19.
Задание 3:Найти среднее арифметическое всех положительных чисел массива
D.
CLS
DIM D (7)
FOR I = 1 TO 7
INPUT A(I)
NEXT I
S=0
FOR I = 1 TO 7
IF A(I) > 0 THEN
S = S + A(I)
NEXT I
S=S/7
PRINT “S=”; S
20.
Вопросы для повторения1. Что называется массивом?
2. Как обозначается элементы массива?
3. Каким оператором описывается одномерный массив в
Бейсике?
4. С помощью какого оператора осуществляется ввод и
вывод одномерного массива?
5. Какой оператор является телом цикла при вводе
массива?
6. Какой оператор является телом цикла при выводе
массива?
Задание1:
16 учащихся одного класса получили оценки. Составить программу
которая подсчитывает, сколько учащихся получили оценку «5»
Задание2:
Составить программу, которая увеличивает все значения таблицы
А(20) в два раза.