QBasic позволяет при помощи оператора SWAP
A,B поменять местами
содержимое переменных А,В, т.е. записать в переменную А значение переменной В,
а в В значение А.
Задан массив A(N) в диапазоне [-25,25] поменять местами первый и последний элемент.
CLS
RANDOMIZE TIMER
INPUT “N=”;N
DIM A(N)
FOR I=1 TO N
A(I)=INT(RDN*50-25)
PRINT A(I);
NEXT I
PRINT
SWAP A(1),A(N)
FOR I=1 TO N
PRINT A(I);
NEXT
Задан массив A(N) в диапазоне [-18,20] поменять местами max и min
элемент.
CLS
RANDOMIZE TIMER
INPUT "Введите n ", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*38 – 18 )
PRINT A(I);
NEXT I
S=0: min= 1000 :max= -
1000
FOR I=1 TO n
IF A(I)<min THEN min=A(I): K=I
IF A(I)>max THEN max=A(I):
L=I
NEXT I
SWAP A(K),A(L)
PRINT
FOR I=1 TO n
PRINT A(I);
NEXT I
END
Дано
натуральное число N. A(N) – массив заполнить числами из диапазона [-30;30] поменять местами мах
и второй отрицательный элемент массива, если второго отрицательного элемента
нет в массиве, поменять местами первый и последний.
CLS
RANDOMIZE TIMER
INPUT "Введите n ", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*60 – 30 )
PRINT A(I);
NEXT I
max= - 1000 : L=0
FOR I=1 TO n
IF A(I)>max THEN max=A(I): K=I
NEXT I
FOR I=1 TO n
IF A(I)<0 THEN L=L+1: K1=I
IF L=2 THEN EXIT FOR
NEXT I
IF I=2 THEN SWAP A(K),A(K1)
ELSE SWAP A(1),A(N)
PRINT
FOR I=1 TO n
PRINT A(I);
NEXT I
END
Задан массив
A(N) в диапазоне [-25,20] поменять
местами второй элемент кратный 5 с предпоследним элементом кратным 2.
RANDOMIZE TIMER
INPUT "Введите n ", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*45 – 25 )
PRINT A(I);
NEXT I
S=0 : K=0
FOR I=1 TO n
IF A(I)/5=A(I)\5 THEN K=K+1 : L=I
IF K=2 THEN EXIT FOR
NEXT I
FOR I=N TO 1 STEP -1
IF A(I)/2=A(I)\2 THEN S=S+1:
M=I
IF S=2 THEN EXIT FOR
NEXT I
IF S=2 AND K=2 THEN SWAP
A(L),A(M) ELSE ? “Таких элементов нет”
PRINT
IF S=2 AND K=2 THEN
FOR I=1 TO n
PRINT A(I);
NEXT I
END IF
Домашнее
задание.
Задан
массив A(N) в диапазоне [-15,20]
поменять местами третий четный элемент с мах, если третьего четного нет, то
поменять местами первый и последний элемент.
CLS
RANDOMIZE TIMER
INPUT "Введите n ", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*35 – 15 )
PRINT A(I);
NEXT I
max= - 1000 : L=0
FOR I=1 TO n
IF A(I)>max THEN max=A(I): K=I
NEXT I
FOR I=1 TO n
IF A(I)/2=A(I)\2 THEN L=L+1: K1=I
IF L=3 THEN EXIT FOR
NEXT I
IF I=2 THEN SWAP
A(K),A(K1) ELSE SWAP A(1),A(N)
PRINT
FOR I=1 TO n
PRINT A(I);
NEXT I
END
Задан массив
A(N) в диапазоне [-20,18] поменять
местами второй отрицательный элемент с предпоследним положительным элементом.
CLS
RANDOMIZE TIMER
INPUT "Введите n ", n
DIM A(n)
FOR I=1 TO n
A(I)= INT(RND*38 – 18 )
PRINT A(I);
NEXT I
S=0 : K=0
FOR I=1 TO n
IF A(I)<0 THEN K=K+1 : L=I
IF K=2 THEN EXIT FOR
NEXT I
FOR I=N TO 1 STEP -1
IF A(I)>0 THEN S=S+1: M=I
IF S=2 THEN EXIT FOR
NEXT I
IF S=2 AND K=2 THEN SWAP
A(L),A(M) ELSE ? “Таких элементов нет”
PRINT
IF S=2 AND K=2 THEN
FOR I=1 TO n
PRINT A(I);
NEXT I
END IF
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.