Изучаем язык BASIC. Занятие 15. Вложенные циклы

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

Занятие 15

Вложенные циклы.

С помощью вложенных циклов можно организовать весьма сложные повторения, используя цикл в цикле.

FOR I=…

FOR J=...

… - тело цикла

NEXT J

NEXT I

Написать таблицы до 9 в виде

1*2=2

2*2=4 и т.д.

FOR I=2 TO 9

FOR J=1 TO 9

? J;"*";I;"=";J*I

NEXT J

NEXT I

Написать Пифагорову таблицы умножения до 5

FOR I=1 TO 5

FOR J=1 TO 5

? J*I;

NEXT J

?

NEXT I

Напечатать четырехзначные натуральные числа, у которых нет одинаковых цифр.

FOR T=1 TO 9

FOR S=0 TO 9

FOR D=0 TO 9

FOR E=0 TO 9

IF T<>S AND T<>D AND T<>E AND S<>D AND S<>E AND D<>E THEN M=T*1000+S*100+D*10+E : ?M

NEXT E,D,S,T

Задан массив, заполненный в диапазоне [-18,24] отсортировать массив: расположить сначала все положительные, а затем отрицательные.

CLS

RANDOMIZE TIMER

INPUT "N=";N

DIM A(N)

FOR I=1 TO N

A(I)=INT(RDN*50-25)

PRINT A(I);

NEXT

FOR I=1 TO N

FOR J=I TO N

IF A(J) >0 THEN SWAP A(I), A(J) : EXIT FOR

NEXT J

NEXT I

PRINT

FOR I=1 TO N

PRINT A(I);

NEXT

Дано натуральное число N, A(N) заполнить в диапазоне [-9,12] упорядочить элементы массива следующим образом сначала все элементы кратные 5, затем все элементы кратные 4, потом все остальные. Новый массив не создавать.

CLS

RANDOMIZE TIMER

INPUT "N=";N

DIM A(N)

FOR I=1 TO N

A(I)=INT(RDN*21-9)

PRINT A(I);

NEXT

K=0

FOR I=1 TO N

FOR J=I TO N

IF A(J)/5=A(J)\5 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

FOR I=K TO N

FOR J=I TO N

IF A(J)/5=A(J)\5 THEN SWAP A(I), A(J) : EXIT FOR

NEXT J

NEXT I

PRINT

FOR I=1 TO N

PRINT A(I);

NEXT

Второй вариант

CLS

RANDOMIZE TIMER

INPUT "N=";N

DIM A(N)

FOR I=1 TO N

A(I)=INT(RDN*21-9)

PRINT A(I);

NEXT

K=1

FOR I=1 TO N

IF A(I)/5=A(I)\5 THEN SWAP A(I), A(K) :K=K+1

NEXT I

FOR I=K+1 TO N

IF A(I)/4=A(I)\4 THEN SWAP A(I), A(K)

NEXT I

PRINT

FOR I=1 TO N

PRINT A(I);

NEXT

Дано натуральное число N, A(N) заполнить в диапазоне [-25,25] упорядочить элементы массива следующим образом сначала все элементы кратные 2, затем все элементы кратные 3, потом все остальные. Новый массив не создавать.

Написать самостоятельно.

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

Дано натуральное число N, A(N) заполнить в диапазоне [-9,10] упорядочить элементы массива следующим образом сначала все элементы четные отрицательные, затем все элементы четные положительные, все элементы нечетные отрицательные, затем все элементы нечетные положительные, потом все равные нулю. Новый массив не создавать.

CLS

RANDOMIZE TIMER

INPUT "N=";N

DIM A(N)

FOR I=1 TO N

A(I)=INT(RDN*19-9)

PRINT A(I);

NEXT

K=0

FOR I=1 TO N

FOR J=I TO N

IF A(J)/2=A(J)\2 AND A(J)<0 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

FOR I=k + 1 TO N

FOR J=I TO N

IF A(J)/2=A(J)\2 AND A(J)>0 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

FOR I=k + 1 TO N

FOR J=I TO N

IF A(J)/2<>A(J)\2 AND A(J)<0 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

FOR I=k + 1 TO N

FOR J=I TO N

IF A(J)/2<>A(J)\2 AND A(J)>0 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

FOR I=K+1 TO N

FOR J=I TO N

IF A(J)=0 THEN SWAP A(I), A(J) : EXIT FOR

NEXT J

NEXT I

PRINT

FOR I=1 TO N

PRINT A(I);

NEXT

Дано натуральное число N, A(N) заполнить в диапазоне [-5,25] удалить из массива все элементы, по абсолютной величине меньше 2. Среди оставшихся найти среднее арифметическое элементов кратных 3.

CLS

RANDOMIZE TIMER

INPUT "N=";N

DIM A(N)

FOR I=1 TO N

A(I)=INT(RDN*30-25)

PRINT A(I);

NEXT

K=0

FOR I=1 TO N

FOR J=I TO N

IF ABS(A(J))>=2 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

S=0 : L=0

FOR I=1 TO K

IF A(I)/3=A(I)\3 THEN S=S +A(I): L=L+1

NEXT I

SR=S/L

PRINT

FOR I=1 TO K

PRINT A(I);

NEXT

PRINT

PRINT "SR=";SR

Дано натуральное число N, A(N) заполнить в диапазоне [-15,22] удалить из массива все элементы, по абсолютной величине меньше 5.

CLS

RANDOMIZE TIMER

INPUT "N=";N

DIM A(N)

FOR I=1 TO N

A(I)=INT(RDN*37-15)

PRINT A(I);

NEXT

K=0

FOR I=1 TO N

FOR J=I TO N

IF ABS(A(J))>=5 THEN SWAP A(I), A(J) :K=K+1 : EXIT FOR

NEXT J

NEXT I

PRINT

FOR I=1 TO K

PRINT A(I);

NEXT


© 2010-2022