- Преподавателю
- Информатика
- Изучаем язык BASIC. Занятие 13. Заполнение массива случайным образом
Изучаем язык BASIC. Занятие 13. Заполнение массива случайным образом
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Гегелашвили Т.П. |
Дата | 27.08.2015 |
Формат | doc |
Изображения | Нет |
Занятие 13
Заполнение массива случайным образом.
Для создания случайных чисел в языке Basic служит стандартная функция RND. Она создает случайное число в диапазоне от 0 до 1. Умножив его на 3, мы получаем случайное число от 0 до 3. А взяв от него целую часть (с помощью функции INT), получим целое случайное число в диапазоне от 0 до 2. Заполнение массива случайными числами из диапазона [x,y] производится с помощью RND по формуле
C=(RND*(y - x) + x) - для вещественных чисел, где y > x
C=INT(RND*(y - x) + x) - для целых чисел
Пример: для чисел из диапазона [-15,30] C=INT(RND*45- 15)
Пример: Составить программу заполнения массива из 15 элементов случайными числами в диапазоне от -15 до 30. Предусмотреть вывод массива на экран.
CLS
INPUT N
DIM A(N)
FOR I=1 TO N
A(I)= INT(RND*45 - 15 )
NEXT I
PRINT "Вывод массива"
FOR I=1 TO N
PRINT A(I);
NEXT I
END
CLS - очистка экрана. Точка с запятой (;) в операторе PRINT позволяет выводить элементы массива в строку.
Пример: Вывести количество отрицательных элементов массива.
CLS
INPUT "n", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*45 - 15 )
PRINT A(I);
NEXT I
k=0
FOR I=1 TO n
IF A(I)<0 THEN k=k+1
NEXT I
PRINT
PRINT "Число отрицательных элементов: ",k
END
Подсчет количества отрицательных элементов массива происходит в цикле:
FOR I=1 TO n
IF A(I)<0 THEN k=k+1
NEXT I
Задача. Задан массив A(N) заполненный целыми числами из диапазона [-25,25]. Найти количество элементов кратных 2, их сумму и среднее арифметическое
CLS
RANDOMIZE TIMER
INPUT "Введите число элементов массива", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*50 - 25 )
PRINT A(I);
NEXT I
S=0: K=0: SR=0
FOR I=1 TO n
IF A(I)/2=A(I)\2 THEN k=k+1: S=S+A(I)
NEXT I
SR=S/K
PRINT "k= ";k
PRINT "S= ";S
PRINT "SR=";SR
END
Задача. Задан массив A(N) заполненный целыми числами из диапазона [-19,26]. Найти количество положительных четных элементов не кратных 3, их сумму и среднее арифметическое
CLS
RANDOMIZE TIMER
INPUT "Введите число элементов массива", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*45 - 19 )
PRINT A(I);
NEXT I
S=0: K=0: SR=0
FOR I=1 TO n
IF A(I)/3<>A(I)\3AND A(I)/2=A(I)\2 AND A(I)>0 THEN k=k+1: S=S+A(I)
NEXT I
SR=S/K
PRINT "k= ";k
PRINT "S= ";S
PRINT "SR=";SR
END
Пример: Составить программу для вычисления максимального элемента массива А(N), заполненного числами из диапазона [-20,15] и указать его адрес.
CLS
INPUT "Введите число элементов массива", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*35 - 20 )
PRINT A(I);
NEXT I
max= - 1000
FOR I=1 TO n
IF A(I)>max THEN max=A(I): K=I
NEXT I
PRINT
PRINT "max= "; max, " с номером "; K
END
Задание выполняется в строчках:
max=-1000
FOR I=1 TO n
IF A(I)>max THEN max=A(I): K=I
NEXT I
Вначале примем за максимальный элемент - минимальное число -1000. Затем перебирая все элементы по очереди сравниваем их со значение max и если А(I)>max, то принимаем этот элемент за максимальный.
Задача. Составить программу для вычисления минимального элемента массива А(N), заполненного числами из диапазона [-20,15] и указать его адрес.
Задача. Составить программу для вычисления минимального четного элемента массива А(N), заполненного числами из диапазона [-20,15] и найти сумму элементов кратным 7, но не кратных 3.
CLS
INPUT "Введите n ", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*35 - 20 )
PRINT A(I);
NEXT I
S=0: min= 1000
FOR I=1 TO n
IF A(I)
IF A(I)/3<>A(I)\3 AND A(I)/7=A(I)\7 THEN S=S+A(I)
NEXT I
PRINT
PRINT "min= "; min, " с номером "; K
END
Домашнее задание
-
Задан массив A(N) в диапазоне [-20,16]. Найти сумму положительных элементов расположенных на нечетных позициях и подсчитать их количество.
CLS
INPUT "n", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*36 - 16 )
PRINT A(I);
NEXT I
S=0 : k=0
FOR I=1 TO n
IF A(I)>0 AND I/2 <> I\2 THEN k=k+1 : S=S+A(I)
NEXT I
PRINT
PRINT "S= "; S; "k=";k
END
-
Дано натуральное число N массив A(N) в диапазоне [-21.21]. Найти среднее арифметическое четных элементов массива, если в массиве нет четных элементов, то ответом должно служить произведение ненулевых элементов.
CLS
RANDOMIZE TIMER
INPUT "Введите число элементов массива", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*42 - 21 )
PRINT A(I);
NEXT I
S=0: K=0: P=1
FOR I=1 TO n
IF I/2=I\2 THEN k=k+1: S=S+A(I)
NEXT I
FOR I=1 TO n
IF k=0 AND A(I)>0 THEN P=P*A(I)
NEXT I
IF k<>0 THEN PRINT "SR= ";S/k
IF k=0 PRINT "P= ";P
END
-
Задан массив A(N) из диапазона [-15,18] среди элементов, расположенных на четных позициях найти min и указать его номер.
CLS
INPUT "N="; n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*33 - 15 )
PRINT A(I);
NEXT I
min= 1000
FOR I=1 TO n
IF A(I)NEXT I
PRINT
PRINT "min= "; min, " с номером "; K
END