Изучаем язык BASIC. Занятие 14. Перестановка элементов

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

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

PRINT

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

PRINT

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

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)

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


© 2010-2022