- Преподавателю
- Информатика
- Изучаем язык BASIC. Занятие 14. Перестановка элементов
Изучаем язык BASIC. Занятие 14. Перестановка элементов
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Гегелашвили Т.П. |
Дата | 14.08.2015 |
Формат | doc |
Изображения | Нет |
Занятие 14.
Перестановка элементов.
Задан массив A(N) в диапазоне [-20.35] поменять местами два элемента в одномерном массиве с номерами K и L.
REM Перестановка элементов
INPUT N,K,L
RANDOMIZE TIMER
DIM A(N)
FOR I=1 TO N
A(I)=INT(RDN*55-20)
PRINT A(I);
NEXT I
P=A(K)
A(K)=A(L)
A(L)=P
FOR I=1 TO N
PRINT A(I);
NEXT I
REM Перестановка элементов
RANDOMIZE TIMER
INPUT N,K,L
DIM A(N)
FOR I=1 TO N
A(I)=INT(RDN*55-20)
PRINT A(I);
NEXT I
SWAP A(K),A(L)
FOR I=1 TO N
PRINT A(I);
NEXT I
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
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)
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