Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KONSPEKT_LEKTsIJ_polnyy_variant.doc
Скачиваний:
30
Добавлен:
09.04.2015
Размер:
1.01 Mб
Скачать

Randomize [число].

[Число] –это число, используемое для инициализации генератора случайных чисел. Если оно не указано, то RANDOMIZE его запрашивает. Рекомендуется в качестве такого числа брать показания таймера. В этом случае в программе (до применения оператора RND, обычно в начале программы) следует записать – RANDOMIZE TIMER

Если надо, чтобы вырабатываемые числа лежали в интервале [-N; N], то можно применить выражение

2*N*RND - N

Если надо, чтобы вырабатываемые числа лежали в интервале [0; N], то надо применить выражение

N*RND

Если надо, чтобы вырабатываемые числа лежали в интервале [-N; N-1] и были целыми, то можно применить выражение INT(2*N*RND - N) и т. д.

Алгоритм формирования и печати исходного массива

CLS

RANDOMIZE TIMER

PRINT “Введите размер массива “;

INPUT N

DIM S(N)

PRINT “Исходный массив:”

PRINT

FOR I=0 TO N

S (I) = INT(200*RND - 100)

PRINT S (I),

NEXT I

Алгоритм поиска максимального и минимального значений в массиве s(n)

MAX = S (0): J = 0

MIN = MAX: K = 0

FOR I=1 TO N

IF S (I) > MAX THEN MAX = S (I): J = I

IF S (I) < MIN THEN MIN = S (I): K = I

NEXT I

PRINT “ MAX =”; S (J), “MIN =”; S (K)

END

Таким образом, максимальный элемент массива - S (J), минимальный - S (K ).

Минимальные и максимальные значения массива можно получить, отсортировав массив. Например, в случае сортировки массива по возрастанию первый элемент массива – минимальный, а последний – максимальный.

Алгоритмы сортировки массива Сортировка выбором мах (или мin)

Сортировка массива – это упорядочение по возрастанию или убыванию значений его элементов в соответствии с их индексом.

Алгоритм основан на определении и выборе минимального элемента вначале из всего массива, потом – из оставшегося и так последовательно до исчерпания всего массива. Выбираемые элементы вставляются по порядку в начало массива: сначала самый малый, затем минимум, найденный вторым и т. д. В итоге мы получаем отсортированный по возрастанию массив.

Если мы хотим иметь массив, отсортированный по убыванию, то соответственно находим и ставим последовательно в начало массива элементы с максимальными значениями.

FOR I = 1 TO N-1

MIN = S(N)

K=N

FOR J = N TO I STEP –1

IF S(J) < MIN THEN MIN= S(J): K=J

NEXT J

SWAP S(K), S(I)

NEXT I

Вывод отсортированного массива

FOR I = 1 TO N

PRINT S(I); “ “;

NEXT I

END

Сортировка вставками

Идея сортировки вставками в том, что начинают формировать новый отсортированный массив. И когда там помещено i элементов, то i + 1 элемент размещают среди них так, чтобы не нарушить порядок последовательности.

. . . . . . . . . . . . . . .

FOR J = 2 TO N

I = J – 1

DO

IF A(I + 1) < A(I) THEN SWAP A(I + 1), A(I): I = I - 1

ELSE

I = 0

END IF

LOOP WHILE I <> 0

NEXT J

Вывод отсортированного массива

FOR I = 1 TO N

PRINT S(I); “ “;

NEXT I

END

Метод «пузырька»

FOR I = 1 TO N-1

FOR J = 1 TO N-1

IF A(J + 1) < A(J) THEN SWAP A(J + 1), A(J)

NEXT J

NEXT I

Вывод отсортированного массива

FOR I = 1 TO N

PRINT S(I); “ “;

NEXT I

END

Приведенные алгоритмы называются квадратичными – т. к. они требуют порядка n*n действий. Существуют ряд алгоритмов сортировки, требующих выполнения меньшего числа операций. Но программы, реализующие эти алгоритмы, содержат большее количество операторов, чем в приведенных примерах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]