к оглавлению

Сложные задачи обработки одномерных массивов

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

В настоящей разработке приводится текст этой лекции.

SCREEN 9: COLOR 14, 1: CLS

RANDOMIZE TIMER

'*Рассмотрим более сложные задачи на обработку одномерных массивов

'*Задача 1. Из элементов двух массивов составить один массив'**Т.н. задача - сложение массивов**

'INPUT "Сколько элементов в массивах"; n, m

'DIM x(n), y(m), z(n + m)

'a = -9: b = 10

'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND)

'PRINT x(i);

'NEXT i: PRINT

'FOR i = 1 TO m: y(i) = INT(a + (b - a) * RND)

'PRINT y(i);

'NEXT: PRINT

'FOR i = 1 TO n: z(i) = x(i): NEXT

'k = 1

'FOR i = n + k TO n + m: z(n + k) = y(k): k = k + 1: NEXT

'FOR i = 1 TO n + m: PRINT z(i); : NEXT i

'******Задача 2. Сжатие массива ************************

'*Удалить из массива все элементы, равные нулю*

'INPUT "Сколько элементов в массиве"; n

'DIM x(n), y(n)

'a = -4: b = 5

'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND): PRINT x(i); : NEXT i

'PRINT

'k = 0

'FOR i = 1 TO n

'IF x(i) <> 0 THEN k = k + 1: y(k) = x(i)

'NEXT'FOR i = 1 TO k: PRINT y(i); : NEXT

'*******Задача 3. Разделение массива ******************

'*Из элементов массива получить два массива, разделив его элементы ‘по какому-либо признаку, например, по знаку элементов'INPUT "Сколько элементов в массиве"; n

'DIM x(n), y(n), z(n)

'a = -9: b = 12'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND): PRINT x(i); : NEXT i

'PRINT

'k = 0: t = 0

'FOR i = 1 TO n

'IF x(i) < 0 THEN k = k + 1: y(k) = x(i)

'IF x(i) > 0 THEN t = t + 1: z(t) = x(i)

'NEXT

'PRINT

'FOR i = 1 TO k: PRINT y(i); : NEXT i

'PRINT

'FOR i = 1 TO t: PRINT z(i); : NEXT i

'*Задача 4.Упорядочивание массива по возрастанию или по убыванию***

'INPUT "Сколько элементов в массиве"; n

'DIM x(n)

'a = -9: b = 12

'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND): PRINT x(i); : NEXT i

'PRINT

'FOR j = 1 TO n

'FOR i = 1 TO n - 1

'IF x(i) > x(i + 1) THEN SWAP x(i), x(i + 1)

'NEXT i, j

'FOR i = 1 TO n: PRINT x(i); : NEXT i

'*******Задача 5. Вставка в массив ******************

'*А как вставить число в уже определенный массив?

'INPUT "Сколько элементов в массиве"; n

'DIM x(n + 1)

'a = -9: b = 12

'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND): PRINT x(i); : NEXT i

'PRINT : PRINT

'INPUT "На какое место поставить элемент"; r'INPUT "Чему он равен"; t

'FOR i = n + 1 TO r STEP -1: x(i) = x(i - 1): NEXT i

'x(r) = t

'FOR i = 1 TO n + 1: PRINT x(i); : NEXT

'**Задача 6. Инверсия массива: перестановка его элементов***

'INPUT "Сколько элементов в массиве"; n

'DIM x(n)

'a = -9: b = 12

'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND): PRINT x(i); : NEXT i

'PRINT : PRINT

'FOR i = 1 TO n / 2

'SWAP x(i), x(n - i + 1)

'NEXT

'PRINT

'FOR i = 1 TO n: PRINT x(i); : NEXT

'*******Задача 7. Переставить все нулевые элементы в конец массива**********

'INPUT "Сколько элементов в массиве"; n

'DIM x(n), y(n)

'a = -3: b = 2

'FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND): PRINT x(i); : NEXT i

'PRINT : PRINT

'k = 0

'FOR i = 1 TO n: IF x(i) <> 0 THEN k = k + 1: y(k) = x(i)

'NEXT i

'FOR i = 1 TO n: PRINT y(i); : NEXT i

'******* Задача 7.1 Та же задача, но без дополнительного массива*****

'FOR i = 1 TO n

'FOR j = 1 TO n - 1

'IF x(j) = 0 THEN SWAP x(j), x(j + 1)

'NEXT j, i'PRINT

'FOR i = 1 TO n: PRINT x(i); : NEXT

'* Законспектируйте задачи для самостоятельного решения**************

'*(1)В массиве a(n) вычислить сумму четных элементов, имеющих четные индексы или выдать сообщение, что таких элементов нет*

'*(2)В массиве a(n) каждый элемент заменить суммой предыдущих.****

'*(3)В целочисленном массиве a(n) исключить элементы, кратные 3**

'*(4)Проверьте, есть ли целочисленном массиве x(n), если есть, найдите

'* наибольший индекс отрицательного элемента**'*(5)Задан массив. Поменять местами а)второй и пятый элементы; б)третий и максимальный элементы; в)первый и минимальный элементы.*

'*(7)Найти сумму элементов массива, стоящих а)до наибольшего элемента;'*8) после наибольшего; с)между наибольшим и наименьшим элементами.****

'*(9) Элементы массива a(n) принимают только значения 1,2 и 3. Переставьте его элементы таким образом, чтобы вначале находились элементы, равные 1, затем 2, и в конце массива 3.

Задачи для домашней работы.

1.Дан целочисленный массив a(n). Подсчитайте, сколько раз встречается в этом массиве максимальное по величине число.

2.Изменить знак всех нечетных элементов массива.

3.Для массива r(n), имеющего положительные и отрицательные элементы вычислить среднее арифметическое положительных и отрицательных элементов.

4.Вычислить суммы элементов с четными и нечетными индексами.

5.Информация о среднесуточной температуре воздуха за месяц задана в виде массива. Определить, сколько дней t была ниже 0.

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

7.Даны два массива x и y, получить новый массив Z. Элементами массива Z сначала является элементы массива x, а затем элементы массива y.

Какие умения и навыки Вы приобрели на занятии №16?

к оглавлению

Знаете ли Вы, что технология программирования, Инжиниринг ПО, Software engineering - это дисциплина, изучающая технологические процессы программирования и порядок их прохождения. (см. онлайн-курс "Технология программирования")

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution