Изучаем язык BASIC. Занятие 13. Заполнение массива случайным образом

Раздел Информатика
Класс -
Тип Конспекты
Автор
Дата
Формат doc
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Занятие 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

Домашнее задание

  1. Задан массив 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


  1. Дано натуральное число 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


  1. Задан массив 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


© 2010-2022